{"version":3,"file":"static/js/main.14d2d4aa.js","mappings":"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E,EAAY,qBACZC,EAAoB,MACpBppE,EAAK,QACLxB,EAAO,MACP7N,GACE0nF,EACJ,MAAO,CACL,CACEgrF,OAAQ,gBACRzkK,UACAiJ,OACAkB,MACAmgE,aACAjG,UACA35D,eACA5J,MACAK,WACAopE,eACAC,uBACAppE,QACAxB,UACA7N,SAGN,CAyDIg4K,CAAa,CACX/pK,UACAmK,MACAO,eACA/K,UACAmW,OACA7M,OACAqhE,aACAjG,UACAvjE,MACAK,WACAopE,eACAC,uBACAppE,QACAxB,UACA7N,UAEF63K,GACA,CACE5pI,QAASy5C,EAAOz5C,QAChBm3G,SAAU19D,EAAO09D,SACjBzC,UAAWj7D,EAAOi7D,UAClBjF,UAAWh2D,EAAOg2D,YA6FtB,MAAO,CACLx9I,OACAkR,QACA6kH,UACAy1C,SACAF,YACAC,YACAhrK,QACAqkB,SACAw/H,YACAv0H,MApGYkoJ,EAAAA,SAAgB,KAC5B,GAAoB,aAAhBvwF,EAAO3jE,KAAqB,CAC9B,IAAKlW,EACH,OACF,MAAO,IAAMm9J,EAAO,CAClBjnJ,KAAM,WACNlW,QAAS65E,EAAO75E,QAChBD,QAAS85E,EAAO95E,SAEpB,CACA,OAAQsqK,GAAmBlN,EAAO,CAChC/8J,UACAiJ,OACAkB,MACAO,eACA/K,UACA2qE,aACAjG,UACAvjE,MACAK,WACAopE,eACAC,uBACAppE,QACArP,WACGk4K,GACH,GACD,CACD3/F,EACAjG,EACAl6D,EACAnK,EACAiJ,EACAtJ,EACA85E,EAAO95E,QACP85E,EAAO3jE,KACP2jE,EAAO75E,QACP8K,EACA5J,EACAK,EACAopE,EACAC,EACAuyF,EACA37J,EACAxB,EACA7N,IAyDAm4K,WAvDiBF,EAAAA,SAAgB,KACjC,GAAoB,aAAhBvwF,EAAO3jE,KAAqB,CAC9B,IAAKlW,EACH,OACF,MAAO,IAAMynK,EAAY,CACvBvxJ,KAAM,WACNlW,QAAS65E,EAAO75E,SAEpB,CACA,OAAQqqK,GAAmB5C,EAAY,CACrCrnK,UACAiJ,OACAkB,MACAxK,UACA+K,eACA4/D,aACAjG,UACAvjE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G,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,UAC3B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,IAAKitB,MAAO,gBAC5B,CAAEjgI,MAAOgzG,GAAO,GAAIitB,MAAO,gBAC3B,CAAEjgI,MAAOgzG,GAAO,IAAKi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","sources":["../node_modules/@noble/curves/src/abstract/utils.ts","../node_modules/@noble/hashes/src/_assert.ts","../node_modules/@noble/hashes/src/_u64.ts","../node_modules/@noble/hashes/src/crypto.ts","../node_modules/@noble/hashes/src/sha3.ts","../node_modules/@noble/hashes/src/utils.ts","../node_modules/@safe-global/safe-apps-provider/src/index.ts","../node_modules/@safe-global/safe-apps-provider/src/provider.ts","../node_modules/@safe-global/safe-apps-provider/src/utils.ts","../node_modules/@safe-global/safe-apps-sdk/src/communication/index.ts","../node_modules/@safe-global/safe-apps-sdk/src/communication/messageFormatter.ts","../node_modules/@safe-global/safe-apps-sdk/src/communication/methods.ts","../node_modules/@safe-global/safe-apps-sdk/src/communication/utils.ts","../node_modules/@safe-global/safe-apps-sdk/src/decorators/requirePermissions.ts","../node_modules/@safe-global/safe-apps-sdk/src/eth/constants.ts","../node_modules/@safe-global/safe-apps-sdk/src/eth/index.ts","../node_modules/@safe-global/safe-apps-sdk/src/index.ts","../node_modules/@safe-global/safe-apps-sdk/src/safe/index.ts","../node_modules/@safe-global/safe-apps-sdk/src/safe/signatures.ts","../node_modules/@safe-global/safe-apps-sdk/src/sdk.ts","../node_modules/@safe-global/safe-apps-sdk/src/txs/index.ts","../node_modules/@safe-global/safe-apps-sdk/src/types/gateway.ts","../node_modules/@safe-global/safe-apps-sdk/src/types/index.ts","../node_modules/@safe-global/safe-apps-sdk/src/types/messaging.ts","../node_modules/@safe-global/safe-apps-sdk/src/types/permissions.ts","../node_modules/@safe-global/safe-apps-sdk/src/types/sdk.ts","../node_modules/@safe-global/safe-apps-sdk/src/utils.ts","../node_modules/@safe-global/safe-apps-sdk/src/wallet/index.ts","../../src/config.ts","../../src/endpoint.ts","../../src/index.ts","../../../src/types/chains.ts","../../../src/types/common.ts","../../../src/types/safe-apps.ts","../../../src/types/safe-info.ts","../../../src/types/safe-messages.ts","../../../src/types/transactions.ts","../../src/utils.ts","../node_modules/clsx/dist/clsx.m.js","../node_modules/cross-fetch/dist/browser-ponyfill.js","../node_modules/dijkstrajs/dijkstra.js","../node_modules/encode-utf8/index.js","../node_modules/eventemitter3/index.js","../node_modules/events/events.js","../node_modules/qrcode/lib/browser.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/mode.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/qrcode/lib/renderer/utils.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-gtm-module/dist/Snippets.js","../node_modules/react-gtm-module/dist/TagManager.js","../node_modules/react-gtm-module/dist/index.js","../node_modules/react-gtm-module/dist/utils/warn.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/abitype/src/errors.ts","../node_modules/abitype/src/human-readable/errors/abiItem.ts","../node_modules/abitype/src/human-readable/errors/abiParameter.ts","../node_modules/abitype/src/human-readable/errors/index.ts","../node_modules/abitype/src/human-readable/errors/signature.ts","../node_modules/abitype/src/human-readable/errors/splitParameters.ts","../node_modules/abitype/src/human-readable/errors/struct.ts","../node_modules/abitype/src/human-readable/index.ts","../node_modules/abitype/src/human-readable/parseAbi.ts","../node_modules/abitype/src/human-readable/parseAbiItem.ts","../node_modules/abitype/src/human-readable/parseAbiParameter.ts","../node_modules/abitype/src/human-readable/parseAbiParameters.ts","../node_modules/abitype/src/human-readable/runtime/cache.ts","../node_modules/abitype/src/human-readable/runtime/index.ts","../node_modules/abitype/src/human-readable/runtime/signatures.ts","../node_modules/abitype/src/human-readable/runtime/structs.ts","../node_modules/abitype/src/human-readable/runtime/utils.ts","../node_modules/abitype/src/index.ts","../node_modules/abitype/src/narrow.ts","../node_modules/abitype/src/regex.ts","../node_modules/abitype/src/version.ts","../node_modules/viem/src/accounts/utils/parseAccount.ts","../node_modules/viem/src/accounts/utils/publicKeyToAddress.ts","../node_modules/viem/src/actions/ens/getEnsAddress.ts","../node_modules/viem/src/actions/ens/getEnsAvatar.ts","../node_modules/viem/src/actions/ens/getEnsName.ts","../node_modules/viem/src/actions/ens/getEnsResolver.ts","../node_modules/viem/src/actions/ens/getEnsText.ts","../node_modules/viem/src/actions/getContract.ts","../node_modules/viem/src/actions/public/call.ts","../node_modules/viem/src/actions/public/createBlockFilter.ts","../node_modules/viem/src/actions/public/createContractEventFilter.ts","../node_modules/viem/src/actions/public/createEventFilter.ts","../node_modules/viem/src/actions/public/createPendingTransactionFilter.ts","../node_modules/viem/src/actions/public/estimateContractGas.ts","../node_modules/viem/src/actions/public/estimateGas.ts","../node_modules/viem/src/actions/public/getBalance.ts","../node_modules/viem/src/actions/public/getBlock.ts","../node_modules/viem/src/actions/public/getBlockNumber.ts","../node_modules/viem/src/actions/public/getBlockTransactionCount.ts","../node_modules/viem/src/actions/public/getBytecode.ts","../node_modules/viem/src/actions/public/getChainId.ts","../node_modules/viem/src/actions/public/getFeeHistory.ts","../node_modules/viem/src/actions/public/getFilterChanges.ts","../node_modules/viem/src/actions/public/getFilterLogs.ts","../node_modules/viem/src/actions/public/getGasPrice.ts","../node_modules/viem/src/actions/public/getLogs.ts","../node_modules/viem/src/actions/public/getStorageAt.ts","../node_modules/viem/src/actions/public/getTransaction.ts","../node_modules/viem/src/actions/public/getTransactionConfirmations.ts","../node_modules/viem/src/actions/public/getTransactionCount.ts","../node_modules/viem/src/actions/public/getTransactionReceipt.ts","../node_modules/viem/src/actions/public/multicall.ts","../node_modules/viem/src/actions/public/readContract.ts","../node_modules/viem/src/actions/public/simulateContract.ts","../node_modules/viem/src/actions/public/uninstallFilter.ts","../node_modules/viem/src/actions/public/verifyHash.ts","../node_modules/viem/src/actions/public/verifyMessage.ts","../node_modules/viem/src/actions/public/verifyTypedData.ts","../node_modules/viem/src/actions/public/waitForTransactionReceipt.ts","../node_modules/viem/src/actions/public/watchBlockNumber.ts","../node_modules/viem/src/actions/public/watchBlocks.ts","../node_modules/viem/src/actions/public/watchContractEvent.ts","../node_modules/viem/src/actions/public/watchEvent.ts","../node_modules/viem/src/actions/public/watchPendingTransactions.ts","../node_modules/viem/src/actions/test/dropTransaction.ts","../node_modules/viem/src/actions/test/getAutomine.ts","../node_modules/viem/src/actions/test/getTxpoolContent.ts","../node_modules/viem/src/actions/test/getTxpoolStatus.ts","../node_modules/viem/src/actions/test/impersonateAccount.ts","../node_modules/viem/src/actions/test/increaseTime.ts","../node_modules/viem/src/actions/test/inspectTxpool.ts","../node_modules/viem/src/actions/test/mine.ts","../node_modules/viem/src/actions/test/removeBlockTimestampInterval.ts","../node_modules/viem/src/actions/test/reset.ts","../node_modules/viem/src/actions/test/revert.ts","../node_modules/viem/src/actions/test/sendUnsignedTransaction.ts","../node_modules/viem/src/actions/test/setAutomine.ts","../node_modules/viem/src/actions/test/setBalance.ts","../node_modules/viem/src/actions/test/setBlockGasLimit.ts","../node_modules/viem/src/actions/test/setBlockTimestampInterval.ts","../node_modules/viem/src/actions/test/setCode.ts","../node_modules/viem/src/actions/test/setCoinbase.ts","../node_modules/viem/src/actions/test/setIntervalMining.ts","../node_modules/viem/src/actions/test/setLoggingEnabled.ts","../node_modules/viem/src/actions/test/setMinGasPrice.ts","../node_modules/viem/src/actions/test/setNextBlockBaseFeePerGas.ts","../node_modules/viem/src/actions/test/setNextBlockTimestamp.ts","../node_modules/viem/src/actions/test/setNonce.ts","../node_modules/viem/src/actions/test/setRpcUrl.ts","../node_modules/viem/src/actions/test/setStorageAt.ts","../node_modules/viem/src/actions/test/snapshot.ts","../node_modules/viem/src/actions/test/stopImpersonatingAccount.ts","../node_modules/viem/src/actions/wallet/addChain.ts","../node_modules/viem/src/actions/wallet/deployContract.ts","../node_modules/viem/src/actions/wallet/getAddresses.ts","../node_modules/viem/src/actions/wallet/getPermissions.ts","../node_modules/viem/src/actions/wallet/requestAddresses.ts","../node_modules/viem/src/actions/wallet/requestPermissions.ts","../node_modules/viem/src/actions/wallet/sendTransaction.ts","../node_modules/viem/src/actions/wallet/signMessage.ts","../node_modules/viem/src/actions/wallet/signTypedData.ts","../node_modules/viem/src/actions/wallet/switchChain.ts","../node_modules/viem/src/actions/wallet/watchAsset.ts","../node_modules/viem/src/actions/wallet/writeContract.ts","../node_modules/viem/src/clients/createClient.ts","../node_modules/viem/src/clients/createPublicClient.ts","../node_modules/viem/src/clients/createTestClient.ts","../node_modules/viem/src/clients/createWalletClient.ts","../node_modules/viem/src/clients/decorators/public.ts","../node_modules/viem/src/clients/decorators/test.ts","../node_modules/viem/src/clients/decorators/wallet.ts","../node_modules/viem/src/clients/transports/createTransport.ts","../node_modules/viem/src/clients/transports/custom.ts","../node_modules/viem/src/clients/transports/fallback.ts","../node_modules/viem/src/clients/transports/http.ts","../node_modules/viem/src/clients/transports/webSocket.ts","../node_modules/viem/src/constants/abis.ts","../node_modules/viem/src/constants/address.ts","../node_modules/viem/src/constants/contract.ts","../node_modules/viem/src/constants/contracts.ts","../node_modules/viem/src/constants/solidity.ts","../node_modules/viem/src/constants/unit.ts","../node_modules/viem/src/errors/abi.ts","../node_modules/viem/src/errors/account.ts","../node_modules/viem/src/errors/address.ts","../node_modules/viem/src/errors/base.ts","../node_modules/viem/src/errors/block.ts","../node_modules/viem/src/errors/ccip.ts","../node_modules/viem/src/errors/chain.ts","../node_modules/viem/src/errors/contract.ts","../node_modules/viem/src/errors/data.ts","../node_modules/viem/src/errors/encoding.ts","../node_modules/viem/src/errors/ens.ts","../node_modules/viem/src/errors/estimateGas.ts","../node_modules/viem/src/errors/log.ts","../node_modules/viem/src/errors/node.ts","../node_modules/viem/src/errors/request.ts","../node_modules/viem/src/errors/rpc.ts","../node_modules/viem/src/errors/transaction.ts","../node_modules/viem/src/errors/transport.ts","../node_modules/viem/src/errors/utils.ts","../node_modules/viem/src/errors/version.ts","../node_modules/viem/src/index.ts","../node_modules/viem/src/utils/abi/decodeAbiParameters.ts","../node_modules/viem/src/utils/abi/decodeDeployData.ts","../node_modules/viem/src/utils/abi/decodeErrorResult.ts","../node_modules/viem/src/utils/abi/decodeEventLog.ts","../node_modules/viem/src/utils/abi/decodeFunctionData.ts","../node_modules/viem/src/utils/abi/decodeFunctionResult.ts","../node_modules/viem/src/utils/abi/encodeAbiParameters.ts","../node_modules/viem/src/utils/abi/encodeDeployData.ts","../node_modules/viem/src/utils/abi/encodeErrorResult.ts","../node_modules/viem/src/utils/abi/encodeEventTopics.ts","../node_modules/viem/src/utils/abi/encodeFunctionData.ts","../node_modules/viem/src/utils/abi/encodeFunctionResult.ts","../node_modules/viem/src/utils/abi/encodePacked.ts","../node_modules/viem/src/utils/abi/formatAbiItem.ts","../node_modules/viem/src/utils/abi/formatAbiItemWithArgs.ts","../node_modules/viem/src/utils/abi/getAbiItem.ts","../node_modules/viem/src/utils/address/getAddress.ts","../node_modules/viem/src/utils/address/getContractAddress.ts","../node_modules/viem/src/utils/address/isAddress.ts","../node_modules/viem/src/utils/address/isAddressEqual.ts","../node_modules/viem/src/utils/buildRequest.ts","../node_modules/viem/src/utils/ccip.ts","../node_modules/viem/src/utils/chain.ts","../node_modules/viem/src/utils/contract/extractFunctionParts.ts","../node_modules/viem/src/utils/data/concat.ts","../node_modules/viem/src/utils/data/isBytes.ts","../node_modules/viem/src/utils/data/isBytesEqual.ts","../node_modules/viem/src/utils/data/isHex.ts","../node_modules/viem/src/utils/data/pad.ts","../node_modules/viem/src/utils/data/size.ts","../node_modules/viem/src/utils/data/slice.ts","../node_modules/viem/src/utils/data/trim.ts","../node_modules/viem/src/utils/encoding/fromBytes.ts","../node_modules/viem/src/utils/encoding/fromHex.ts","../node_modules/viem/src/utils/encoding/fromRlp.ts","../node_modules/viem/src/utils/encoding/toBytes.ts","../node_modules/viem/src/utils/encoding/toHex.ts","../node_modules/viem/src/utils/encoding/toRlp.ts","../node_modules/viem/src/utils/ens/avatar/parseAvatarRecord.ts","../node_modules/viem/src/utils/ens/avatar/utils.ts","../node_modules/viem/src/utils/ens/encodeLabelhash.ts","../node_modules/viem/src/utils/ens/encodedLabelToLabelhash.ts","../node_modules/viem/src/utils/ens/labelhash.ts","../node_modules/viem/src/utils/ens/namehash.ts","../node_modules/viem/src/utils/ens/packetToBytes.ts","../node_modules/viem/src/utils/errors/getCallError.ts","../node_modules/viem/src/utils/errors/getContractError.ts","../node_modules/viem/src/utils/errors/getEstimateGasError.ts","../node_modules/viem/src/utils/errors/getNodeError.ts","../node_modules/viem/src/utils/errors/getTransactionError.ts","../node_modules/viem/src/utils/filters/createFilterRequestScope.ts","../node_modules/viem/src/utils/formatters/block.ts","../node_modules/viem/src/utils/formatters/extract.ts","../node_modules/viem/src/utils/formatters/feeHistory.ts","../node_modules/viem/src/utils/formatters/formatter.ts","../node_modules/viem/src/utils/formatters/log.ts","../node_modules/viem/src/utils/formatters/transaction.ts","../node_modules/viem/src/utils/formatters/transactionReceipt.ts","../node_modules/viem/src/utils/formatters/transactionRequest.ts","../node_modules/viem/src/utils/hash/getEventSelector.ts","../node_modules/viem/src/utils/hash/getFunctionSelector.ts","../node_modules/viem/src/utils/hash/hashFunction.ts","../node_modules/viem/src/utils/hash/isHash.ts","../node_modules/viem/src/utils/hash/keccak256.ts","../node_modules/viem/src/utils/index.ts","../node_modules/viem/src/utils/observe.ts","../node_modules/viem/src/utils/poll.ts","../node_modules/viem/src/utils/promise/createBatchScheduler.ts","../node_modules/viem/src/utils/promise/withCache.ts","../node_modules/viem/src/utils/promise/withRetry.ts","../node_modules/viem/src/utils/promise/withTimeout.ts","../node_modules/viem/src/utils/regex.ts","../node_modules/viem/src/utils/rpc.ts","../node_modules/viem/src/utils/signature/hashMessage.ts","../node_modules/viem/src/utils/signature/hashTypedData.ts","../node_modules/viem/src/utils/signature/recoverAddress.ts","../node_modules/viem/src/utils/signature/recoverMessageAddress.ts","../node_modules/viem/src/utils/signature/recoverPublicKey.ts","../node_modules/viem/src/utils/signature/recoverTypedDataAddress.ts","../node_modules/viem/src/utils/signature/verifyMessage.ts","../node_modules/viem/src/utils/signature/verifyTypedData.ts","../node_modules/viem/src/utils/stringify.ts","../node_modules/viem/src/utils/transaction/assertRequest.ts","../node_modules/viem/src/utils/transaction/assertTransaction.ts","../node_modules/viem/src/utils/transaction/getSerializedTransactionType.ts","../node_modules/viem/src/utils/transaction/getTransactionType.ts","../node_modules/viem/src/utils/transaction/parseTransaction.ts","../node_modules/viem/src/utils/transaction/prepareRequest.ts","../node_modules/viem/src/utils/transaction/serializeAccessList.ts","../node_modules/viem/src/utils/transaction/serializeTransaction.ts","../node_modules/viem/src/utils/typedData.ts","../node_modules/viem/src/utils/uid.ts","../node_modules/viem/src/utils/unit/formatEther.ts","../node_modules/viem/src/utils/unit/formatGwei.ts","../node_modules/viem/src/utils/unit/formatUnits.ts","../node_modules/viem/src/utils/unit/parseEther.ts","../node_modules/viem/src/utils/unit/parseGwei.ts","../node_modules/viem/src/utils/unit/parseUnits.ts","../node_modules/viem/src/utils/wait.ts","../node_modules/tslib/tslib.es6.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/whatwg-fetch/fetch.js","js/ServerComms.js","../node_modules/@iconify/react/dist/iconify.mjs","js/modal.js","js/footer.js","js/navbar.js","js/home.js","js/product.js","js/pricing.js","js/guidesmartcontract.js","js/guidebasics.js","js/guidedapp.js","js/guidecomponents.js","js/guide.js","js/gallery.js","js/usergallery.js","../node_modules/@rainbow-me/rainbowkit/dist/chunk-SWKUKXRF.js","../node_modules/@rainbow-me/rainbowkit/dist/chunk-Q4HVINFA.js","../node_modules/@vanilla-extract/css/recipe/dist/vanilla-extract-css-recipe.browser.esm.js","../node_modules/@vanilla-extract/css/functionSerializer/dist/vanilla-extract-css-functionSerializer.browser.esm.js","../node_modules/@vanilla-extract/sprinkles/createUtils/dist/vanilla-extract-sprinkles-createUtils.esm.js","../node_modules/@vanilla-extract/sprinkles/dist/createSprinkles-c150330f.esm.js","../node_modules/@vanilla-extract/sprinkles/createRuntimeSprinkles/dist/vanilla-extract-sprinkles-createRuntimeSprinkles.esm.js","../node_modules/@tanstack/query-sync-storage-persister/src/index.ts","../node_modules/@tanstack/query-core/src/utils.ts","../node_modules/@tanstack/query-core/src/logger.ts","../node_modules/@tanstack/query-core/src/notifyManager.ts","../node_modules/@tanstack/query-core/src/subscribable.ts","../node_modules/@tanstack/query-core/src/focusManager.ts","../node_modules/@tanstack/query-core/src/onlineManager.ts","../node_modules/@tanstack/query-core/src/retryer.ts","../node_modules/@tanstack/query-core/src/removable.ts","../node_modules/@tanstack/query-core/src/query.ts","../node_modules/@tanstack/query-core/src/queryCache.ts","../node_modules/@tanstack/query-core/src/mutation.ts","../node_modules/@tanstack/query-core/src/mutationCache.ts","../node_modules/@tanstack/query-core/src/infiniteQueryBehavior.ts","../node_modules/@tanstack/query-core/src/queryClient.ts","../node_modules/@tanstack/query-core/src/hydration.ts","../node_modules/@tanstack/query-persist-client-core/src/persist.ts","../node_modules/@wagmi/chains/dist/index.mjs","../node_modules/viem/src/chains/formatters/celo.ts","../node_modules/viem/src/chains/index.ts","../node_modules/@wagmi/core/node_modules/@wagmi/connectors/dist/chunk-QYMCVNHT.js","../node_modules/@wagmi/core/node_modules/@wagmi/connectors/dist/chunk-ZCAPXGBX.js","../node_modules/@wagmi/core/node_modules/@wagmi/connectors/dist/chunk-OQILYQDO.js","../node_modules/@wagmi/core/node_modules/@wagmi/connectors/dist/chunk-Z2P63ELM.js","../node_modules/@wagmi/core/dist/chunk-MQXBDTVK.js","../node_modules/zustand/esm/middleware.mjs","../node_modules/zustand/esm/vanilla.mjs","../node_modules/zustand/esm/shallow.mjs","../node_modules/@adraffy/ens-normalize/dist/index.js","../node_modules/viem/src/utils/ens/normalize.ts","../node_modules/@wagmi/core/dist/chunk-LAFZBYO7.js","../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx","../node_modules/@tanstack/react-query/src/isRestoring.tsx","../node_modules/@tanstack/react-query/src/QueryErrorResetBoundary.tsx","../node_modules/@tanstack/react-query/src/useSyncExternalStore.ts","../node_modules/@tanstack/query-core/src/mutationObserver.ts","../node_modules/@tanstack/react-query/src/useMutation.ts","../node_modules/@tanstack/query-core/src/queryObserver.ts","../node_modules/wagmi/dist/index.js","../node_modules/@tanstack/react-query/src/utils.ts","../node_modules/@wagmi/core/node_modules/@wagmi/chains/dist/index.mjs","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js","../node_modules/@vanilla-extract/dynamic/dist/vanilla-extract-dynamic.esm.js","../node_modules/@rainbow-me/rainbowkit/dist/chunk-6U5JTJ7G.js","../node_modules/@wagmi/core/node_modules/@wagmi/connectors/dist/walletConnect.js","../node_modules/@wagmi/core/node_modules/@wagmi/connectors/dist/coinbaseWallet.js","../node_modules/@wagmi/core/node_modules/@wagmi/connectors/dist/metaMask.js","../node_modules/@wagmi/core/node_modules/@wagmi/connectors/dist/walletConnectLegacy.js","../node_modules/@wagmi/core/node_modules/@wagmi/connectors/dist/safe.js","../node_modules/@rainbow-me/rainbowkit/dist/index.js","js/test.js","../node_modules/@wagmi/core/dist/providers/public.js","js/test2.js","js/test3.js","js/test4.js","js/test5.js","App.js","index.js"],"sourcesContent":["/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst u8a = (a: any): a is Uint8Array => a instanceof Uint8Array;\n\n// We accept hex strings besides Uint8Array for simplicity\nexport type Hex = Uint8Array | string;\n// Very few implementations accept numbers, we do it to ease learning curve\nexport type PrivKey = Hex | bigint;\nexport type CHash = {\n (message: Uint8Array | string): Uint8Array;\n blockLen: number;\n outputLen: number;\n create(opts?: { dkLen?: number }): any; // For shake\n};\nexport type FHash = (message: Uint8Array | string) => Uint8Array;\n\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nexport function bytesToHex(bytes: Uint8Array): string {\n if (!u8a(bytes)) throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\nexport function numberToHexUnpadded(num: number | bigint): string {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\n\nexport function hexToNumber(hex: string): bigint {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n\n// Caching slows it down 2-3x\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n if (hex.length % 2) throw new Error('hex string is invalid: unpadded ' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0) throw new Error('invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n\n// Big Endian\nexport function bytesToNumberBE(bytes: Uint8Array): bigint {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes: Uint8Array): bigint {\n if (!u8a(bytes)) throw new Error('Uint8Array expected');\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\n\nexport const numberToBytesBE = (n: bigint, len: number) =>\n hexToBytes(n.toString(16).padStart(len * 2, '0'));\nexport const numberToBytesLE = (n: bigint, len: number) => numberToBytesBE(n, len).reverse();\n// Returns variable number bytes (minimal bigint encoding?)\nexport const numberToVarBytesBE = (n: bigint) => hexToBytes(numberToHexUnpadded(n));\n\nexport function ensureBytes(title: string, hex: Hex, expectedLength?: number): Uint8Array {\n let res: Uint8Array;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n } catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n } else if (u8a(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n } else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n\n// Copies several Uint8Arrays into one.\nexport function concatBytes(...arrs: Uint8Array[]): Uint8Array {\n const r = new Uint8Array(arrs.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrs.forEach((a) => {\n if (!u8a(a)) throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n\nexport function equalBytes(b1: Uint8Array, b2: Uint8Array) {\n // We don't care about timing attacks here\n if (b1.length !== b2.length) return false;\n for (let i = 0; i < b1.length; i++) if (b1[i] !== b2[i]) return false;\n return true;\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') {\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\n\n// Bit operations\n\n// Amount of bits inside bigint (Same as n.toString(2).length)\nexport function bitLen(n: bigint) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1);\n return len;\n}\n// Gets single bit at position. NOTE: first bit position is 0 (same as arrays)\n// Same as !!+Array.from(n.toString(2)).reverse()[pos]\nexport const bitGet = (n: bigint, pos: number) => (n >> BigInt(pos)) & _1n;\n// Sets single bit at position\nexport const bitSet = (n: bigint, pos: number, value: boolean) =>\n n | ((value ? _1n : _0n) << BigInt(pos));\n// Return mask for N bits (Same as BigInt(`0b${Array(i).fill('1').join('')}`))\n// Not using ** operator with bigints for old engines.\nexport const bitMask = (n: number) => (_2n << BigInt(n - 1)) - _1n;\n\n// DRBG\n\nconst u8n = (data?: any) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr: any) => Uint8Array.from(arr); // another shortcut\ntype Pred = (v: Uint8Array) => T | undefined;\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(\n hashLen: number,\n qByteLen: number,\n hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array\n): (seed: Uint8Array, predicate: Pred) => T {\n if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function') 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: Uint8Array[]) => 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) 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) throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out: Uint8Array[] = [];\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: Uint8Array, pred: Pred): T => {\n reset();\n reseed(seed); // Steps D-G\n let res: T | undefined = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen()))) reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n\n// Validating curves and fields\n\nconst validatorFns = {\n bigint: (val: any) => typeof val === 'bigint',\n function: (val: any) => typeof val === 'function',\n boolean: (val: any) => typeof val === 'boolean',\n string: (val: any) => typeof val === 'string',\n isSafeInteger: (val: any) => Number.isSafeInteger(val),\n array: (val: any) => Array.isArray(val),\n field: (val: any, object: any) => (object as any).Fp.isValid(val),\n hash: (val: any) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n} as const;\ntype Validator = keyof typeof validatorFns;\ntype ValMap> = { [K in keyof T]?: Validator };\n// type Record = { [P in K]: T; }\n\nexport function validateObject>(\n object: T,\n validators: ValMap,\n optValidators: ValMap = {}\n) {\n const checkField = (fieldName: keyof T, type: Validator, isOptional: boolean) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n\n const val = object[fieldName as keyof typeof object];\n if (isOptional && val === undefined) return;\n if (!checkVal(val, object)) {\n throw new Error(\n `Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`\n );\n }\n };\n for (const [fieldName, type] of Object.entries(validators)) checkField(fieldName, type!, false);\n for (const [fieldName, type] of Object.entries(optValidators)) 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","export function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`Wrong positive integer: ${n}`);\n}\n\nexport function bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`Expected boolean, not ${b}`);\n}\n\nexport function bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!(b instanceof Uint8Array)) throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nexport function hash(hash: Hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\n\nexport function exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nexport function output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\n\nexport default assert;\n","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nexport function fromBig(n: bigint, le = false) {\n if (le) 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}\n\nexport function split(lst: bigint[], 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}\n\nexport const toBig = (h: number, l: number) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h: number, l: number, s: number) => h >>> s;\nconst shrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h: number, l: number, s: number) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h: number, l: number, s: number) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h: number, l: number, s: number) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h: number, l: number) => l;\nconst rotr32L = (h: number, l: number) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h: number, l: number, s: number) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h: number, l: number, s: number) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h: number, l: number, s: number) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h: number, l: number, s: number) => (h << (s - 32)) | (l >>> (64 - s));\n\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.\n// Removing \"export\" has 5% perf penalty -_-\nexport function add(Ah: number, Al: number, Bh: number, Bl: number) {\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: number, Bl: number, Cl: number) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low: number, Ah: number, Bh: number, Ch: number) =>\n (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al: number, Bl: number, Cl: number, Dl: number) =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number) =>\n (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al: number, Bl: number, Cl: number, Dl: number, El: number) =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number) =>\n (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\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","declare const globalThis: Record | undefined;\nexport const crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","import assert from './_assert.js';\nimport u64 from './_u64.js';\nimport {\n Hash,\n u32,\n Input,\n toBytes,\n wrapConstructor,\n wrapConstructorWithOpts,\n HashXOF,\n} from './utils.js';\n\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA]: [number[], number[], bigint[]] = [[], [], []];\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = 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) t ^= _1n << ((_1n << BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true);\n\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h: number, l: number, s: number) =>\n s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s);\nconst rotlL = (h: number, l: number, s: number) =>\n s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s);\n\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s: Uint32Array, rounds: number = 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++) 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++) B[x] = s[y + x];\n for (let x = 0; x < 10; x++) 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\nexport class Keccak extends Hash implements HashXOF {\n protected state: Uint8Array;\n protected pos = 0;\n protected posOut = 0;\n protected finished = false;\n protected state32: Uint32Array;\n protected destroyed = false;\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(\n public blockLen: number,\n public suffix: number,\n public outputLen: number,\n protected enableXOF = false,\n protected rounds: number = 24\n ) {\n super();\n // Can be passed from user as dkLen\n assert.number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n protected keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data: Input) {\n assert.exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++) state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen) this.keccak();\n }\n return this;\n }\n protected finish() {\n if (this.finished) 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) this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n protected writeInto(out: Uint8Array): Uint8Array {\n assert.exists(this, false);\n assert.bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len; ) {\n if (this.posOut >= blockLen) 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: Uint8Array): Uint8Array {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF) throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes: number): Uint8Array {\n assert.number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out: Uint8Array) {\n assert.output(out, this);\n if (this.finished) 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?: Keccak): Keccak {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n 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}\n\nconst gen = (suffix: number, blockLen: number, outputLen: number) =>\n wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\n\nexport const sha3_224 = gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = gen(0x06, 136, 256 / 8);\nexport const sha3_384 = gen(0x06, 104, 384 / 8);\nexport const sha3_512 = gen(0x06, 72, 512 / 8);\nexport const keccak_224 = gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = gen(0x01, 136, 256 / 8);\nexport const keccak_384 = gen(0x01, 104, 384 / 8);\nexport const keccak_512 = gen(0x01, 72, 512 / 8);\n\nexport type ShakeOpts = { dkLen?: number };\n\nconst genShake = (suffix: number, blockLen: number, outputLen: number) =>\n wrapConstructorWithOpts(\n (opts: ShakeOpts = {}) =>\n new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true)\n );\n\nexport const shake128 = genShake(0x1f, 168, 128 / 8);\nexport const shake256 = genShake(0x1f, 136, 256 / 8);\n","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use `globalThis.crypto`, but node.js versions earlier than v19 don't\n// declare it in global scope. For node.js, package.json#exports field mapping\n// rewrites import from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE) throw new Error('Non little-endian hardware is not supported');\n\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef])) // 'deadbeef'\n */\nexport function bytesToHex(uint8a: Uint8Array): string {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array)) throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n\n/**\n * @example hexToBytes('deadbeef') // Uint8Array.from([0xde, 0xad, 0xbe, 0xef])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2) throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0) throw new Error('Invalid byte sequence');\n array[i] = byte;\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.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\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) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\ndeclare const TextDecoder: any;\n\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\n\nexport type Input = Uint8Array | string;\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n if (!arrays.every((a) => a instanceof Uint8Array)) throw new Error('Uint8Array list expected');\n if (arrays.length === 1) return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj: any) =>\n Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\n\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType;\n\nexport function wrapConstructor>(hashConstructor: () => Hash) {\n const hashC = (message: Input): Uint8Array => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => Hash\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `globalThis.crypto` or node.js crypto module.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n","export { SafeAppProvider } from './provider';\r\n","import SafeAppsSDK, { SafeInfo, Web3TransactionObject } from '@safe-global/safe-apps-sdk';\r\nimport { EventEmitter } from 'events';\r\nimport { EIP1193Provider } from './types';\r\nimport { getLowerCase } from './utils';\r\n\r\n// The API is based on Ethereum JavaScript API Provider Standard. Link: https://eips.ethereum.org/EIPS/eip-1193\r\nexport class SafeAppProvider extends EventEmitter implements EIP1193Provider {\r\n private readonly safe: SafeInfo;\r\n private readonly sdk: SafeAppsSDK;\r\n private submittedTxs = new Map();\r\n\r\n constructor(safe: SafeInfo, sdk: SafeAppsSDK) {\r\n super();\r\n this.safe = safe;\r\n this.sdk = sdk;\r\n }\r\n\r\n async connect(): Promise {\r\n this.emit('connect', { chainId: this.chainId });\r\n return;\r\n }\r\n\r\n async disconnect(): Promise {\r\n return;\r\n }\r\n\r\n public get chainId(): number {\r\n return this.safe.chainId;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n async request(request: { method: string; params?: any[] }): Promise {\r\n const { method, params = [] } = request;\r\n\r\n switch (method) {\r\n case 'eth_accounts':\r\n return [this.safe.safeAddress];\r\n\r\n case 'net_version':\r\n case 'eth_chainId':\r\n return `0x${this.chainId.toString(16)}`;\r\n\r\n case 'personal_sign': {\r\n const [message, address] = params;\r\n\r\n if (this.safe.safeAddress.toLowerCase() !== address.toLowerCase()) {\r\n throw new Error('The address or message hash is invalid');\r\n }\r\n\r\n const response = await this.sdk.txs.signMessage(message);\r\n const signature = 'signature' in response ? response.signature : undefined;\r\n\r\n return signature || '0x';\r\n }\r\n\r\n case 'eth_sign': {\r\n const [address, messageHash] = params;\r\n\r\n if (this.safe.safeAddress.toLowerCase() !== address.toLowerCase() || !messageHash.startsWith('0x')) {\r\n throw new Error('The address or message hash is invalid');\r\n }\r\n\r\n const response = await this.sdk.txs.signMessage(messageHash);\r\n const signature = 'signature' in response ? response.signature : undefined;\r\n\r\n return signature || '0x';\r\n }\r\n\r\n case 'eth_signTypedData':\r\n case 'eth_signTypedData_v4': {\r\n const [address, typedData] = params;\r\n const parsedTypedData = typeof typedData === 'string' ? JSON.parse(typedData) : typedData;\r\n\r\n if (this.safe.safeAddress.toLowerCase() !== address.toLowerCase()) {\r\n throw new Error('The address is invalid');\r\n }\r\n\r\n const response = await this.sdk.txs.signTypedMessage(parsedTypedData);\r\n const signature = 'signature' in response ? response.signature : undefined;\r\n return signature || '0x';\r\n }\r\n\r\n case 'eth_sendTransaction':\r\n const tx = {\r\n value: '0',\r\n data: '0x',\r\n ...params[0],\r\n };\r\n\r\n // Some ethereum libraries might pass the gas as a hex-encoded string\r\n // We need to convert it to a number because the SDK expects a number and our backend only supports\r\n // Decimal numbers\r\n if (typeof tx.gas === 'string' && tx.gas.startsWith('0x')) {\r\n tx.gas = parseInt(tx.gas, 16);\r\n }\r\n\r\n const resp = await this.sdk.txs.send({\r\n txs: [tx],\r\n params: { safeTxGas: tx.gas },\r\n });\r\n\r\n // Store fake transaction\r\n this.submittedTxs.set(resp.safeTxHash, {\r\n from: this.safe.safeAddress,\r\n hash: resp.safeTxHash,\r\n gas: 0,\r\n gasPrice: '0x00',\r\n nonce: 0,\r\n input: tx.data,\r\n value: tx.value,\r\n to: tx.to,\r\n blockHash: null,\r\n blockNumber: null,\r\n transactionIndex: null,\r\n });\r\n return resp.safeTxHash;\r\n\r\n case 'eth_blockNumber':\r\n const block = await this.sdk.eth.getBlockByNumber(['latest']);\r\n\r\n return block.number;\r\n\r\n case 'eth_getBalance':\r\n return this.sdk.eth.getBalance([getLowerCase(params[0]), params[1]]);\r\n\r\n case 'eth_getCode':\r\n return this.sdk.eth.getCode([getLowerCase(params[0]), params[1]]);\r\n\r\n case 'eth_getTransactionCount':\r\n return this.sdk.eth.getTransactionCount([getLowerCase(params[0]), params[1]]);\r\n\r\n case 'eth_getStorageAt':\r\n return this.sdk.eth.getStorageAt([getLowerCase(params[0]), params[1], params[2]]);\r\n\r\n case 'eth_getBlockByNumber':\r\n return this.sdk.eth.getBlockByNumber([params[0], params[1]]);\r\n\r\n case 'eth_getBlockByHash':\r\n return this.sdk.eth.getBlockByHash([params[0], params[1]]);\r\n\r\n case 'eth_getTransactionByHash':\r\n let txHash = params[0];\r\n try {\r\n const resp = await this.sdk.txs.getBySafeTxHash(txHash);\r\n txHash = resp.txHash || txHash;\r\n } catch (e) {}\r\n // Use fake transaction if we don't have a real tx hash\r\n if (this.submittedTxs.has(txHash)) {\r\n return this.submittedTxs.get(txHash);\r\n }\r\n return this.sdk.eth.getTransactionByHash([txHash]).then((tx) => {\r\n // We set the tx hash to the one requested, as some provider assert this\r\n if (tx) {\r\n tx.hash = params[0];\r\n }\r\n return tx;\r\n });\r\n\r\n case 'eth_getTransactionReceipt': {\r\n let txHash = params[0];\r\n try {\r\n const resp = await this.sdk.txs.getBySafeTxHash(txHash);\r\n txHash = resp.txHash || txHash;\r\n } catch (e) {}\r\n return this.sdk.eth.getTransactionReceipt([txHash]).then((tx) => {\r\n // We set the tx hash to the one requested, as some provider assert this\r\n if (tx) {\r\n tx.transactionHash = params[0];\r\n }\r\n return tx;\r\n });\r\n }\r\n\r\n case 'eth_estimateGas': {\r\n return this.sdk.eth.getEstimateGas(params[0]);\r\n }\r\n\r\n case 'eth_call': {\r\n return this.sdk.eth.call([params[0], params[1]]);\r\n }\r\n\r\n case 'eth_getLogs':\r\n return this.sdk.eth.getPastLogs([params[0]]);\r\n\r\n case 'eth_gasPrice':\r\n return this.sdk.eth.getGasPrice();\r\n\r\n case 'wallet_getPermissions':\r\n return this.sdk.wallet.getPermissions();\r\n\r\n case 'wallet_requestPermissions':\r\n return this.sdk.wallet.requestPermissions(params[0]);\r\n\r\n case 'safe_setSettings':\r\n return this.sdk.eth.setSafeSettings([params[0]]);\r\n\r\n default:\r\n throw Error(`\"${request.method}\" not implemented`);\r\n }\r\n }\r\n\r\n // this method is needed for ethers v4\r\n // https://github.com/ethers-io/ethers.js/blob/427e16826eb15d52d25c4f01027f8db22b74b76c/src.ts/providers/web3-provider.ts#L41-L55\r\n send(request: any, callback: (error: any, response?: any) => void): void {\r\n if (!request) callback('Undefined request');\r\n this.request(request)\r\n .then((result) => callback(null, { jsonrpc: '2.0', id: request.id, result }))\r\n .catch((error) => callback(error, null));\r\n }\r\n}\r\n","export function getLowerCase(value: string): string {\r\n if (value) {\r\n return value.toLowerCase();\r\n }\r\n return value;\r\n}\r\n","import { MessageFormatter } from './messageFormatter';\r\nimport { Methods } from './methods';\r\nimport { InterfaceMessageEvent, Communicator, Response, SuccessResponse } from '../types';\r\n\r\n// eslint-disable-next-line\r\ntype Callback = (response: any) => void;\r\n\r\nclass PostMessageCommunicator implements Communicator {\r\n private readonly allowedOrigins: RegExp[] | null = null;\r\n private callbacks = new Map();\r\n private debugMode = false;\r\n private isServer = typeof window === 'undefined';\r\n\r\n constructor(allowedOrigins: RegExp[] | null = null, debugMode = false) {\r\n this.allowedOrigins = allowedOrigins;\r\n this.debugMode = debugMode;\r\n\r\n if (!this.isServer) {\r\n window.addEventListener('message', this.onParentMessage);\r\n }\r\n }\r\n\r\n private isValidMessage = ({ origin, data, source }: InterfaceMessageEvent): boolean => {\r\n const emptyOrMalformed = !data;\r\n const sentFromParentEl = !this.isServer && source === window.parent;\r\n const majorVersionNumber = typeof data.version !== 'undefined' && parseInt(data.version.split('.')[0]);\r\n const allowedSDKVersion = majorVersionNumber >= 1;\r\n let validOrigin = true;\r\n if (Array.isArray(this.allowedOrigins)) {\r\n validOrigin = this.allowedOrigins.find((regExp) => regExp.test(origin)) !== undefined;\r\n }\r\n\r\n return !emptyOrMalformed && sentFromParentEl && allowedSDKVersion && validOrigin;\r\n };\r\n\r\n private logIncomingMessage = (msg: InterfaceMessageEvent): void => {\r\n console.info(`Safe Apps SDK v1: A message was received from origin ${msg.origin}. `, msg.data);\r\n };\r\n\r\n private onParentMessage = (msg: InterfaceMessageEvent): void => {\r\n if (this.isValidMessage(msg)) {\r\n this.debugMode && this.logIncomingMessage(msg);\r\n this.handleIncomingMessage(msg.data);\r\n }\r\n };\r\n\r\n private handleIncomingMessage = (payload: InterfaceMessageEvent['data']): void => {\r\n const { id } = payload;\r\n\r\n const cb = this.callbacks.get(id);\r\n if (cb) {\r\n cb(payload);\r\n\r\n this.callbacks.delete(id);\r\n }\r\n };\r\n\r\n public send = (method: M, params: P): Promise> => {\r\n const request = MessageFormatter.makeRequest(method, params);\r\n\r\n if (this.isServer) {\r\n throw new Error(\"Window doesn't exist\");\r\n }\r\n\r\n window.parent.postMessage(request, '*');\r\n return new Promise((resolve, reject) => {\r\n this.callbacks.set(request.id, (response: Response) => {\r\n if (!response.success) {\r\n reject(new Error(response.error));\r\n return;\r\n }\r\n\r\n resolve(response);\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport default PostMessageCommunicator;\r\nexport * from './methods';\r\n","import { ErrorResponse, SDKRequestData, RequestId, SuccessResponse, MethodToResponse } from '../types';\r\nimport { getSDKVersion } from '../utils';\r\nimport { Methods } from './methods';\r\nimport { generateRequestId } from './utils';\r\n\r\nclass MessageFormatter {\r\n static makeRequest = (method: M, params: P): SDKRequestData => {\r\n const id = generateRequestId();\r\n\r\n return {\r\n id,\r\n method,\r\n params,\r\n env: {\r\n sdkVersion: getSDKVersion(),\r\n },\r\n };\r\n };\r\n\r\n static makeResponse = (id: RequestId, data: MethodToResponse[Methods], version: string): SuccessResponse => ({\r\n id,\r\n success: true,\r\n version,\r\n data,\r\n });\r\n\r\n static makeErrorResponse = (id: RequestId, error: string, version: string): ErrorResponse => ({\r\n id,\r\n success: false,\r\n error,\r\n version,\r\n });\r\n}\r\n\r\nexport { MessageFormatter };\r\n","export enum Methods {\r\n sendTransactions = 'sendTransactions',\r\n rpcCall = 'rpcCall',\r\n getChainInfo = 'getChainInfo',\r\n getSafeInfo = 'getSafeInfo',\r\n getTxBySafeTxHash = 'getTxBySafeTxHash',\r\n getSafeBalances = 'getSafeBalances',\r\n signMessage = 'signMessage',\r\n signTypedMessage = 'signTypedMessage',\r\n getEnvironmentInfo = 'getEnvironmentInfo',\r\n getOffChainSignature = 'getOffChainSignature',\r\n requestAddressBook = 'requestAddressBook',\r\n wallet_getPermissions = 'wallet_getPermissions',\r\n wallet_requestPermissions = 'wallet_requestPermissions',\r\n}\r\n\r\nexport enum RestrictedMethods {\r\n requestAddressBook = 'requestAddressBook',\r\n}\r\n","// i.e. 0-255 -> '00'-'ff'\r\nconst dec2hex = (dec: number): string => dec.toString(16).padStart(2, '0');\r\n\r\nconst generateId = (len: number): string => {\r\n const arr = new Uint8Array((len || 40) / 2);\r\n window.crypto.getRandomValues(arr);\r\n return Array.from(arr, dec2hex).join('');\r\n};\r\n\r\nconst generateRequestId = (): string => {\r\n if (typeof window !== 'undefined') {\r\n return generateId(10);\r\n }\r\n\r\n return new Date().getTime().toString(36);\r\n};\r\n\r\nexport { generateRequestId };\r\n","import { Methods } from '../communication';\r\nimport { Safe } from '../safe';\r\nimport { Wallet } from '../wallet';\r\n\r\nimport { Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions';\r\n\r\nconst hasPermission = (required: Methods, permissions: Permission[]): boolean =>\r\n permissions.some((permission) => permission.parentCapability === required);\r\n\r\nconst requirePermission = () => (_: unknown, propertyKey: string, descriptor: PropertyDescriptor) => {\r\n const originalMethod = descriptor.value;\r\n\r\n descriptor.value = async function () {\r\n // @ts-expect-error accessing private property from decorator. 'this' context is the class instance\r\n const wallet = new Wallet((this as Safe).communicator);\r\n\r\n let currentPermissions = await wallet.getPermissions();\r\n\r\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\r\n currentPermissions = await wallet.requestPermissions([{ [propertyKey as Methods]: {} }]);\r\n }\r\n\r\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\r\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\r\n }\r\n\r\n return originalMethod.apply(this);\r\n };\r\n\r\n return descriptor;\r\n};\r\n\r\nexport default requirePermission;\r\n","export const RPC_CALLS = {\r\n eth_call: 'eth_call',\r\n eth_gasPrice: 'eth_gasPrice',\r\n eth_getLogs: 'eth_getLogs',\r\n eth_getBalance: 'eth_getBalance',\r\n eth_getCode: 'eth_getCode',\r\n eth_getBlockByHash: 'eth_getBlockByHash',\r\n eth_getBlockByNumber: 'eth_getBlockByNumber',\r\n eth_getStorageAt: 'eth_getStorageAt',\r\n eth_getTransactionByHash: 'eth_getTransactionByHash',\r\n eth_getTransactionReceipt: 'eth_getTransactionReceipt',\r\n eth_getTransactionCount: 'eth_getTransactionCount',\r\n eth_estimateGas: 'eth_estimateGas',\r\n safe_setSettings: 'safe_setSettings',\r\n} as const;\r\n","import { RPC_CALLS } from '../eth/constants';\r\nimport {\r\n BlockNumberArg,\r\n RpcCallNames,\r\n Communicator,\r\n Log,\r\n BlockTransactionString,\r\n BlockTransactionObject,\r\n Web3TransactionObject,\r\n RPCPayload,\r\n TransactionConfig,\r\n Web3TransactionReceiptObject,\r\n PastLogsOptions,\r\n SafeSettings,\r\n} from '../types';\r\nimport { Methods } from '../communication/methods';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ntype Formatter = (arg: any) => any;\r\n\r\nconst inputFormatters: Record = {\r\n defaultBlockParam: (arg = 'latest') => arg,\r\n returnFullTxObjectParam: (arg = false): boolean => arg,\r\n blockNumberToHex: (arg: BlockNumberArg): string =>\r\n Number.isInteger(arg) ? `0x${arg.toString(16)}` : (arg as string),\r\n};\r\n\r\ntype BuildRequestArgs = {\r\n call: RpcCallNames;\r\n formatters?: (Formatter | null)[];\r\n};\r\n\r\nclass Eth {\r\n public call;\r\n public getBalance;\r\n public getCode;\r\n public getStorageAt;\r\n public getPastLogs;\r\n public getBlockByHash;\r\n public getBlockByNumber;\r\n public getTransactionByHash;\r\n public getTransactionReceipt;\r\n public getTransactionCount;\r\n public getGasPrice;\r\n public getEstimateGas;\r\n public setSafeSettings;\r\n\r\n private readonly communicator: Communicator;\r\n\r\n constructor(communicator: Communicator) {\r\n this.communicator = communicator;\r\n this.call = this.buildRequest<[TransactionConfig, string?], string>({\r\n call: RPC_CALLS.eth_call,\r\n formatters: [null, inputFormatters.defaultBlockParam],\r\n });\r\n this.getBalance = this.buildRequest<[string, string?], string>({\r\n call: RPC_CALLS.eth_getBalance,\r\n formatters: [null, inputFormatters.defaultBlockParam],\r\n });\r\n this.getCode = this.buildRequest<[string, string?], string>({\r\n call: RPC_CALLS.eth_getCode,\r\n formatters: [null, inputFormatters.defaultBlockParam],\r\n });\r\n this.getStorageAt = this.buildRequest<[string, number, string?], string>({\r\n call: RPC_CALLS.eth_getStorageAt,\r\n formatters: [null, inputFormatters.blockNumberToHex, inputFormatters.defaultBlockParam],\r\n });\r\n this.getPastLogs = this.buildRequest<[PastLogsOptions], Log[]>({\r\n call: RPC_CALLS.eth_getLogs,\r\n });\r\n this.getBlockByHash = this.buildRequest<[string, boolean?], BlockTransactionString | BlockTransactionObject>({\r\n call: RPC_CALLS.eth_getBlockByHash,\r\n formatters: [null, inputFormatters.returnFullTxObjectParam],\r\n });\r\n this.getBlockByNumber = this.buildRequest<\r\n [BlockNumberArg, boolean?],\r\n BlockTransactionString | BlockTransactionObject\r\n >({\r\n call: RPC_CALLS.eth_getBlockByNumber,\r\n formatters: [inputFormatters.blockNumberToHex, inputFormatters.returnFullTxObjectParam],\r\n });\r\n this.getTransactionByHash = this.buildRequest<[string], Web3TransactionObject>({\r\n call: RPC_CALLS.eth_getTransactionByHash,\r\n });\r\n this.getTransactionReceipt = this.buildRequest<[string], Web3TransactionReceiptObject>({\r\n call: RPC_CALLS.eth_getTransactionReceipt,\r\n });\r\n this.getTransactionCount = this.buildRequest<[string, string?], string>({\r\n call: RPC_CALLS.eth_getTransactionCount,\r\n formatters: [null, inputFormatters.defaultBlockParam],\r\n });\r\n this.getGasPrice = this.buildRequest({\r\n call: RPC_CALLS.eth_gasPrice,\r\n });\r\n this.getEstimateGas = (transaction: TransactionConfig): Promise =>\r\n this.buildRequest<[TransactionConfig], number>({\r\n call: RPC_CALLS.eth_estimateGas,\r\n })([transaction]);\r\n this.setSafeSettings = this.buildRequest<[SafeSettings], SafeSettings>({\r\n call: RPC_CALLS.safe_setSettings,\r\n });\r\n }\r\n\r\n private buildRequest

(args: BuildRequestArgs) {\r\n const { call, formatters } = args;\r\n\r\n return async (params?: P): Promise => {\r\n if (formatters && Array.isArray(params)) {\r\n formatters.forEach((formatter: ((...args: unknown[]) => unknown) | null, i) => {\r\n if (formatter) {\r\n params[i] = formatter(params[i]);\r\n }\r\n });\r\n }\r\n\r\n const payload: RPCPayload

= {\r\n call,\r\n params: params || [],\r\n };\r\n\r\n const response = await this.communicator.send, R>(Methods.rpcCall, payload);\r\n\r\n return response.data;\r\n };\r\n }\r\n}\r\n\r\nexport { Eth };\r\n","import SDK from './sdk';\r\n\r\nexport default SDK;\r\nexport * from './sdk';\r\nexport * from './types';\r\nexport * from './communication/methods';\r\nexport * from './communication/messageFormatter';\r\nexport { getSDKVersion } from './utils';\r\n","import { encodeFunctionData, Address, hashMessage, hashTypedData } from 'viem';\r\nimport { MAGIC_VALUE_BYTES, MAGIC_VALUE } from './signatures';\r\nimport { Methods } from '../communication/methods';\r\nimport { RPC_CALLS } from '../eth/constants';\r\nimport {\r\n Communicator,\r\n SafeInfo,\r\n ChainInfo,\r\n SafeBalances,\r\n GetBalanceParams,\r\n RPCPayload,\r\n TransactionConfig,\r\n EnvironmentInfo,\r\n AddressBookItem,\r\n isObjectEIP712TypedData,\r\n EIP712TypedData,\r\n} from '../types';\r\nimport requirePermission from '../decorators/requirePermissions';\r\n\r\nclass Safe {\r\n private readonly communicator: Communicator;\r\n\r\n constructor(communicator: Communicator) {\r\n this.communicator = communicator;\r\n }\r\n\r\n async getChainInfo(): Promise {\r\n const response = await this.communicator.send(\r\n Methods.getChainInfo,\r\n undefined,\r\n );\r\n\r\n return response.data;\r\n }\r\n\r\n async getInfo(): Promise {\r\n const response = await this.communicator.send(\r\n Methods.getSafeInfo,\r\n undefined,\r\n );\r\n\r\n return response.data;\r\n }\r\n\r\n // There is a possibility that this method will change because we may add pagination to the endpoint\r\n async experimental_getBalances({ currency = 'usd' }: GetBalanceParams = {}): Promise {\r\n const response = await this.communicator.send(\r\n Methods.getSafeBalances,\r\n {\r\n currency,\r\n },\r\n );\r\n\r\n return response.data;\r\n }\r\n\r\n private async check1271Signature(messageHash: string, signature = '0x'): Promise {\r\n const safeInfo = await this.getInfo();\r\n\r\n const encodedIsValidSignatureCall = encodeFunctionData({\r\n abi: [\r\n {\r\n constant: false,\r\n inputs: [\r\n {\r\n name: '_dataHash',\r\n type: 'bytes32',\r\n },\r\n {\r\n name: '_signature',\r\n type: 'bytes',\r\n },\r\n ],\r\n name: 'isValidSignature',\r\n outputs: [\r\n {\r\n name: '',\r\n type: 'bytes4',\r\n },\r\n ],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'function',\r\n },\r\n ] as const,\r\n functionName: 'isValidSignature',\r\n args: [messageHash as Address, signature as Address],\r\n });\r\n\r\n const payload = {\r\n call: RPC_CALLS.eth_call,\r\n params: [\r\n {\r\n to: safeInfo.safeAddress,\r\n data: encodedIsValidSignatureCall,\r\n },\r\n 'latest',\r\n ],\r\n };\r\n try {\r\n const response = await this.communicator.send, string>(\r\n Methods.rpcCall,\r\n payload,\r\n );\r\n\r\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE;\r\n } catch (err) {\r\n return false;\r\n }\r\n }\r\n\r\n private async check1271SignatureBytes(messageHash: string, signature = '0x'): Promise {\r\n const safeInfo = await this.getInfo();\r\n\r\n const encodedIsValidSignatureCall = encodeFunctionData({\r\n abi: [\r\n {\r\n constant: false,\r\n inputs: [\r\n {\r\n name: '_data',\r\n type: 'bytes',\r\n },\r\n {\r\n name: '_signature',\r\n type: 'bytes',\r\n },\r\n ],\r\n name: 'isValidSignature',\r\n outputs: [\r\n {\r\n name: '',\r\n type: 'bytes4',\r\n },\r\n ],\r\n payable: false,\r\n stateMutability: 'nonpayable',\r\n type: 'function',\r\n },\r\n ] as const,\r\n functionName: 'isValidSignature',\r\n args: [messageHash as Address, signature as Address],\r\n });\r\n\r\n const payload = {\r\n call: RPC_CALLS.eth_call,\r\n params: [\r\n {\r\n to: safeInfo.safeAddress,\r\n data: encodedIsValidSignatureCall,\r\n },\r\n 'latest',\r\n ],\r\n };\r\n\r\n try {\r\n const response = await this.communicator.send, string>(\r\n Methods.rpcCall,\r\n payload,\r\n );\r\n\r\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE_BYTES;\r\n } catch (err) {\r\n return false;\r\n }\r\n }\r\n\r\n calculateMessageHash(message: string): string {\r\n return hashMessage(message);\r\n }\r\n\r\n calculateTypedMessageHash(typedMessage: EIP712TypedData): string {\r\n const chainId =\r\n typeof typedMessage.domain.chainId === 'object'\r\n ? typedMessage.domain.chainId.toNumber()\r\n : Number(typedMessage.domain.chainId);\r\n\r\n let primaryType = typedMessage.primaryType;\r\n if (!primaryType) {\r\n const fields = Object.values(typedMessage.types);\r\n // We try to infer primaryType (simplified ether's version)\r\n const primaryTypes = Object.keys(typedMessage.types).filter((typeName) =>\r\n fields.every((dataTypes) => dataTypes.every(({ type }) => type.replace('[', '').replace(']', '') !== typeName)),\r\n );\r\n if (primaryTypes.length === 0 || primaryTypes.length > 1) throw new Error('Please specify primaryType');\r\n primaryType = primaryTypes[0];\r\n }\r\n\r\n return hashTypedData({\r\n message: typedMessage.message,\r\n domain: {\r\n ...typedMessage.domain,\r\n chainId,\r\n verifyingContract: typedMessage.domain.verifyingContract as Address,\r\n salt: typedMessage.domain.salt as Address,\r\n },\r\n types: typedMessage.types,\r\n primaryType,\r\n });\r\n }\r\n\r\n async getOffChainSignature(messageHash: string): Promise {\r\n const response = await this.communicator.send(\r\n Methods.getOffChainSignature,\r\n messageHash,\r\n );\r\n\r\n return response.data;\r\n }\r\n\r\n async isMessageSigned(message: string | EIP712TypedData, signature = '0x'): Promise {\r\n let check: (() => Promise) | undefined;\r\n if (typeof message === 'string') {\r\n check = async (): Promise => {\r\n const messageHash = this.calculateMessageHash(message);\r\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\r\n return messageHashSigned;\r\n };\r\n }\r\n\r\n if (isObjectEIP712TypedData(message)) {\r\n check = async (): Promise => {\r\n const messageHash = this.calculateTypedMessageHash(message);\r\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\r\n return messageHashSigned;\r\n };\r\n }\r\n if (check) {\r\n const isValid = await check();\r\n\r\n return isValid;\r\n }\r\n\r\n throw new Error('Invalid message type');\r\n }\r\n\r\n async isMessageHashSigned(messageHash: string, signature = '0x'): Promise {\r\n const checks = [this.check1271Signature.bind(this), this.check1271SignatureBytes.bind(this)];\r\n\r\n for (const check of checks) {\r\n const isValid = await check(messageHash, signature);\r\n if (isValid) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n async getEnvironmentInfo(): Promise {\r\n const response = await this.communicator.send(\r\n Methods.getEnvironmentInfo,\r\n undefined,\r\n );\r\n\r\n return response.data;\r\n }\r\n\r\n @requirePermission()\r\n async requestAddressBook(): Promise {\r\n const response = await this.communicator.send(\r\n Methods.requestAddressBook,\r\n undefined,\r\n );\r\n\r\n return response.data;\r\n }\r\n}\r\n\r\nexport { Safe };\r\n","const MAGIC_VALUE = '0x1626ba7e';\r\nconst MAGIC_VALUE_BYTES = '0x20c13b0b';\r\n\r\nexport { MAGIC_VALUE, MAGIC_VALUE_BYTES };\r\n","import { Communicator } from './types';\r\nimport InterfaceCommunicator from './communication';\r\nimport { TXs } from './txs';\r\nimport { Eth } from './eth';\r\nimport { Safe } from './safe';\r\nimport { Wallet } from './wallet';\r\n\r\nexport type Opts = {\r\n allowedDomains?: RegExp[];\r\n debug?: boolean;\r\n};\r\n\r\nclass SafeAppsSDK {\r\n private readonly communicator: Communicator;\r\n public readonly eth: Eth;\r\n public readonly txs: TXs;\r\n public readonly safe: Safe;\r\n public readonly wallet: Wallet;\r\n\r\n constructor(opts: Opts = {}) {\r\n const { allowedDomains = null, debug = false } = opts;\r\n\r\n this.communicator = new InterfaceCommunicator(allowedDomains, debug);\r\n this.eth = new Eth(this.communicator);\r\n this.txs = new TXs(this.communicator);\r\n this.safe = new Safe(this.communicator);\r\n this.wallet = new Wallet(this.communicator);\r\n }\r\n}\r\n\r\nexport default SafeAppsSDK;\r\n","import { Methods } from '../communication/methods';\r\nimport {\r\n GatewayTransactionDetails,\r\n SignMessageParams,\r\n SendTransactionsParams,\r\n GetTxBySafeTxHashParams,\r\n Communicator,\r\n SendTransactionsResponse,\r\n SignTypedMessageParams,\r\n EIP712TypedData,\r\n isObjectEIP712TypedData,\r\n SignMessageResponse,\r\n} from '../types';\r\n\r\nclass TXs {\r\n private readonly communicator: Communicator;\r\n\r\n constructor(communicator: Communicator) {\r\n this.communicator = communicator;\r\n }\r\n\r\n async getBySafeTxHash(safeTxHash: string): Promise {\r\n if (!safeTxHash) {\r\n throw new Error('Invalid safeTxHash');\r\n }\r\n\r\n const response = await this.communicator.send<\r\n Methods.getTxBySafeTxHash,\r\n GetTxBySafeTxHashParams,\r\n GatewayTransactionDetails\r\n >(Methods.getTxBySafeTxHash, { safeTxHash });\r\n\r\n return response.data;\r\n }\r\n\r\n async signMessage(message: string): Promise {\r\n const messagePayload = {\r\n message,\r\n };\r\n\r\n const response = await this.communicator.send(\r\n Methods.signMessage,\r\n messagePayload,\r\n );\r\n\r\n return response.data;\r\n }\r\n\r\n async signTypedMessage(typedData: EIP712TypedData): Promise {\r\n if (!isObjectEIP712TypedData(typedData)) {\r\n throw new Error('Invalid typed data');\r\n }\r\n\r\n const response = await this.communicator.send<\r\n Methods.signTypedMessage,\r\n SignTypedMessageParams,\r\n SignMessageResponse\r\n >(Methods.signTypedMessage, { typedData });\r\n\r\n return response.data;\r\n }\r\n\r\n async send({ txs, params }: SendTransactionsParams): Promise {\r\n if (!txs || !txs.length) {\r\n throw new Error('No transactions were passed');\r\n }\r\n\r\n const messagePayload = {\r\n txs,\r\n params,\r\n };\r\n\r\n const response = await this.communicator.send<\r\n Methods.sendTransactions,\r\n SendTransactionsParams,\r\n SendTransactionsResponse\r\n >(Methods.sendTransactions, messagePayload);\r\n\r\n return response.data;\r\n }\r\n}\r\n\r\nexport { TXs };\r\n","import { SafeBalanceResponse, TransactionDetails, TokenInfo } from '@safe-global/safe-gateway-typescript-sdk';\r\n\r\nexport {\r\n AddOwner,\r\n ChangeImplementation,\r\n ChangeThreshold,\r\n Creation,\r\n Custom,\r\n DataDecoded,\r\n DetailedExecutionInfo,\r\n DisableModule,\r\n EnableModule,\r\n Erc20Transfer,\r\n Erc721Transfer,\r\n InternalTransaction,\r\n ModuleExecutionDetails,\r\n MultiSend,\r\n MultisigConfirmation,\r\n MultisigExecutionDetails,\r\n NativeCoinTransfer,\r\n Operation,\r\n Parameter,\r\n RemoveOwner,\r\n SafeAppInfo,\r\n SetFallbackHandler,\r\n SettingsChange,\r\n SettingsInfo,\r\n SwapOwner,\r\n TokenInfo,\r\n TokenType,\r\n TransactionData,\r\n TransactionInfo,\r\n TransactionStatus,\r\n Transfer,\r\n TransferDirection,\r\n TransferInfo,\r\n} from '@safe-global/safe-gateway-typescript-sdk';\r\n\r\nexport type GatewayTransactionDetails = TransactionDetails;\r\n\r\nexport type TokenBalance = {\r\n tokenInfo: TokenInfo;\r\n balance: string;\r\n fiatBalance: string;\r\n fiatConversion: string;\r\n};\r\n\r\nexport type SafeBalances = SafeBalanceResponse;\r\n","export * from './sdk';\r\nexport * from './rpc';\r\nexport * from './gateway';\r\nexport * from './messaging';\r\n","import { Methods } from '../communication/methods';\r\nimport {\r\n SafeInfo,\r\n ChainInfo,\r\n SendTransactionsResponse,\r\n EnvironmentInfo,\r\n AddressBookItem,\r\n SignMessageResponse,\r\n} from './sdk';\r\nimport { GatewayTransactionDetails, SafeBalances } from './gateway';\r\nimport { Permission } from './permissions';\r\n\r\nexport type RequestId = string;\r\n\r\nexport type InterfaceMessageEvent = MessageEvent;\r\n\r\nexport interface MethodToResponse {\r\n [Methods.sendTransactions]: SendTransactionsResponse;\r\n [Methods.rpcCall]: unknown;\r\n [Methods.getSafeInfo]: SafeInfo;\r\n [Methods.getChainInfo]: ChainInfo;\r\n [Methods.getTxBySafeTxHash]: GatewayTransactionDetails;\r\n [Methods.getSafeBalances]: SafeBalances[];\r\n [Methods.signMessage]: SignMessageResponse;\r\n [Methods.signTypedMessage]: SignMessageResponse;\r\n [Methods.getEnvironmentInfo]: EnvironmentInfo;\r\n [Methods.getOffChainSignature]: string;\r\n [Methods.requestAddressBook]: AddressBookItem[];\r\n [Methods.wallet_getPermissions]: Permission[];\r\n [Methods.wallet_requestPermissions]: Permission[];\r\n}\r\n\r\nexport type SDKRequestData = {\r\n id: RequestId;\r\n params: P;\r\n env: {\r\n sdkVersion: string;\r\n };\r\n method: M;\r\n};\r\n\r\nexport type SDKMessageEvent = MessageEvent;\r\n\r\nexport type ErrorResponse = {\r\n id: RequestId;\r\n success: false;\r\n error: string;\r\n version?: string;\r\n};\r\n\r\nexport type SuccessResponse = {\r\n id: RequestId;\r\n data: T;\r\n version?: string;\r\n success: true;\r\n};\r\n\r\nexport type Response = ErrorResponse | SuccessResponse;\r\n\r\nexport interface Communicator {\r\n send(method: M, params: P): Promise>;\r\n}\r\n","export type Permission = {\r\n parentCapability: string;\r\n invoker: string;\r\n date?: number;\r\n caveats?: PermissionCaveat[];\r\n};\r\n\r\nexport type PermissionRequest = {\r\n [method: string]: Record;\r\n};\r\n\r\nexport type PermissionCaveat = {\r\n type: string;\r\n value?: unknown;\r\n name?: string;\r\n};\r\n\r\nexport const PERMISSIONS_REQUEST_REJECTED = 4001;\r\n\r\nexport class PermissionsError extends Error {\r\n public code: number;\r\n public data?: unknown;\r\n\r\n constructor(message: string, code: number, data?: unknown) {\r\n super(message);\r\n\r\n this.code = code;\r\n this.data = data;\r\n\r\n // Should adjust prototype manually because how TS handles the type extension compilation\r\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, PermissionsError.prototype);\r\n }\r\n}\r\n","import { ChainInfo as _ChainInfo } from '@safe-global/safe-gateway-typescript-sdk';\r\n\r\nexport type ChainInfo = Pick<\r\n _ChainInfo,\r\n 'chainName' | 'chainId' | 'shortName' | 'nativeCurrency' | 'blockExplorerUriTemplate'\r\n>;\r\n\r\nexport { NativeCurrency } from '@safe-global/safe-gateway-typescript-sdk';\r\n\r\nexport type BaseTransaction = {\r\n to: string;\r\n value: string;\r\n data: string;\r\n};\r\n\r\nexport type GetTxBySafeTxHashParams = {\r\n safeTxHash: string;\r\n};\r\n\r\nexport interface SendTransactionRequestParams {\r\n safeTxGas?: number;\r\n}\r\n\r\nexport interface SendTransactionsParams {\r\n txs: BaseTransaction[];\r\n params?: SendTransactionRequestParams;\r\n}\r\n\r\nexport type GetBalanceParams = { currency?: string };\r\n\r\nexport type SignMessageParams = {\r\n message: string;\r\n};\r\n\r\nexport interface TypedDataDomain {\r\n name?: string;\r\n version?: string;\r\n chainId?: string | number | bigint | { toNumber: () => number };\r\n verifyingContract?: string;\r\n salt?: string;\r\n}\r\n\r\nexport interface TypedDataTypes {\r\n name: string;\r\n type: string;\r\n}\r\n\r\nexport type TypedMessageTypes = { [key: string]: TypedDataTypes[] };\r\n\r\nexport type EIP712TypedData = {\r\n domain: TypedDataDomain;\r\n types: TypedMessageTypes;\r\n message: Record;\r\n primaryType?: string;\r\n};\r\n\r\nexport type SignTypedMessageParams = {\r\n typedData: EIP712TypedData;\r\n};\r\n\r\nexport type SendTransactionsResponse = {\r\n safeTxHash: string;\r\n};\r\n\r\nexport type OffChainSignMessageResponse = {\r\n messageHash: string;\r\n};\r\n\r\nexport type SignMessageResponse = SendTransactionsResponse | OffChainSignMessageResponse;\r\n\r\nexport type SafeInfo = {\r\n safeAddress: string;\r\n chainId: number;\r\n threshold: number;\r\n owners: string[];\r\n isReadOnly: boolean;\r\n};\r\n\r\nexport type EnvironmentInfo = {\r\n origin: string;\r\n};\r\n\r\nexport type PostMessageOptions = {\r\n transfer?: any[];\r\n};\r\n\r\nexport type AddressBookItem = {\r\n address: string;\r\n chainId: string;\r\n name: string;\r\n};\r\n\r\nexport const isObjectEIP712TypedData = (obj?: unknown): obj is EIP712TypedData => {\r\n return typeof obj === 'object' && obj != null && 'domain' in obj && 'types' in obj && 'message' in obj;\r\n};\r\n","import pkg from '../package.json';\r\n\r\nexport const getSDKVersion = (): string => {\r\n // Strip out version tags like `beta.0` in `1.0.0-beta.0`\r\n return pkg.version.split('-')[0];\r\n};\r\n","import { Methods, RestrictedMethods } from '../communication/methods';\r\nimport { Communicator } from '../types';\r\nimport { PermissionRequest, Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions';\r\n\r\nclass Wallet {\r\n private readonly communicator: Communicator;\r\n\r\n constructor(communicator: Communicator) {\r\n this.communicator = communicator;\r\n }\r\n\r\n async getPermissions(): Promise {\r\n const response = await this.communicator.send(\r\n Methods.wallet_getPermissions,\r\n undefined,\r\n );\r\n\r\n return response.data;\r\n }\r\n\r\n async requestPermissions(permissions: PermissionRequest[]): Promise {\r\n if (!this.isPermissionRequestValid(permissions)) {\r\n throw new PermissionsError('Permissions request is invalid', PERMISSIONS_REQUEST_REJECTED);\r\n }\r\n\r\n try {\r\n const response = await this.communicator.send<\r\n Methods.wallet_requestPermissions,\r\n PermissionRequest[],\r\n Permission[]\r\n >(Methods.wallet_requestPermissions, permissions);\r\n\r\n return response.data;\r\n } catch {\r\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\r\n }\r\n }\r\n\r\n isPermissionRequestValid(permissions: PermissionRequest[]): boolean {\r\n return permissions.every((pr: PermissionRequest) => {\r\n if (typeof pr === 'object') {\r\n return Object.keys(pr).every((method) => {\r\n if (Object.values(RestrictedMethods).includes(method as RestrictedMethods)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n}\r\n\r\nexport { Wallet };\r\n",null,null,null,null,null,null,null,null,null,null,"function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\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)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\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 preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, 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 && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\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 (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.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})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict';\n\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","'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","'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","// 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","\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","// 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","/**\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 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","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","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = new Uint8Array(encodeUtf8(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 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","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","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","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 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 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","/**\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 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 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 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 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","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","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 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","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","/**\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 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\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","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","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3';\n\n var script = '\\n (function(w,d,s,l,i){w[l]=w[l]||[];\\n w[l].push({\\'gtm.start\\': new Date().getTime(),event:\\'gtm.js\\', ' + JSON.stringify(events).slice(1, -1) + '});\\n var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';\\n j.async=true;j.src=\\'https://www.googletagmanager.com/gtm.js?id=\\'+i+dl+\\'' + gtm_auth + gtm_preview + '>m_cookies_win=x\\';\\n f.parentNode.insertBefore(j,f);\\n })(window,document,\\'script\\',\\'' + dataLayerName + '\\',\\'' + id + '\\');';\n\n var dataLayerVar = this.dataLayer(dataLayer, dataLayerName);\n\n return {\n iframe: iframe,\n script: script,\n dataLayerVar: dataLayerVar\n };\n },\n dataLayer: function dataLayer(_dataLayer, dataLayerName) {\n return '\\n window.' + dataLayerName + ' = window.' + dataLayerName + ' || [];\\n window.' + dataLayerName + '.push(' + JSON.stringify(_dataLayer) + ')';\n }\n};\n\nmodule.exports = Snippets;","'use strict';\n\nvar _Snippets = require('./Snippets');\n\nvar _Snippets2 = _interopRequireDefault(_Snippets);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TagManager = {\n dataScript: function dataScript(dataLayer) {\n var script = document.createElement('script');\n script.innerHTML = dataLayer;\n return script;\n },\n gtm: function gtm(args) {\n var snippets = _Snippets2.default.tags(args);\n\n var noScript = function noScript() {\n var noscript = document.createElement('noscript');\n noscript.innerHTML = snippets.iframe;\n return noscript;\n };\n\n var script = function script() {\n var script = document.createElement('script');\n script.innerHTML = snippets.script;\n return script;\n };\n\n var dataScript = this.dataScript(snippets.dataLayerVar);\n\n return {\n noScript: noScript,\n script: script,\n dataScript: dataScript\n };\n },\n initialize: function initialize(_ref) {\n var gtmId = _ref.gtmId,\n _ref$events = _ref.events,\n events = _ref$events === undefined ? {} : _ref$events,\n dataLayer = _ref.dataLayer,\n _ref$dataLayerName = _ref.dataLayerName,\n dataLayerName = _ref$dataLayerName === undefined ? 'dataLayer' : _ref$dataLayerName,\n _ref$auth = _ref.auth,\n auth = _ref$auth === undefined ? '' : _ref$auth,\n _ref$preview = _ref.preview,\n preview = _ref$preview === undefined ? '' : _ref$preview;\n\n var gtm = this.gtm({\n id: gtmId,\n events: events,\n dataLayer: dataLayer || undefined,\n dataLayerName: dataLayerName,\n auth: auth,\n preview: preview\n });\n if (dataLayer) document.head.appendChild(gtm.dataScript);\n document.head.insertBefore(gtm.script(), document.head.childNodes[0]);\n document.body.insertBefore(gtm.noScript(), document.body.childNodes[0]);\n },\n dataLayer: function dataLayer(_ref2) {\n var _dataLayer = _ref2.dataLayer,\n _ref2$dataLayerName = _ref2.dataLayerName,\n dataLayerName = _ref2$dataLayerName === undefined ? 'dataLayer' : _ref2$dataLayerName;\n\n if (window[dataLayerName]) return window[dataLayerName].push(_dataLayer);\n var snippets = _Snippets2.default.dataLayer(_dataLayer, dataLayerName);\n var dataScript = this.dataScript(snippets);\n document.head.insertBefore(dataScript, document.head.childNodes[0]);\n }\n};\n\nmodule.exports = TagManager;","'use strict';\n\nvar _TagManager = require('./TagManager');\n\nvar _TagManager2 = _interopRequireDefault(_TagManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = _TagManager2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar warn = function warn(s) {\n console.warn('[react-gtm]', s);\n};\n\nexports.default = warn;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","import type { OneOf, Prettify } from './types.js'\nimport { version } from './version.js'\n\ntype BaseErrorArgs = Prettify<\n {\n docsPath?: string | undefined\n metaMessages?: string[] | undefined\n } & OneOf<{ details?: string | undefined } | { cause?: BaseError | Error }>\n>\n\nexport class BaseError extends Error {\n details: string\n docsPath?: string | undefined\n metaMessages?: string[] | undefined\n shortMessage: string\n\n override name = 'AbiTypeError'\n\n constructor(shortMessage: string, args: BaseErrorArgs = {}) {\n const details =\n args.cause instanceof BaseError\n ? args.cause.details\n : args.cause?.message\n ? args.cause.message\n : args.details!\n const docsPath =\n 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\n super(message)\n\n if (args.cause) this.cause = args.cause\n this.details = details\n this.docsPath = docsPath\n this.metaMessages = args.metaMessages\n this.shortMessage = shortMessage\n }\n}\n","import { BaseError } from '../../errors.js'\n\nexport class InvalidAbiItemError extends BaseError {\n override name = 'InvalidAbiItemError'\n\n constructor({ signature }: { signature: string | object }) {\n super('Failed to parse ABI item.', {\n details: `parseAbiItem(${JSON.stringify(signature, null, 2)})`,\n docsPath: '/api/human.html#parseabiitem-1',\n })\n }\n}\n\nexport class UnknownTypeError extends BaseError {\n override name = 'UnknownTypeError'\n\n constructor({ type }: { type: string }) {\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 }\n}\n\nexport class UnknownSolidityTypeError extends BaseError {\n override name = 'UnknownSolidityTypeError'\n\n constructor({ type }: { type: string }) {\n super('Unknown type.', {\n metaMessages: [`Type \"${type}\" is not a valid ABI type.`],\n })\n }\n}\n","import type { AbiItemType, AbiParameter } from '../../abi.js'\nimport { BaseError } from '../../errors.js'\nimport type { Modifier } from '../types/index.js'\n\nexport class InvalidAbiParameterError extends BaseError {\n override name = 'InvalidAbiParameterError'\n\n constructor({ param }: { param: string | object }) {\n super('Failed to parse ABI parameter.', {\n details: `parseAbiParameter(${JSON.stringify(param, null, 2)})`,\n docsPath: '/api/human.html#parseabiparameter-1',\n })\n }\n}\n\nexport class InvalidAbiParametersError extends BaseError {\n override name = 'InvalidAbiParametersError'\n\n constructor({ params }: { params: string | object }) {\n super('Failed to parse ABI parameters.', {\n details: `parseAbiParameters(${JSON.stringify(params, null, 2)})`,\n docsPath: '/api/human.html#parseabiparameters-1',\n })\n }\n}\n\nexport class InvalidParameterError extends BaseError {\n override name = 'InvalidParameterError'\n\n constructor({ param }: { param: string }) {\n super('Invalid ABI parameter.', {\n details: param,\n })\n }\n}\n\nexport class SolidityProtectedKeywordError extends BaseError {\n override name = 'SolidityProtectedKeywordError'\n\n constructor({ param, name }: { param: string; name: string }) {\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 }\n}\n\nexport class InvalidModifierError extends BaseError {\n override name = 'InvalidModifierError'\n\n constructor({\n param,\n type,\n modifier,\n }: {\n param: string\n type?: AbiItemType | 'struct' | undefined\n modifier: Modifier\n }) {\n super('Invalid ABI parameter.', {\n details: param,\n metaMessages: [\n `Modifier \"${modifier}\" not allowed${\n type ? ` in \"${type}\" type` : ''\n }.`,\n ],\n })\n }\n}\n\nexport class InvalidFunctionModifierError extends BaseError {\n override name = 'InvalidFunctionModifierError'\n\n constructor({\n param,\n type,\n modifier,\n }: {\n param: string\n type?: AbiItemType | 'struct' | undefined\n modifier: Modifier\n }) {\n super('Invalid ABI parameter.', {\n details: param,\n metaMessages: [\n `Modifier \"${modifier}\" not allowed${\n type ? ` in \"${type}\" type` : ''\n }.`,\n `Data location can only be specified for array, struct, or mapping types, but \"${modifier}\" was given.`,\n ],\n })\n }\n}\n\nexport class InvalidAbiTypeParameterError extends BaseError {\n override name = 'InvalidAbiTypeParameterError'\n\n constructor({\n abiParameter,\n }: {\n abiParameter: AbiParameter & { indexed?: boolean | undefined }\n }) {\n super('Invalid ABI parameter.', {\n details: JSON.stringify(abiParameter, null, 2),\n metaMessages: ['ABI parameter type is invalid.'],\n })\n }\n}\n","export {\n UnknownTypeError,\n InvalidAbiItemError,\n UnknownSolidityTypeError,\n} from './abiItem.js'\n\nexport {\n InvalidAbiTypeParameterError,\n InvalidFunctionModifierError,\n InvalidModifierError,\n SolidityProtectedKeywordError,\n InvalidParameterError,\n InvalidAbiParametersError,\n InvalidAbiParameterError,\n} from './abiParameter.js'\n\nexport {\n InvalidStructSignatureError,\n InvalidSignatureError,\n UnknownSignatureError,\n} from './signature.js'\n\nexport { InvalidParenthesisError } from './splitParameters.js'\n\nexport { CircularReferenceError } from './struct.js'\n","import type { AbiItemType } from '../../abi.js'\nimport { BaseError } from '../../errors.js'\n\nexport class InvalidSignatureError extends BaseError {\n override name = 'InvalidSignatureError'\n\n constructor({\n signature,\n type,\n }: {\n signature: string\n type: AbiItemType | 'struct'\n }) {\n super(`Invalid ${type} signature.`, {\n details: signature,\n })\n }\n}\n\nexport class UnknownSignatureError extends BaseError {\n override name = 'UnknownSignatureError'\n\n constructor({ signature }: { signature: string }) {\n super('Unknown signature.', {\n details: signature,\n })\n }\n}\n\nexport class InvalidStructSignatureError extends BaseError {\n override name = 'InvalidStructSignatureError'\n\n constructor({ signature }: { signature: string }) {\n super('Invalid struct signature.', {\n details: signature,\n metaMessages: ['No properties exist.'],\n })\n }\n}\n","import { BaseError } from '../../errors.js'\n\nexport class InvalidParenthesisError extends BaseError {\n override name = 'InvalidParenthesisError'\n\n constructor({ current, depth }: { current: string; depth: number }) {\n super('Unbalanced parentheses.', {\n metaMessages: [\n `\"${current.trim()}\" has too many ${\n depth > 0 ? 'opening' : 'closing'\n } parentheses.`,\n ],\n details: `Depth \"${depth}\"`,\n })\n }\n}\n","import { BaseError } from '../../errors.js'\n\nexport class CircularReferenceError extends BaseError {\n override name = 'CircularReferenceError'\n\n constructor({ type }: { type: string }) {\n super('Circular reference detected.', {\n metaMessages: [`Struct \"${type}\" is a circular reference.`],\n })\n }\n}\n","export {\n CircularReferenceError,\n InvalidParenthesisError,\n UnknownSignatureError,\n InvalidSignatureError,\n InvalidStructSignatureError,\n InvalidAbiParameterError,\n InvalidAbiParametersError,\n InvalidParameterError,\n SolidityProtectedKeywordError,\n InvalidModifierError,\n InvalidFunctionModifierError,\n InvalidAbiTypeParameterError,\n InvalidAbiItemError,\n UnknownTypeError,\n} from './errors/index.js'\n\nexport { parseAbi, type ParseAbi } from './parseAbi.js'\n\nexport { parseAbiItem, type ParseAbiItem } from './parseAbiItem.js'\n\nexport {\n parseAbiParameter,\n type ParseAbiParameter,\n} from './parseAbiParameter.js'\n\nexport {\n parseAbiParameters,\n type ParseAbiParameters,\n} from './parseAbiParameters.js'\n","import type { Abi } from '../abi.js'\nimport type { Narrow } from '../narrow.js'\nimport type { Error, Filter } from '../types.js'\nimport {\n isStructSignature,\n parseSignature,\n parseStructs,\n} from './runtime/index.js'\nimport type { ParseSignature, ParseStructs, Signatures } from './types/index.js'\n\n/**\n * Parses human-readable ABI into JSON {@link Abi}\n *\n * @param TSignatures - Human-readable ABI\n * @returns Parsed {@link Abi}\n *\n * @example\n * type Result = ParseAbi<\n * // ^? type Result = readonly [{ name: \"balanceOf\"; type: \"function\"; stateMutability:...\n * [\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'event Transfer(address indexed from, address indexed to, uint256 amount)',\n * ]\n * >\n */\nexport type ParseAbi<\n TSignatures extends readonly string[] | readonly unknown[],\n> = string[] extends TSignatures\n ? Abi // If `T` was not able to be inferred (e.g. just `string[]`), return `Abi`\n : TSignatures extends readonly string[]\n ? TSignatures extends Signatures // Validate signatures\n ? ParseStructs extends infer Structs\n ? {\n [K in keyof TSignatures]: TSignatures[K] extends string\n ? ParseSignature\n : never\n } extends infer Mapped extends readonly unknown[]\n ? Filter extends infer Result\n ? Result extends readonly []\n ? never\n : Result\n : never\n : never\n : never\n : never\n : never\n\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<\n TSignatures extends readonly string[] | readonly unknown[],\n>(\n signatures: Narrow &\n (TSignatures extends readonly string[]\n ? TSignatures extends readonly [] // empty array\n ? Error<'At least one signature required.'>\n : string[] extends TSignatures\n ? unknown\n : Signatures\n : never),\n): ParseAbi {\n const structs = parseStructs(signatures as readonly string[])\n const abi = []\n const length = signatures.length as number\n for (let i = 0; i < length; i++) {\n const signature = (signatures as readonly string[])[i]!\n if (isStructSignature(signature)) continue\n abi.push(parseSignature(signature, structs))\n }\n return abi as unknown as ParseAbi\n}\n","import type { Abi } from '../abi.js'\nimport type { Narrow } from '../narrow.js'\nimport type { Error, Filter } from '../types.js'\nimport { InvalidAbiItemError } from './errors/index.js'\nimport {\n isStructSignature,\n parseSignature,\n parseStructs,\n} from './runtime/index.js'\nimport type {\n ParseSignature,\n ParseStructs,\n Signature,\n Signatures,\n} from './types/index.js'\n\n/**\n * Parses human-readable ABI item (e.g. error, event, function) into {@link Abi} item\n *\n * @param TSignature - Human-readable ABI item\n * @returns Parsed {@link Abi} item\n *\n * @example\n * type Result = ParseAbiItem<'function balanceOf(address owner) view returns (uint256)'>\n * // ^? type Result = { name: \"balanceOf\"; type: \"function\"; stateMutability: \"view\";...\n *\n * @example\n * type Result = ParseAbiItem<\n * // ^? type Result = { name: \"foo\"; type: \"function\"; stateMutability: \"view\"; inputs:...\n * ['function foo(Baz bar) view returns (string)', 'struct Baz { string name; }']\n * >\n */\nexport type ParseAbiItem<\n TSignature extends string | readonly string[] | readonly unknown[],\n> =\n | (TSignature extends string\n ? string extends TSignature\n ? Abi[number]\n : TSignature extends Signature // Validate signature\n ? ParseSignature\n : never\n : never)\n | (TSignature extends readonly string[]\n ? string[] extends TSignature\n ? Abi[number] // Return generic Abi item since type was no inferrable\n : TSignature extends Signatures // Validate signature\n ? ParseStructs extends infer Structs\n ? {\n [K in keyof TSignature]: ParseSignature<\n TSignature[K] extends string ? TSignature[K] : never,\n Structs\n >\n } extends infer Mapped extends readonly unknown[]\n ? // Filter out `never` since those are structs\n Filter[0] extends infer Result\n ? Result extends undefined // convert `undefined` to `never` (e.g. `ParseAbiItem<['struct Foo { string name; }']>`)\n ? never\n : Result\n : never\n : never\n : never\n : never\n : never)\n\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<\n TSignature extends string | readonly string[] | readonly unknown[],\n>(\n signature: Narrow &\n (\n | (TSignature extends string\n ? string extends TSignature\n ? unknown\n : Signature\n : never)\n | (TSignature extends readonly string[]\n ? TSignature extends readonly [] // empty array\n ? Error<'At least one signature required.'>\n : string[] extends TSignature\n ? unknown\n : Signatures\n : never)\n ),\n): ParseAbiItem {\n let abiItem\n if (typeof signature === 'string')\n abiItem = parseSignature(signature) as ParseAbiItem\n else {\n const structs = parseStructs(signature as readonly string[])\n const length = signature.length as number\n for (let i = 0; i < length; i++) {\n const signature_ = (signature as readonly string[])[i]!\n if (isStructSignature(signature_)) continue\n abiItem = parseSignature(signature_, structs)\n break\n }\n }\n\n if (!abiItem) throw new InvalidAbiItemError({ signature })\n return abiItem as ParseAbiItem\n}\n","import type { AbiParameter } from '../abi.js'\nimport type { Narrow } from '../narrow.js'\nimport type { Error, Filter } from '../types.js'\nimport { InvalidAbiParameterError } from './errors/index.js'\nimport {\n isStructSignature,\n modifiers,\n parseAbiParameter as parseAbiParameter_,\n parseStructs,\n} from './runtime/index.js'\nimport type {\n IsStructSignature,\n Modifier,\n ParseAbiParameter as ParseAbiParameter_,\n ParseStructs,\n} from './types/index.js'\n\n/**\n * Parses human-readable ABI parameter into {@link AbiParameter}\n *\n * @param TParam - Human-readable ABI parameter\n * @returns Parsed {@link AbiParameter}\n *\n * @example\n * type Result = ParseAbiParameter<'address from'>\n * // ^? type Result = { type: \"address\"; name: \"from\"; }\n *\n * @example\n * type Result = ParseAbiParameter<\n * // ^? type Result = { type: \"tuple\"; components: [{ type: \"string\"; name:...\n * ['Baz bar', 'struct Baz { string name; }']\n * >\n */\nexport type ParseAbiParameter<\n TParam extends string | readonly string[] | readonly unknown[],\n> =\n | (TParam extends string\n ? TParam extends ''\n ? never\n : string extends TParam\n ? AbiParameter\n : ParseAbiParameter_\n : never)\n | (TParam extends readonly string[]\n ? string[] extends TParam\n ? AbiParameter // Return generic AbiParameter item since type was no inferrable\n : ParseStructs extends infer Structs\n ? {\n [K in keyof TParam]: TParam[K] extends string\n ? IsStructSignature extends true\n ? never\n : ParseAbiParameter_<\n TParam[K],\n { Modifier: Modifier; Structs: Structs }\n >\n : never\n } extends infer Mapped extends readonly unknown[]\n ? Filter[0] extends infer Result\n ? Result extends undefined\n ? never\n : Result\n : never\n : never\n : never\n : never)\n\n/**\n * Parses human-readable ABI parameter into {@link AbiParameter}\n *\n * @param param - Human-readable ABI parameter\n * @returns Parsed {@link AbiParameter}\n *\n * @example\n * const abiParameter = parseAbiParameter('address from')\n * // ^? const abiParameter: { type: \"address\"; name: \"from\"; }\n *\n * @example\n * const abiParameter = parseAbiParameter([\n * // ^? const abiParameter: { type: \"tuple\"; components: [{ type: \"string\"; name:...\n * 'Baz bar',\n * 'struct Baz { string name; }',\n * ])\n */\nexport function parseAbiParameter<\n TParam extends string | readonly string[] | readonly unknown[],\n>(\n param: Narrow &\n (\n | (TParam extends string\n ? TParam extends ''\n ? Error<'Empty string is not allowed.'>\n : unknown\n : never)\n | (TParam extends readonly string[]\n ? TParam extends readonly [] // empty array\n ? Error<'At least one parameter required.'>\n : string[] extends TParam\n ? unknown\n : unknown // TODO: Validate param string\n : never)\n ),\n): ParseAbiParameter {\n let abiParameter\n if (typeof param === 'string')\n abiParameter = parseAbiParameter_(param, {\n modifiers,\n }) as ParseAbiParameter\n else {\n const structs = parseStructs(param as readonly string[])\n const length = param.length as number\n for (let i = 0; i < length; i++) {\n const signature = (param as readonly string[])[i]!\n if (isStructSignature(signature)) continue\n abiParameter = parseAbiParameter_(signature, { modifiers, structs })\n break\n }\n }\n\n if (!abiParameter) throw new InvalidAbiParameterError({ param })\n\n return abiParameter as ParseAbiParameter\n}\n","import type { AbiParameter } from '../abi.js'\nimport type { Narrow } from '../narrow.js'\nimport type { Error, Filter } from '../types.js'\nimport { InvalidAbiParametersError } from './errors/index.js'\nimport {\n isStructSignature,\n modifiers,\n parseAbiParameter as parseAbiParameter_,\n parseStructs,\n splitParameters,\n} from './runtime/index.js'\nimport type {\n IsStructSignature,\n Modifier,\n ParseAbiParameters as ParseAbiParameters_,\n ParseStructs,\n SplitParameters,\n} from './types/index.js'\n\n/**\n * Parses human-readable ABI parameters into {@link AbiParameter}s\n *\n * @param TParams - Human-readable ABI parameters\n * @returns Parsed {@link AbiParameter}s\n *\n * @example\n * type Result = ParseAbiParameters('address from, address to, uint256 amount')\n * // ^? type Result: [{ type: \"address\"; name: \"from\"; }, { type: \"address\";...\n *\n * @example\n * type Result = ParseAbiParameters<\n * // ^? type Result: [{ type: \"tuple\"; components: [{ type: \"string\"; name:...\n * ['Baz bar', 'struct Baz { string name; }']\n * >\n */\nexport type ParseAbiParameters<\n TParams extends string | readonly string[] | readonly unknown[],\n> =\n | (TParams extends string\n ? TParams extends ''\n ? never\n : string extends TParams\n ? readonly AbiParameter[]\n : ParseAbiParameters_, { Modifier: Modifier }>\n : never)\n | (TParams extends readonly string[]\n ? string[] extends TParams\n ? AbiParameter // Return generic AbiParameter item since type was no inferrable\n : ParseStructs extends infer Structs\n ? {\n [K in keyof TParams]: TParams[K] extends string\n ? IsStructSignature extends true\n ? never\n : ParseAbiParameters_<\n SplitParameters,\n { Modifier: Modifier; Structs: Structs }\n >\n : never\n } extends infer Mapped extends readonly unknown[]\n ? Filter[0] extends infer Result\n ? Result extends undefined\n ? never\n : Result\n : never\n : never\n : never\n : never)\n\n/**\n * Parses human-readable ABI parameters into {@link AbiParameter}s\n *\n * @param params - Human-readable ABI parameters\n * @returns Parsed {@link AbiParameter}s\n *\n * @example\n * const abiParameters = parseAbiParameters('address from, address to, uint256 amount')\n * // ^? const abiParameters: [{ type: \"address\"; name: \"from\"; }, { type: \"address\";...\n *\n * @example\n * const abiParameters = parseAbiParameters([\n * // ^? const abiParameters: [{ type: \"tuple\"; components: [{ type: \"string\"; name:...\n * 'Baz bar',\n * 'struct Baz { string name; }',\n * ])\n */\nexport function parseAbiParameters<\n TParams extends string | readonly string[] | readonly unknown[],\n>(\n params: Narrow &\n (\n | (TParams extends string\n ? TParams extends ''\n ? Error<'Empty string is not allowed.'>\n : unknown\n : never)\n | (TParams extends readonly string[]\n ? TParams extends readonly [] // empty array\n ? Error<'At least one parameter required.'>\n : string[] extends TParams\n ? unknown\n : unknown // TODO: Validate param string\n : never)\n ),\n): ParseAbiParameters {\n const abiParameters: AbiParameter[] = []\n if (typeof params === 'string') {\n const parameters = splitParameters(params)\n const length = parameters.length\n for (let i = 0; i < length; i++) {\n abiParameters.push(parseAbiParameter_(parameters[i]!, { modifiers }))\n }\n } else {\n const structs = parseStructs(params as readonly string[])\n const length = params.length as number\n for (let i = 0; i < length; i++) {\n const signature = (params as readonly string[])[i]!\n if (isStructSignature(signature)) continue\n const parameters = splitParameters(signature)\n const length = parameters.length\n for (let k = 0; k < length; k++) {\n abiParameters.push(\n parseAbiParameter_(parameters[k]!, { modifiers, structs }),\n )\n }\n }\n }\n\n if (abiParameters.length === 0)\n throw new InvalidAbiParametersError({ params })\n\n return abiParameters as ParseAbiParameters\n}\n","import type { AbiItemType, AbiParameter } from '../../abi.js'\n\n/**\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(\n param: string,\n type?: AbiItemType | 'struct',\n) {\n if (type) return `${type}:${param}`\n return param\n}\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 string,\n AbiParameter & { indexed?: boolean }\n>([\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\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\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","export {\n eventModifiers,\n functionModifiers,\n isStructSignature,\n modifiers,\n} from './signatures.js'\n\nexport { parseStructs } from './structs.js'\n\nexport { parseAbiParameter, parseSignature, splitParameters } from './utils.js'\n","import type { AbiStateMutability } from '../../abi.js'\nimport { execTyped } from '../../regex.js'\nimport type {\n EventModifier,\n FunctionModifier,\n Modifier,\n} from '../types/index.js'\n\n// https://regexr.com/78tsr\nconst errorSignatureRegex =\n /^error (?[a-zA-Z0-9_]+)\\((?.*?)\\)$/\nexport function isErrorSignature(signature: string) {\n return errorSignatureRegex.test(signature)\n}\nexport function execErrorSignature(signature: string) {\n return execTyped<{ name: string; parameters: string }>(\n errorSignatureRegex,\n signature,\n )\n}\n\n// https://regexr.com/78tv3\nconst eventSignatureRegex =\n /^event (?[a-zA-Z0-9_]+)\\((?.*?)\\)$/\nexport function isEventSignature(signature: string) {\n return eventSignatureRegex.test(signature)\n}\nexport function execEventSignature(signature: string) {\n return execTyped<{ name: string; parameters: string }>(\n eventSignatureRegex,\n signature,\n )\n}\n\n// https://regexr.com/78u1b\nconst functionSignatureRegex =\n /^function (?[a-zA-Z0-9_]+)\\((?.*?)\\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\\s?\\((?.*?)\\))?$/\nexport function isFunctionSignature(signature: string) {\n return functionSignatureRegex.test(signature)\n}\nexport function execFunctionSignature(signature: string) {\n return execTyped<{\n name: string\n parameters: string\n stateMutability?: AbiStateMutability\n returns?: string\n }>(functionSignatureRegex, signature)\n}\n\n// https://regexr.com/78tsu\nconst structSignatureRegex =\n /^struct (?[a-zA-Z0-9_]+) \\{(?.*?)\\}$/\nexport function isStructSignature(signature: string) {\n return structSignatureRegex.test(signature)\n}\nexport function execStructSignature(signature: string) {\n return execTyped<{ name: string; properties: string }>(\n structSignatureRegex,\n signature,\n )\n}\n\n// https://regexr.com/78u01\nconst constructorSignatureRegex =\n /^constructor\\((?.*?)\\)(?:\\s(?payable{1}))?$/\nexport function isConstructorSignature(signature: string) {\n return constructorSignatureRegex.test(signature)\n}\nexport function execConstructorSignature(signature: string) {\n return execTyped<{\n parameters: string\n stateMutability?: Extract\n }>(constructorSignatureRegex, signature)\n}\n\n// https://regexr.com/78u18\nconst fallbackSignatureRegex = /^fallback\\(\\)$/\nexport function isFallbackSignature(signature: string) {\n return fallbackSignatureRegex.test(signature)\n}\n\n// https://regexr.com/78u1k\nconst receiveSignatureRegex = /^receive\\(\\) external payable$/\nexport function isReceiveSignature(signature: string) {\n return receiveSignatureRegex.test(signature)\n}\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","import type { AbiParameter } from '../../abi.js'\nimport { execTyped, isTupleRegex } from '../../regex.js'\nimport { UnknownTypeError } from '../errors/index.js'\nimport {\n CircularReferenceError,\n InvalidAbiTypeParameterError,\n InvalidSignatureError,\n InvalidStructSignatureError,\n} from '../errors/index.js'\nimport type { StructLookup } from '../types/index.js'\nimport { execStructSignature, isStructSignature } from './signatures.js'\nimport { isSolidityType, parseAbiParameter } from './utils.js'\n\nexport function parseStructs(signatures: readonly string[]) {\n // Create \"shallow\" version of each struct (and filter out non-structs or invalid structs)\n const shallowStructs: StructLookup = {}\n const signaturesLength = signatures.length\n for (let i = 0; i < signaturesLength; i++) {\n const signature = signatures[i]!\n if (!isStructSignature(signature)) continue\n\n const match = execStructSignature(signature)\n if (!match) throw new InvalidSignatureError({ signature, type: 'struct' })\n\n const properties = match.properties.split(';')\n\n const components: AbiParameter[] = []\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) continue\n const abiParameter = parseAbiParameter(trimmed, {\n type: 'struct',\n })\n components.push(abiParameter)\n }\n\n if (!components.length) throw new InvalidStructSignatureError({ signature })\n shallowStructs[match.name] = components\n }\n\n // Resolve nested structs inside each parameter\n const resolvedStructs: StructLookup = {}\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\n return resolvedStructs\n}\n\nconst typeWithoutTupleRegex =\n /^(?[a-zA-Z0-9_]+?)(?(?:\\[\\d*?\\])+?)?$/\n\nfunction resolveStructs(\n abiParameters: readonly (AbiParameter & { indexed?: true })[],\n structs: StructLookup,\n ancestors = new Set(),\n) {\n const components: AbiParameter[] = []\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) components.push(abiParameter)\n else {\n const match = execTyped<{ array?: string; type: string }>(\n typeWithoutTupleRegex,\n abiParameter.type,\n )\n if (!match?.type) throw new InvalidAbiTypeParameterError({ abiParameter })\n\n const { array, type } = match\n if (type in structs) {\n if (ancestors.has(type)) throw new CircularReferenceError({ type })\n\n components.push({\n ...abiParameter,\n type: `tuple${array ?? ''}`,\n components: resolveStructs(\n structs[type] ?? [],\n structs,\n new Set([...ancestors, type]),\n ),\n })\n } else {\n if (isSolidityType(type)) components.push(abiParameter)\n else throw new UnknownTypeError({ type })\n }\n }\n }\n\n return components\n}\n","import type {\n AbiItemType,\n AbiType,\n SolidityArray,\n SolidityBytes,\n SolidityString,\n SolidityTuple,\n} from '../../abi.js'\nimport {\n bytesRegex,\n execTyped,\n integerRegex,\n isTupleRegex,\n} from '../../regex.js'\nimport {\n InvalidFunctionModifierError,\n InvalidModifierError,\n InvalidParameterError,\n InvalidSignatureError,\n SolidityProtectedKeywordError,\n UnknownSignatureError,\n UnknownSolidityTypeError,\n} from '../errors/index.js'\nimport { InvalidParenthesisError } from '../errors/index.js'\nimport type {\n FunctionModifier,\n Modifier,\n StructLookup,\n} from '../types/index.js'\nimport { getParameterCacheKey, parameterCache } from './cache.js'\nimport {\n eventModifiers,\n execConstructorSignature,\n execErrorSignature,\n execEventSignature,\n execFunctionSignature,\n functionModifiers,\n isConstructorSignature,\n isErrorSignature,\n isEventSignature,\n isFallbackSignature,\n isFunctionSignature,\n isReceiveSignature,\n} from './signatures.js'\n\nexport function parseSignature(signature: string, structs: StructLookup = {}) {\n if (isFunctionSignature(signature)) {\n const match = execFunctionSignature(signature)\n if (!match) throw new InvalidSignatureError({ signature, type: 'function' })\n\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(\n parseAbiParameter(inputParams[i]!, {\n modifiers: functionModifiers,\n structs,\n type: 'function',\n }),\n )\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(\n parseAbiParameter(outputParams[i]!, {\n modifiers: functionModifiers,\n structs,\n type: 'function',\n }),\n )\n }\n }\n\n return {\n name: match.name,\n type: 'function',\n stateMutability: match.stateMutability ?? 'nonpayable',\n inputs,\n outputs,\n }\n }\n\n if (isEventSignature(signature)) {\n const match = execEventSignature(signature)\n if (!match) throw new InvalidSignatureError({ signature, type: 'event' })\n\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(\n parseAbiParameter(params[i]!, {\n modifiers: eventModifiers,\n structs,\n type: 'event',\n }),\n )\n }\n return { name: match.name, type: 'event', inputs: abiParameters }\n }\n\n if (isErrorSignature(signature)) {\n const match = execErrorSignature(signature)\n if (!match) throw new InvalidSignatureError({ signature, type: 'error' })\n\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(\n parseAbiParameter(params[i]!, { structs, type: 'error' }),\n )\n }\n return { name: match.name, type: 'error', inputs: abiParameters }\n }\n\n if (isConstructorSignature(signature)) {\n const match = execConstructorSignature(signature)\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'constructor' })\n\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(\n parseAbiParameter(params[i]!, { structs, type: 'constructor' }),\n )\n }\n return {\n type: 'constructor',\n stateMutability: match.stateMutability ?? 'nonpayable',\n inputs: abiParameters,\n }\n }\n\n if (isFallbackSignature(signature)) return { type: 'fallback' }\n if (isReceiveSignature(signature))\n return {\n type: 'receive',\n stateMutability: 'payable',\n }\n\n throw new UnknownSignatureError({ signature })\n}\n\nconst abiParameterWithoutTupleRegex =\n /^(?[a-zA-Z0-9_]+?)(?(?:\\[\\d*?\\])+?)?(?:\\s(?calldata|indexed|memory|storage{1}))?(?:\\s(?[a-zA-Z0-9_]+))?$/\nconst abiParameterWithTupleRegex =\n /^\\((?.+?)\\)(?(?:\\[\\d*?\\])+?)?(?:\\s(?calldata|indexed|memory|storage{1}))?(?:\\s(?[a-zA-Z0-9_]+))?$/\nconst dynamicIntegerRegex = /^u?int$/\n\ntype ParseOptions = {\n modifiers?: Set\n structs?: StructLookup\n type?: AbiItemType | 'struct'\n}\n\nexport function parseAbiParameter(param: string, options?: ParseOptions) {\n // optional namespace cache by `type`\n const parameterCacheKey = getParameterCacheKey(param, options?.type)\n if (parameterCache.has(parameterCacheKey))\n return parameterCache.get(parameterCacheKey)!\n\n const isTuple = isTupleRegex.test(param)\n const match = execTyped<{\n array?: string\n modifier?: Modifier\n name?: string\n type: string\n }>(\n isTuple ? abiParameterWithTupleRegex : abiParameterWithoutTupleRegex,\n param,\n )\n if (!match) throw new InvalidParameterError({ param })\n\n if (match.name && isSolidityKeyword(match.name))\n throw new SolidityProtectedKeywordError({ param, name: match.name })\n\n const name = match.name ? { name: match.name } : {}\n const indexed = match.modifier === 'indexed' ? { indexed: true } : {}\n const structs = options?.structs ?? {}\n let type: string\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 } else if (match.type in structs) {\n type = 'tuple'\n components = { components: structs[match.type] }\n } else if (dynamicIntegerRegex.test(match.type)) {\n type = `${match.type}256`\n } else {\n type = match.type\n if (!(options?.type === 'struct') && !isSolidityType(type))\n throw new UnknownSolidityTypeError({ type })\n }\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\n // Check if resolved `type` is valid if there is a function modifier\n if (\n functionModifiers.has(match.modifier as FunctionModifier) &&\n !isValidDataLocation(type, !!match.array)\n )\n throw new InvalidFunctionModifierError({\n param,\n type: options?.type,\n modifier: match.modifier,\n })\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\n// s/o latika for this\nexport function splitParameters(\n params: string,\n result: string[] = [],\n current = '',\n depth = 0,\n): readonly string[] {\n if (params === '') {\n if (current === '') return result\n if (depth !== 0) throw new InvalidParenthesisError({ current, depth })\n\n result.push(current.trim())\n return result\n }\n\n const length = params.length\n // rome-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\n return []\n}\n\nexport function isSolidityType(\n type: string,\n): type is Exclude {\n return (\n type === 'address' ||\n type === 'bool' ||\n type === 'function' ||\n type === 'string' ||\n bytesRegex.test(type) ||\n integerRegex.test(type)\n )\n}\n\nconst protectedKeywordsRegex =\n /^(?: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\nexport function isSolidityKeyword(name: string) {\n return (\n 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}\n\nexport function isValidDataLocation(\n type: string,\n isArray: boolean,\n): type is Exclude<\n AbiType,\n SolidityString | Extract | SolidityArray\n> {\n return isArray || type === 'bytes' || type === 'string' || type === 'tuple'\n}\n","export type {\n Abi,\n AbiConstructor,\n AbiError,\n AbiEvent,\n AbiEventParameter,\n AbiFallback,\n AbiFunction,\n AbiInternalType,\n AbiItemType,\n AbiParameter,\n AbiParameterKind,\n AbiReceive,\n AbiStateMutability,\n AbiType,\n Address,\n SolidityAddress,\n SolidityArray,\n SolidityArrayWithoutTuple,\n SolidityArrayWithTuple,\n SolidityBool,\n SolidityBytes,\n SolidityFixedArrayRange,\n SolidityFixedArraySizeLookup,\n SolidityFunction,\n SolidityInt,\n SolidityString,\n SolidityTuple,\n TypedData,\n TypedDataDomain,\n TypedDataParameter,\n TypedDataType,\n} from './abi.js'\n\nexport type { Config, DefaultConfig, ResolvedConfig } from './config.js'\n\nexport { BaseError } from './errors.js'\n\nexport type { Narrow } from './narrow.js'\nexport { narrow } from './narrow.js'\n\nexport type {\n AbiParameterToPrimitiveType,\n AbiParametersToPrimitiveTypes,\n AbiTypeToPrimitiveType,\n ExtractAbiError,\n ExtractAbiErrorNames,\n ExtractAbiErrors,\n ExtractAbiEvent,\n ExtractAbiEventNames,\n ExtractAbiEvents,\n ExtractAbiFunction,\n ExtractAbiFunctionNames,\n ExtractAbiFunctions,\n IsAbi,\n IsTypedData,\n TypedDataToPrimitiveTypes,\n} from './utils.js'\n\nexport type {\n ParseAbi,\n ParseAbiItem,\n ParseAbiParameter,\n ParseAbiParameters,\n} from './human-readable/index.js'\nexport {\n parseAbi,\n parseAbiItem,\n parseAbiParameter,\n parseAbiParameters,\n CircularReferenceError,\n InvalidParenthesisError,\n UnknownSignatureError,\n InvalidSignatureError,\n InvalidStructSignatureError,\n InvalidAbiParameterError,\n InvalidAbiParametersError,\n InvalidParameterError,\n SolidityProtectedKeywordError,\n InvalidModifierError,\n InvalidFunctionModifierError,\n InvalidAbiTypeParameterError,\n InvalidAbiItemError,\n UnknownTypeError,\n} from './human-readable/index.js'\n","/**\n * Infers embedded primitive type of any type\n *\n * @param T - Type to infer\n * @returns Embedded type of {@link TType}\n *\n * @example\n * type Result = Narrow<['foo', 'bar', 1]>\n */\n// s/o https://twitter.com/hd_nvim/status/1578567206190780417\nexport type Narrow =\n | (TType extends Function ? TType : never)\n | (TType extends string | number | boolean | bigint ? TType : never)\n | (TType extends [] ? [] : never)\n | {\n [K in keyof TType]: Narrow\n }\n\n/**\n * Infers embedded primitive type of any type\n * Same as `as const` but without setting the object as readonly and without needing the user to use it.\n *\n * @param value - Value to infer\n * @returns Value with embedded type inferred\n *\n * @example\n * const result = narrow(['foo', 'bar', 1])\n */\nexport function narrow(value: Narrow) {\n return value\n}\n","// 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: RegExp, string: string) {\n const match = regex.exec(string)\n return match?.groups as T | undefined\n}\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\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex =\n /^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\nexport const isTupleRegex = /^\\(.+?\\).*?$/\n","export const version = '0.8.7'\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../types.js'\n\nexport function parseAccount(account: Address | Account): Account {\n if (typeof account === 'string') return { address: account, type: 'json-rpc' }\n return account\n}\n","import type { Address } from 'abitype'\n\nimport type { Hex } from '../../types/misc.js'\nimport { checksumAddress } from '../../utils/address/getAddress.js'\nimport { keccak256 } from '../../utils/hash/keccak256.js'\n\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: Hex): Address {\n const address = keccak256(`0x${publicKey.substring(4)}`).substring(26)\n return checksumAddress(`0x${address}`) as Address\n}\n","import type { Address } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n singleAddressResolverAbi,\n universalResolverAbi,\n} from '../../constants/abis.js'\nimport {\n ContractFunctionExecutionError,\n ContractFunctionRevertedError,\n} from '../../errors/contract.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Prettify } from '../../types/utils.js'\nimport { decodeFunctionResult } from '../../utils/abi/decodeFunctionResult.js'\nimport { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js'\nimport { getChainContractAddress } from '../../utils/chain.js'\nimport { trim } from '../../utils/data/trim.js'\nimport { toHex } from '../../utils/encoding/toHex.js'\nimport { namehash } from '../../utils/ens/namehash.js'\nimport { packetToBytes } from '../../utils/ens/packetToBytes.js'\nimport {\n type ReadContractParameters,\n readContract,\n} from '../public/readContract.js'\n\nexport type GetEnsAddressParameters = Prettify<\n Pick & {\n /** Name to get the address for. */\n name: string\n /** Address of ENS Universal Resolver Contract. */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsAddressReturnType = Address | null\n\n/**\n * Gets address for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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.html) 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('wagmi-dev.eth'),\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\nexport async function getEnsAddress(\n client: PublicClient,\n {\n blockNumber,\n blockTag,\n name,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsAddressParameters,\n): Promise {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\n }\n\n try {\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: universalResolverAbi,\n functionName: 'resolve',\n args: [\n toHex(packetToBytes(name)),\n encodeFunctionData({\n abi: singleAddressResolverAbi,\n functionName: 'addr',\n args: [namehash(name)],\n }),\n ],\n blockNumber,\n blockTag,\n })\n\n if (res[0] === '0x') return null\n\n const address = decodeFunctionResult({\n abi: singleAddressResolverAbi,\n functionName: 'addr',\n data: res[0],\n })\n\n return trim(address) === '0x00' ? null : address\n } catch (err) {\n if (err instanceof ContractFunctionExecutionError) {\n const reason = (err.cause as ContractFunctionRevertedError)?.reason\n if (\n reason?.includes('Wildcard on non-extended resolvers is not supported')\n )\n return null\n }\n throw err\n }\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { AssetGatewayUrls } from '../../types/ens.js'\nimport type { Prettify } from '../../types/utils.js'\nimport { parseAvatarRecord } from '../../utils/ens/avatar/parseAvatarRecord.js'\n\nimport { type GetEnsTextParameters, getEnsText } from './getEnsText.js'\n\nexport type GetEnsAvatarParameters = Prettify<\n Omit & {\n /** Gateway urls to resolve IPFS and/or Arweave assets. */\n gatewayUrls?: AssetGatewayUrls\n }\n>\n\nexport type GetEnsAvatarReturnType = string | null\n\n/**\n * Gets the avatar of an ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens\n *\n * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText.html) 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.html) 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('wagmi-dev.eth'),\n * })\n * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'\n */\nexport async function getEnsAvatar(\n client: PublicClient,\n {\n blockNumber,\n blockTag,\n gatewayUrls,\n name,\n universalResolverAddress,\n }: GetEnsAvatarParameters,\n): Promise {\n const record = await getEnsText(client, {\n blockNumber,\n blockTag,\n key: 'avatar',\n name,\n universalResolverAddress,\n })\n if (!record) return null\n try {\n return await parseAvatarRecord(client, { record, gatewayUrls })\n } catch {\n return null\n }\n}\n","import type { Address } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { panicReasons } from '../../constants/solidity.js'\nimport {\n ContractFunctionExecutionError,\n type ContractFunctionRevertedError,\n} from '../../errors/contract.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Prettify } from '../../types/utils.js'\nimport { getChainContractAddress } from '../../utils/chain.js'\nimport { toHex } from '../../utils/encoding/toHex.js'\nimport { packetToBytes } from '../../utils/ens/packetToBytes.js'\nimport {\n type ReadContractParameters,\n readContract,\n} from '../public/readContract.js'\n\nexport type GetEnsNameParameters = Prettify<\n Pick & {\n /** Address to get ENS name for. */\n address: Address\n /** Address of ENS Universal Resolver Contract. */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsNameReturnType = string | null\n\n/**\n * Gets primary name for specified address.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsName.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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 * // 'wagmi-dev.eth'\n */\nexport async function getEnsName(\n client: PublicClient,\n {\n address,\n blockNumber,\n blockTag,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsNameParameters,\n): Promise {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\n }\n\n const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`\n try {\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: [\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 functionName: 'reverse',\n args: [toHex(packetToBytes(reverseNode))],\n blockNumber,\n blockTag,\n })\n return res[0]\n } catch (error) {\n if (\n error instanceof ContractFunctionExecutionError &&\n (error.cause as ContractFunctionRevertedError).reason === panicReasons[50]\n )\n // No primary name set for address.\n return null\n throw error\n }\n}\n","import type { Address } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Prettify } from '../../types/utils.js'\nimport { getChainContractAddress } from '../../utils/chain.js'\nimport { toHex } from '../../utils/encoding/toHex.js'\nimport { packetToBytes } from '../../utils/ens/packetToBytes.js'\nimport {\n type ReadContractParameters,\n readContract,\n} from '../public/readContract.js'\n\nexport type GetEnsResolverParameters = Prettify<\n Pick & {\n /** Name to get the address for. */\n name: string\n /** Address of ENS Universal Resolver Contract. */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsResolverReturnType = Address\n\n/**\n * Gets resolver for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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.html) 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('wagmi-dev.eth'),\n * })\n * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'\n */\nexport async function getEnsResolver(\n client: PublicClient,\n {\n blockNumber,\n blockTag,\n name,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsResolverParameters,\n) {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\n }\n\n const [resolverAddress] = await readContract(client, {\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","import type { Address } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { textResolverAbi, universalResolverAbi } from '../../constants/abis.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Prettify } from '../../types/utils.js'\nimport { decodeFunctionResult } from '../../utils/abi/decodeFunctionResult.js'\nimport { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js'\nimport { getChainContractAddress } from '../../utils/chain.js'\nimport { toHex } from '../../utils/encoding/toHex.js'\nimport { namehash } from '../../utils/ens/namehash.js'\nimport { packetToBytes } from '../../utils/ens/packetToBytes.js'\nimport {\n type ReadContractParameters,\n readContract,\n} from '../public/readContract.js'\n\nexport type GetEnsTextParameters = Prettify<\n Pick & {\n /** ENS name to get Text for. */\n name: string\n /** Text record to retrieve. */\n key: string\n /** Address of ENS Universal Resolver Contract. */\n universalResolverAddress?: Address\n }\n>\n\nexport type GetEnsTextReturnType = string | null\n\n/**\n * Gets a text record for specified ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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.html) 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('wagmi-dev.eth'),\n * key: 'com.twitter',\n * })\n * // 'wagmi_sh'\n */\nexport async function getEnsText(\n client: PublicClient,\n {\n blockNumber,\n blockTag,\n name,\n key,\n universalResolverAddress: universalResolverAddress_,\n }: GetEnsTextParameters,\n): Promise {\n let universalResolverAddress = universalResolverAddress_\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. universalResolverAddress is required.',\n )\n\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n })\n }\n\n const res = await readContract(client, {\n address: universalResolverAddress,\n abi: universalResolverAbi,\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\n if (res[0] === '0x') return null\n\n const record = decodeFunctionResult({\n abi: textResolverAbi,\n functionName: 'text',\n data: res[0],\n })\n\n return record === '' ? null : record\n}\n","import type {\n Abi,\n AbiEvent,\n AbiFunction,\n AbiParametersToPrimitiveTypes,\n Address,\n ExtractAbiEvent,\n ExtractAbiEventNames,\n ExtractAbiFunction,\n ExtractAbiFunctionNames,\n Narrow,\n} from 'abitype'\n\nimport type { Account } from '../accounts/types.js'\nimport type { PublicClient } from '../clients/createPublicClient.js'\nimport type { WalletClient } from '../clients/createWalletClient.js'\nimport type { Transport } from '../clients/transports/createTransport.js'\nimport type { Chain } from '../types/chain.js'\nimport type {\n AbiEventParametersToPrimitiveTypes,\n MaybeExtractEventArgsFromAbi,\n} from '../types/contract.js'\nimport type {\n IsNarrowable,\n IsNever,\n IsUndefined,\n Or,\n Prettify,\n} from '../types/utils.js'\n\nimport {\n type CreateContractEventFilterParameters,\n type CreateContractEventFilterReturnType,\n createContractEventFilter,\n} from './public/createContractEventFilter.js'\nimport {\n type EstimateContractGasParameters,\n type EstimateContractGasReturnType,\n estimateContractGas,\n} from './public/estimateContractGas.js'\nimport {\n type ReadContractParameters,\n type ReadContractReturnType,\n readContract,\n} from './public/readContract.js'\nimport {\n type SimulateContractParameters,\n type SimulateContractReturnType,\n simulateContract,\n} from './public/simulateContract.js'\nimport {\n type WatchContractEventParameters,\n type WatchContractEventReturnType,\n watchContractEvent,\n} from './public/watchContractEvent.js'\nimport {\n type WriteContractParameters,\n type WriteContractReturnType,\n writeContract,\n} from './wallet/writeContract.js'\n\nexport type GetContractParameters<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n TAbi extends Abi | readonly unknown[] = Abi,\n TPublicClient extends PublicClient | unknown = unknown,\n TWalletClient extends\n | WalletClient\n | unknown = unknown,\n TAddress extends Address = Address,\n> = {\n /** Contract ABI */\n abi: Narrow\n /** Contract address */\n address: TAddress\n /**\n * Public client\n *\n * If you pass in a [`publicClient`](https://viem.sh/docs/clients/public.html), the following methods are available:\n *\n * - [`createEventFilter`](https://viem.sh/docs/contract/createContractEventFilter.html)\n * - [`estimateGas`](https://viem.sh/docs/contract/estimateContractGas.html)\n * - [`read`](https://viem.sh/docs/contract/readContract.html)\n * - [`simulate`](https://viem.sh/docs/contract/simulateContract.html)\n * - [`watchEvent`](https://viem.sh/docs/contract/watchContractEvent.html)\n */\n publicClient?: TPublicClient\n /**\n * Wallet client\n *\n * If you pass in a [`walletClient`](https://viem.sh/docs/clients/wallet.html), the following methods are available:\n *\n * - [`estimateGas`](https://viem.sh/docs/contract/estimateContractGas.html)\n * - [`write`](https://viem.sh/docs/contract/writeContract.html)\n */\n walletClient?: TWalletClient\n}\n\nexport type GetContractReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n TPublicClient extends PublicClient | unknown = unknown,\n TWalletClient extends WalletClient | unknown = unknown,\n TAddress extends Address = Address,\n _EventNames extends string = TAbi extends Abi\n ? Abi extends TAbi\n ? string\n : ExtractAbiEventNames\n : string,\n _ReadFunctionNames extends string = TAbi extends Abi\n ? Abi extends TAbi\n ? string\n : ExtractAbiFunctionNames\n : string,\n _WriteFunctionNames extends string = TAbi extends Abi\n ? Abi extends TAbi\n ? string\n : ExtractAbiFunctionNames\n : string,\n _Narrowable extends boolean = IsNarrowable,\n> = Prettify<\n (TPublicClient extends PublicClient\n ? (IsNever<_ReadFunctionNames> extends true\n ? unknown\n : {\n /**\n * Calls a read-only function on a contract, and returns the response.\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, `read` uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi([\n * 'function balanceOf(address owner) view returns (uint256)',\n * ]),\n * publicClient,\n * })\n * const result = await contract.read.balanceOf(['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'])\n * // 424122n\n */\n read: {\n [FunctionName in _ReadFunctionNames]: GetReadFunction<\n _Narrowable,\n TAbi,\n FunctionName\n >\n }\n }) &\n (IsNever<_WriteFunctionNames> extends true\n ? unknown\n : {\n /**\n * Estimates the gas necessary to complete a transaction without submitting it to the network.\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint() public']),\n * publicClient,\n * })\n * const gas = await contract.estimateGas.mint({\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * })\n */\n estimateGas: {\n [FunctionName in _WriteFunctionNames]: GetEstimateFunction<\n _Narrowable,\n TPublicClient['chain'],\n undefined,\n TAbi,\n FunctionName\n >\n }\n /**\n * Simulates/validates a contract interaction. This is useful for retrieving return data and revert reasons of contract write functions.\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.html), but also supports contract write functions.\n *\n * Internally, `simulate` uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint() public']),\n * publicClient,\n * })\n * const result = await contract.simulate.mint({\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * })\n */\n simulate: {\n [FunctionName in _WriteFunctionNames]: GetSimulateFunction<\n _Narrowable,\n TPublicClient['chain'],\n TAbi,\n FunctionName\n >\n }\n }) &\n (IsNever<_EventNames> extends true\n ? unknown\n : {\n /**\n * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs.html).\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * publicClient,\n * })\n * const filter = await contract.createEventFilter.Transfer()\n */\n createEventFilter: {\n [EventName in _EventNames]: GetEventFilter<\n _Narrowable,\n TAbi,\n EventName\n >\n }\n /**\n * Watches and returns emitted contract event logs.\n *\n * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent.html#onLogs).\n *\n * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter.html) 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.html) instead.\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * publicClient,\n * })\n * const filter = await contract.createEventFilter.Transfer()\n * const unwatch = contract.watchEvent.Transfer(\n * { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },\n * { onLogs: (logs) => console.log(logs) },\n * )\n */\n watchEvent: {\n [EventName in _EventNames]: GetWatchEvent<\n _Narrowable,\n TAbi,\n EventName\n >\n }\n })\n : unknown) &\n (TWalletClient extends WalletClient\n ? IsNever<_WriteFunctionNames> extends true\n ? unknown\n : {\n /**\n * Estimates the gas necessary to complete a transaction without submitting it to the network.\n *\n * @example\n * import { createWalletClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const walletClient = createWalletClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint() public']),\n * walletClient,\n * })\n * const gas = await contract.estimateGas.mint({\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * })\n */\n estimateGas: {\n [FunctionName in _WriteFunctionNames]: GetEstimateFunction<\n _Narrowable,\n TWalletClient['chain'],\n TWalletClient['account'],\n TAbi,\n FunctionName\n >\n }\n /**\n * Executes a write function on a contract.\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.html) is needed to be broadcast in order to change the state.\n *\n * Internally, `write` uses a [Wallet Client](https://viem.sh/docs/clients/wallet.html) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\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.html#usage) before you execute it.__\n *\n * @example\n * import { createWalletClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const walletClient = createWalletClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * walletClient,\n * })\n * const hash = await contract.write.min([69420], {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * })\n */\n write: {\n [FunctionName in _WriteFunctionNames]: GetWriteFunction<\n _Narrowable,\n TWalletClient['chain'],\n TWalletClient['account'],\n TAbi,\n FunctionName\n >\n }\n }\n : unknown)\n> & { address: TAddress; abi: TAbi }\n\n/**\n * Gets type-safe interface for performing contract-related actions with a specific `abi` and `address`.\n *\n * - Docs https://viem.sh/docs/contract/getContract.html\n *\n * Using Contract Instances can make it easier to work with contracts if you don't want to pass the `abi` and `address` properites every time you perform contract actions, e.g. [`readContract`](https://viem.sh/docs/contract/readContract.html), [`writeContract`](https://viem.sh/docs/contract/writeContract.html), [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas.html), etc.\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi([\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'function ownerOf(uint256 tokenId) view returns (address)',\n * 'function totalSupply() view returns (uint256)',\n * ]),\n * publicClient,\n * })\n */\nexport function getContract<\n TTransport extends Transport,\n TAddress extends Address,\n TAbi extends Abi | readonly unknown[],\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n TPublicClient extends PublicClient | undefined =\n | PublicClient\n | undefined,\n TWalletClient extends WalletClient | undefined =\n | WalletClient\n | undefined,\n>({\n abi,\n address,\n publicClient,\n walletClient,\n}: GetContractParameters<\n TTransport,\n TChain,\n TAccount,\n TAbi,\n TPublicClient,\n TWalletClient,\n TAddress\n>): GetContractReturnType {\n const hasPublicClient = publicClient !== undefined && publicClient !== null\n const hasWalletClient = walletClient !== undefined && walletClient !== null\n\n const contract: {\n [_ in\n | 'abi'\n | 'address'\n | 'createEventFilter'\n | 'estimateGas'\n | 'read'\n | 'simulate'\n | 'watchEvent'\n | 'write']?: unknown\n } = {}\n\n let hasReadFunction = false\n let hasWriteFunction = false\n let hasEvent = false\n for (const item of abi as Abi) {\n if (item.type === 'function')\n if (item.stateMutability === 'view' || item.stateMutability === 'pure')\n hasReadFunction = true\n else hasWriteFunction = true\n else if (item.type === 'event') hasEvent = true\n // Exit early if all flags are `true`\n if (hasReadFunction && hasWriteFunction && hasEvent) break\n }\n\n if (hasPublicClient) {\n if (hasReadFunction)\n contract.read = new Proxy(\n {},\n {\n get(_, functionName: string) {\n return (\n ...parameters: [\n args?: readonly unknown[],\n options?: Omit<\n ReadContractParameters,\n 'abi' | 'address' | 'functionName' | 'args'\n >,\n ]\n ) => {\n const { args, options } = getFunctionParameters(parameters)\n return readContract(publicClient, {\n abi,\n address,\n functionName,\n args,\n ...options,\n } as ReadContractParameters)\n }\n },\n },\n )\n\n if (hasWriteFunction)\n contract.simulate = new Proxy(\n {},\n {\n get(_, functionName: string) {\n return (\n ...parameters: [\n args?: readonly unknown[],\n options?: Omit<\n SimulateContractParameters,\n 'abi' | 'address' | 'functionName' | 'args'\n >,\n ]\n ) => {\n const { args, options } = getFunctionParameters(parameters)\n return simulateContract(publicClient, {\n abi,\n address,\n functionName,\n args,\n ...options,\n } as SimulateContractParameters)\n }\n },\n },\n )\n\n if (hasEvent) {\n contract.createEventFilter = new Proxy(\n {},\n {\n get(_, eventName: string) {\n return (\n ...parameters: [\n args?: readonly unknown[] | object,\n options?: Omit<\n CreateContractEventFilterParameters,\n 'abi' | 'address' | 'eventName' | 'args'\n >,\n ]\n ) => {\n const abiEvent = (abi as readonly AbiEvent[]).find(\n (x: AbiEvent) => x.type === 'event' && x.name === eventName,\n )\n const { args, options } = getEventParameters(\n parameters,\n abiEvent!,\n )\n return createContractEventFilter(publicClient, {\n abi,\n address,\n eventName,\n args,\n ...options,\n } as CreateContractEventFilterParameters)\n }\n },\n },\n )\n contract.watchEvent = new Proxy(\n {},\n {\n get(_, eventName: string) {\n return (\n ...parameters: [\n args?: readonly unknown[] | object,\n options?: Omit<\n WatchContractEventParameters,\n 'abi' | 'address' | 'eventName'\n >,\n ]\n ) => {\n const abiEvent = (abi as readonly AbiEvent[]).find(\n (x: AbiEvent) => x.type === 'event' && x.name === eventName,\n )\n const { args, options } = getEventParameters(\n parameters,\n abiEvent!,\n )\n return watchContractEvent(publicClient, {\n abi,\n address,\n eventName,\n args,\n ...options,\n } as unknown as WatchContractEventParameters)\n }\n },\n },\n )\n }\n }\n\n if (hasWalletClient) {\n if (hasWriteFunction)\n contract.write = new Proxy(\n {},\n {\n get(_, functionName: string) {\n return (\n ...parameters: [\n args?: readonly unknown[],\n options?: Omit<\n WriteContractParameters,\n 'abi' | 'address' | 'functionName' | 'args'\n >,\n ]\n ) => {\n const { args, options } = getFunctionParameters(parameters)\n return writeContract(walletClient, {\n abi,\n address,\n functionName,\n args,\n ...options,\n } as unknown as WriteContractParameters<\n TAbi,\n typeof functionName,\n TChain,\n TAccount\n >)\n }\n },\n },\n )\n }\n\n if (hasPublicClient || hasWalletClient)\n if (hasWriteFunction)\n contract.estimateGas = new Proxy(\n {},\n {\n get(_, functionName: string) {\n return (\n ...parameters: [\n args?: readonly unknown[],\n options?: Omit<\n EstimateContractGasParameters,\n 'abi' | 'address' | 'functionName' | 'args'\n >,\n ]\n ) => {\n const { args, options } = getFunctionParameters(parameters)\n const client = (publicClient ?? walletClient)!\n return estimateContractGas(client, {\n abi,\n address,\n functionName,\n args,\n ...options,\n account:\n (options as EstimateContractGasParameters).account ??\n (walletClient as unknown as WalletClient).account,\n } as EstimateContractGasParameters)\n }\n },\n },\n )\n contract.address = address\n contract.abi = abi\n\n return contract as unknown as GetContractReturnType<\n TAbi,\n TPublicClient,\n TWalletClient,\n TAddress\n >\n}\n\n/**\n * @internal exporting for testing only\n */\nexport function getFunctionParameters(\n values: [args?: readonly unknown[], options?: object],\n) {\n const hasArgs = values.length && Array.isArray(values[0])\n const args = hasArgs ? values[0]! : []\n const options = (hasArgs ? values[1] : values[0]) ?? {}\n return { args, options }\n}\n\n/**\n * @internal exporting for testing only\n */\nexport function getEventParameters(\n values: [args?: object | unknown[], options?: object],\n abiEvent: AbiEvent,\n) {\n let hasArgs = false\n // If first item is array, must be `args`\n if (Array.isArray(values[0])) hasArgs = true\n // Check if first item is `args` or `options`\n else if (values.length === 1) {\n // if event has indexed inputs, must have `args`\n hasArgs = abiEvent.inputs.some((x) => x.indexed)\n // If there are two items in array, must have `args`\n } else if (values.length === 2) {\n hasArgs = true\n }\n\n const args = hasArgs ? values[0]! : undefined\n const options = (hasArgs ? values[1] : values[0]) ?? {}\n return { args, options }\n}\n\ntype GetReadFunction<\n Narrowable extends boolean,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TAbiFunction extends AbiFunction = TAbi extends Abi\n ? ExtractAbiFunction\n : AbiFunction,\n Args = AbiParametersToPrimitiveTypes,\n Options = Prettify<\n Omit<\n ReadContractParameters,\n 'abi' | 'address' | 'args' | 'functionName'\n >\n >,\n> = Narrowable extends true\n ? (\n ...parameters: Args extends readonly []\n ? [options?: Options]\n : [args: Args, options?: Options]\n ) => Promise>\n : (\n ...parameters:\n | [options?: Options]\n | [args: readonly unknown[], options?: Options]\n ) => Promise\n\ntype GetEstimateFunction<\n Narrowable extends boolean,\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TAbiFunction extends AbiFunction = TAbi extends Abi\n ? ExtractAbiFunction\n : AbiFunction,\n Args = AbiParametersToPrimitiveTypes,\n Options = Prettify<\n Omit<\n EstimateContractGasParameters,\n 'abi' | 'address' | 'args' | 'functionName'\n >\n >,\n // For making `options` parameter required if `TAccount`\n IsOptionsRequired = IsUndefined,\n> = Narrowable extends true\n ? (\n ...parameters: Args extends readonly []\n ? IsOptionsRequired extends true\n ? [options: Options]\n : [options?: Options]\n : [\n args: Args,\n ...parameters: IsOptionsRequired extends true\n ? [options: Options]\n : [options?: Options],\n ]\n ) => Promise\n : (\n ...parameters:\n | (IsOptionsRequired extends true\n ? [options: Options]\n : [options?: Options])\n | [\n args: readonly unknown[],\n ...parameters: IsOptionsRequired extends true\n ? [options: Options]\n : [options?: Options],\n ]\n ) => Promise\n\ntype GetSimulateFunction<\n Narrowable extends boolean,\n TChain extends Chain | undefined,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TAbiFunction extends AbiFunction = TAbi extends Abi\n ? ExtractAbiFunction\n : AbiFunction,\n Args = AbiParametersToPrimitiveTypes,\n> = Narrowable extends true\n ? <\n TChainOverride extends Chain | undefined,\n Options extends Prettify<\n Omit<\n SimulateContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n TChainOverride\n >,\n 'abi' | 'address' | 'args' | 'functionName'\n >\n >,\n >(\n ...parameters: Args extends readonly []\n ? [options?: Options]\n : [args: Args, options?: Options]\n ) => Promise<\n SimulateContractReturnType\n >\n : <\n TChainOverride extends Chain | undefined,\n Options extends Prettify<\n Omit<\n SimulateContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n TChainOverride\n >,\n 'abi' | 'address' | 'args' | 'functionName'\n >\n >,\n >(\n ...parameters:\n | [options?: Options]\n | [args: readonly unknown[], options?: Options]\n ) => Promise\n\ntype GetWriteFunction<\n Narrowable extends boolean,\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TAbiFunction extends AbiFunction = TAbi extends Abi\n ? ExtractAbiFunction\n : AbiFunction,\n Args = AbiParametersToPrimitiveTypes,\n // For making `options` parameter required if `TAccount` or `TChain` is undefined\n IsOptionsRequired = Or<[IsUndefined, IsUndefined]>,\n> = Narrowable extends true\n ? <\n TChainOverride extends Chain | undefined,\n Options extends Prettify<\n Omit<\n WriteContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n TAccount,\n TChainOverride\n >,\n 'abi' | 'address' | 'args' | 'functionName'\n >\n >,\n >(\n ...parameters: Args extends readonly []\n ? IsOptionsRequired extends true\n ? [options: Options]\n : [options?: Options]\n : [\n args: Args,\n ...parameters: IsOptionsRequired extends true\n ? [options: Options]\n : [options?: Options],\n ]\n ) => Promise\n : <\n TChainOverride extends Chain | undefined,\n Options extends Prettify<\n Omit<\n WriteContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n TAccount,\n TChainOverride\n >,\n 'abi' | 'address' | 'args' | 'functionName'\n >\n >,\n Rest extends unknown[] = IsOptionsRequired extends true\n ? [options: Options]\n : [options?: Options],\n >(\n ...parameters: Rest | [args: readonly unknown[], ...parameters: Rest]\n ) => Promise\n\ntype GetEventFilter<\n Narrowable extends boolean,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string,\n TAbiEvent extends AbiEvent = TAbi extends Abi\n ? ExtractAbiEvent\n : AbiEvent,\n Args = AbiEventParametersToPrimitiveTypes,\n Options = Prettify<\n Omit<\n CreateContractEventFilterParameters,\n 'abi' | 'address' | 'args' | 'eventName' | 'strict'\n >\n >,\n IndexedInputs = Extract,\n> = Narrowable extends true\n ? <\n TArgs extends MaybeExtractEventArgsFromAbi | undefined,\n TStrict extends boolean | undefined = undefined,\n >(\n ...parameters: IsNever extends true\n ? [options?: Options & { strict?: TStrict }]\n : [\n args: Args | (Args extends Narrow ? Narrow : never),\n options?: Options & { strict?: TStrict },\n ]\n ) => Promise<\n CreateContractEventFilterReturnType\n >\n : (\n ...parameters:\n | [options?: Options & { strict?: TStrict }]\n | [\n args: readonly unknown[] | CreateContractFilterOptions,\n options?: Options & { strict?: TStrict },\n ]\n ) => Promise\n\ntype GetWatchEvent<\n Narrowable extends boolean,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string,\n TAbiEvent extends AbiEvent = TAbi extends Abi\n ? ExtractAbiEvent\n : AbiEvent,\n Args = AbiEventParametersToPrimitiveTypes,\n Options = Prettify<\n Omit<\n WatchContractEventParameters,\n 'abi' | 'address' | 'args' | 'eventName'\n >\n >,\n IndexedInputs = Extract,\n> = Narrowable extends true\n ? (\n ...parameters: IsNever extends true\n ? [options: Options]\n : [args: Args, options: Options]\n ) => WatchContractEventReturnType\n : (\n ...parameters:\n | [options?: Options]\n | [\n args: readonly unknown[] | WatchContractEventOptions,\n options?: Options,\n ]\n ) => WatchContractEventReturnType\n\ntype CreateContractFilterOptions =\n RemoveProperties\ntype WatchContractEventOptions = RemoveProperties\n\ntype RemoveProperties = Prettify<\n {\n [key: string]: unknown\n } & {\n [_ in keyof T]?: never\n }\n>\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { multicall3Abi } from '../../constants/abis.js'\nimport { aggregate3Signature } from '../../constants/contract.js'\nimport { BaseError } from '../../errors/base.js'\nimport {\n ChainDoesNotSupportContract,\n ClientChainNotConfiguredError,\n} from '../../errors/chain.js'\nimport { RawContractError } from '../../errors/contract.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { RpcTransactionRequest } from '../../types/rpc.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport { decodeFunctionResult } from '../../utils/abi/decodeFunctionResult.js'\nimport { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js'\nimport { getChainContractAddress } from '../../utils/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport { getCallError } from '../../utils/errors/getCallError.js'\nimport { extract } from '../../utils/formatters/extract.js'\nimport {\n type FormattedTransactionRequest,\n formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js'\nimport { assertRequest } from '../../utils/transaction/assertRequest.js'\n\nexport type FormattedCall<\n TChain extends Chain | undefined = Chain | undefined,\n> = FormattedTransactionRequest\n\nexport type CallParameters<\n TChain extends Chain | undefined = Chain | undefined,\n> = Omit, 'from'> & {\n account?: Account | Address\n batch?: boolean\n} & (\n | {\n /** The balance of the account at a block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockNumber?: never\n /**\n * The balance of the account at a block tag.\n * @default 'latest'\n */\n blockTag?: BlockTag\n }\n )\n\nexport type CallReturnType = { data: Hex | undefined }\n\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.html\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(\n client: PublicClient,\n args: CallParameters,\n): Promise {\n const {\n account: account_,\n batch = Boolean(client.batch?.multicall),\n blockNumber,\n blockTag = 'latest',\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest\n } = args\n const account = account_ ? parseAccount(account_) : undefined\n\n try {\n assertRequest(args)\n\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n const block = blockNumberHex || blockTag\n\n const format =\n client.chain?.formatters?.transactionRequest?.format ||\n formatTransactionRequest\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format }),\n from: account?.address,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n } as TransactionRequest) as TransactionRequest\n\n if (batch && shouldPerformMulticall({ request })) {\n try {\n return await scheduleMulticall(client, {\n ...request,\n blockNumber,\n blockTag,\n } as unknown as ScheduleMulticallParameters)\n } catch (err) {\n if (\n !(err instanceof ClientChainNotConfiguredError) &&\n !(err instanceof ChainDoesNotSupportContract)\n )\n throw err\n }\n }\n\n const response = await client.request({\n method: 'eth_call',\n params: block\n ? [request as Partial, block]\n : [request as Partial],\n })\n if (response === '0x') return { data: undefined }\n return { data: response }\n } catch (err) {\n const data = getRevertErrorData(err)\n const { offchainLookup, offchainLookupSignature } = await import(\n '../../utils/ccip.js'\n )\n if (data?.slice(0, 10) === offchainLookupSignature && to) {\n return { data: await offchainLookup(client, { data, to }) }\n }\n throw getCallError(err as BaseError, {\n ...args,\n account,\n chain: client.chain,\n })\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 }: { request: TransactionRequest }) {\n const { data, to, ...request_ } = request\n if (!data) return false\n if (data.startsWith(aggregate3Signature)) return false\n if (!to) return false\n if (\n Object.values(request_).filter((x) => typeof x !== 'undefined').length > 0\n )\n return false\n return true\n}\n\ntype ScheduleMulticallParameters = Pick<\n CallParameters,\n 'blockNumber' | 'blockTag'\n> & {\n data: Hex\n multicallAddress?: Address\n to: Address\n}\n\nasync function scheduleMulticall(\n client: PublicClient,\n args: ScheduleMulticallParameters,\n) {\n const { batchSize = 1024, wait = 0 } =\n typeof client.batch?.multicall === 'object' ? client.batch.multicall : {}\n const {\n blockNumber,\n blockTag = 'latest',\n data,\n multicallAddress: multicallAddress_,\n to,\n } = args\n\n let multicallAddress = multicallAddress_\n if (!multicallAddress) {\n if (!client.chain) throw new ClientChainNotConfiguredError()\n\n multicallAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n })\n }\n\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n const block = blockNumberHex || blockTag\n\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 (\n requests: {\n data: Hex\n to: Address\n }[],\n ) => {\n const calls = requests.map((request) => ({\n allowFailure: true,\n callData: request.data,\n target: request.to,\n }))\n\n const calldata = encodeFunctionData({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n })\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\n return decodeFunctionResult({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n data: data || '0x',\n })\n },\n })\n\n const [{ returnData, success }] = await schedule({ data, to })\n\n if (!success) throw new RawContractError({ data: returnData })\n if (returnData === '0x') return { data: undefined }\n return { data: returnData }\n}\n\nexport function getRevertErrorData(err: unknown) {\n if (!(err instanceof BaseError)) return undefined\n const error = err.walk() as RawContractError\n return typeof error.data === 'object' ? error.data.data : error.data\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'\n\nexport type CreateBlockFilterReturnType = Filter<'block'>\n\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types.html#filter) to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html).\n *\n * - Docs: https://viem.sh/docs/actions/public/createBlockFilter.html\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.html#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(\n client: PublicClient,\n): Promise {\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","import type { Abi, Address, Narrow } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n InferEventName,\n MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { Filter } from '../../types/filter.js'\nimport {\n type EncodeEventTopicsParameters,\n encodeEventTopics,\n} from '../../utils/abi/encodeEventTopics.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'\n\nexport type CreateContractEventFilterParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TEventName extends string | undefined = undefined,\n TArgs extends\n | MaybeExtractEventArgsFromAbi\n | undefined = undefined,\n TStrict extends boolean | undefined = undefined,\n> = {\n address?: Address | Address[]\n abi: Narrow\n eventName?: InferEventName\n fromBlock?: BlockNumber | BlockTag\n /**\n * Whether or not the logs must match the indexed/non-indexed arguments in the event ABI item.\n * @default false\n */\n strict?: TStrict\n toBlock?: BlockNumber | BlockTag\n} & (undefined extends TEventName\n ? {\n args?: never\n }\n : MaybeExtractEventArgsFromAbi<\n TAbi,\n TEventName\n > extends infer TEventFilterArgs\n ? {\n args?: TEventFilterArgs | (TArgs extends TEventFilterArgs ? TArgs : never)\n }\n : {\n args?: never\n })\n\nexport type CreateContractEventFilterReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n TEventName extends string | undefined = undefined,\n TArgs extends\n | MaybeExtractEventArgsFromAbi\n | undefined = undefined,\n TStrict extends boolean | undefined = undefined,\n> = Filter<'event', TAbi, TEventName, TArgs, TStrict>\n\n/**\n * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs.html).\n *\n * - Docs: https://viem.sh/docs/contract/createContractEventFilter.html\n *\n * @param client - Client to use\n * @param parameters - {@link CreateContractEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#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<\n TChain extends Chain | undefined,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TArgs extends MaybeExtractEventArgsFromAbi | undefined,\n TStrict extends boolean | undefined = undefined,\n>(\n client: PublicClient,\n {\n address,\n abi,\n args,\n eventName,\n fromBlock,\n strict,\n toBlock,\n }: CreateContractEventFilterParameters,\n): Promise<\n CreateContractEventFilterReturnType\n> {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n })\n\n const topics = eventName\n ? encodeEventTopics({\n abi,\n args,\n eventName,\n } as unknown as EncodeEventTopicsParameters)\n : undefined\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock:\n typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n topics,\n },\n ],\n })\n\n return {\n abi,\n args,\n eventName,\n id,\n request: getRequest(id),\n strict,\n type: 'event',\n } as unknown as CreateContractEventFilterReturnType<\n TAbi,\n TEventName,\n TArgs,\n TStrict\n >\n}\n","import type { Abi, AbiEvent, Address, Narrow } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n MaybeAbiEventName,\n MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { LogTopic } from '../../types/misc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport {\n type EncodeEventTopicsParameters,\n encodeEventTopics,\n} from '../../utils/abi/encodeEventTopics.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'\n\nexport type CreateEventFilterParameters<\n TAbiEvent extends AbiEvent | undefined = undefined,\n TStrict extends boolean | undefined = undefined,\n _Abi extends Abi | readonly unknown[] = [TAbiEvent],\n _EventName extends string | undefined = MaybeAbiEventName,\n _Args extends\n | MaybeExtractEventArgsFromAbi<_Abi, _EventName>\n | undefined = undefined,\n> = {\n address?: Address | Address[]\n fromBlock?: BlockNumber | BlockTag\n toBlock?: BlockNumber | BlockTag\n} & (MaybeExtractEventArgsFromAbi<\n _Abi,\n _EventName\n> extends infer TEventFilterArgs\n ?\n | {\n args:\n | TEventFilterArgs\n | (_Args extends TEventFilterArgs ? _Args : never)\n event: Narrow\n /**\n * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n * @default false\n */\n strict?: TStrict\n }\n | {\n args?: never\n event?: Narrow\n /**\n * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n * @default false\n */\n strict?: TStrict\n }\n | {\n args?: never\n event?: never\n strict?: never\n }\n : {\n args?: never\n event?: never\n strict?: never\n })\n\nexport type CreateEventFilterReturnType<\n TAbiEvent extends AbiEvent | undefined = undefined,\n TStrict extends boolean | undefined = undefined,\n _Abi extends Abi | readonly unknown[] = [TAbiEvent],\n _EventName extends string | undefined = MaybeAbiEventName,\n _Args extends\n | MaybeExtractEventArgsFromAbi<_Abi, _EventName>\n | undefined = undefined,\n> = Prettify>\n\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types.html#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html).\n *\n * - Docs: https://viem.sh/docs/actions/public/createEventFilter.html\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.html#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<\n TChain extends Chain | undefined,\n TAbiEvent extends AbiEvent | undefined,\n TStrict extends boolean | undefined = undefined,\n _Abi extends Abi | readonly unknown[] = [TAbiEvent],\n _EventName extends string | undefined = MaybeAbiEventName,\n _Args extends\n | MaybeExtractEventArgsFromAbi<_Abi, _EventName>\n | undefined = undefined,\n>(\n client: PublicClient,\n {\n address,\n args,\n event,\n fromBlock,\n strict,\n toBlock,\n }: CreateEventFilterParameters<\n TAbiEvent,\n TStrict,\n _Abi,\n _EventName,\n _Args\n > = {} as any,\n): Promise<\n CreateEventFilterReturnType\n> {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n })\n\n let topics: LogTopic[] = []\n if (event)\n topics = encodeEventTopics({\n abi: [event],\n eventName: (event as AbiEvent).name,\n args,\n } as EncodeEventTopicsParameters)\n\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock:\n typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n ...(topics.length ? { topics } : {}),\n },\n ],\n })\n\n return {\n abi: event ? [event] : undefined,\n args,\n eventName: event ? (event as AbiEvent).name : undefined,\n id,\n request: getRequest(id),\n strict,\n type: 'event',\n } as unknown as CreateEventFilterReturnType<\n TAbiEvent,\n TStrict,\n _Abi,\n _EventName,\n _Args\n >\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'\n\nexport type CreatePendingTransactionFilterReturnType = Filter<'transaction'>\n\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.html).\n *\n * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter.html\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.html#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<\n TTransport extends Transport,\n TChain extends Chain | undefined,\n>(\n client: PublicClient,\n): Promise {\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","import type { Abi } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BaseError } from '../../errors/base.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { ContractFunctionConfig, GetValue } from '../../types/contract.js'\nimport {\n type EncodeFunctionDataParameters,\n encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport { getContractError } from '../../utils/errors/getContractError.js'\n\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport { type EstimateGasParameters, estimateGas } from './estimateGas.js'\n\nexport type EstimateContractGasParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = string,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = undefined,\n> = ContractFunctionConfig &\n Omit, 'data' | 'to' | 'value'> &\n GetValue<\n TAbi,\n TFunctionName,\n EstimateGasParameters extends EstimateGasParameters\n ? EstimateGasParameters['value']\n : EstimateGasParameters['value']\n >\n\nexport type EstimateContractGasReturnType = bigint\n\n/**\n * Estimates the gas required to successfully execute a contract write function call.\n *\n * - Docs: https://viem.sh/docs/contract/estimateContractGas.html\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`estimateGas` action](https://viem.sh/docs/actions/public/estimateGas.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\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<\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TChain extends Chain | undefined,\n TAccount extends Account | undefined = undefined,\n>(\n client:\n | PublicClient\n | WalletClient,\n {\n abi,\n address,\n args,\n functionName,\n ...request\n }: EstimateContractGasParameters,\n): Promise {\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n } as unknown as EncodeFunctionDataParameters)\n try {\n const gas = await estimateGas(client, {\n data,\n to: address,\n ...request,\n } as unknown as EstimateGasParameters)\n return gas\n } catch (err) {\n const account = request.account ? parseAccount(request.account) : undefined\n throw getContractError(err as BaseError, {\n abi: abi as Abi,\n address,\n args,\n docsPath: '/docs/contract/simulateContract',\n functionName,\n sender: account?.address,\n })\n }\n}\n","import type { Account } from '../../accounts/types.js'\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { AccountNotFoundError } from '../../errors/account.js'\nimport type { BaseError } from '../../errors/base.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport { getEstimateGasError } from '../../utils/errors/getEstimateGasError.js'\nimport { extract } from '../../utils/formatters/extract.js'\nimport {\n type FormattedTransactionRequest,\n formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport { assertRequest } from '../../utils/transaction/assertRequest.js'\nimport { prepareRequest } from '../../utils/transaction/prepareRequest.js'\n\nexport type FormattedEstimateGas<\n TChain extends Chain | undefined = Chain | undefined,\n> = FormattedTransactionRequest\n\nexport type EstimateGasParameters<\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = undefined,\n> = Omit, 'from'> &\n GetAccountParameter &\n (\n | {\n /** The balance of the account at a block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockNumber?: never\n /**\n * The balance of the account at a block tag.\n * @default 'latest'\n */\n blockTag?: BlockTag\n }\n )\n\nexport type EstimateGasReturnType = bigint\n\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.html\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<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined = undefined,\n>(\n client:\n | PublicClient\n | WalletClient,\n args: EstimateGasParameters,\n): Promise {\n const account_ = args.account ?? (client as unknown as WalletClient).account\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/public/estimateGas',\n })\n const account = parseAccount(account_)\n\n try {\n const {\n accessList,\n blockNumber,\n blockTag,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest\n } = account.type === 'local' ? await prepareRequest(client, args) : args\n\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n const block = blockNumberHex || blockTag\n\n assertRequest(args)\n\n const format =\n client.chain?.formatters?.transactionRequest?.format ||\n formatTransactionRequest\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format }),\n from: account.address,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n } as TransactionRequest)\n\n const balance = await (client as PublicClient).request({\n method: 'eth_estimateGas',\n params: block ? [request, block] : [request],\n })\n return BigInt(balance)\n } catch (err) {\n throw getEstimateGasError(err as BaseError, {\n ...args,\n account,\n chain: client.chain,\n })\n }\n}\n","import type { Address } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type GetBalanceParameters = {\n /** The address of the account. */\n address: Address\n} & (\n | {\n /** The balance of the account at a block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockNumber?: never\n /** The balance of the account at a block tag. */\n blockTag?: BlockTag\n }\n)\n\nexport type GetBalanceReturnType = bigint\n\n/**\n * Returns the balance of an address in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBalance.html\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.html).\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(\n client: PublicClient,\n { address, blockNumber, blockTag = 'latest' }: GetBalanceParameters,\n): Promise {\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n\n const balance = await client.request({\n method: 'eth_getBalance',\n params: [address, blockNumberHex || blockTag],\n })\n return BigInt(balance)\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { BlockNotFoundError } from '../../errors/block.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { RpcBlock } from '../../types/rpc.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport {\n type FormattedBlock,\n formatBlock,\n} from '../../utils/formatters/block.js'\n\nexport type GetBlockParameters = {\n /** Whether or not to include transaction data in the response. */\n includeTransactions?: boolean\n} & (\n | {\n /** Hash of the block. */\n blockHash?: Hash\n blockNumber?: never\n blockTag?: never\n }\n | {\n blockHash?: never\n /** The block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockHash?: never\n blockNumber?: never\n /**\n * The block tag.\n * @default 'latest'\n */\n blockTag?: BlockTag\n }\n)\n\nexport type GetBlockReturnType<\n TChain extends Chain | undefined = Chain | undefined,\n> = FormattedBlock\n\n/**\n * Returns information about a block at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlock.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n>(\n client:\n | PublicClient\n | WalletClient,\n {\n blockHash,\n blockNumber,\n blockTag = 'latest',\n includeTransactions = false,\n }: GetBlockParameters = {},\n): Promise> {\n const blockNumberHex =\n blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n let block: RpcBlock | null = null\n if (blockHash) {\n block = await (client as PublicClient).request({\n method: 'eth_getBlockByHash',\n params: [blockHash, includeTransactions],\n })\n } else {\n block = await (client as PublicClient).request({\n method: 'eth_getBlockByNumber',\n params: [blockNumberHex || blockTag, includeTransactions],\n })\n }\n\n if (!block) throw new BlockNotFoundError({ blockHash, blockNumber })\n\n const format = client.chain?.formatters?.block?.format || formatBlock\n return format(block)\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { getCache, withCache } from '../../utils/promise/withCache.js'\n\nexport type GetBlockNumberParameters = {\n /** The maximum age (in ms) of the cached value. */\n maxAge?: number\n}\n\nexport type GetBlockNumberReturnType = bigint\n\nconst cacheKey = (id: string) => `blockNumber.${id}`\n\nexport function getBlockNumberCache(id: string) {\n return getCache(cacheKey(id))\n}\n\n/**\n * Returns the number of the most recent block seen.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockNumber.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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(\n client: PublicClient,\n { maxAge = client.pollingInterval }: GetBlockNumberParameters = {},\n): Promise {\n const blockNumberHex = await withCache(\n () =>\n client.request({\n method: 'eth_blockNumber',\n }),\n { cacheKey: cacheKey(client.uid), maxAge },\n )\n return BigInt(blockNumberHex)\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { Quantity } from '../../types/rpc.js'\nimport { hexToNumber } from '../../utils/encoding/fromHex.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type GetBlockTransactionCountParameters =\n | {\n /** Hash of the block. */\n blockHash?: Hash\n blockNumber?: never\n blockTag?: never\n }\n | {\n blockHash?: never\n /** The block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockHash?: never\n blockNumber?: never\n /** The block tag. Defaults to 'latest'. */\n blockTag?: BlockTag\n }\n\nexport type GetBlockTransactionCountReturnType = number\n\n/**\n * Returns the number of Transactions at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount.html\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<\n TChain extends Chain | undefined,\n>(\n client: PublicClient,\n {\n blockHash,\n blockNumber,\n blockTag = 'latest',\n }: GetBlockTransactionCountParameters = {},\n): Promise {\n const blockNumberHex =\n blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n let count: Quantity\n if (blockHash) {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByHash',\n params: [blockHash],\n })\n } else {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByNumber',\n params: [blockNumberHex || blockTag],\n })\n }\n\n return hexToNumber(count)\n}\n","import type { Address } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type GetBytecodeParameters = {\n address: Address\n} & (\n | {\n blockNumber?: never\n blockTag?: BlockTag\n }\n | {\n blockNumber?: bigint\n blockTag?: never\n }\n)\n\nexport type GetBytecodeReturnType = Hex | undefined\n\n/**\n * Retrieves the bytecode at an address.\n *\n * - Docs: https://viem.sh/docs/contract/getBytecode.html\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 GetBytecodeParameters}\n * @returns The contract's bytecode. {@link GetBytecodeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBytecode } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getBytecode(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * })\n */\nexport async function getBytecode(\n client: PublicClient,\n { address, blockNumber, blockTag = 'latest' }: GetBytecodeParameters,\n): Promise {\n const blockNumberHex =\n blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n const hex = await client.request({\n method: 'eth_getCode',\n params: [address, blockNumberHex || blockTag],\n })\n if (hex === '0x') return undefined\n return hex\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { hexToNumber } from '../../utils/encoding/fromHex.js'\n\nexport type GetChainIdReturnType = number\n\n/**\n * Returns the chain ID associated with the current network.\n *\n * - Docs: https://viem.sh/docs/actions/public/getChainId.html\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<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n>(\n client:\n | PublicClient\n | WalletClient,\n): Promise {\n const chainIdHex = await (client as PublicClient).request({\n method: 'eth_chainId',\n })\n return hexToNumber(chainIdHex)\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { FeeHistory } from '../../types/fee.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport { formatFeeHistory } from '../../utils/formatters/feeHistory.js'\n\nexport type GetFeeHistoryParameters = {\n /**\n * Number of blocks in the requested range. Between 1 and 1024 blocks can be requested in a single query. Less than requested may be returned if not all blocks are available.\n */\n blockCount: number\n /**\n * A monotonically increasing list of percentile values to sample from each block's effective priority fees per gas in ascending order, weighted by gas used.\n */\n rewardPercentiles: number[]\n} & (\n | {\n blockNumber?: never\n /**\n * Highest number block of the requested range.\n * @default 'latest'\n */\n blockTag?: BlockTag\n }\n | {\n /** Highest number block of the requested range. */\n blockNumber?: bigint\n blockTag?: never\n }\n)\nexport type GetFeeHistoryReturnType = FeeHistory\n\n/**\n * Returns a collection of historical gas information.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFeeHistory.html\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(\n client: PublicClient,\n {\n blockCount,\n blockNumber,\n blockTag = 'latest',\n rewardPercentiles,\n }: GetFeeHistoryParameters,\n): Promise {\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 })\n return formatFeeHistory(feeHistory)\n}\n","import type { Abi, AbiEvent, ExtractAbiEvent } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n DecodeLogDataMismatch,\n DecodeLogTopicsMismatch,\n} from '../../errors/abi.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter, FilterType } from '../../types/filter.js'\nimport type { Log } from '../../types/log.js'\nimport type { Hash } from '../../types/misc.js'\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js'\nimport { formatLog } from '../../utils/formatters/log.js'\n\nexport type GetFilterChangesParameters<\n TFilterType extends FilterType = FilterType,\n TAbi extends Abi | readonly unknown[] = Abi,\n TEventName extends string | undefined = string,\n TStrict extends boolean | undefined = undefined,\n> = {\n filter: Filter\n}\n\nexport type GetFilterChangesReturnType<\n TFilterType extends FilterType = FilterType,\n TAbi extends Abi | readonly unknown[] = Abi,\n TEventName extends string | undefined = string,\n TStrict extends boolean | undefined = undefined,\n _AbiEvent extends AbiEvent | undefined = TAbi extends Abi\n ? TEventName extends string\n ? ExtractAbiEvent\n : undefined\n : undefined,\n> = TFilterType extends 'event'\n ? Log[]\n : Hash[]\n\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.html\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.html)\n * - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter.html)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter.html)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter.html)\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<\n TTransport extends Transport,\n TChain extends Chain | undefined,\n TFilterType extends FilterType,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TStrict extends boolean | undefined = undefined,\n>(\n _client: PublicClient,\n {\n filter,\n }: GetFilterChangesParameters,\n) {\n const strict = 'strict' in filter && filter.strict\n\n const logs = await filter.request({\n method: 'eth_getFilterChanges',\n params: [filter.id],\n })\n return logs\n .map((log) => {\n if (typeof log === 'string') return log\n try {\n const { eventName, args } =\n 'abi' in filter && filter.abi\n ? decodeEventLog({\n abi: filter.abi,\n data: log.data,\n topics: log.topics as any,\n strict,\n })\n : { eventName: undefined, args: undefined }\n return formatLog(log, { args, eventName })\n } catch (err) {\n let eventName\n let isUnnamed\n if (\n err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch\n ) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if ('strict' in filter && filter.strict) return\n eventName = err.abiItem.name\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name))\n }\n\n // Set args undefined if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n return formatLog(log, { args: isUnnamed ? [] : {}, eventName })\n }\n })\n .filter(Boolean) as GetFilterChangesReturnType<\n TFilterType,\n TAbi,\n TEventName,\n TStrict\n >\n}\n","import type { Abi, AbiEvent, ExtractAbiEvent } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n DecodeLogDataMismatch,\n DecodeLogTopicsMismatch,\n} from '../../errors/abi.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Log } from '../../types/log.js'\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js'\nimport { formatLog } from '../../utils/formatters/log.js'\n\nexport type GetFilterLogsParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TEventName extends string | undefined = string,\n TStrict extends boolean | undefined = undefined,\n> = {\n filter: Filter<'event', TAbi, TEventName, any, TStrict>\n}\nexport type GetFilterLogsReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n TEventName extends string | undefined = string,\n TStrict extends boolean | undefined = undefined,\n _AbiEvent extends AbiEvent | undefined = TAbi extends Abi\n ? TEventName extends string\n ? ExtractAbiEvent\n : undefined\n : undefined,\n> = Log[]\n\n/**\n * Returns a list of event logs since the filter was created.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterLogs.html\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<\n TChain extends Chain | undefined,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TStrict extends boolean | undefined = undefined,\n>(\n _client: PublicClient,\n { filter }: GetFilterLogsParameters,\n): Promise> {\n const strict = filter.strict ?? false\n\n const logs = await filter.request({\n method: 'eth_getFilterLogs',\n params: [filter.id],\n })\n return logs\n .map((log) => {\n try {\n const { eventName, args } =\n 'abi' in filter && filter.abi\n ? decodeEventLog({\n abi: filter.abi,\n data: log.data,\n topics: log.topics as any,\n strict,\n })\n : { eventName: undefined, args: undefined }\n return formatLog(log, { args, eventName })\n } catch (err) {\n let eventName\n let isUnnamed\n if (\n err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch\n ) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if ('strict' in filter && filter.strict) return\n eventName = err.abiItem.name\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name))\n }\n\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n return formatLog(log, { args: isUnnamed ? [] : {}, eventName })\n }\n })\n .filter(Boolean) as unknown as GetFilterLogsReturnType<\n TAbi,\n TEventName,\n TStrict\n >\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type GetGasPriceReturnType = bigint\n\n/**\n * Returns the current price of gas (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/public/getGasPrice.html\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<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n>(\n client:\n | PublicClient\n | WalletClient,\n): Promise {\n const gasPrice = await (client as PublicClient).request({\n method: 'eth_gasPrice',\n })\n return BigInt(gasPrice)\n}\n","import type { AbiEvent, Address, Narrow } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n DecodeLogDataMismatch,\n DecodeLogTopicsMismatch,\n} from '../../errors/abi.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n MaybeAbiEventName,\n MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { Log } from '../../types/log.js'\nimport type { Hash, LogTopic } from '../../types/misc.js'\nimport type { RpcLog } from '../../types/rpc.js'\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js'\nimport {\n type EncodeEventTopicsParameters,\n encodeEventTopics,\n} from '../../utils/abi/encodeEventTopics.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport { formatLog } from '../../utils/formatters/log.js'\n\nexport type GetLogsParameters<\n TAbiEvent extends AbiEvent | undefined = undefined,\n TStrict extends boolean | undefined = undefined,\n _EventName extends string | undefined = MaybeAbiEventName,\n> = {\n /** Address or list of addresses from which logs originated */\n address?: Address | Address[]\n} & (\n | {\n event: Narrow\n args?: MaybeExtractEventArgsFromAbi<[TAbiEvent], _EventName>\n /**\n * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n * @default false\n */\n strict?: TStrict\n }\n | {\n event?: never\n args?: never\n strict?: never\n }\n) &\n (\n | {\n /** Block number or tag after which to include logs */\n fromBlock?: BlockNumber | BlockTag\n /** Block number or tag before which to include logs */\n toBlock?: BlockNumber | BlockTag\n blockHash?: never\n }\n | {\n fromBlock?: never\n toBlock?: never\n /** Hash of block to include logs from */\n blockHash?: Hash\n }\n )\n\nexport type GetLogsReturnType<\n TAbiEvent extends AbiEvent | undefined = undefined,\n TStrict extends boolean | undefined = undefined,\n _EventName extends string | undefined = MaybeAbiEventName,\n> = Log[]\n\n/**\n * Returns a list of event logs matching the provided parameters.\n *\n * - Docs: https://viem.sh/docs/actions/public/getLogs.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/filters-and-logs/event-logs\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetLogsParameters}\n * @returns A list of event logs. {@link GetLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getLogs(client)\n */\nexport async function getLogs<\n TChain extends Chain | undefined,\n TAbiEvent extends AbiEvent | undefined,\n TStrict extends boolean | undefined = undefined,\n>(\n client: PublicClient,\n {\n address,\n blockHash,\n fromBlock,\n toBlock,\n event,\n args,\n strict: strict_,\n }: GetLogsParameters = {},\n): Promise> {\n const strict = strict_ ?? false\n\n let topics: LogTopic[] = []\n if (event)\n topics = encodeEventTopics({\n abi: [event],\n eventName: (event as AbiEvent).name,\n args,\n } as EncodeEventTopicsParameters)\n\n let logs: RpcLog[]\n if (blockHash) {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [{ address, topics, blockHash }],\n })\n } else {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [\n {\n address,\n topics,\n fromBlock:\n typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n },\n ],\n })\n }\n\n return logs\n .map((log) => {\n try {\n const { eventName, args } = event\n ? decodeEventLog({\n abi: [event] as [AbiEvent],\n data: log.data,\n topics: log.topics as any,\n strict,\n })\n : { eventName: undefined, args: undefined }\n return formatLog(log, { args, eventName })\n } catch (err) {\n let eventName\n let isUnnamed\n if (\n err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch\n ) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict) return\n eventName = err.abiItem.name\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name))\n }\n\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n return formatLog(log, { args: isUnnamed ? [] : {}, eventName })\n }\n })\n .filter(Boolean) as unknown as GetLogsReturnType\n}\n","import type { Address } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type GetStorageAtParameters = {\n address: Address\n slot: Hex\n} & (\n | {\n blockNumber?: never\n blockTag?: BlockTag\n }\n | {\n blockNumber?: bigint\n blockTag?: never\n }\n)\n\nexport type GetStorageAtReturnType = Hex | undefined\n\n/**\n * Returns the value from a storage slot at a given address.\n *\n * - Docs: https://viem.sh/docs/contract/getStorageAt.html\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(\n client: PublicClient,\n { address, blockNumber, blockTag = 'latest', slot }: GetStorageAtParameters,\n): Promise {\n const blockNumberHex =\n 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","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { TransactionNotFoundError } from '../../errors/transaction.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { RpcTransaction } from '../../types/rpc.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport {\n type FormattedTransaction,\n formatTransaction,\n} from '../../utils/formatters/transaction.js'\n\nexport type GetTransactionParameters =\n | {\n /** The block hash */\n blockHash: Hash\n blockNumber?: never\n blockTag?: never\n hash?: never\n /** The index of the transaction on the block. */\n index: number\n }\n | {\n blockHash?: never\n /** The block number */\n blockNumber: bigint\n blockTag?: never\n hash?: never\n /** The index of the transaction on the block. */\n index: number\n }\n | {\n blockHash?: never\n blockNumber?: never\n /** The block tag. */\n blockTag: BlockTag\n hash?: never\n /** The index of the transaction on the block. */\n index: number\n }\n | {\n blockHash?: never\n blockNumber?: never\n blockTag?: never\n /** The hash of the transaction. */\n hash: Hash\n index?: number\n }\n\nexport type GetTransactionReturnType =\n FormattedTransaction\n\n/**\n * Returns information about a [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) given a hash or block identifier.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransaction.html\n * - Example: https://stackblitz.com/github/wagmi-dev/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(\n client: PublicClient,\n {\n blockHash,\n blockNumber,\n blockTag = 'latest',\n hash,\n index,\n }: GetTransactionParameters,\n): Promise> {\n const blockNumberHex =\n blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n let transaction: RpcTransaction | null = null\n if (hash) {\n transaction = await client.request({\n method: 'eth_getTransactionByHash',\n params: [hash],\n })\n } else if (blockHash) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockHashAndIndex',\n params: [blockHash, numberToHex(index)],\n })\n } else if (blockNumberHex || blockTag) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockNumberAndIndex',\n params: [blockNumberHex || blockTag, numberToHex(index)],\n })\n }\n\n if (!transaction)\n throw new TransactionNotFoundError({\n blockHash,\n blockNumber,\n blockTag,\n hash,\n index,\n })\n\n const format =\n client.chain?.formatters?.transaction?.format || formatTransaction\n return format(transaction)\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { FormattedTransactionReceipt } from '../../utils/formatters/transactionReceipt.js'\n\nimport { getBlockNumber } from './getBlockNumber.js'\nimport { getTransaction } from './getTransaction.js'\n\nexport type GetTransactionConfirmationsParameters<\n TChain extends Chain | undefined = Chain,\n> =\n | {\n /** The transaction hash. */\n hash: Hash\n transactionReceipt?: never\n }\n | {\n hash?: never\n /** The transaction receipt. */\n transactionReceipt: FormattedTransactionReceipt\n }\n\nexport type GetTransactionConfirmationsReturnType = bigint\n\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.html\n * - Example: https://stackblitz.com/github/wagmi-dev/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<\n TChain extends Chain | undefined,\n>(\n client: PublicClient,\n { hash, transactionReceipt }: GetTransactionConfirmationsParameters,\n): Promise {\n const [blockNumber, transaction] = await Promise.all([\n getBlockNumber(client),\n hash ? getTransaction(client, { hash }) : undefined,\n ])\n const transactionBlockNumber =\n transactionReceipt?.blockNumber || transaction?.blockNumber\n if (!transactionBlockNumber) return 0n\n return blockNumber - transactionBlockNumber! + 1n\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport { hexToNumber } from '../../utils/encoding/fromHex.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type GetTransactionCountParameters = {\n /** The account address. */\n address: Address\n} & (\n | {\n /** The block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockNumber?: never\n /** The block tag. Defaults to 'latest'. */\n blockTag?: BlockTag\n }\n)\nexport type GetTransactionCountReturnType = number\n\n/**\n * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms.html#transaction) an Account has broadcast / sent.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionCount.html\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<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n>(\n client:\n | PublicClient\n | WalletClient,\n { address, blockTag = 'latest', blockNumber }: GetTransactionCountParameters,\n): Promise {\n const count = await (client as PublicClient).request({\n method: 'eth_getTransactionCount',\n params: [address, blockNumber ? numberToHex(blockNumber) : blockTag],\n })\n return hexToNumber(count)\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { TransactionReceiptNotFoundError } from '../../errors/transaction.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport {\n type FormattedTransactionReceipt,\n formatTransactionReceipt,\n} from '../../utils/formatters/transactionReceipt.js'\n\nexport type GetTransactionReceiptParameters = {\n /** The hash of the transaction. */\n hash: Hash\n}\n\nexport type GetTransactionReceiptReturnType<\n TChain extends Chain | undefined = Chain | undefined,\n> = FormattedTransactionReceipt\n\n/**\n * Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms.html#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt.html\n * - Example: https://stackblitz.com/github/wagmi-dev/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(\n client: PublicClient,\n { hash }: GetTransactionReceiptParameters,\n) {\n const receipt = await client.request({\n method: 'eth_getTransactionReceipt',\n params: [hash],\n })\n\n if (!receipt) throw new TransactionReceiptNotFoundError({ hash })\n\n const format =\n client.chain?.formatters?.transactionReceipt?.format ||\n formatTransactionReceipt\n return format(receipt) as GetTransactionReceiptReturnType\n}\n","import type { Address, Narrow } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { multicall3Abi } from '../../constants/abis.js'\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js'\nimport type { BaseError } from '../../errors/base.js'\nimport { RawContractError } from '../../errors/contract.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { ContractFunctionConfig } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type {\n MulticallContracts,\n MulticallResults,\n} from '../../types/multicall.js'\nimport { decodeFunctionResult } from '../../utils/abi/decodeFunctionResult.js'\nimport {\n type EncodeFunctionDataParameters,\n encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport { getChainContractAddress } from '../../utils/chain.js'\nimport { getContractError } from '../../utils/errors/getContractError.js'\n\nimport type { CallParameters } from './call.js'\nimport { readContract } from './readContract.js'\n\nexport type MulticallParameters<\n TContracts extends ContractFunctionConfig[] = ContractFunctionConfig[],\n TAllowFailure extends boolean = true,\n> = Pick & {\n allowFailure?: TAllowFailure\n /** The maximum size (in bytes) for each calldata chunk. Set to `0` to disable the size limit. @default 1_024 */\n batchSize?: number\n contracts: Narrow]>\n multicallAddress?: Address\n}\n\nexport type MulticallReturnType<\n TContracts extends ContractFunctionConfig[] = ContractFunctionConfig[],\n TAllowFailure extends boolean = true,\n> = MulticallResults\n\n/**\n * Similar to [`readContract`](https://viem.sh/docs/contract/readContract.html), 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.html\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<\n TChain extends Chain | undefined,\n TContracts extends ContractFunctionConfig[],\n TAllowFailure extends boolean = true,\n>(\n client: PublicClient,\n args: MulticallParameters,\n): Promise> {\n const {\n allowFailure = true,\n batchSize: batchSize_,\n blockNumber,\n blockTag,\n contracts: contracts_,\n multicallAddress: multicallAddress_,\n } = args\n\n const batchSize =\n batchSize_ ??\n ((typeof client.batch?.multicall === 'object' &&\n client.batch.multicall.batchSize) ||\n 1_024)\n\n // Fix type cast from `Narrow` in type definition.\n const contracts = contracts_ as readonly [...MulticallContracts]\n\n let multicallAddress = multicallAddress_\n if (!multicallAddress) {\n if (!client.chain)\n throw new Error(\n 'client chain not configured. multicallAddress is required.',\n )\n\n multicallAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n })\n }\n\n type Aggregate3Calls = {\n allowFailure: boolean\n callData: Hex\n target: Address\n }[]\n\n const chunkedCalls: Aggregate3Calls[] = [[]]\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({\n abi,\n args,\n functionName,\n } as unknown as EncodeFunctionDataParameters)\n\n currentChunkSize += callData.length\n if (batchSize > 0 && currentChunkSize > batchSize) {\n currentChunk++\n currentChunkSize = (callData.length - 2) / 2\n chunkedCalls[currentChunk] = []\n }\n\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData,\n target: address,\n },\n ]\n } catch (err) {\n const error = getContractError(err as BaseError, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n })\n if (!allowFailure) throw error\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData: '0x' as Hex,\n target: address,\n },\n ]\n }\n }\n\n const results = await Promise.all(\n chunkedCalls.map((calls) =>\n readContract(client, {\n abi: multicall3Abi,\n address: multicallAddress!,\n args: [calls],\n blockNumber,\n blockTag,\n functionName: 'aggregate3',\n }),\n ),\n )\n\n return results.flat().map(({ returnData, success }, i) => {\n const calls = chunkedCalls.flat()\n const { callData } = calls[i]\n const { abi, address, functionName, args } = contracts[i]\n try {\n if (callData === '0x') throw new AbiDecodingZeroDataError()\n if (!success) throw new RawContractError({ data: returnData })\n const result = decodeFunctionResult({\n abi,\n data: returnData,\n functionName: functionName,\n })\n return allowFailure ? { result, status: 'success' } : result\n } catch (err) {\n const error = getContractError(err as BaseError, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n })\n if (!allowFailure) throw error\n return { error, result: undefined, status: 'failure' }\n }\n }) as MulticallResults\n}\n","import type { Abi } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BaseError } from '../../errors/base.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n ContractFunctionConfig,\n ContractFunctionResult,\n} from '../../types/contract.js'\nimport {\n type DecodeFunctionResultParameters,\n decodeFunctionResult,\n} from '../../utils/abi/decodeFunctionResult.js'\nimport {\n type EncodeFunctionDataParameters,\n encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport { getContractError } from '../../utils/errors/getContractError.js'\n\nimport { type CallParameters, call } from './call.js'\n\nexport type ReadContractParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = string,\n> = Pick &\n ContractFunctionConfig\n\nexport type ReadContractReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = string,\n> = ContractFunctionResult\n\n/**\n * Calls a read-only function on a contract, and returns the response.\n *\n * - Docs: https://viem.sh/docs/contract/readContract.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\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<\n TChain extends Chain | undefined,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n>(\n client: PublicClient,\n {\n abi,\n address,\n args,\n functionName,\n ...callRequest\n }: ReadContractParameters,\n): Promise> {\n const calldata = encodeFunctionData({\n abi,\n args,\n functionName,\n } as unknown as EncodeFunctionDataParameters)\n try {\n const { data } = await call(client, {\n data: calldata,\n to: address,\n ...callRequest,\n } as unknown as CallParameters)\n return decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n } as DecodeFunctionResultParameters<\n TAbi,\n TFunctionName\n >) as ReadContractReturnType\n } catch (err) {\n throw getContractError(err as BaseError, {\n abi: abi as Abi,\n address,\n args,\n docsPath: '/docs/contract/readContract',\n functionName,\n })\n }\n}\n","import type { Abi } from 'abitype'\n\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BaseError } from '../../errors/base.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n ContractFunctionConfig,\n ContractFunctionResult,\n GetValue,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport {\n type DecodeFunctionResultParameters,\n decodeFunctionResult,\n} from '../../utils/abi/decodeFunctionResult.js'\nimport {\n type EncodeFunctionDataParameters,\n encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport { getContractError } from '../../utils/errors/getContractError.js'\nimport type { WriteContractParameters } from '../wallet/writeContract.js'\n\nimport { type CallParameters, call } from './call.js'\n\nexport type SimulateContractParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = any,\n TChain extends Chain | undefined = Chain | undefined,\n TChainOverride extends Chain | undefined = undefined,\n> = {\n chain?: TChainOverride\n /** Data to append to the end of the calldata. Useful for adding a [\"domain\" tag](https://opensea.notion.site/opensea/Seaport-Order-Attributions-ec2d69bf455041a5baa490941aad307f). */\n dataSuffix?: Hex\n} & ContractFunctionConfig &\n Omit<\n CallParameters,\n 'batch' | 'to' | 'data' | 'value'\n > &\n GetValue<\n TAbi,\n TFunctionName,\n CallParameters extends CallParameters\n ? CallParameters['value']\n : CallParameters['value']\n >\n\nexport type SimulateContractReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = string,\n TChain extends Chain | undefined = Chain | undefined,\n TChainOverride extends Chain | undefined = undefined,\n> = {\n result: ContractFunctionResult\n request: Omit<\n WriteContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n undefined,\n TChainOverride\n >,\n 'chain' | 'functionName'\n > & {\n chain: TChainOverride\n functionName: TFunctionName\n } & ContractFunctionConfig\n}\n\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.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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.html), but also supports contract write functions.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\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<\n TChain extends Chain | undefined,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TChainOverride extends Chain | undefined,\n>(\n client: PublicClient,\n {\n abi,\n address,\n args,\n dataSuffix,\n functionName,\n ...callRequest\n }: SimulateContractParameters,\n): Promise<\n SimulateContractReturnType\n> {\n const account = callRequest.account\n ? parseAccount(callRequest.account)\n : undefined\n const calldata = encodeFunctionData({\n abi,\n args,\n functionName,\n } as unknown as EncodeFunctionDataParameters)\n try {\n const { data } = await call(client, {\n batch: false,\n data: `${calldata}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...callRequest,\n } as unknown as CallParameters)\n const result = decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n } as DecodeFunctionResultParameters)\n return {\n result,\n request: {\n abi,\n address,\n args,\n functionName,\n ...callRequest,\n },\n } as unknown as SimulateContractReturnType<\n TAbi,\n TFunctionName,\n TChain,\n TChainOverride\n >\n } catch (err) {\n throw getContractError(err as BaseError, {\n abi: abi as Abi,\n address,\n args,\n docsPath: '/docs/contract/simulateContract',\n functionName,\n sender: account?.address,\n })\n }\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\n\nexport type UninstallFilterParameters = {\n filter: Filter\n}\nexport type UninstallFilterReturnType = boolean\n\n/**\n * Destroys a [`Filter`](https://viem.sh/docs/glossary/types.html#filter).\n *\n * - Docs: https://viem.sh/docs/actions/public/uninstallFilter.html\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.html)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter.html)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter.html)\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<\n TTransport extends Transport,\n TChain extends Chain | undefined,\n>(\n _client: PublicClient,\n { filter }: UninstallFilterParameters,\n): Promise {\n return filter.request({\n method: 'eth_uninstallFilter',\n params: [filter.id],\n })\n}\n","import type { Address } from 'abitype'\n\nimport type { Chain } from '../../chains/index.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { universalSignatureValidatorAbi } from '../../constants/abis.js'\nimport { universalSignatureValidatorByteCode } from '../../constants/contracts.js'\nimport { CallExecutionError } from '../../errors/contract.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { isBytesEqual } from '../../utils/data/isBytesEqual.js'\nimport { encodeDeployData, isHex, toHex } from '../../utils/index.js'\nimport { type CallParameters, call } from './call.js'\n\nexport type VerifyHashParameters = Pick<\n CallParameters,\n 'blockNumber' | 'blockTag'\n> & {\n /** The address that signed the original message. */\n address: Address\n /** The hash to be verified. */\n hash: Hex\n /** The signature that was generated by signing the message with the address's private key. */\n signature: Hex | ByteArray\n}\n\nexport type VerifyHashReturnType = boolean\n\n/**\n * Verifies a message hash on chain 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(\n client: PublicClient,\n { address, hash, signature, ...callRequest }: VerifyHashParameters,\n): Promise {\n const signatureHex = isHex(signature) ? signature : toHex(signature)\n\n try {\n const { data } = await call(client, {\n data: encodeDeployData({\n abi: universalSignatureValidatorAbi,\n args: [address, hash, signatureHex],\n bytecode: universalSignatureValidatorByteCode,\n }),\n ...callRequest,\n } as unknown as CallParameters)\n\n return isBytesEqual(data ?? '0x0', '0x1')\n } catch (error) {\n if (error instanceof CallExecutionError) {\n // if the execution fails, the signature was not valid and an internal method inside of the validator reverted\n // this can happen for many reasons, for example if signer can not be recovered from the signature\n // or if the signature has no valid format\n return false\n }\n\n throw error\n }\n}\n","import type { Chain } from '../../chains/index.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ByteArray, Hex, SignableMessage } from '../../types/misc.js'\nimport { hashMessage } from '../../utils/index.js'\nimport { type VerifyHashParameters, verifyHash } from './verifyHash.js'\nimport type { Address } from 'abitype'\n\nexport type VerifyMessageParameters = Omit & {\n /** The address that signed the original message. */\n address: Address\n /** The message to be verified. */\n message: SignableMessage\n /** The signature that was generated by signing the message with the address's private key. */\n signature: Hex | ByteArray\n}\n\nexport type VerifyMessageReturnType = boolean\n\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.html}\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(\n client: PublicClient,\n { address, message, signature, ...callRequest }: VerifyMessageParameters,\n): Promise {\n const hash = hashMessage(message)\n return verifyHash(client, {\n address,\n hash,\n signature,\n ...callRequest,\n })\n}\n","import type { Chain } from '../../chains/index.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\nimport { hashTypedData } from '../../utils/index.js'\nimport { type VerifyHashParameters, verifyHash } from './verifyHash.js'\nimport type { Address, TypedData } from 'abitype'\n\nexport type VerifyTypedDataParameters<\n TTypedData extends TypedData | { [key: string]: unknown } = TypedData,\n TPrimaryType extends string = string,\n> = Omit &\n TypedDataDefinition & {\n /** The address to verify the typed data for. */\n address: Address\n /** The signature to verify */\n signature: Hex | ByteArray\n }\n\nexport type VerifyTypedDataReturnType = boolean\n\n/**\n * Verify that typed data was signed by the provided address.\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyTypedData.html}\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(\n client: PublicClient,\n {\n address,\n signature,\n message,\n primaryType,\n types,\n domain,\n ...callRequest\n }: VerifyTypedDataParameters,\n): Promise {\n const hash = hashTypedData({ message, primaryType, types, domain })\n return verifyHash(client, {\n address,\n hash,\n signature,\n ...callRequest,\n })\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n TransactionNotFoundError,\n TransactionReceiptNotFoundError,\n WaitForTransactionReceiptTimeoutError,\n} from '../../errors/transaction.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { Transaction } from '../../types/transaction.js'\nimport { observe } from '../../utils/observe.js'\nimport { withRetry } from '../../utils/promise/withRetry.js'\nimport { stringify } from '../../utils/stringify.js'\n\nimport { getBlock } from './getBlock.js'\nimport {\n type GetTransactionReturnType,\n getTransaction,\n} from './getTransaction.js'\nimport {\n type GetTransactionReceiptReturnType,\n getTransactionReceipt,\n} from './getTransactionReceipt.js'\nimport { watchBlockNumber } from './watchBlockNumber.js'\n\nexport type ReplacementReason = 'cancelled' | 'replaced' | 'repriced'\nexport type ReplacementReturnType<\n TChain extends Chain | undefined = Chain | undefined,\n> = {\n reason: ReplacementReason\n replacedTransaction: Transaction\n transaction: Transaction\n transactionReceipt: GetTransactionReceiptReturnType\n}\n\nexport type WaitForTransactionReceiptReturnType<\n TChain extends Chain | undefined = Chain | undefined,\n> = GetTransactionReceiptReturnType\n\nexport type WaitForTransactionReceiptParameters<\n TChain extends Chain | undefined = Chain | undefined,\n> = {\n /**\n * The number of confirmations (blocks that have passed) to wait before resolving.\n * @default 1\n */\n confirmations?: number\n /** The hash of the transaction. */\n hash: Hash\n /** Optional callback to emit if the transaction has been replaced. */\n onReplaced?: (response: ReplacementReturnType) => void\n /**\n * Polling frequency (in ms). Defaults to the client's pollingInterval config.\n * @default client.pollingInterval\n */\n pollingInterval?: number\n /** Optional timeout (in milliseconds) to wait before stopping polling. */\n timeout?: number\n}\n\n/**\n * Waits for the [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms.html#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms.html#transaction-receipt). If the Transaction reverts, then the action will throw an error.\n *\n * - Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt.html\n * - Example: https://stackblitz.com/github/wagmi-dev/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<\n TChain extends Chain | undefined,\n>(\n client: PublicClient,\n {\n confirmations = 1,\n hash,\n onReplaced,\n pollingInterval = client.pollingInterval,\n timeout,\n }: WaitForTransactionReceiptParameters,\n): Promise> {\n const observerId = stringify(['waitForTransactionReceipt', client.uid, hash])\n\n let transaction: GetTransactionReturnType | undefined\n let replacedTransaction: GetTransactionReturnType | undefined\n let receipt: GetTransactionReceiptReturnType\n let retrying = false\n\n return new Promise((resolve, reject) => {\n if (timeout)\n setTimeout(\n () => reject(new WaitForTransactionReceiptTimeoutError({ hash })),\n timeout,\n )\n\n const _unobserve = observe(\n observerId,\n { onReplaced, resolve, reject },\n (emit) => {\n const unwatch = watchBlockNumber(client, {\n emitMissed: true,\n emitOnBegin: true,\n poll: true,\n pollingInterval,\n async onBlockNumber(blockNumber_) {\n if (retrying) return\n\n let blockNumber = blockNumber_\n\n const done = async (fn: () => void) => {\n unwatch()\n fn()\n _unobserve()\n }\n\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 (blockNumber - receipt.blockNumber + 1n < confirmations)\n return\n\n done(() => emit.resolve(receipt))\n return\n }\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(\n async () => {\n transaction = await getTransaction(client, { hash })\n if (transaction.blockNumber)\n blockNumber = transaction.blockNumber\n },\n {\n // exponential backoff\n delay: ({ count }) => ~~(1 << count) * 200,\n retryCount: 6,\n },\n )\n retrying = false\n }\n\n // Get the receipt to check if it's been processed.\n receipt = await getTransactionReceipt(client, { hash })\n\n // Check if we have enough confirmations. If not, continue polling.\n if (\n confirmations > 0 &&\n blockNumber - receipt.blockNumber + 1n < confirmations\n )\n return\n\n done(() => emit.resolve(receipt))\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 (\n transaction &&\n (err instanceof TransactionNotFoundError ||\n err instanceof TransactionReceiptNotFoundError)\n ) {\n replacedTransaction = transaction\n\n // Let's retrieve the transactions from the current block.\n const block = await getBlock(client, {\n blockNumber,\n includeTransactions: true,\n })\n\n const replacementTransaction = (\n block.transactions as Transaction[]\n ).find(\n ({ from, nonce }) =>\n from === replacedTransaction!.from &&\n nonce === replacedTransaction!.nonce,\n )\n\n // If we couldn't find a replacement transaction, continue polling.\n if (!replacementTransaction) return\n\n // If we found a replacement transaction, return it's receipt.\n receipt = await getTransactionReceipt(client, {\n hash: replacementTransaction.hash,\n })\n\n // Check if we have enough confirmations. If not, continue polling.\n if (blockNumber - receipt.blockNumber + 1n < confirmations)\n return\n\n let reason: ReplacementReason = 'replaced'\n if (\n replacementTransaction.to === replacedTransaction.to &&\n replacementTransaction.value === replacedTransaction.value\n ) {\n reason = 'repriced'\n } else if (\n replacementTransaction.from === replacementTransaction.to &&\n replacementTransaction.value === 0n\n ) {\n reason = 'cancelled'\n }\n\n done(() => {\n emit.onReplaced?.({\n reason,\n replacedTransaction: replacedTransaction!,\n transaction: replacementTransaction,\n transactionReceipt: receipt,\n })\n emit.resolve(receipt)\n })\n } else {\n done(() => emit.reject(err))\n }\n }\n },\n })\n return unwatch\n },\n )\n })\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { GetTransportConfig } from '../../types/transport.js'\nimport { hexToBigInt } from '../../utils/encoding/fromHex.js'\nimport { observe } from '../../utils/observe.js'\nimport { poll } from '../../utils/poll.js'\nimport { stringify } from '../../utils/stringify.js'\n\nimport {\n type GetBlockNumberReturnType,\n getBlockNumber,\n} from './getBlockNumber.js'\n\nexport type OnBlockNumberParameter = GetBlockNumberReturnType\nexport type OnBlockNumberFn = (\n blockNumber: OnBlockNumberParameter,\n prevBlockNumber: OnBlockNumberParameter | undefined,\n) => void\n\nexport type PollOptions = {\n /** Whether or not to emit the missed block numbers to the callback. */\n emitMissed?: boolean\n /** Whether or not to emit the latest block number to the callback when the subscription opens. */\n emitOnBegin?: boolean\n /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */\n pollingInterval?: number\n}\n\nexport type WatchBlockNumberParameters<\n TTransport extends Transport = Transport,\n> = {\n /** The callback to call when a new block number is received. */\n onBlockNumber: OnBlockNumberFn\n /** The callback to call when an error occurred when trying to get for a new block. */\n onError?: (error: Error) => void\n} & (GetTransportConfig['type'] extends 'webSocket'\n ?\n | {\n emitMissed?: never\n emitOnBegin?: never\n /** Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`. */\n poll?: false\n pollingInterval?: never\n }\n | (PollOptions & { poll: true })\n : PollOptions & { poll?: true })\n\nexport type WatchBlockNumberReturnType = () => void\n\n/**\n * Watches and returns incoming block numbers.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlockNumber.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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 = await watchBlockNumber(client, {\n * onBlockNumber: (blockNumber) => console.log(blockNumber),\n * })\n */\nexport function watchBlockNumber<\n TChain extends Chain | undefined,\n TTransport extends Transport,\n>(\n client: PublicClient,\n {\n emitOnBegin = false,\n emitMissed = false,\n onBlockNumber,\n onError,\n poll: poll_,\n pollingInterval = client.pollingInterval,\n }: WatchBlockNumberParameters,\n): WatchBlockNumberReturnType {\n const enablePolling =\n typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket'\n\n let prevBlockNumber: GetBlockNumberReturnType | undefined\n\n const pollBlockNumber = () => {\n const observerId = stringify([\n 'watchBlockNumber',\n client.uid,\n emitOnBegin,\n emitMissed,\n pollingInterval,\n ])\n\n return observe(observerId, { onBlockNumber, onError }, (emit) =>\n poll(\n async () => {\n try {\n const blockNumber = await getBlockNumber(client, { maxAge: 0 })\n\n if (prevBlockNumber) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (blockNumber === prevBlockNumber) return\n\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\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 } catch (err) {\n emit.onError?.(err as Error)\n }\n },\n {\n emitOnBegin,\n interval: pollingInterval,\n },\n ),\n )\n }\n\n const subscribeBlockNumber = () => {\n let active = true\n let unsubscribe = () => (active = false)\n ;(async () => {\n try {\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['newHeads'],\n onData(data: any) {\n if (!active) return\n const blockNumber = hexToBigInt(data.result?.number)\n onBlockNumber(blockNumber, prevBlockNumber)\n prevBlockNumber = blockNumber\n },\n onError(error: Error) {\n onError?.(error)\n },\n })\n unsubscribe = unsubscribe_\n if (!active) unsubscribe()\n } catch (err) {\n onError?.(err as Error)\n }\n })()\n return unsubscribe\n }\n\n return enablePolling ? pollBlockNumber() : subscribeBlockNumber()\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { GetTransportConfig } from '../../types/transport.js'\nimport { formatBlock } from '../../utils/formatters/block.js'\nimport { observe } from '../../utils/observe.js'\nimport { poll } from '../../utils/poll.js'\nimport { stringify } from '../../utils/stringify.js'\n\nimport { type GetBlockReturnType, getBlock } from './getBlock.js'\n\nexport type OnBlockParameter =\n GetBlockReturnType\n\nexport type OnBlock = (\n block: OnBlockParameter,\n prevBlock: OnBlockParameter | undefined,\n) => void\n\ntype PollOptions = {\n /** The block tag. Defaults to \"latest\". */\n blockTag?: BlockTag\n /** Whether or not to emit the missed blocks to the callback. */\n emitMissed?: boolean\n /** Whether or not to emit the block to the callback when the subscription opens. */\n emitOnBegin?: boolean\n /** Whether or not to include transaction data in the response. */\n includeTransactions?: boolean\n /** Polling frequency (in ms). Defaults to the client's pollingInterval config. */\n pollingInterval?: number\n}\n\nexport type WatchBlocksParameters<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain,\n> = {\n /** The callback to call when a new block is received. */\n onBlock: OnBlock\n /** The callback to call when an error occurred when trying to get for a new block. */\n onError?: (error: Error) => void\n} & (GetTransportConfig['type'] extends 'webSocket'\n ?\n | {\n blockTag?: never\n emitMissed?: never\n emitOnBegin?: never\n includeTransactions?: never\n /** Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`. */\n poll?: false\n pollingInterval?: never\n }\n | (PollOptions & { poll?: true })\n : PollOptions & { poll?: true })\n\nexport type WatchBlocksReturnType = () => void\n\n/**\n * Watches and returns information for incoming blocks.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlocks.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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 = await watchBlocks(client, {\n * onBlock: (block) => console.log(block),\n * })\n */\nexport function watchBlocks<\n TTransport extends Transport,\n TChain extends Chain | undefined,\n>(\n client: PublicClient,\n {\n blockTag = 'latest',\n emitMissed = false,\n emitOnBegin = false,\n onBlock,\n onError,\n includeTransactions = false,\n poll: poll_,\n pollingInterval = client.pollingInterval,\n }: WatchBlocksParameters,\n): WatchBlocksReturnType {\n const enablePolling =\n typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket'\n\n let prevBlock: GetBlockReturnType | undefined\n\n const pollBlocks = () => {\n const observerId = stringify([\n 'watchBlocks',\n client.uid,\n emitMissed,\n emitOnBegin,\n includeTransactions,\n pollingInterval,\n ])\n\n return observe(observerId, { onBlock, onError }, (emit) =>\n poll(\n async () => {\n try {\n const block = await getBlock(client, {\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) return\n\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 getBlock(client, {\n blockNumber: i,\n includeTransactions,\n })\n emit.onBlock(block, prevBlock)\n prevBlock = block\n }\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 ) {\n emit.onBlock(block, prevBlock)\n prevBlock = block\n }\n } catch (err) {\n emit.onError?.(err as Error)\n }\n },\n {\n emitOnBegin,\n interval: pollingInterval,\n },\n ),\n )\n }\n\n const subscribeBlocks = () => {\n let active = true\n let unsubscribe = () => (active = false)\n ;(async () => {\n try {\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['newHeads'],\n onData(data: any) {\n if (!active) return\n const format =\n client.chain?.formatters?.block?.format || formatBlock\n const block = format(data.result)\n onBlock(block, prevBlock)\n prevBlock = block\n },\n onError(error: Error) {\n onError?.(error)\n },\n })\n unsubscribe = unsubscribe_\n if (!active) unsubscribe()\n } catch (err) {\n onError?.(err as Error)\n }\n })()\n return unsubscribe\n }\n\n return enablePolling ? pollBlocks() : subscribeBlocks()\n}\n","import type { Abi, Address, ExtractAbiEvent, Narrow } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { GetEventArgs, InferEventName } from '../../types/contract.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Log } from '../../types/log.js'\nimport {\n type GetAbiItemParameters,\n getAbiItem,\n} from '../../utils/abi/getAbiItem.js'\nimport { observe } from '../../utils/observe.js'\nimport { poll } from '../../utils/poll.js'\nimport { stringify } from '../../utils/stringify.js'\n\nimport {\n type CreateContractEventFilterParameters,\n createContractEventFilter,\n} from './createContractEventFilter.js'\nimport { getBlockNumber } from './getBlockNumber.js'\nimport { getFilterChanges } from './getFilterChanges.js'\nimport { type GetLogsParameters, getLogs } from './getLogs.js'\nimport { uninstallFilter } from './uninstallFilter.js'\n\nexport type OnLogsParameter<\n TAbi extends Abi | readonly unknown[] = readonly unknown[],\n TEventName extends string = string,\n TStrict extends boolean | undefined = undefined,\n> = TAbi extends Abi\n ? Log, TStrict>[]\n : Log[]\nexport type OnLogsFn<\n TAbi extends Abi | readonly unknown[] = readonly unknown[],\n TEventName extends string = string,\n TStrict extends boolean | undefined = undefined,\n> = (logs: OnLogsParameter) => void\n\nexport type WatchContractEventParameters<\n TAbi extends Abi | readonly unknown[] = readonly unknown[],\n TEventName extends string = string,\n TStrict extends boolean | undefined = undefined,\n> = {\n /** The address of the contract. */\n address?: Address | Address[]\n /** Contract ABI. */\n abi: Narrow\n args?: GetEventArgs\n /** Whether or not the event logs should be batched on each invocation. */\n batch?: boolean\n /** Contract event. */\n eventName?: InferEventName\n /** The callback to call when an error occurred when trying to get for a new block. */\n onError?: (error: Error) => void\n /** The callback to call when new event logs are received. */\n onLogs: OnLogsFn\n /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */\n pollingInterval?: number\n /**\n * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n * @default false\n */\n strict?: TStrict\n}\n\nexport type WatchContractEventReturnType = () => void\n\n/**\n * Watches and returns emitted contract event logs.\n *\n * - Docs: https://viem.sh/docs/contract/watchContractEvent.html\n *\n * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent.html#onLogs).\n *\n * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter.html) 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<\n TChain extends Chain | undefined,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string,\n TStrict extends boolean | undefined = undefined,\n>(\n client: PublicClient,\n {\n abi,\n address,\n args,\n batch = true,\n eventName,\n onError,\n onLogs,\n pollingInterval = client.pollingInterval,\n strict: strict_,\n }: WatchContractEventParameters,\n): WatchContractEventReturnType {\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n ])\n const strict = strict_ ?? false\n\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber: bigint\n let filter: Filter<'event', TAbi, TEventName> | undefined\n let initialized = false\n\n const unwatch = poll(\n async () => {\n if (!initialized) {\n try {\n filter = (await createContractEventFilter(client, {\n abi,\n address,\n args,\n eventName,\n strict,\n } as unknown as CreateContractEventFilterParameters)) as Filter<\n 'event',\n TAbi,\n TEventName\n >\n } catch {}\n initialized = true\n return\n }\n\n try {\n let logs: Log[]\n if (filter) {\n logs = await getFilterChanges(client, { filter })\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\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getBlockNumber(client)\n\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 getLogs(client, {\n address,\n args,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n event: getAbiItem({\n abi,\n name: eventName,\n } as unknown as GetAbiItemParameters),\n } as unknown as GetLogsParameters)\n } else {\n logs = []\n }\n previousBlockNumber = blockNumber\n }\n\n if (logs.length === 0) return\n if (batch) emit.onLogs(logs as any)\n else logs.forEach((log) => emit.onLogs([log] as any))\n } catch (err) {\n emit.onError?.(err as Error)\n }\n },\n {\n emitOnBegin: true,\n interval: pollingInterval,\n },\n )\n\n return async () => {\n if (filter) await uninstallFilter(client, { filter })\n unwatch()\n }\n })\n}\n","import type { AbiEvent, Address } from 'abitype'\n\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n MaybeAbiEventName,\n MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Log } from '../../types/log.js'\nimport { observe } from '../../utils/observe.js'\nimport { poll } from '../../utils/poll.js'\nimport { stringify } from '../../utils/stringify.js'\n\nimport {\n type CreateEventFilterParameters,\n createEventFilter,\n} from './createEventFilter.js'\nimport { getBlockNumber } from './getBlockNumber.js'\nimport { getFilterChanges } from './getFilterChanges.js'\nimport { getLogs } from './getLogs.js'\nimport { uninstallFilter } from './uninstallFilter.js'\n\nexport type OnLogsParameter<\n TAbiEvent extends AbiEvent | undefined = undefined,\n TStrict extends boolean | undefined = undefined,\n TEventName extends string | undefined = MaybeAbiEventName,\n> = Log[]\nexport type OnLogsFn<\n TAbiEvent extends AbiEvent | undefined = undefined,\n TStrict extends boolean | undefined = undefined,\n TEventName extends string | undefined = MaybeAbiEventName,\n> = (logs: OnLogsParameter) => void\n\nexport type WatchEventParameters<\n TAbiEvent extends AbiEvent | undefined = undefined,\n TStrict extends boolean | undefined = undefined,\n TEventName extends string | undefined = MaybeAbiEventName,\n> = {\n /** The address of the contract. */\n address?: Address | Address[]\n /**\n * Whether or not the event logs should be batched on each invocation.\n * @default true\n */\n batch?: boolean\n /** The callback to call when an error occurred when trying to get for a new block. */\n onError?: (error: Error) => void\n /** The callback to call when new event logs are received. */\n onLogs: OnLogsFn\n /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */\n pollingInterval?: number\n} & (\n | {\n event: TAbiEvent\n args?: MaybeExtractEventArgsFromAbi<[TAbiEvent], TEventName>\n /**\n * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n * @default false\n */\n strict?: TStrict\n }\n | {\n event?: never\n args?: never\n strict?: never\n }\n)\n\nexport type WatchEventReturnType = () => void\n\n/**\n * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms.html#event-log).\n *\n * - Docs: https://viem.sh/docs/actions/public/watchEvent.html\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.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent.html#onLogs).\n *\n * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter.html) 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.html) 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<\n TChain extends Chain | undefined,\n TAbiEvent extends AbiEvent | undefined,\n TEventName extends string | undefined,\n TStrict extends boolean | undefined = undefined,\n>(\n client: PublicClient,\n {\n address,\n args,\n batch = true,\n event,\n onError,\n onLogs,\n pollingInterval = client.pollingInterval,\n strict: strict_,\n }: WatchEventParameters,\n): WatchEventReturnType {\n const observerId = stringify([\n 'watchEvent',\n address,\n args,\n batch,\n client.uid,\n event,\n pollingInterval,\n ])\n const strict = strict_ ?? false\n\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber: bigint\n let filter: Filter<'event', [TAbiEvent], TEventName, any>\n let initialized = false\n\n const unwatch = poll(\n async () => {\n if (!initialized) {\n try {\n filter = (await createEventFilter(client, {\n address,\n args,\n event: event!,\n strict,\n } as unknown as CreateEventFilterParameters)) as unknown as Filter<\n 'event',\n [TAbiEvent],\n TEventName\n >\n } catch {}\n initialized = true\n return\n }\n\n try {\n let logs: Log[]\n if (filter) {\n logs = await getFilterChanges(client, { filter })\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\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getBlockNumber(client)\n\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 getLogs(client, {\n address,\n args,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n event: event!,\n })\n } else {\n logs = []\n }\n previousBlockNumber = blockNumber\n }\n\n if (logs.length === 0) return\n if (batch) emit.onLogs(logs as any)\n else logs.forEach((log) => emit.onLogs([log] as any))\n } catch (err) {\n emit.onError?.(err as Error)\n }\n },\n {\n emitOnBegin: true,\n interval: pollingInterval,\n },\n )\n\n return async () => {\n if (filter) await uninstallFilter(client, { filter })\n unwatch()\n }\n })\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { GetTransportConfig } from '../../types/transport.js'\nimport { observe } from '../../utils/observe.js'\nimport { poll } from '../../utils/poll.js'\nimport { stringify } from '../../utils/stringify.js'\n\nimport { createPendingTransactionFilter } from './createPendingTransactionFilter.js'\nimport { getFilterChanges } from './getFilterChanges.js'\nimport { uninstallFilter } from './uninstallFilter.js'\n\nexport type OnTransactionsParameter = Hash[]\nexport type OnTransactionsFn = (transactions: OnTransactionsParameter) => void\n\ntype PollOptions = {\n /**\n * Whether or not the transaction hashes should be batched on each invocation.\n * @default true\n */\n batch?: boolean\n /**\n * Polling frequency (in ms). Defaults to Client's pollingInterval config.\n * @default client.pollingInterval\n */\n pollingInterval?: number\n}\n\nexport type WatchPendingTransactionsParameters<\n TTransport extends Transport = Transport,\n> = {\n /** The callback to call when an error occurred when trying to get for a new block. */\n onError?: (error: Error) => void\n /** The callback to call when new transactions are received. */\n onTransactions: OnTransactionsFn\n} & (GetTransportConfig['type'] extends 'webSocket'\n ?\n | {\n batch?: never\n /**\n * Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`.\n * @default false\n */\n poll?: false\n pollingInterval?: never\n }\n | (PollOptions & {\n /**\n * Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`.\n * @default true\n */\n poll?: true\n })\n : PollOptions & {\n poll?: true\n })\n\nexport type WatchPendingTransactionsReturnType = () => void\n\n/**\n * Watches and returns pending transaction hashes.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions.html\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.html#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions.html#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<\n TTransport extends Transport,\n TChain extends Chain | undefined,\n>(\n client: PublicClient,\n {\n batch = true,\n onError,\n onTransactions,\n poll: poll_,\n pollingInterval = client.pollingInterval,\n }: WatchPendingTransactionsParameters,\n) {\n const enablePolling =\n typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket'\n\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: Filter<'transaction'>\n\n const unwatch = poll(\n async () => {\n try {\n if (!filter) {\n try {\n filter = await createPendingTransactionFilter(client)\n return\n } catch (err) {\n unwatch()\n throw err\n }\n }\n\n const hashes = await getFilterChanges(client, { filter })\n if (hashes.length === 0) return\n if (batch) emit.onTransactions(hashes)\n else hashes.forEach((hash) => emit.onTransactions([hash]))\n } catch (err) {\n emit.onError?.(err as Error)\n }\n },\n {\n emitOnBegin: true,\n interval: pollingInterval,\n },\n )\n\n return async () => {\n if (filter) await uninstallFilter(client, { filter })\n unwatch()\n }\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: any) {\n if (!active) return\n const transaction = data.result\n onTransactions([transaction])\n },\n onError(error: Error) {\n onError?.(error)\n },\n })\n unsubscribe = unsubscribe_\n if (!active) unsubscribe()\n } catch (err) {\n onError?.(err as Error)\n }\n })()\n return unsubscribe\n }\n\n return enablePolling\n ? pollPendingTransactions()\n : subscribePendingTransactions()\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\n\nexport type DropTransactionParameters = {\n /** The hash of the transaction to drop. */\n hash: Hash\n}\n\n/**\n * Removes a transaction from the mempool.\n *\n * - Docs: https://viem.sh/docs/actions/test/dropTransaction.html\n *\n * @param client - Client to use\n * @param parameters - {@link DropTransactionParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { dropTransaction } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await dropTransaction(client, {\n * hash: '0xe58dceb6b20b03965bb678e27d141e151d7d4efc2334c2d6a49b9fac523f7364'\n * })\n */\nexport async function dropTransaction(\n client: TestClient,\n { hash }: DropTransactionParameters,\n) {\n await client.request({\n method: `${client.mode}_dropTransaction`,\n params: [hash],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type GetAutomineReturnType = boolean\n\n/**\n * Returns the automatic mining status of the node.\n *\n * - Docs: https://viem.sh/docs/actions/test/getAutomine.html\n *\n * @param client - Client to use\n * @returns Whether or not the node is auto mining. {@link GetAutomineReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { getAutomine } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const isAutomining = await getAutomine(client)\n */\nexport async function getAutomine(\n client: TestClient,\n): Promise {\n if (client.mode === 'ganache')\n return await client.request({\n method: 'eth_mining',\n })\n return await client.request({\n method: `${client.mode}_getAutomine`,\n })\n}\n","import type { Address } from 'abitype'\n\nimport type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RpcTransaction } from '../../types/rpc.js'\n\nexport type GetTxpoolContentReturnType = {\n /** Pending transactions in the pool */\n pending: Record>\n /** Queued transactions in the pool */\n queued: Record>\n}\n\n/**\n * Returns the details of all transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.\n *\n * - Docs: https://viem.sh/docs/actions/test/getTxpoolContent.html\n *\n * @param client - Client to use\n * @returns Transaction pool content. {@link GetTxpoolContentReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { getTxpoolContent } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const content = await getTxpoolContent(client)\n */\nexport async function getTxpoolContent(\n client: TestClient,\n): Promise {\n return await client.request({\n method: 'txpool_content',\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { hexToNumber } from '../../utils/encoding/fromHex.js'\n\nexport type GetTxpoolStatusReturnType = {\n pending: number\n queued: number\n}\n\n/**\n * Returns a summary of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.\n *\n * - Docs: https://viem.sh/docs/actions/test/getTxpoolStatus.html\n *\n * @param client - Client to use\n * @returns Transaction pool status. {@link GetTxpoolStatusReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { getTxpoolStatus } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const status = await getTxpoolStatus(client)\n */\nexport async function getTxpoolStatus(\n client: TestClient,\n): Promise {\n const { pending, queued } = await client.request({\n method: 'txpool_status',\n })\n return {\n pending: hexToNumber(pending),\n queued: hexToNumber(queued),\n }\n}\n","import type { Address } from 'abitype'\n\nimport type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type ImpersonateAccountParameters = {\n /** The account to impersonate. */\n address: Address\n}\n\n/**\n * Impersonate an account or contract address. This lets you send transactions from that account even if you don't have access to its private key.\n *\n * - Docs: https://viem.sh/docs/actions/test/impersonateAccount.html\n *\n * @param client - Client to use\n * @param parameters - {@link ImpersonateAccountParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { impersonateAccount } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const content = await impersonateAccount(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function impersonateAccount(\n client: TestClient,\n { address }: ImpersonateAccountParameters,\n) {\n await client.request({\n method: `${client.mode}_impersonateAccount`,\n params: [address],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type IncreaseTimeParameters = {\n /** The amount of seconds to jump forward in time. */\n seconds: number\n}\n\n/**\n * Jump forward in time by the given amount of time, in seconds.\n *\n * - Docs: https://viem.sh/docs/actions/test/increaseTime.html\n *\n * @param client - Client to use\n * @param parameters – {@link IncreaseTimeParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { increaseTime } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await increaseTime(client, {\n * seconds: 420,\n * })\n */\nexport async function increaseTime(\n client: TestClient,\n { seconds }: IncreaseTimeParameters,\n) {\n return await client.request({\n method: 'evm_increaseTime',\n params: [numberToHex(seconds)],\n })\n}\n","import type { Address } from 'abitype'\n\nimport type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type InspectTxpoolReturnType = {\n pending: Record>\n queued: Record>\n}\n\n/**\n * Returns a summary of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.\n *\n * - Docs: https://viem.sh/docs/actions/test/inspectTxpool.html\n *\n * @param client - Client to use\n * @returns Transaction pool inspection data. {@link InspectTxpoolReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { inspectTxpool } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const data = await inspectTxpool(client)\n */\nexport async function inspectTxpool(\n client: TestClient,\n): Promise {\n return await client.request({\n method: 'txpool_inspect',\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type MineParameters = {\n /** Number of blocks to mine. */\n blocks: number\n /** Interval between each block in seconds. */\n interval?: number\n}\n\n/**\n * Mine a specified number of blocks.\n *\n * - Docs: https://viem.sh/docs/actions/test/mine.html\n *\n * @param client - Client to use\n * @param parameters – {@link MineParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { mine } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await mine(client, { blocks: 1 })\n */\nexport async function mine(\n client: TestClient,\n { blocks, interval }: MineParameters,\n) {\n if (client.mode === 'ganache')\n await client.request({\n method: 'evm_mine',\n params: [{ blocks: numberToHex(blocks) }],\n })\n else\n await client.request({\n method: `${client.mode}_mine`,\n params: [numberToHex(blocks), numberToHex(interval || 0)],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\n/**\n * Removes [`setBlockTimestampInterval`](https://viem.sh/docs/actions/test/setBlockTimestampInterval.html) if it exists.\n *\n * - Docs: https://viem.sh/docs/actions/test/removeBlockTimestampInterval.html\n *\n * @param client - Client to use\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { removeBlockTimestampInterval } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await removeBlockTimestampInterval(client)\n */\nexport async function removeBlockTimestampInterval<\n TChain extends Chain | undefined,\n>(client: TestClient) {\n await client.request({\n method: `${client.mode}_removeBlockTimestampInterval`,\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type ResetParameters = {\n /** The block number to reset from. */\n blockNumber?: bigint\n /** The JSON RPC URL. */\n jsonRpcUrl?: string\n}\n\n/**\n * Resets fork back to its original state.\n *\n * - Docs: https://viem.sh/docs/actions/test/reset.html\n *\n * @param client - Client to use\n * @param parameters – {@link ResetParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { reset } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await reset(client, { blockNumber: 69420n })\n */\nexport async function reset(\n client: TestClient,\n { blockNumber, jsonRpcUrl }: ResetParameters = {},\n) {\n await client.request({\n method: `${client.mode}_reset`,\n params: [{ forking: { blockNumber: Number(blockNumber), jsonRpcUrl } }],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Quantity } from '../../types/rpc.js'\n\nexport type RevertParameters = {\n /** The snapshot ID to revert to. */\n id: Quantity\n}\n\n/**\n * Revert the state of the blockchain at the current block.\n *\n * - Docs: https://viem.sh/docs/actions/test/revert.html\n *\n * @param client - Client to use\n * @param parameters – {@link RevertParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { revert } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await revert(client, { id: '0x…' })\n */\nexport async function revert(\n client: TestClient,\n { id }: RevertParameters,\n) {\n await client.request({\n method: 'evm_revert',\n params: [id],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport { extract } from '../../utils/formatters/extract.js'\nimport {\n type FormattedTransactionRequest,\n formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\n\nexport type SendUnsignedTransactionParameters<\n TChain extends Chain | undefined = Chain | undefined,\n> = FormattedTransactionRequest\n\nexport type SendUnsignedTransactionReturnType = Hash\n\n/**\n * Returns the details of all transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.\n *\n * - Docs: https://viem.sh/docs/actions/test/getTxpoolContent.html\n *\n * @param client - Client to use\n * @param parameters – {@link SendUnsignedTransactionParameters}\n * @returns The transaction hash. {@link SendUnsignedTransactionReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { sendUnsignedTransaction } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const hash = await sendUnsignedTransaction(client, {\n * from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\nexport async function sendUnsignedTransaction<\n TChain extends Chain | undefined,\n>(\n client: TestClient,\n args: SendUnsignedTransactionParameters,\n): Promise {\n const {\n accessList,\n data,\n from,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest\n } = args\n\n const format =\n client.chain?.formatters?.transactionRequest?.format ||\n formatTransactionRequest\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format }),\n accessList,\n data,\n from,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n } as TransactionRequest)\n const hash = await client.request({\n method: 'eth_sendUnsignedTransaction',\n params: [request],\n })\n return hash\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\n/**\n * Enables or disables the automatic mining of new blocks with each new transaction submitted to the network.\n *\n * - Docs: https://viem.sh/docs/actions/test/setAutomine.html\n *\n * @param client - Client to use\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setAutomine } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setAutomine(client)\n */\nexport async function setAutomine(\n client: TestClient,\n enabled: boolean,\n) {\n if (client.mode === 'ganache') {\n if (enabled) await client.request({ method: 'miner_start' })\n else await client.request({ method: 'miner_stop' })\n } else\n await client.request({\n method: 'evm_setAutomine',\n params: [enabled],\n })\n}\n","import type { Address } from 'abitype'\n\nimport type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type SetBalanceParameters = {\n /** The account address. */\n address: Address\n /** Amount (in wei) to set */\n value: bigint\n}\n\n/**\n * Modifies the balance of an account.\n *\n * - Docs: https://viem.sh/docs/actions/test/setBalance.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetBalanceParameters}\n *\n * @example\n * import { createTestClient, http, parseEther } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setBalance } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setBalance(client, {\n * address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\n * value: parseEther('1'),\n * })\n */\nexport async function setBalance(\n client: TestClient,\n { address, value }: SetBalanceParameters,\n) {\n if (client.mode === 'ganache')\n await client.request({\n method: 'evm_setAccountBalance',\n params: [address, numberToHex(value)],\n })\n else\n await client.request({\n method: `${client.mode}_setBalance`,\n params: [address, numberToHex(value)],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type SetBlockGasLimitParameters = {\n /** Gas limit (in wei). */\n gasLimit: bigint\n}\n\n/**\n * Sets the block's gas limit.\n *\n * - Docs: https://viem.sh/docs/actions/test/setBlockGasLimit.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetBlockGasLimitParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setBlockGasLimit } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setBlockGasLimit(client, { gasLimit: 420_000n })\n */\nexport async function setBlockGasLimit(\n client: TestClient,\n { gasLimit }: SetBlockGasLimitParameters,\n) {\n await client.request({\n method: 'evm_setBlockGasLimit',\n params: [numberToHex(gasLimit)],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type SetBlockTimestampIntervalParameters = {\n /** The interval (in seconds). */\n interval: number\n}\n\n/**\n * Similar to [`increaseTime`](https://viem.sh/docs/actions/test/increaseTime.html), but sets a block timestamp `interval`. The timestamp of future blocks will be computed as `lastBlock_timestamp` + `interval`.\n *\n * - Docs: https://viem.sh/docs/actions/test/setBlockTimestampInterval.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetBlockTimestampIntervalParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setBlockTimestampInterval } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setBlockTimestampInterval(client, { interval: 5 })\n */\nexport async function setBlockTimestampInterval<\n TChain extends Chain | undefined,\n>(\n client: TestClient,\n { interval }: SetBlockTimestampIntervalParameters,\n) {\n await client.request({\n method: `${client.mode}_setBlockTimestampInterval`,\n params: [interval],\n })\n}\n","import type { Address } from 'abitype'\n\nimport type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\n\nexport type SetCodeParameters = {\n /** The account address. */\n address: Address\n /** The bytecode to set */\n bytecode: Hex\n}\n\n/**\n * Modifies the bytecode stored at an account's address.\n *\n * - Docs: https://viem.sh/docs/actions/test/setCode.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetCodeParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setCode } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setCode(client, {\n * address: '0xe846c6fcf817734ca4527b28ccb4aea2b6663c79',\n * bytecode: '0x60806040526000600355600019600955600c80546001600160a01b031916737a250d5630b4cf539739df…',\n * })\n */\nexport async function setCode(\n client: TestClient,\n { address, bytecode }: SetCodeParameters,\n) {\n await client.request({\n method: `${client.mode}_setCode`,\n params: [address, bytecode],\n })\n}\n","import type { Address } from 'abitype'\n\nimport type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type SetCoinbaseParameters = {\n /** The coinbase address. */\n address: Address\n}\n\n/**\n * Sets the coinbase address to be used in new blocks.\n *\n * - Docs: https://viem.sh/docs/actions/test/setCoinbase.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetCoinbaseParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setCoinbase } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setCoinbase(client, {\n * address: '0xe846c6fcf817734ca4527b28ccb4aea2b6663c79',\n * })\n */\nexport async function setCoinbase(\n client: TestClient,\n { address }: SetCoinbaseParameters,\n) {\n await client.request({\n method: `${client.mode}_setCoinbase`,\n params: [address],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type SetIntervalMiningParameters = {\n /** The mining interval. */\n interval: number\n}\n\n/**\n * Sets the automatic mining interval (in seconds) of blocks. Setting the interval to 0 will disable automatic mining.\n *\n * - Docs: https://viem.sh/docs/actions/test/setIntervalMining.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetIntervalMiningParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setIntervalMining } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setIntervalMining(client, { interval: 5 })\n */\nexport async function setIntervalMining(\n client: TestClient,\n { interval }: SetIntervalMiningParameters,\n) {\n await client.request({\n method: 'evm_setIntervalMining',\n params: [interval],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\n/**\n * Enable or disable logging on the test node network.\n *\n * - Docs: https://viem.sh/docs/actions/test/setLoggingEnabled.html\n *\n * @param client - Client to use\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setLoggingEnabled } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setLoggingEnabled(client)\n */\nexport async function setLoggingEnabled(\n client: TestClient,\n enabled: boolean,\n) {\n await client.request({\n method: `${client.mode}_setLoggingEnabled`,\n params: [enabled],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type SetMinGasPriceParameters = {\n /** The gas price. */\n gasPrice: bigint\n}\n\n/**\n * Change the minimum gas price accepted by the network (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/test/setMinGasPrice.html\n *\n * Note: `setMinGasPrice` can only be used on clients that do not have EIP-1559 enabled.\n *\n * @param client - Client to use\n * @param parameters – {@link SetBlockGasLimitParameters}\n *\n * @example\n * import { createTestClient, http, parseGwei } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setMinGasPrice } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setMinGasPrice(client, {\n * gasPrice: parseGwei('20'),\n * })\n */\nexport async function setMinGasPrice(\n client: TestClient,\n { gasPrice }: SetMinGasPriceParameters,\n) {\n await client.request({\n method: `${client.mode}_setMinGasPrice`,\n params: [numberToHex(gasPrice)],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type SetNextBlockBaseFeePerGasParameters = {\n /** Base fee per gas (in wei). */\n baseFeePerGas: bigint\n}\n\n/**\n * Sets the next block's base fee per gas.\n *\n * - Docs: https://viem.sh/docs/actions/test/setNextBlockBaseFeePerGas.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetNextBlockBaseFeePerGasParameters}\n *\n * @example\n * import { createTestClient, http, parseGwei } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setNextBlockBaseFeePerGas } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setNextBlockBaseFeePerGas(client, {\n * baseFeePerGas: parseGwei('20'),\n * })\n */\nexport async function setNextBlockBaseFeePerGas<\n TChain extends Chain | undefined,\n>(\n client: TestClient,\n { baseFeePerGas }: SetNextBlockBaseFeePerGasParameters,\n) {\n await client.request({\n method: `${client.mode}_setNextBlockBaseFeePerGas`,\n params: [numberToHex(baseFeePerGas)],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type SetNextBlockTimestampParameters = {\n /** The timestamp (in seconds). */\n timestamp: bigint\n}\n\n/**\n * Sets the next block's timestamp.\n *\n * - Docs: https://viem.sh/docs/actions/test/setNextBlockTimestamp.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetNextBlockTimestampParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setNextBlockTimestamp } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setNextBlockTimestamp(client, { timestamp: 1671744314n })\n */\nexport async function setNextBlockTimestamp(\n client: TestClient,\n { timestamp }: SetNextBlockTimestampParameters,\n) {\n await client.request({\n method: 'evm_setNextBlockTimestamp',\n params: [numberToHex(timestamp)],\n })\n}\n","import type { Address } from 'abitype'\n\nimport type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type SetNonceParameters = {\n /** The account address. */\n address: Address\n /** The nonce to set. */\n nonce: number\n}\n\n/**\n * Modifies (overrides) the nonce of an account.\n *\n * - Docs: https://viem.sh/docs/actions/test/setNonce.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetNonceParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setNonce } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setNonce(client, {\n * address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\n * nonce: 420,\n * })\n */\nexport async function setNonce(\n client: TestClient,\n { address, nonce }: SetNonceParameters,\n) {\n await client.request({\n method: `${client.mode}_setNonce`,\n params: [address, numberToHex(nonce)],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\n/**\n * Sets the backend RPC URL.\n *\n * - Docs: https://viem.sh/docs/actions/test/setRpcUrl.html\n *\n * @param client - Client to use\n * @param jsonRpcUrl – RPC URL\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setRpcUrl } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setRpcUrl(client, 'https://eth-mainnet.g.alchemy.com/v2')\n */\nexport async function setRpcUrl(\n client: TestClient,\n jsonRpcUrl: string,\n) {\n await client.request({\n method: `${client.mode}_setRpcUrl`,\n params: [jsonRpcUrl],\n })\n}\n","import type { Address } from 'abitype'\n\nimport type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash, Hex } from '../../types/misc.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type SetStorageAtParameters = {\n /** The account address. */\n address: Address\n /** The storage slot (index). Can either be a number or hash value. */\n index: number | Hash\n /** The value to store as a 32 byte hex string. */\n value: Hex\n}\n\n/**\n * Writes to a slot of an account's storage.\n *\n * - Docs: https://viem.sh/docs/actions/test/setStorageAt.html\n *\n * @param client - Client to use\n * @param parameters – {@link SetStorageAtParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { setStorageAt } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await setStorageAt(client, {\n * address: '0xe846c6fcf817734ca4527b28ccb4aea2b6663c79',\n * index: 2,\n * value: '0x0000000000000000000000000000000000000000000000000000000000000069',\n * })\n */\nexport async function setStorageAt(\n client: TestClient,\n { address, index, value }: SetStorageAtParameters,\n) {\n await client.request({\n method: `${client.mode}_setStorageAt`,\n params: [\n address,\n typeof index === 'number' ? numberToHex(index) : index,\n value,\n ],\n })\n}\n","import type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\n/**\n * Snapshot the state of the blockchain at the current block.\n *\n * - Docs: https://viem.sh/docs/actions/test/snapshot.html\n *\n * @param client - Client to use\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { snapshot } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await snapshot(client)\n */\nexport async function snapshot(\n client: TestClient,\n) {\n return await client.request({\n method: 'evm_snapshot',\n })\n}\n","import type { Address } from 'abitype'\n\nimport type {\n TestClient,\n TestClientMode,\n} from '../../clients/createTestClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type StopImpersonatingAccountParameters = {\n /** The account to impersonate. */\n address: Address\n}\n\n/**\n * Stop impersonating an account after having previously used [`impersonateAccount`](https://viem.sh/docs/actions/test/impersonateAccount.html).\n *\n * - Docs: https://viem.sh/docs/actions/test/stopImpersonatingAccount.html\n *\n * @param client - Client to use\n * @param parameters – {@link StopImpersonatingAccountParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { stopImpersonatingAccount } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await stopImpersonatingAccount(client, {\n * address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\n * })\n */\nexport async function stopImpersonatingAccount<\n TChain extends Chain | undefined,\n>(\n client: TestClient,\n { address }: StopImpersonatingAccountParameters,\n) {\n await client.request({\n method: `${client.mode}_stopImpersonatingAccount`,\n params: [address],\n })\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type AddChainParameters = {\n /** The chain to add to the wallet. */\n chain: Chain\n}\n\n/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/addChain.html\n * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\n *\n * @param client - Client to use\n * @param parameters - {@link AddChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { optimism } from 'viem/chains'\n * import { addChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * transport: custom(window.ethereum),\n * })\n * await addChain(client, { chain: optimism })\n */\nexport async function addChain<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n>(\n client: WalletClient,\n { chain }: AddChainParameters,\n) {\n const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain\n await client.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n chainName: name,\n nativeCurrency,\n rpcUrls: rpcUrls.default.http,\n blockExplorerUrls: blockExplorers\n ? Object.values(blockExplorers).map(({ url }) => url)\n : undefined,\n },\n ],\n })\n}\n","import type { Abi, Narrow } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain, GetChain } from '../../types/chain.js'\nimport type { GetConstructorArgs } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport { encodeDeployData } from '../../utils/abi/encodeDeployData.js'\n\nimport {\n type SendTransactionParameters,\n type SendTransactionReturnType,\n sendTransaction,\n} from './sendTransaction.js'\n\nexport type DeployContractParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n TChainOverride extends Chain | undefined = undefined,\n> = Omit<\n SendTransactionParameters,\n 'accessList' | 'chain' | 'to' | 'data' | 'value'\n> & {\n abi: Narrow\n bytecode: Hex\n} & GetChain &\n GetConstructorArgs\n\nexport type DeployContractReturnType = SendTransactionReturnType\n\n/**\n * Deploys a contract to the network, given bytecode and constructor arguments.\n *\n * - Docs: https://viem.sh/docs/contract/deployContract.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/contracts/deploying-contracts\n *\n * @param client - Client to use\n * @param parameters - {@link DeployContractParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash. {@link DeployContractReturnType}\n *\n * @example\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { deployContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await deployContract(client, {\n * abi: [],\n * account: '0x…,\n * bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',\n * })\n */\nexport function deployContract<\n TAbi extends Abi | readonly unknown[],\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n TChainOverride extends Chain | undefined,\n>(\n walletClient: WalletClient,\n {\n abi,\n args,\n bytecode,\n ...request\n }: DeployContractParameters,\n): Promise {\n const calldata = encodeDeployData({\n abi,\n args,\n bytecode,\n } as unknown as DeployContractParameters<\n TAbi,\n TChain,\n TAccount,\n TChainOverride\n >)\n return sendTransaction(walletClient, {\n ...request,\n data: calldata,\n } as unknown as SendTransactionParameters)\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { checksumAddress } from '../../utils/address/getAddress.js'\n\nexport type GetAddressesReturnType = Address[]\n\n/**\n * Returns a list of account addresses owned by the wallet or client.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getAddresses.html\n * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\n *\n * @param client - Client to use\n * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await getAddresses(client)\n */\nexport async function getAddresses<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined = undefined,\n>(\n client: WalletClient,\n): Promise {\n const addresses = await client.request({ method: 'eth_accounts' })\n return addresses.map((address) => checksumAddress(address))\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { WalletPermission } from '../../types/eip1193.js'\n\nexport type GetPermissionsReturnType = WalletPermission[]\n\n/**\n * Gets the wallets current permissions.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getPermissions.html\n * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @returns The wallet permissions. {@link GetPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await getPermissions(client)\n */\nexport async function getPermissions<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined = undefined,\n>(client: WalletClient) {\n const permissions = await client.request({ method: 'wallet_getPermissions' })\n return permissions\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { getAddress } from '../../utils/address/getAddress.js'\n\nexport type RequestAddressesReturnType = Address[]\n\n/**\n * Requests a list of accounts managed by a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses.html\n * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\n *\n * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\n *\n * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\n *\n * @param client - Client to use\n * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await requestAddresses(client)\n */\nexport async function requestAddresses<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined = undefined,\n>(\n client: WalletClient,\n): Promise {\n const addresses = await client.request({ method: 'eth_requestAccounts' })\n return addresses.map((address) => getAddress(address))\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { WalletPermission } from '../../types/eip1193.js'\nimport type { Prettify } from '../../types/utils.js'\n\nexport type RequestPermissionsParameters = Prettify<\n {\n eth_accounts: Record\n } & {\n [key: string]: Record\n }\n>\nexport type RequestPermissionsReturnType = WalletPermission[]\n\n/**\n * Requests permissions for a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestPermissions.html\n * - JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @param parameters - {@link RequestPermissionsParameters}\n * @returns The wallet permissions. {@link RequestPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await requestPermissions(client, {\n * eth_accounts: {}\n * })\n */\nexport async function requestPermissions<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined = undefined,\n>(\n client: WalletClient,\n permissions: RequestPermissionsParameters,\n) {\n return client.request({\n method: 'wallet_requestPermissions',\n params: [permissions],\n })\n}\n","import type { Account } from '../../accounts/types.js'\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { AccountNotFoundError } from '../../errors/account.js'\nimport type { BaseError } from '../../errors/base.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type { Chain, GetChain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type {\n TransactionRequest,\n TransactionSerializable,\n} from '../../types/transaction.js'\nimport type { IsUndefined } from '../../types/utils.js'\nimport { assertCurrentChain } from '../../utils/chain.js'\nimport { getTransactionError } from '../../utils/errors/getTransactionError.js'\nimport { extract } from '../../utils/formatters/extract.js'\nimport {\n type FormattedTransactionRequest,\n formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport { assertRequest } from '../../utils/transaction/assertRequest.js'\nimport { prepareRequest } from '../../utils/transaction/prepareRequest.js'\nimport { getChainId } from '../public/getChainId.js'\n\nexport type SendTransactionParameters<\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n TChainOverride extends Chain | undefined = Chain,\n> = Omit<\n FormattedTransactionRequest<\n IsUndefined extends true ? TChainOverride : TChain\n >,\n 'from'\n> &\n GetAccountParameter &\n GetChain\n\nexport type SendTransactionReturnType = Hash\n\n/**\n * Creates, signs, and sends a new transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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.html#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<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n TChainOverride extends Chain | undefined,\n>(\n client: WalletClient,\n args: SendTransactionParameters,\n): Promise {\n const {\n account: account_ = client.account,\n chain = client.chain,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest\n } = args\n\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n })\n const account = parseAccount(account_)\n\n try {\n assertRequest(args)\n\n let chainId\n if (chain !== null) {\n chainId = await getChainId(client)\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n })\n }\n\n if (account.type === 'local') {\n // Prepare the request for signing (assign appropriate fees, etc.)\n const request = await prepareRequest(client, {\n account,\n accessList,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest,\n })\n\n if (!chainId) chainId = await getChainId(client)\n\n const serializer = chain?.serializers?.transaction\n const signedRequest = (await account.signTransaction(\n {\n ...request,\n chainId,\n } as TransactionSerializable,\n { serializer },\n )) as Hash\n return await client.request({\n method: 'eth_sendRawTransaction',\n params: [signedRequest],\n })\n }\n\n const format =\n chain?.formatters?.transactionRequest?.format || formatTransactionRequest\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format }),\n accessList,\n data,\n from: account.address,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n } as TransactionRequest)\n return await client.request({\n method: 'eth_sendTransaction',\n params: [request],\n })\n } catch (err) {\n throw getTransactionError(err as BaseError, {\n ...args,\n account,\n chain: args.chain || undefined,\n })\n }\n}\n","import type { Account } from '../../accounts/types.js'\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { AccountNotFoundError } from '../../errors/account.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex, SignableMessage } from '../../types/misc.js'\nimport { stringToHex, toHex } from '../../utils/encoding/toHex.js'\n\nexport type SignMessageParameters<\n TAccount extends Account | undefined = Account | undefined,\n> = GetAccountParameter & {\n message: SignableMessage\n}\n\nexport type SignMessageReturnType = Hex\n\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.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data.html#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.html) to verify the signature,\n * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress.html) 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<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n>(\n client: WalletClient,\n {\n account: account_ = client.account,\n message,\n }: SignMessageParameters,\n): Promise {\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signMessage',\n })\n const account = parseAccount(account_)\n if (account.type === 'local') return account.signMessage({ message })\n\n const message_ = (() => {\n if (typeof message === 'string') return stringToHex(message)\n if (message.raw instanceof Uint8Array) return toHex(message.raw)\n return message.raw\n })()\n\n return client.request({\n method: 'personal_sign',\n params: [message_, account.address],\n })\n}\n","import type { TypedData } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { AccountNotFoundError } from '../../errors/account.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\nimport { isHex } from '../../utils/data/isHex.js'\nimport { stringify } from '../../utils/stringify.js'\nimport { validateTypedData } from '../../utils/typedData.js'\n\nexport type SignTypedDataParameters<\n TTypedData extends TypedData | { [key: string]: unknown } = TypedData,\n TPrimaryType extends string = string,\n TAccount extends Account | undefined = undefined,\n> = GetAccountParameter &\n TypedDataDefinition\n\nexport type SignTypedDataReturnType = Hex\n\n/**\n * Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712): `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTypedData.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data.html#signtypeddata-v4)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param client - Client to use\n * @param parameters - {@link SignTypedDataParameters}\n * @returns The signed data. {@link SignTypedDataReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTypedData(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signTypedData(client, {\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n */\nexport async function signTypedData<\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string,\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n>(\n client: WalletClient,\n {\n account: account_ = client.account,\n domain,\n message,\n primaryType,\n types: types_,\n }: SignTypedDataParameters,\n): Promise {\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTypedData',\n })\n const account = parseAccount(account_)\n\n const types = {\n EIP712Domain: [\n typeof domain?.name === 'string' && { name: 'name', type: 'string' },\n domain?.version && { name: 'version', type: 'string' },\n typeof domain?.chainId === 'number' && {\n name: 'chainId',\n type: 'uint256',\n },\n domain?.verifyingContract && {\n name: 'verifyingContract',\n type: 'address',\n },\n domain?.salt && { name: 'salt', type: 'bytes32' },\n ].filter(Boolean),\n ...(types_ as TTypedData),\n }\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 } as TypedDataDefinition)\n\n if (account.type === 'local')\n return account.signTypedData({\n domain,\n primaryType,\n types,\n message,\n } as TypedDataDefinition)\n\n const typedData = stringify(\n { domain: domain ?? {}, primaryType, types, message },\n (_, value) => (isHex(value) ? value.toLowerCase() : value),\n )\n return client.request({\n method: 'eth_signTypedData_v4',\n params: [account.address, typedData],\n })\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type SwitchChainParameters = {\n /** ID of Chain to switch to */\n id: Chain['id']\n}\n\n/**\n * Switch the target chain in a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/switchChain.html\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\n *\n * @param client - Client to use\n * @param parameters - {@link SwitchChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet, optimism } from 'viem/chains'\n * import { switchChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * await switchChain(client, { id: optimism.id })\n */\nexport async function switchChain<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined = undefined,\n>(\n client: WalletClient,\n { id }: SwitchChainParameters,\n) {\n await client.request({\n method: 'wallet_switchEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n },\n ],\n })\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { WatchAssetParams } from '../../types/eip1193.js'\n\nexport type WatchAssetParameters = WatchAssetParams\nexport type WatchAssetReturnType = boolean\n\n/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/watchAsset.html\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\n *\n * @param client - Client to use\n * @param parameters - {@link WatchAssetParameters}\n * @returns Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchAsset } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const success = await watchAsset(client, {\n * type: 'ERC20',\n * options: {\n * address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * decimals: 18,\n * symbol: 'WETH',\n * },\n * })\n */\nexport async function watchAsset<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined = undefined,\n>(\n client: WalletClient,\n params: WatchAssetParameters,\n): Promise {\n const added = await client.request({\n method: 'wallet_watchAsset',\n params,\n })\n return added\n}\n","import type { Abi } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { Chain, GetChain } from '../../types/chain.js'\nimport type { ContractFunctionConfig, GetValue } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport {\n type EncodeFunctionDataParameters,\n encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\n\nimport {\n type SendTransactionParameters,\n type SendTransactionReturnType,\n sendTransaction,\n} from './sendTransaction.js'\n\nexport type WriteContractParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = string,\n TChain extends Chain | undefined = Chain,\n TAccount extends Account | undefined = undefined,\n TChainOverride extends Chain | undefined = undefined,\n> = ContractFunctionConfig &\n Omit<\n SendTransactionParameters,\n 'chain' | 'to' | 'data' | 'value'\n > &\n GetChain &\n GetValue<\n TAbi,\n TFunctionName,\n SendTransactionParameters<\n TChain,\n TAccount,\n TChainOverride\n > extends SendTransactionParameters\n ? SendTransactionParameters['value']\n : SendTransactionParameters['value']\n > & {\n /** Data to append to the end of the calldata. Useful for adding a [\"domain\" tag](https://opensea.notion.site/opensea/Seaport-Order-Attributions-ec2d69bf455041a5baa490941aad307f). */\n dataSuffix?: Hex\n }\n\nexport type WriteContractReturnType = SendTransactionReturnType\n\n/**\n * Executes a write function on a contract.\n *\n * - Docs: https://viem.sh/docs/contract/writeContract.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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.html) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet.html) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\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.html#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.html#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<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TChainOverride extends Chain | undefined = undefined,\n>(\n client: WalletClient,\n {\n abi,\n address,\n args,\n dataSuffix,\n functionName,\n ...request\n }: WriteContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n TAccount,\n TChainOverride\n >,\n): Promise {\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n } as unknown as EncodeFunctionDataParameters)\n const hash = await sendTransaction(client, {\n data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...request,\n } as unknown as SendTransactionParameters)\n return hash\n}\n","import type { Chain } from '../types/chain.js'\nimport type {\n EIP1193RequestFn,\n EIP1474Methods,\n RpcSchema,\n} from '../types/eip1193.js'\nimport { uid } from '../utils/uid.js'\nimport type { Transport } from './transports/createTransport.js'\n\nexport type ClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n> = {\n /** Chain for the client. */\n chain?: TChain\n /** A key for the client. */\n key?: string\n /** A name for the client. */\n name?: string\n /**\n * Frequency (in ms) for polling enabled actions & events.\n * @default 4_000\n */\n pollingInterval?: number\n /** The RPC transport */\n transport: TTransport\n /** The type of client. */\n type?: string\n}\n\nexport type Client<\n TTransport extends Transport = Transport,\n TRpcSchema extends RpcSchema | undefined = undefined,\n TChain extends Chain | undefined = Chain | undefined,\n> = {\n /** Chain for the client. */\n chain: TChain\n /** A key for the client. */\n key: string\n /** A name for the client. */\n name: string\n /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */\n pollingInterval: number\n /** Request function wrapped with friendly error handling */\n request: TRpcSchema extends undefined\n ? EIP1193RequestFn\n : EIP1193RequestFn\n /** The RPC transport */\n transport: ReturnType['config'] & ReturnType['value']\n /** The type of client. */\n type: string\n /** A unique ID for the client. */\n uid: string\n}\n\n/**\n * @description Creates a base client with the given transport.\n */\nexport function createClient<\n TTransport extends Transport,\n TRpcSchema extends RpcSchema | undefined = undefined,\n TChain extends Chain | undefined = undefined,\n>({\n chain,\n key = 'base',\n name = 'Base Client',\n pollingInterval = 4_000,\n transport,\n type = 'base',\n}: ClientConfig): Client {\n const { config, request, value } = transport({ chain, pollingInterval })\n return {\n chain: chain as TChain,\n key,\n name,\n pollingInterval,\n request: request as any,\n transport: { ...config, ...value },\n type,\n uid: uid(),\n }\n}\n","import type { Chain } from '../types/chain.js'\nimport type { PublicRpcSchema } from '../types/eip1193.js'\nimport type { Prettify } from '../types/utils.js'\nimport { type Client, type ClientConfig, createClient } from './createClient.js'\nimport { type PublicActions, publicActions } from './decorators/public.js'\nimport type { Transport } from './transports/createTransport.js'\n\nexport type MulticallBatchOptions = {\n /** The maximum size (in bytes) for each calldata chunk. @default 1_024 */\n batchSize?: number\n /** The maximum number of milliseconds to wait before sending a batch. @default 0 */\n wait?: number\n}\n\nexport type PublicClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n> = Pick<\n ClientConfig,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'\n> & {\n /** Flags for batch settings. */\n batch?: {\n /** Toggle to enable `eth_call` multicall aggregation. */\n multicall?: boolean | MulticallBatchOptions\n }\n}\n\nexport type PublicClient<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TIncludeActions extends boolean = true,\n> = Prettify<\n Client &\n Pick &\n (TIncludeActions extends true ? PublicActions : unknown)\n>\n\n/**\n * Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro.html) configured for a [Chain](https://viem.sh/docs/clients/chains.html).\n *\n * - Docs: https://viem.sh/docs/clients/public.html\n *\n * A Public Client is an interface to \"public\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\n *\n * @param config - {@link PublicClientConfig}\n * @returns A Public Client. {@link PublicClient}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n */\nexport function createPublicClient<\n TTransport extends Transport,\n TChain extends Chain | undefined = undefined,\n>({\n batch,\n chain,\n key = 'public',\n name = 'Public Client',\n transport,\n pollingInterval,\n}: PublicClientConfig): PublicClient<\n TTransport,\n TChain,\n true\n> {\n const client = {\n batch,\n ...(createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport,\n type: 'publicClient',\n }) as PublicClient),\n }\n return {\n ...client,\n ...publicActions(client),\n }\n}\n","import type { Chain } from '../types/chain.js'\nimport type { TestRpcSchema } from '../types/eip1193.js'\nimport { type Client, type ClientConfig, createClient } from './createClient.js'\nimport { type TestActions, testActions } from './decorators/test.js'\nimport type { Transport } from './transports/createTransport.js'\n\nexport type TestClientMode = 'anvil' | 'hardhat' | 'ganache'\n\nexport type TestClientConfig<\n TMode extends TestClientMode = TestClientMode,\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n> = Pick<\n ClientConfig,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'\n> & {\n /** Mode of the test client. Available: \"anvil\" | \"hardhat\" | \"ganache\" */\n mode: TMode\n}\n\nexport type TestClient<\n TMode extends TestClientMode = TestClientMode,\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TIncludeActions extends boolean = true,\n> = Client, TChain> &\n (TIncludeActions extends true ? TestActions : unknown) & {\n mode: TMode\n }\n\n/**\n * @description Creates a test client with a given transport.\n */\n/**\n * Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro.html) configured for a [Chain](https://viem.sh/docs/clients/chains.html).\n *\n * - Docs: https://viem.sh/docs/clients/test.html\n *\n * A Test Client is an interface to \"test\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction.html).\n *\n * @param config - {@link TestClientConfig}\n * @returns A Test Client. {@link TestClient}\n *\n * @example\n * import { createTestClient, custom } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: foundry,\n * transport: http(),\n * })\n */\nexport function createTestClient<\n TMode extends TestClientMode,\n TTransport extends Transport,\n TChain extends Chain | undefined = undefined,\n>({\n chain,\n key = 'test',\n name = 'Test Client',\n mode,\n pollingInterval,\n transport,\n}: TestClientConfig): TestClient<\n TMode,\n TTransport,\n TChain,\n true\n> {\n const client = {\n ...createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport,\n type: 'testClient',\n }),\n mode,\n } as TestClient\n return {\n ...client,\n ...testActions(client),\n }\n}\n","import type { Address } from 'abitype'\n\nimport type { Account, JsonRpcAccount } from '../accounts/types.js'\nimport { parseAccount } from '../accounts/utils/parseAccount.js'\nimport type { Chain } from '../types/chain.js'\nimport type { WalletRpcSchema } from '../types/eip1193.js'\nimport type { Prettify } from '../types/utils.js'\nimport { type Client, type ClientConfig, createClient } from './createClient.js'\nimport { type WalletActions, walletActions } from './decorators/wallet.js'\nimport type { Transport } from './transports/createTransport.js'\n\nexport type WalletClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccountOrAddress extends Account | Address | undefined =\n | Account\n | Address\n | undefined,\n> = Pick<\n ClientConfig,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'\n> & {\n /** The Account to use for the Wallet Client. This will be used for Actions that require an account as an argument. */\n account?: TAccountOrAddress\n}\n\nexport type WalletClient<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n TIncludeActions extends boolean = true,\n> = Prettify<\n Client &\n (TIncludeActions extends true\n ? WalletActions\n : unknown) & {\n /** The Account to use for the Wallet Client. */\n account: TAccount\n }\n>\n\n/**\n * Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro.html) configured for a [Chain](https://viem.sh/docs/clients/chains.html).\n *\n * - Docs: https://viem.sh/docs/clients/wallet.html\n *\n * A Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction.html).\n *\n * The Wallet Client supports signing over:\n * - [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet.html#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\n * - [Local Accounts](https://viem.sh/docs/clients/wallet.html#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\n *\n * @param config - {@link WalletClientConfig}\n * @returns A Wallet Client. {@link WalletClient}\n *\n * @example\n * // JSON-RPC Account\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * @example\n * // Local Account\n * import { createWalletClient, custom } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…')\n * chain: mainnet,\n * transport: http(),\n * })\n */\nexport function createWalletClient<\n TTransport extends Transport,\n TChain extends Chain | undefined = undefined,\n TAccountOrAddress extends Account | Address | undefined = undefined,\n>({\n account,\n chain,\n transport,\n key = 'wallet',\n name = 'Wallet Client',\n pollingInterval,\n}: WalletClientConfig): WalletClient<\n TTransport,\n TChain,\n TAccountOrAddress extends Address\n ? Prettify>\n : TAccountOrAddress,\n true\n> {\n const client = {\n ...createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport: (opts) => transport({ ...opts, retryCount: 0 }),\n type: 'walletClient',\n }),\n account: account ? parseAccount(account) : undefined,\n } as WalletClient<\n TTransport,\n TChain,\n TAccountOrAddress extends Address\n ? JsonRpcAccount\n : TAccountOrAddress\n >\n return {\n ...client,\n ...walletActions(client),\n }\n}\n","import type { Abi, AbiEvent } from 'abitype'\n\nimport {\n type GetEnsAddressParameters,\n type GetEnsAddressReturnType,\n getEnsAddress,\n} from '../../actions/ens/getEnsAddress.js'\nimport {\n type GetEnsAvatarParameters,\n type GetEnsAvatarReturnType,\n getEnsAvatar,\n} from '../../actions/ens/getEnsAvatar.js'\nimport {\n type GetEnsNameParameters,\n type GetEnsNameReturnType,\n getEnsName,\n} from '../../actions/ens/getEnsName.js'\nimport {\n type GetEnsResolverParameters,\n type GetEnsResolverReturnType,\n getEnsResolver,\n} from '../../actions/ens/getEnsResolver.js'\nimport {\n type GetEnsTextParameters,\n type GetEnsTextReturnType,\n getEnsText,\n} from '../../actions/ens/getEnsText.js'\nimport {\n type CallParameters,\n type CallReturnType,\n call,\n} from '../../actions/public/call.js'\nimport {\n type CreateBlockFilterReturnType,\n createBlockFilter,\n} from '../../actions/public/createBlockFilter.js'\nimport {\n type CreateContractEventFilterParameters,\n type CreateContractEventFilterReturnType,\n createContractEventFilter,\n} from '../../actions/public/createContractEventFilter.js'\nimport {\n type CreateEventFilterParameters,\n type CreateEventFilterReturnType,\n createEventFilter,\n} from '../../actions/public/createEventFilter.js'\nimport {\n type CreatePendingTransactionFilterReturnType,\n createPendingTransactionFilter,\n} from '../../actions/public/createPendingTransactionFilter.js'\nimport {\n type EstimateContractGasParameters,\n type EstimateContractGasReturnType,\n estimateContractGas,\n} from '../../actions/public/estimateContractGas.js'\nimport {\n type EstimateGasParameters,\n type EstimateGasReturnType,\n estimateGas,\n} from '../../actions/public/estimateGas.js'\nimport {\n type GetBalanceParameters,\n type GetBalanceReturnType,\n getBalance,\n} from '../../actions/public/getBalance.js'\nimport {\n type GetBlockParameters,\n type GetBlockReturnType,\n getBlock,\n} from '../../actions/public/getBlock.js'\nimport {\n type GetBlockNumberParameters,\n type GetBlockNumberReturnType,\n getBlockNumber,\n} from '../../actions/public/getBlockNumber.js'\nimport {\n type GetBlockTransactionCountParameters,\n type GetBlockTransactionCountReturnType,\n getBlockTransactionCount,\n} from '../../actions/public/getBlockTransactionCount.js'\nimport {\n type GetBytecodeParameters,\n type GetBytecodeReturnType,\n getBytecode,\n} from '../../actions/public/getBytecode.js'\nimport {\n type GetChainIdReturnType,\n getChainId,\n} from '../../actions/public/getChainId.js'\nimport {\n type GetFeeHistoryParameters,\n type GetFeeHistoryReturnType,\n getFeeHistory,\n} from '../../actions/public/getFeeHistory.js'\nimport {\n type GetFilterChangesParameters,\n type GetFilterChangesReturnType,\n getFilterChanges,\n} from '../../actions/public/getFilterChanges.js'\nimport {\n type GetFilterLogsParameters,\n type GetFilterLogsReturnType,\n getFilterLogs,\n} from '../../actions/public/getFilterLogs.js'\nimport {\n type GetGasPriceReturnType,\n getGasPrice,\n} from '../../actions/public/getGasPrice.js'\nimport {\n type GetLogsParameters,\n type GetLogsReturnType,\n getLogs,\n} from '../../actions/public/getLogs.js'\nimport {\n type GetStorageAtParameters,\n type GetStorageAtReturnType,\n getStorageAt,\n} from '../../actions/public/getStorageAt.js'\nimport {\n type GetTransactionParameters,\n type GetTransactionReturnType,\n getTransaction,\n} from '../../actions/public/getTransaction.js'\nimport {\n type GetTransactionConfirmationsParameters,\n type GetTransactionConfirmationsReturnType,\n getTransactionConfirmations,\n} from '../../actions/public/getTransactionConfirmations.js'\nimport {\n type GetTransactionCountParameters,\n type GetTransactionCountReturnType,\n getTransactionCount,\n} from '../../actions/public/getTransactionCount.js'\nimport {\n type GetTransactionReceiptParameters,\n type GetTransactionReceiptReturnType,\n getTransactionReceipt,\n} from '../../actions/public/getTransactionReceipt.js'\nimport {\n type MulticallParameters,\n type MulticallReturnType,\n multicall,\n} from '../../actions/public/multicall.js'\nimport {\n type ReadContractParameters,\n type ReadContractReturnType,\n readContract,\n} from '../../actions/public/readContract.js'\nimport {\n type SimulateContractParameters,\n type SimulateContractReturnType,\n simulateContract,\n} from '../../actions/public/simulateContract.js'\nimport {\n type UninstallFilterParameters,\n type UninstallFilterReturnType,\n uninstallFilter,\n} from '../../actions/public/uninstallFilter.js'\nimport {\n type VerifyMessageParameters,\n type VerifyMessageReturnType,\n verifyMessage,\n} from '../../actions/public/verifyMessage.js'\nimport {\n type VerifyTypedDataParameters,\n type VerifyTypedDataReturnType,\n verifyTypedData,\n} from '../../actions/public/verifyTypedData.js'\nimport {\n type WaitForTransactionReceiptParameters,\n type WaitForTransactionReceiptReturnType,\n waitForTransactionReceipt,\n} from '../../actions/public/waitForTransactionReceipt.js'\nimport {\n type WatchBlockNumberParameters,\n type WatchBlockNumberReturnType,\n watchBlockNumber,\n} from '../../actions/public/watchBlockNumber.js'\nimport {\n type WatchBlocksParameters,\n type WatchBlocksReturnType,\n watchBlocks,\n} from '../../actions/public/watchBlocks.js'\nimport {\n type WatchContractEventParameters,\n type WatchContractEventReturnType,\n watchContractEvent,\n} from '../../actions/public/watchContractEvent.js'\nimport {\n type WatchEventParameters,\n type WatchEventReturnType,\n watchEvent,\n} from '../../actions/public/watchEvent.js'\nimport {\n type WatchPendingTransactionsParameters,\n type WatchPendingTransactionsReturnType,\n watchPendingTransactions,\n} from '../../actions/public/watchPendingTransactions.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n ContractFunctionConfig,\n MaybeAbiEventName,\n MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { FilterType } from '../../types/filter.js'\nimport type { PublicClient } from '../createPublicClient.js'\nimport type { Transport } from '../transports/createTransport.js'\n\nexport type PublicActions<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n> = {\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.html\n * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await client.call({\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\n call: (parameters: CallParameters) => Promise\n /**\n * Creates a Filter to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html).\n *\n * - Docs: https://viem.sh/docs/actions/public/createBlockFilter.html\n * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)\n *\n * @returns Filter. {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, createBlockFilter, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'block' }\n */\n createBlockFilter: () => Promise\n /**\n * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs.html).\n *\n * - Docs: https://viem.sh/docs/contract/createContractEventFilter.html\n *\n * @param args - {@link CreateContractEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateContractEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await client.createContractEventFilter({\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * })\n */\n createContractEventFilter: <\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TArgs extends MaybeExtractEventArgsFromAbi | undefined,\n TStrict extends boolean | undefined = undefined,\n >(\n args: CreateContractEventFilterParameters,\n ) => Promise<\n CreateContractEventFilterReturnType\n >\n /**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types.html#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html).\n *\n * - Docs: https://viem.sh/docs/actions/public/createEventFilter.html\n * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)\n *\n * @param args - {@link CreateEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await client.createEventFilter({\n * address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n * })\n */\n createEventFilter: <\n TAbiEvent extends AbiEvent | undefined,\n TStrict extends boolean | undefined = undefined,\n _Abi extends Abi | readonly unknown[] = [TAbiEvent],\n _EventName extends string | undefined = MaybeAbiEventName,\n _Args extends\n | MaybeExtractEventArgsFromAbi<_Abi, _EventName>\n | undefined = undefined,\n >(\n args?: CreateEventFilterParameters<\n TAbiEvent,\n TStrict,\n _Abi,\n _EventName,\n _Args\n >,\n ) => Promise<\n CreateEventFilterReturnType\n >\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.html).\n *\n * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter.html\n * - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter)\n *\n * @returns [`Filter`](https://viem.sh/docs/glossary/types.html#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await client.createPendingTransactionFilter()\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'transaction' }\n */\n createPendingTransactionFilter: () => Promise\n /**\n * Estimates the gas required to successfully execute a contract write function call.\n *\n * - Docs: https://viem.sh/docs/contract/estimateContractGas.html\n *\n * @remarks\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`estimateGas` action](https://viem.sh/docs/actions/public/estimateGas.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gas = await client.estimateContractGas({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint() public']),\n * functionName: 'mint',\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * })\n */\n estimateContractGas: <\n TChain extends Chain | undefined,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n >(\n args: EstimateContractGasParameters,\n ) => Promise\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.html\n * - JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasEstimate = await client.estimateGas({\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * })\n */\n estimateGas: (\n args: EstimateGasParameters,\n ) => Promise\n /**\n * Returns the balance of an address in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBalance.html\n * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)\n *\n * @remarks\n * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther.html).\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 args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const balance = await client.getBalance({\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n * // 10000000000000000000000n (wei)\n */\n getBalance: (args: GetBalanceParameters) => Promise\n /**\n * Returns information about a block at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlock.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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 args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await client.getBlock()\n */\n getBlock: (args?: GetBlockParameters) => Promise>\n /**\n * Returns the number of the most recent block seen.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockNumber.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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 args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const blockNumber = await client.getBlockNumber()\n * // 69420n\n */\n getBlockNumber: (\n args?: GetBlockNumberParameters,\n ) => Promise\n /**\n * Returns the number of Transactions at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount.html\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 args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const count = await client.getBlockTransactionCount()\n */\n getBlockTransactionCount: (\n args?: GetBlockTransactionCountParameters,\n ) => Promise\n /**\n * Retrieves the bytecode at an address.\n *\n * - Docs: https://viem.sh/docs/contract/getBytecode.html\n * - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode)\n *\n * @param args - {@link GetBytecodeParameters}\n * @returns The contract's bytecode. {@link GetBytecodeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await client.getBytecode({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * })\n */\n getBytecode: (args: GetBytecodeParameters) => Promise\n /**\n * Returns the chain ID associated with the current network.\n *\n * - Docs: https://viem.sh/docs/actions/public/getChainId.html\n * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n *\n * @returns The current chain ID. {@link GetChainIdReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const chainId = await client.getChainId()\n * // 1\n */\n getChainId: () => Promise\n /**\n * Gets address for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens\n *\n * @remarks\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.html) function for this.\n *\n * @param args - {@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 { normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAddress = await client.getEnsAddress({\n * name: normalize('wagmi-dev.eth'),\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\n getEnsAddress: (\n args: GetEnsAddressParameters,\n ) => Promise\n /**\n * Gets the avatar of an ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens\n *\n * @remarks\n * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText.html) 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.html) function for this.\n *\n * @param args - {@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 { normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAvatar = await client.getEnsAvatar({\n * name: normalize('wagmi-dev.eth'),\n * })\n * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'\n */\n getEnsAvatar: (\n args: GetEnsAvatarParameters,\n ) => Promise\n /**\n * Gets primary name for specified address.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsName.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens\n *\n * @remarks\n * Calls `reverse(bytes)` on ENS Universal Resolver Contract to \"reverse resolve\" the address to the primary ENS name.\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensName = await client.getEnsName({\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wagmi-dev.eth'\n */\n getEnsName: (args: GetEnsNameParameters) => Promise\n /**\n * Gets resolver for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens\n *\n * @remarks\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.html) function for this.\n *\n * @param args - {@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 { normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const resolverAddress = await client.getEnsResolver({\n * name: normalize('wagmi-dev.eth'),\n * })\n * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'\n */\n getEnsResolver: (\n args: GetEnsResolverParameters,\n ) => Promise\n /**\n * Gets a text record for specified ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/ens\n *\n * @remarks\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.html) function for this.\n *\n * @param args - {@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 { normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const twitterRecord = await client.getEnsText({\n * name: normalize('wagmi-dev.eth'),\n * key: 'com.twitter',\n * })\n * // 'wagmi_sh'\n */\n getEnsText: (args: GetEnsTextParameters) => Promise\n /**\n * Returns a collection of historical gas information.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFeeHistory.html\n * - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const feeHistory = await client.getFeeHistory({\n * blockCount: 4,\n * rewardPercentiles: [25, 75],\n * })\n */\n getFeeHistory: (\n args: GetFeeHistoryParameters,\n ) => Promise\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.html\n * - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)\n *\n * @remarks\n * A Filter can be created from the following actions:\n *\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter.html)\n * - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter.html)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter.html)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter.html)\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 args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await client.createBlockFilter()\n * const hashes = await client.getFilterChanges({ filter })\n *\n * @example\n * // Contract Events\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await client.createContractEventFilter({\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * eventName: 'Transfer',\n * })\n * const logs = await client.getFilterChanges({ filter })\n *\n * @example\n * // Raw Events\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await client.createEventFilter({\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await client.getFilterChanges({ filter })\n *\n * @example\n * // Transactions\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await client.createPendingTransactionFilter()\n * const hashes = await client.getFilterChanges({ filter })\n */\n getFilterChanges: <\n TFilterType extends FilterType,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TStrict extends boolean | undefined = undefined,\n >(\n args: GetFilterChangesParameters,\n ) => Promise<\n GetFilterChangesReturnType\n >\n /**\n * Returns a list of event logs since the filter was created.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterLogs.html\n * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)\n *\n * @remarks\n * `getFilterLogs` is only compatible with **event filters**.\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await client.createEventFilter({\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await client.getFilterLogs({ filter })\n */\n getFilterLogs: <\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TStrict extends boolean | undefined = undefined,\n >(\n args: GetFilterLogsParameters,\n ) => Promise>\n /**\n * Returns the current price of gas (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/public/getGasPrice.html\n * - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)\n *\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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasPrice = await client.getGasPrice()\n */\n getGasPrice: () => Promise\n /**\n * Returns a list of event logs matching the provided parameters.\n *\n * - Docs: https://viem.sh/docs/actions/public/getLogs.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/filters-and-logs/event-logs\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await client.getLogs()\n */\n getLogs: <\n TAbiEvent extends AbiEvent | undefined,\n TStrict extends boolean | undefined = undefined,\n >(\n args?: GetLogsParameters,\n ) => Promise>\n /**\n * Returns the value from a storage slot at a given address.\n *\n * - Docs: https://viem.sh/docs/contract/getStorageAt.html\n * - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)\n *\n * @param args - {@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 client.getStorageAt({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * slot: toHex(0),\n * })\n */\n getStorageAt: (\n args: GetStorageAtParameters,\n ) => Promise\n /**\n * Returns information about a [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) given a hash or block identifier.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransaction.html\n * - Example: https://stackblitz.com/github/wagmi-dev/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 args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transaction = await client.getTransaction({\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\n getTransaction: (\n args: GetTransactionParameters,\n ) => Promise>\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.html\n * - Example: https://stackblitz.com/github/wagmi-dev/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 args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const confirmations = await client.getTransactionConfirmations({\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\n getTransactionConfirmations: (\n args: GetTransactionConfirmationsParameters,\n ) => Promise\n /**\n * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms.html#transaction) an Account has broadcast / sent.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionCount.html\n * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionCount = await client.getTransactionCount({\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\n getTransactionCount: (\n args: GetTransactionCountParameters,\n ) => Promise\n /**\n * Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms.html#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt.html\n * - Example: https://stackblitz.com/github/wagmi-dev/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 args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionReceipt = await client.getTransactionReceipt({\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\n getTransactionReceipt: (\n args: GetTransactionReceiptParameters,\n ) => Promise>\n /**\n * Similar to [`readContract`](https://viem.sh/docs/contract/readContract.html), 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.html\n *\n * @param args - {@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 *\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 result = await client.multicall({\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 */\n multicall: <\n TContracts extends ContractFunctionConfig[],\n TAllowFailure extends boolean = true,\n >(\n args: MulticallParameters,\n ) => Promise>\n /**\n * Calls a read-only function on a contract, and returns the response.\n *\n * - Docs: https://viem.sh/docs/contract/readContract.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/contracts/reading-contracts\n *\n * @remarks\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.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * @param args - {@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 client.readContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n * functionName: 'balanceOf',\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // 424122n\n */\n readContract: <\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n >(\n args: ReadContractParameters,\n ) => Promise>\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.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/contracts/writing-to-contracts\n *\n * @remarks\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.html), but also supports contract write functions.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public.html) to call the [`call` action](https://viem.sh/docs/actions/public/call.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await client.simulateContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32) view returns (uint32)']),\n * functionName: 'mint',\n * args: ['69420'],\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\n simulateContract: <\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = any,\n TChainOverride extends Chain | undefined = undefined,\n >(\n args: SimulateContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n TChainOverride\n >,\n ) => Promise<\n SimulateContractReturnType\n >\n verifyMessage: (\n args: VerifyMessageParameters,\n ) => Promise\n verifyTypedData: (\n args: VerifyTypedDataParameters,\n ) => Promise\n /**\n * Destroys a Filter that was created from one of the following Actions:\n *\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter.html)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter.html)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter.html)\n *\n * - Docs: https://viem.sh/docs/actions/public/uninstallFilter.html\n * - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter)\n *\n * @param args - {@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 client.createPendingTransactionFilter()\n * const uninstalled = await client.uninstallFilter({ filter })\n * // true\n */\n uninstallFilter: (\n args: UninstallFilterParameters,\n ) => Promise\n /**\n * Waits for the [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms.html#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms.html#transaction-receipt). If the Transaction reverts, then the action will throw an error.\n *\n * - Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt.html\n * - Example: https://stackblitz.com/github/wagmi-dev/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 * @remarks\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 args - {@link WaitForTransactionReceiptParameters}\n * @returns The transaction receipt. {@link WaitForTransactionReceiptReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionReceipt = await client.waitForTransactionReceipt({\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\n waitForTransactionReceipt: (\n args: WaitForTransactionReceiptParameters,\n ) => Promise>\n /**\n * Watches and returns incoming block numbers.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlockNumber.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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 args - {@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, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = await client.watchBlockNumber({\n * onBlockNumber: (blockNumber) => console.log(blockNumber),\n * })\n */\n watchBlockNumber: (\n args: WatchBlockNumberParameters,\n ) => WatchBlockNumberReturnType\n /**\n * Watches and returns information for incoming blocks.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlocks.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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 args - {@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, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = await client.watchBlocks({\n * onBlock: (block) => console.log(block),\n * })\n */\n watchBlocks: (\n args: WatchBlocksParameters,\n ) => WatchBlocksReturnType\n /**\n * Watches and returns emitted contract event logs.\n *\n * - Docs: https://viem.sh/docs/contract/watchContractEvent.html\n *\n * @remarks\n * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent.html#onLogs).\n *\n * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter.html) 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.html) instead.\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = client.watchContractEvent({\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 */\n watchContractEvent: <\n TAbi extends Abi | readonly unknown[],\n TEventName extends string,\n TStrict extends boolean | undefined = undefined,\n >(\n args: WatchContractEventParameters,\n ) => WatchContractEventReturnType\n /**\n * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms.html#event-log).\n *\n * - Docs: https://viem.sh/docs/actions/public/watchEvent.html\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 * @remarks\n * This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent.html#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent.html#onLogs).\n *\n * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter.html) 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.html) instead.\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = client.watchEvent({\n * onLogs: (logs) => console.log(logs),\n * })\n */\n watchEvent: <\n TAbiEvent extends AbiEvent | undefined,\n TStrict extends boolean | undefined = undefined,\n >(\n args: WatchEventParameters,\n ) => WatchEventReturnType\n /**\n * Watches and returns pending transaction hashes.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions.html\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 * @remarks\n * This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions.html#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions.html#ontransactions).\n *\n * @param args - {@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 *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = await client.watchPendingTransactions({\n * onTransactions: (hashes) => console.log(hashes),\n * })\n */\n watchPendingTransactions: (\n args: WatchPendingTransactionsParameters,\n ) => WatchPendingTransactionsReturnType\n}\n\nexport const publicActions: <\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n>(\n client: PublicClient,\n) => PublicActions = <\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n>(\n client: PublicClient,\n): PublicActions => ({\n call: (args) => call(client, args),\n createBlockFilter: () => createBlockFilter(client),\n createContractEventFilter: (args) => createContractEventFilter(client, args),\n createEventFilter: (args) => createEventFilter(client, args),\n createPendingTransactionFilter: () => createPendingTransactionFilter(client),\n estimateContractGas: (args) => estimateContractGas(client, args),\n estimateGas: (args) => estimateGas(client, args),\n getBalance: (args) => getBalance(client, args),\n getBlock: (args) => getBlock(client, args),\n getBlockNumber: (args) => getBlockNumber(client, args),\n getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),\n getBytecode: (args) => getBytecode(client, args),\n getChainId: () => getChainId(client),\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 getFilterChanges: (args) => getFilterChanges(client, args),\n getFilterLogs: (args) => getFilterLogs(client, args),\n getGasPrice: () => getGasPrice(client),\n getLogs: (args) => getLogs(client, args),\n getStorageAt: (args) => getStorageAt(client, args),\n getTransaction: (args) => getTransaction(client, args),\n getTransactionConfirmations: (args) =>\n getTransactionConfirmations(client, args),\n getTransactionCount: (args) => getTransactionCount(client, args),\n getTransactionReceipt: (args) => getTransactionReceipt(client, args),\n multicall: (args) => multicall(client, args),\n readContract: (args) => readContract(client, args),\n simulateContract: (args) => simulateContract(client, args),\n verifyMessage: (args) => verifyMessage(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","import {\n type DropTransactionParameters,\n dropTransaction,\n} from '../../actions/test/dropTransaction.js'\nimport {\n type GetAutomineReturnType,\n getAutomine,\n} from '../../actions/test/getAutomine.js'\nimport {\n type GetTxpoolContentReturnType,\n getTxpoolContent,\n} from '../../actions/test/getTxpoolContent.js'\nimport {\n type GetTxpoolStatusReturnType,\n getTxpoolStatus,\n} from '../../actions/test/getTxpoolStatus.js'\nimport {\n type ImpersonateAccountParameters,\n impersonateAccount,\n} from '../../actions/test/impersonateAccount.js'\nimport {\n type IncreaseTimeParameters,\n increaseTime,\n} from '../../actions/test/increaseTime.js'\nimport {\n type InspectTxpoolReturnType,\n inspectTxpool,\n} from '../../actions/test/inspectTxpool.js'\nimport { type MineParameters, mine } from '../../actions/test/mine.js'\nimport { removeBlockTimestampInterval } from '../../actions/test/removeBlockTimestampInterval.js'\nimport { type ResetParameters, reset } from '../../actions/test/reset.js'\nimport { type RevertParameters, revert } from '../../actions/test/revert.js'\nimport {\n type SendUnsignedTransactionParameters,\n type SendUnsignedTransactionReturnType,\n sendUnsignedTransaction,\n} from '../../actions/test/sendUnsignedTransaction.js'\nimport { setAutomine } from '../../actions/test/setAutomine.js'\nimport {\n type SetBalanceParameters,\n setBalance,\n} from '../../actions/test/setBalance.js'\nimport {\n type SetBlockGasLimitParameters,\n setBlockGasLimit,\n} from '../../actions/test/setBlockGasLimit.js'\nimport {\n type SetBlockTimestampIntervalParameters,\n setBlockTimestampInterval,\n} from '../../actions/test/setBlockTimestampInterval.js'\nimport { type SetCodeParameters, setCode } from '../../actions/test/setCode.js'\nimport {\n type SetCoinbaseParameters,\n setCoinbase,\n} from '../../actions/test/setCoinbase.js'\nimport {\n type SetIntervalMiningParameters,\n setIntervalMining,\n} from '../../actions/test/setIntervalMining.js'\nimport { setLoggingEnabled } from '../../actions/test/setLoggingEnabled.js'\nimport {\n type SetMinGasPriceParameters,\n setMinGasPrice,\n} from '../../actions/test/setMinGasPrice.js'\nimport {\n type SetNextBlockBaseFeePerGasParameters,\n setNextBlockBaseFeePerGas,\n} from '../../actions/test/setNextBlockBaseFeePerGas.js'\nimport {\n type SetNextBlockTimestampParameters,\n setNextBlockTimestamp,\n} from '../../actions/test/setNextBlockTimestamp.js'\nimport {\n type SetNonceParameters,\n setNonce,\n} from '../../actions/test/setNonce.js'\nimport { setRpcUrl } from '../../actions/test/setRpcUrl.js'\nimport {\n type SetStorageAtParameters,\n setStorageAt,\n} from '../../actions/test/setStorageAt.js'\nimport { snapshot } from '../../actions/test/snapshot.js'\nimport {\n type StopImpersonatingAccountParameters,\n stopImpersonatingAccount,\n} from '../../actions/test/stopImpersonatingAccount.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Quantity } from '../../types/rpc.js'\nimport type { TestClient, TestClientMode } from '../createTestClient.js'\nimport type { Transport } from '../transports/createTransport.js'\n\nexport type TestActions = {\n /**\n * Removes a transaction from the mempool.\n *\n * - Docs: https://viem.sh/docs/actions/test/dropTransaction.html\n *\n * @param args - {@link DropTransactionParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.dropTransaction({\n * hash: '0xe58dceb6b20b03965bb678e27d141e151d7d4efc2334c2d6a49b9fac523f7364'\n * })\n */\n dropTransaction: (args: DropTransactionParameters) => Promise\n /**\n * Returns the automatic mining status of the node.\n *\n * - Docs: https://viem.sh/docs/actions/test/getAutomine.html\n *\n * @returns Whether or not the node is auto mining. {@link GetAutomineReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const isAutomining = await client.getAutomine()\n */\n getAutomine: () => Promise\n /**\n * Returns the details of all transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.\n *\n * - Docs: https://viem.sh/docs/actions/test/getTxpoolContent.html\n *\n * @returns Transaction pool content. {@link GetTxpoolContentReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const content = await client.getTxpoolContent()\n */\n getTxpoolContent: () => Promise\n /**\n * Returns a summary of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.\n *\n * - Docs: https://viem.sh/docs/actions/test/getTxpoolStatus.html\n *\n * @returns Transaction pool status. {@link GetTxpoolStatusReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const status = await client.getTxpoolStatus()\n */\n getTxpoolStatus: () => Promise\n /**\n * Impersonate an account or contract address. This lets you send transactions from that account even if you don't have access to its private key.\n *\n * - Docs: https://viem.sh/docs/actions/test/impersonateAccount.html\n *\n * @param args - {@link ImpersonateAccountParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.impersonateAccount({\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\n impersonateAccount: (args: ImpersonateAccountParameters) => Promise\n /**\n * Jump forward in time by the given amount of time, in seconds.\n *\n * - Docs: https://viem.sh/docs/actions/test/increaseTime.html\n *\n * @param args – {@link IncreaseTimeParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.increaseTime({\n * seconds: 420,\n * })\n */\n increaseTime: (args: IncreaseTimeParameters) => Promise\n /**\n * Returns a summary of all the transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.\n *\n * - Docs: https://viem.sh/docs/actions/test/inspectTxpool.html\n *\n * @returns Transaction pool inspection data. {@link InspectTxpoolReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const data = await client.inspectTxpool()\n */\n inspectTxpool: () => Promise\n /**\n * Mine a specified number of blocks.\n *\n * - Docs: https://viem.sh/docs/actions/test/mine.html\n *\n * @param client - Client to use\n * @param args – {@link MineParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.mine({ blocks: 1 })\n */\n mine: (args: MineParameters) => Promise\n /**\n * Removes [`setBlockTimestampInterval`](https://viem.sh/docs/actions/test/setBlockTimestampInterval.html) if it exists.\n *\n * - Docs: https://viem.sh/docs/actions/test/removeBlockTimestampInterval.html\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { removeBlockTimestampInterval } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.removeBlockTimestampInterval()\n */\n removeBlockTimestampInterval: () => Promise\n /**\n * Resets fork back to its original state.\n *\n * - Docs: https://viem.sh/docs/actions/test/reset.html\n *\n * @param args – {@link ResetParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.reset({ blockNumber: 69420n })\n */\n reset: (args?: ResetParameters) => Promise\n /**\n * Revert the state of the blockchain at the current block.\n *\n * - Docs: https://viem.sh/docs/actions/test/revert.html\n *\n * @param args – {@link RevertParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.revert({ id: '0x…' })\n */\n revert: (args: RevertParameters) => Promise\n /**\n * Returns the details of all transactions currently pending for inclusion in the next block(s), as well as the ones that are being scheduled for future execution only.\n *\n * - Docs: https://viem.sh/docs/actions/test/getTxpoolContent.html\n *\n * @param args – {@link SendUnsignedTransactionParameters}\n * @returns The transaction hash. {@link SendUnsignedTransactionReturnType}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * const hash = await client.sendUnsignedTransaction({\n * from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\n sendUnsignedTransaction: (\n args: SendUnsignedTransactionParameters,\n ) => Promise\n /**\n * Enables or disables the automatic mining of new blocks with each new transaction submitted to the network.\n *\n * - Docs: https://viem.sh/docs/actions/test/setAutomine.html\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setAutomine()\n */\n setAutomine: (args: boolean) => Promise\n /**\n * Modifies the balance of an account.\n *\n * - Docs: https://viem.sh/docs/actions/test/setBalance.html\n *\n * @param args – {@link SetBalanceParameters}\n *\n * @example\n * import { createTestClient, http, parseEther } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setBalance({\n * address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\n * value: parseEther('1'),\n * })\n */\n setBalance: (args: SetBalanceParameters) => Promise\n /**\n * Sets the block's gas limit.\n *\n * - Docs: https://viem.sh/docs/actions/test/setBlockGasLimit.html\n *\n * @param args – {@link SetBlockGasLimitParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setBlockGasLimit({ gasLimit: 420_000n })\n */\n setBlockGasLimit: (args: SetBlockGasLimitParameters) => Promise\n /**\n * Similar to [`increaseTime`](https://viem.sh/docs/actions/test/increaseTime.html), but sets a block timestamp `interval`. The timestamp of future blocks will be computed as `lastBlock_timestamp` + `interval`.\n *\n * - Docs: https://viem.sh/docs/actions/test/setBlockTimestampInterval.html\n *\n * @param args – {@link SetBlockTimestampIntervalParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setBlockTimestampInterval({ interval: 5 })\n */\n setBlockTimestampInterval: (\n args: SetBlockTimestampIntervalParameters,\n ) => Promise\n /**\n * Modifies the bytecode stored at an account's address.\n *\n * - Docs: https://viem.sh/docs/actions/test/setCode.html\n *\n * @param args – {@link SetCodeParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setCode({\n * address: '0xe846c6fcf817734ca4527b28ccb4aea2b6663c79',\n * bytecode: '0x60806040526000600355600019600955600c80546001600160a01b031916737a250d5630b4cf539739df…',\n * })\n */\n setCode: (args: SetCodeParameters) => Promise\n /**\n * Sets the coinbase address to be used in new blocks.\n *\n * - Docs: https://viem.sh/docs/actions/test/setCoinbase.html\n *\n * @param args – {@link SetCoinbaseParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setCoinbase({\n * address: '0xe846c6fcf817734ca4527b28ccb4aea2b6663c79',\n * })\n */\n setCoinbase: (args: SetCoinbaseParameters) => Promise\n /**\n * Sets the automatic mining interval (in seconds) of blocks. Setting the interval to 0 will disable automatic mining.\n *\n * - Docs: https://viem.sh/docs/actions/test/setIntervalMining.html\n *\n * @param args – {@link SetIntervalMiningParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setIntervalMining({ interval: 5 })\n */\n setIntervalMining: (args: SetIntervalMiningParameters) => Promise\n /**\n * Enable or disable logging on the test node network.\n *\n * - Docs: https://viem.sh/docs/actions/test/setLoggingEnabled.html\n *\n * @param client - Client to use\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setLoggingEnabled()\n */\n setLoggingEnabled: (args: boolean) => Promise\n /**\n * Change the minimum gas price accepted by the network (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/test/setMinGasPrice.html\n *\n * Note: `setMinGasPrice` can only be used on clients that do not have EIP-1559 enabled.\n *\n * @param args – {@link SetBlockGasLimitParameters}\n *\n * @example\n * import { createTestClient, http, parseGwei } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setMinGasPrice({\n * gasPrice: parseGwei('20'),\n * })\n */\n setMinGasPrice: (args: SetMinGasPriceParameters) => Promise\n /**\n * Sets the next block's base fee per gas.\n *\n * - Docs: https://viem.sh/docs/actions/test/setNextBlockBaseFeePerGas.html\n *\n * @param args – {@link SetNextBlockBaseFeePerGasParameters}\n *\n * @example\n * import { createTestClient, http, parseGwei } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setNextBlockBaseFeePerGas({\n * baseFeePerGas: parseGwei('20'),\n * })\n */\n setNextBlockBaseFeePerGas: (\n args: SetNextBlockBaseFeePerGasParameters,\n ) => Promise\n /**\n * Sets the next block's timestamp.\n *\n * - Docs: https://viem.sh/docs/actions/test/setNextBlockTimestamp.html\n *\n * @param args – {@link SetNextBlockTimestampParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setNextBlockTimestamp({ timestamp: 1671744314n })\n */\n setNextBlockTimestamp: (\n args: SetNextBlockTimestampParameters,\n ) => Promise\n /**\n * Modifies (overrides) the nonce of an account.\n *\n * - Docs: https://viem.sh/docs/actions/test/setNonce.html\n *\n * @param args – {@link SetNonceParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setNonce({\n * address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\n * nonce: 420,\n * })\n */\n setNonce: (args: SetNonceParameters) => Promise\n /**\n * Sets the backend RPC URL.\n *\n * - Docs: https://viem.sh/docs/actions/test/setRpcUrl.html\n *\n * @param jsonRpcUrl – RPC URL\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setRpcUrl('https://eth-mainnet.g.alchemy.com/v2')\n */\n setRpcUrl: (args: string) => Promise\n /**\n * Writes to a slot of an account's storage.\n *\n * - Docs: https://viem.sh/docs/actions/test/setStorageAt.html\n *\n * @param args – {@link SetStorageAtParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.setStorageAt({\n * address: '0xe846c6fcf817734ca4527b28ccb4aea2b6663c79',\n * index: 2,\n * value: '0x0000000000000000000000000000000000000000000000000000000000000069',\n * })\n */\n setStorageAt: (args: SetStorageAtParameters) => Promise\n /**\n * Snapshot the state of the blockchain at the current block.\n *\n * - Docs: https://viem.sh/docs/actions/test/snapshot.html\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { snapshot } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.snapshot()\n */\n snapshot: () => Promise\n /**\n * Stop impersonating an account after having previously used [`impersonateAccount`](https://viem.sh/docs/actions/test/impersonateAccount.html).\n *\n * - Docs: https://viem.sh/docs/actions/test/stopImpersonatingAccount.html\n *\n * @param args – {@link StopImpersonatingAccountParameters}\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { foundry } from 'viem/chains'\n * import { stopImpersonatingAccount } from 'viem/test'\n *\n * const client = createTestClient({\n * mode: 'anvil',\n * chain: 'foundry',\n * transport: http(),\n * })\n * await client.stopImpersonatingAccount({\n * address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\n * })\n */\n stopImpersonatingAccount: (\n args: StopImpersonatingAccountParameters,\n ) => Promise\n}\n\nexport function testActions(\n client: TestClient,\n): TestActions {\n return {\n dropTransaction: (args) => dropTransaction(client, args),\n getAutomine: () => getAutomine(client),\n getTxpoolContent: () => getTxpoolContent(client),\n getTxpoolStatus: () => getTxpoolStatus(client),\n impersonateAccount: (args) => impersonateAccount(client, args),\n increaseTime: (args) => increaseTime(client, args),\n inspectTxpool: () => inspectTxpool(client),\n mine: (args) => mine(client, args),\n removeBlockTimestampInterval: () => removeBlockTimestampInterval(client),\n reset: (args) => reset(client, args),\n revert: (args) => revert(client, args),\n sendUnsignedTransaction: (args) =>\n sendUnsignedTransaction(client, args as any),\n setAutomine: (args) => setAutomine(client, args),\n setBalance: (args) => setBalance(client, args),\n setBlockGasLimit: (args) => setBlockGasLimit(client, args),\n setBlockTimestampInterval: (args) =>\n setBlockTimestampInterval(client, args),\n setCode: (args) => setCode(client, args),\n setCoinbase: (args) => setCoinbase(client, args),\n setIntervalMining: (args) => setIntervalMining(client, args),\n setLoggingEnabled: (args) => setLoggingEnabled(client, args),\n setMinGasPrice: (args) => setMinGasPrice(client, args),\n setNextBlockBaseFeePerGas: (args) =>\n setNextBlockBaseFeePerGas(client, args),\n setNextBlockTimestamp: (args) => setNextBlockTimestamp(client, args),\n setNonce: (args) => setNonce(client, args),\n setRpcUrl: (args) => setRpcUrl(client, args),\n setStorageAt: (args) => setStorageAt(client, args),\n snapshot: () => snapshot(client),\n stopImpersonatingAccount: (args) => stopImpersonatingAccount(client, args),\n }\n}\n","import type { Abi, TypedData } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport {\n type GetChainIdReturnType,\n getChainId,\n} from '../../actions/public/getChainId.js'\nimport {\n type AddChainParameters,\n addChain,\n} from '../../actions/wallet/addChain.js'\nimport {\n type DeployContractParameters,\n type DeployContractReturnType,\n deployContract,\n} from '../../actions/wallet/deployContract.js'\nimport {\n type GetAddressesReturnType,\n getAddresses,\n} from '../../actions/wallet/getAddresses.js'\nimport {\n type GetPermissionsReturnType,\n getPermissions,\n} from '../../actions/wallet/getPermissions.js'\nimport {\n type RequestAddressesReturnType,\n requestAddresses,\n} from '../../actions/wallet/requestAddresses.js'\nimport {\n type RequestPermissionsParameters,\n type RequestPermissionsReturnType,\n requestPermissions,\n} from '../../actions/wallet/requestPermissions.js'\nimport {\n type SendTransactionParameters,\n type SendTransactionReturnType,\n sendTransaction,\n} from '../../actions/wallet/sendTransaction.js'\nimport {\n type SignMessageParameters,\n type SignMessageReturnType,\n signMessage,\n} from '../../actions/wallet/signMessage.js'\nimport {\n type SignTypedDataParameters,\n type SignTypedDataReturnType,\n signTypedData,\n} from '../../actions/wallet/signTypedData.js'\nimport {\n type SwitchChainParameters,\n switchChain,\n} from '../../actions/wallet/switchChain.js'\nimport {\n type WatchAssetParameters,\n type WatchAssetReturnType,\n watchAsset,\n} from '../../actions/wallet/watchAsset.js'\nimport {\n type WriteContractParameters,\n type WriteContractReturnType,\n writeContract,\n} from '../../actions/wallet/writeContract.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { WalletClient } from '../createWalletClient.js'\nimport type { Transport } from '../transports/createTransport.js'\n\nexport type WalletActions<\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n> = {\n /**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/addChain.html\n * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\n *\n * @param args - {@link AddChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { optimism } from 'viem/chains'\n *\n * const client = createWalletClient({\n * transport: custom(window.ethereum),\n * })\n * await client.addChain({ chain: optimism })\n */\n addChain: (args: AddChainParameters) => Promise\n /**\n * Deploys a contract to the network, given bytecode and constructor arguments.\n *\n * - Docs: https://viem.sh/docs/contract/deployContract.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/contracts/deploying-contracts\n *\n * @param args - {@link DeployContractParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash. {@link DeployContractReturnType}\n *\n * @example\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await client.deployContract({\n * abi: [],\n * account: '0x…,\n * bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',\n * })\n */\n deployContract: <\n TAbi extends Abi | readonly unknown[],\n TChainOverride extends Chain | undefined,\n >(\n args: DeployContractParameters,\n ) => Promise\n /**\n * Returns a list of account addresses owned by the wallet or client.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getAddresses.html\n * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\n *\n * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await client.getAddresses()\n */\n getAddresses: () => Promise\n /**\n * Returns the chain ID associated with the current network.\n *\n * - Docs: https://viem.sh/docs/actions/public/getChainId.html\n * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n *\n * @returns The current chain ID. {@link GetChainIdReturnType}\n *\n * @example\n * import { createWalletClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const chainId = await client.getChainId()\n * // 1\n */\n getChainId: () => Promise\n /**\n * Gets the wallets current permissions.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getPermissions.html\n * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @returns The wallet permissions. {@link GetPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await client.getPermissions()\n */\n getPermissions: () => Promise\n /**\n * Requests a list of accounts managed by a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses.html\n * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\n *\n * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\n *\n * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\n *\n * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await client.requestAddresses()\n */\n requestAddresses: () => Promise\n /**\n * Requests permissions for a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestPermissions.html\n * - JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param args - {@link RequestPermissionsParameters}\n * @returns The wallet permissions. {@link RequestPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await client.requestPermissions({\n * eth_accounts: {}\n * })\n */\n requestPermissions: (\n args: RequestPermissionsParameters,\n ) => Promise\n /**\n * Creates, signs, and sends a new transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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 args - {@link SendTransactionParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash. {@link SendTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await client.sendTransaction({\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 *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await client.sendTransaction({\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\n sendTransaction: (\n args: SendTransactionParameters,\n ) => Promise\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.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data.html#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.html) to verify the signature,\n * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress.html) to recover the signing address from a signature.\n *\n * @param args - {@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 *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await client.signMessage({\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * message: 'hello world',\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 *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await client.signMessage({\n * message: 'hello world',\n * })\n */\n signMessage: (\n args: SignMessageParameters,\n ) => Promise\n /**\n * Signs typed data and 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/signTypedData.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data.html#signtypeddata-v4)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param client - Client to use\n * @param args - {@link SignTypedDataParameters}\n * @returns The signed data. {@link SignTypedDataReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await client.signTypedData({\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await client.signTypedData({\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n */\n signTypedData: <\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string,\n >(\n args: SignTypedDataParameters,\n ) => Promise\n /**\n * Switch the target chain in a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/switchChain.html\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\n *\n * @param args - {@link SwitchChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet, optimism } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * await client.switchChain({ id: optimism.id })\n */\n switchChain: (args: SwitchChainParameters) => Promise\n /**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/watchAsset.html\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\n *\n * @param args - {@link WatchAssetParameters}\n * @returns Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const success = await client.watchAsset({\n * type: 'ERC20',\n * options: {\n * address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * decimals: 18,\n * symbol: 'WETH',\n * },\n * })\n */\n watchAsset: (args: WatchAssetParameters) => Promise\n /**\n * Executes a write function on a contract.\n *\n * - Docs: https://viem.sh/docs/contract/writeContract.html\n * - Examples: https://stackblitz.com/github/wagmi-dev/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.html) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet.html) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\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.html#usage) before you execute it.__\n *\n * @param args - {@link WriteContractParameters}\n * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms.html#hash). {@link WriteContractReturnType}\n *\n * @example\n * import { createWalletClient, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await client.writeContract({\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, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const { request } = await client.simulateContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * }\n * const hash = await client.writeContract(request)\n */\n writeContract: <\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TChainOverride extends Chain | undefined,\n >(\n args: WriteContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n TAccount,\n TChainOverride\n >,\n ) => Promise\n}\n\nexport const walletActions: <\n TTransport extends Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n>(\n client: WalletClient,\n) => WalletActions = <\n TTransport extends Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n>(\n client: WalletClient,\n): WalletActions => ({\n addChain: (args) => addChain(client, args),\n deployContract: (args) => deployContract(client, args),\n getAddresses: () => getAddresses(client),\n getChainId: () => getChainId(client),\n getPermissions: () => getPermissions(client),\n requestAddresses: () => requestAddresses(client),\n requestPermissions: (args) => requestPermissions(client, args),\n sendTransaction: (args) => sendTransaction(client, args),\n signMessage: (args) => signMessage(client, args),\n signTypedData: (args) => signTypedData(client, args),\n switchChain: (args) => switchChain(client, args),\n watchAsset: (args) => watchAsset(client, args),\n writeContract: (args) => writeContract(client, args),\n})\n","import type { Chain } from '../../types/chain.js'\nimport type { EIP1193RequestFn } from '../../types/eip1193.js'\nimport { buildRequest } from '../../utils/buildRequest.js'\nimport type { ClientConfig } from '../createClient.js'\n\nexport type TransportConfig<\n TType extends string = string,\n TEIP1193RequestFn extends EIP1193RequestFn = EIP1193RequestFn,\n> = {\n /** The name of the transport. */\n name: string\n /** The key of the transport. */\n key: string\n /** The JSON-RPC request function that matches the EIP-1193 request spec. */\n request: TEIP1193RequestFn\n /** The base delay (in ms) between retries. */\n retryDelay?: number\n /** The max number of times to retry. */\n retryCount?: number\n /** The timeout (in ms) for requests. */\n timeout?: number\n /** The type of the transport. */\n type: TType\n}\n\nexport type Transport<\n TType extends string = string,\n TRpcAttributes = Record,\n TEIP1193RequestFn extends EIP1193RequestFn = EIP1193RequestFn,\n> = ({\n chain,\n}: {\n chain?: TChain\n pollingInterval?: ClientConfig['pollingInterval']\n retryCount?: TransportConfig['retryCount']\n timeout?: TransportConfig['timeout']\n}) => {\n config: TransportConfig\n request: TEIP1193RequestFn\n value?: TRpcAttributes\n}\n\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport<\n TType extends string,\n TRpcAttributes extends Record,\n>(\n {\n key,\n name,\n request,\n retryCount = 3,\n retryDelay = 150,\n timeout,\n type,\n }: TransportConfig,\n value?: TRpcAttributes,\n): ReturnType> {\n return {\n config: { key, name, request, retryCount, retryDelay, timeout, type },\n request: buildRequest(request, { retryCount, retryDelay }),\n value,\n }\n}\n","import {\n type Transport,\n type TransportConfig,\n createTransport,\n} from './createTransport.js'\n\ntype EthereumProvider = { request(...args: any): Promise }\n\nexport type CustomTransportConfig = {\n /** The key of the transport. */\n key?: TransportConfig['key']\n /** The name of the transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n}\n\nexport type CustomTransport = Transport<'custom', EthereumProvider['request']>\n\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(\n provider: TProvider,\n config: CustomTransportConfig = {},\n): CustomTransport {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config\n return ({ retryCount: defaultRetryCount }) =>\n createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n })\n}\n","import type { Chain } from '../../types/chain.js'\nimport { isDeterministicError } from '../../utils/buildRequest.js'\nimport { wait } from '../../utils/wait.js'\n\nimport {\n type Transport,\n type TransportConfig,\n createTransport,\n} from './createTransport.js'\n// TODO: Narrow `method` & `params` types.\nexport type OnResponseFn = (\n args: {\n method: string\n params: unknown[]\n transport: ReturnType\n } & (\n | {\n error?: never\n response: unknown\n status: 'success'\n }\n | {\n error: Error\n response?: never\n status: 'error'\n }\n ),\n) => void\n\ntype RankOptions = {\n /**\n * The polling interval (in ms) at which the ranker should ping the RPC URL.\n * @default client.pollingInterval\n */\n interval?: number\n /**\n * The number of previous samples to perform ranking on.\n * @default 10\n */\n sampleCount?: number\n /**\n * Timeout when sampling transports.\n * @default 1_000\n */\n timeout?: number\n /**\n * Weights to apply to the scores. Weight values are proportional.\n */\n weights?: {\n /**\n * The weight to apply to the latency score.\n * @default 0.3\n */\n latency?: number\n /**\n * The weight to apply to the stability score.\n * @default 0.7\n */\n stability?: number\n }\n}\n\nexport type FallbackTransportConfig = {\n /** The key of the Fallback transport. */\n key?: TransportConfig['key']\n /** The name of the Fallback transport. */\n name?: TransportConfig['name']\n /** Toggle to enable ranking, or rank options. */\n rank?: boolean | RankOptions\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n}\n\nexport type FallbackTransport = Transport<\n 'fallback',\n {\n onResponse: (fn: OnResponseFn) => void\n transports: ReturnType[]\n }\n>\n\nexport function fallback(\n transports_: Transport[],\n config: FallbackTransportConfig = {},\n): FallbackTransport {\n const {\n key = 'fallback',\n name = 'Fallback',\n rank = false,\n retryCount,\n retryDelay,\n } = config\n return ({ chain, pollingInterval = 4_000, timeout }) => {\n let transports = transports_\n\n let onResponse: OnResponseFn = () => {}\n\n const transport = createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i = 0): Promise => {\n const transport = transports[i]({ chain, retryCount: 0, timeout })\n try {\n const response = await transport.request({\n method,\n params,\n } as any)\n\n onResponse({\n method,\n params: params as unknown[],\n response,\n transport,\n status: 'success',\n })\n\n return response\n } catch (err) {\n onResponse({\n error: err as Error,\n method,\n params: params as unknown[],\n transport,\n status: 'error',\n })\n\n // If the error is deterministic, we don't need to fall back.\n // So throw the error.\n if (isDeterministicError(err as Error)) throw err\n\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1) throw err\n\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 {\n onResponse: (fn: OnResponseFn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n },\n )\n\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {}) as RankOptions\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n })\n }\n return transport\n }\n}\n\nexport function rankTransports({\n chain,\n interval = 4_000,\n onTransports,\n sampleCount = 10,\n timeout = 1_000,\n transports,\n weights = {},\n}: {\n chain?: Chain\n interval: RankOptions['interval']\n onTransports: (transports: Transport[]) => void\n sampleCount?: RankOptions['sampleCount']\n timeout?: RankOptions['timeout']\n transports: Transport[]\n weights?: RankOptions['weights']\n}) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } =\n weights\n\n type SampleData = { latency: number; success: number }\n type Sample = SampleData[]\n const samples: Sample[] = []\n\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample: Sample = await Promise.all(\n transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout })\n\n const start = Date.now()\n let end\n let success\n try {\n await transport_.request({ method: 'net_listening' })\n success = 1\n } catch {\n success = 0\n } finally {\n end = Date.now()\n }\n const latency = end - start\n return { latency, success }\n }),\n )\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) samples.shift()\n\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(\n ...samples.map((sample) =>\n Math.max(...sample.map(({ latency }) => latency)),\n ),\n )\n\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 =\n latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length\n const latencyScore = 1 - meanLatency / maxLatency\n\n const successes = samples.map((sample) => sample[i].success)\n const stabilityScore =\n successes.reduce((acc, success) => acc + success, 0) /\n successes.length\n\n if (stabilityScore === 0) return [0, i]\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ]\n })\n .sort((a, b) => b[0] - a[0])\n\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]))\n\n // 6. Wait, and then rank again.\n await wait(interval)\n rankTransports_()\n }\n rankTransports_()\n}\n","import { RpcRequestError } from '../../errors/request.js'\nimport { UrlRequiredError } from '../../errors/transport.js'\nimport { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js'\nimport { type HttpOptions, type RpcRequest, rpc } from '../../utils/rpc.js'\n\nimport {\n type Transport,\n type TransportConfig,\n createTransport,\n} from './createTransport.js'\n\nexport type BatchOptions = {\n /** The maximum number of JSON-RPC requests to send in a batch. @default 1_000 */\n batchSize?: number\n /** The maximum number of milliseconds to wait before sending a batch. @default 0 */\n wait?: number\n}\n\nexport type HttpTransportConfig = {\n /**\n * Whether to enable Batch JSON-RPC.\n * @link https://www.jsonrpc.org/specification#batch\n */\n batch?: boolean | BatchOptions\n /**\n * Request configuration to pass to `fetch`.\n * @link https://developer.mozilla.org/en-US/docs/Web/API/fetch\n */\n fetchOptions?: HttpOptions['fetchOptions']\n /** The key of the HTTP transport. */\n key?: TransportConfig['key']\n /** The name of the HTTP transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n /** The timeout (in ms) for the HTTP request. Default: 10_000 */\n timeout?: TransportConfig['timeout']\n}\n\nexport type HttpTransport = Transport<\n 'http',\n {\n url?: string\n }\n>\n\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. */\n url?: string,\n config: HttpTransportConfig = {},\n): HttpTransport {\n const {\n batch,\n fetchOptions,\n key = 'http',\n name = 'HTTP JSON-RPC',\n retryDelay,\n } = config\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const { batchSize = 1000, wait = 0 } =\n 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_) throw new UrlRequiredError()\n return createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const body = { method, params }\n\n const { schedule } = createBatchScheduler({\n id: `${url}`,\n wait,\n shouldSplitBatch(requests) {\n return requests.length > batchSize\n },\n fn: (body: RpcRequest[]) =>\n rpc.http(url_, {\n body,\n fetchOptions,\n timeout,\n }),\n })\n\n const fn = async (body: RpcRequest) =>\n batch\n ? schedule(body)\n : [await rpc.http(url_, { body, fetchOptions, timeout })]\n\n const [{ error, result }] = await fn(body)\n if (error)\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n })\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n },\n {\n url,\n },\n )\n }\n}\n","import type { WebSocket } from 'isomorphic-ws'\n\nimport { RpcRequestError } from '../../errors/request.js'\nimport { UrlRequiredError } from '../../errors/transport.js'\nimport type { Hash } from '../../types/misc.js'\nimport { type RpcResponse, getSocket, rpc } from '../../utils/rpc.js'\nimport {\n type Transport,\n type TransportConfig,\n createTransport,\n} from './createTransport.js'\n\ntype WebSocketTransportSubscribeParameters = {\n onData: (data: RpcResponse) => void\n onError?: (error: any) => void\n}\n\ntype WebSocketTransportSubscribeReturnType = {\n subscriptionId: Hash\n unsubscribe: () => Promise>\n}\n\ntype WebSocketTransportSubscribe = {\n subscribe(\n args: WebSocketTransportSubscribeParameters & {\n /**\n * @description Add information about compiled contracts\n * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_addcompilationresult\n */\n params: ['newHeads']\n },\n ): Promise\n}\n\nexport type WebSocketTransportConfig = {\n /** The key of the WebSocket transport. */\n key?: TransportConfig['key']\n /** The name of the WebSocket transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n /** The timeout (in ms) for async WebSocket requests. Default: 10_000 */\n timeout?: TransportConfig['timeout']\n}\n\nexport type WebSocketTransport = Transport<\n 'webSocket',\n {\n getSocket(): Promise\n subscribe: WebSocketTransportSubscribe['subscribe']\n }\n>\n\n/**\n * @description Creates a WebSocket transport that connects to a JSON-RPC API.\n */\nexport function webSocket(\n /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n url?: string,\n config: WebSocketTransportConfig = {},\n): WebSocketTransport {\n const { key = 'webSocket', name = 'WebSocket JSON-RPC', retryDelay } = config\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const retryCount = config.retryCount ?? retryCount_\n const timeout = timeout_ ?? config.timeout ?? 10_000\n const url_ = url || chain?.rpcUrls.default.webSocket?.[0]\n if (!url_) throw new UrlRequiredError()\n return createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const body = { method, params }\n const socket = await getSocket(url_)\n const { error, result } = await rpc.webSocketAsync(socket, {\n body,\n timeout,\n })\n if (error)\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n })\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'webSocket',\n },\n {\n getSocket() {\n return getSocket(url_)\n },\n async subscribe({ params, onData, onError }: any) {\n const socket = await getSocket(url_)\n const { result: subscriptionId } = await new Promise(\n (resolve, reject) =>\n rpc.webSocket(socket, {\n body: {\n method: 'eth_subscribe',\n params,\n },\n onResponse(response) {\n if (response.error) {\n reject(response.error)\n onError?.(response.error)\n return\n }\n\n if (typeof response.id === 'number') {\n resolve(response)\n return\n }\n if (response.method !== 'eth_subscription') return\n onData(response.params)\n },\n }),\n )\n return {\n subscriptionId,\n async unsubscribe() {\n return new Promise((resolve) =>\n rpc.webSocket(socket, {\n body: {\n method: 'eth_unsubscribe',\n params: [subscriptionId],\n },\n onResponse: resolve,\n }),\n )\n },\n }\n },\n },\n )\n }\n}\n","/* [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] as const\n\nexport const universalResolverAbi = [\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] as const\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] as const\n\nexport const singleAddressResolverAbi = [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [{ name: '', type: 'address' }],\n },\n] as const\n\n// ERC-1271\n// isValidSignature(bytes32 hash, bytes signature) → bytes4 magicValue\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] as const\n\n// ERC-6492 - universal deployless signature validator contract\n// constructor(address _signer, bytes32 _hash, bytes _signature) → bytes4 returnValue\n// returnValue is either 0x1 (valid) or 0x0 (invalid)\nexport const universalSignatureValidatorAbi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_signer',\n type: 'address',\n },\n {\n internalType: 'bytes32',\n name: '_hash',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n] as const\n","export const zeroAddress = '0x0000000000000000000000000000000000000000' as const\n","export const aggregate3Signature = '0x82ad56cb'\n","export const universalSignatureValidatorByteCode =\n '0x60806040523480156200001157600080fd5b50604051620007003803806200070083398101604081905262000034916200056f565b6000620000438484846200004f565b9050806000526001601ff35b600080846001600160a01b0316803b806020016040519081016040528181526000908060200190933c90507f6492649264926492649264926492649264926492649264926492649264926492620000a68462000451565b036200021f57600060608085806020019051810190620000c79190620005ce565b8651929550909350915060000362000192576000836001600160a01b031683604051620000f5919062000643565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5050905080620001905760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b505b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90620001c4908b90869060040162000661565b602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200069d565b6001600160e01b031916149450505050506200044a565b805115620002b157604051630b135d3f60e11b808252906001600160a01b03871690631626ba7e9062000259908890889060040162000661565b602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200069d565b6001600160e01b031916149150506200044a565b8251604114620003195760405162461bcd60e51b815260206004820152603a6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e677468000000000000606482015260840162000187565b620003236200046b565b506020830151604080850151855186939260009185919081106200034b576200034b620006c9565b016020015160f81c9050601b81148015906200036b57508060ff16601c14155b15620003cf5760405162461bcd60e51b815260206004820152603b6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c75650000000000606482015260840162000187565b6040805160008152602081018083528a905260ff83169181019190915260608101849052608081018390526001600160a01b038a169060019060a0016020604051602081039080840390855afa1580156200042e573d6000803e3d6000fd5b505050602060405103516001600160a01b031614955050505050505b9392505050565b60006020825110156200046357600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b03811681146200049f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004d5578181015183820152602001620004bb565b50506000910152565b600082601f830112620004f057600080fd5b81516001600160401b03808211156200050d576200050d620004a2565b604051601f8301601f19908116603f01168101908282118183101715620005385762000538620004a2565b816040528381528660208588010111156200055257600080fd5b62000565846020830160208901620004b8565b9695505050505050565b6000806000606084860312156200058557600080fd5b8351620005928162000489565b6020850151604086015191945092506001600160401b03811115620005b657600080fd5b620005c486828701620004de565b9150509250925092565b600080600060608486031215620005e457600080fd5b8351620005f18162000489565b60208501519093506001600160401b03808211156200060f57600080fd5b6200061d87838801620004de565b935060408601519150808211156200063457600080fd5b50620005c486828701620004de565b6000825162000657818460208701620004b8565b9190910192915050565b828152604060208201526000825180604084015262000688816060850160208701620004b8565b601f01601f1916919091016060019392505050565b600060208284031215620006b057600080fd5b81516001600160e01b0319811681146200044a57600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572'\n","import type { AbiError } from 'abitype'\n\n// 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: 'Arithmic 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} as const\n\nexport const solidityError: AbiError = {\n inputs: [\n {\n name: 'message',\n type: 'string',\n },\n ],\n name: 'Error',\n type: 'error',\n}\nexport const solidityPanic: AbiError = {\n inputs: [\n {\n name: 'reason',\n type: 'uint256',\n },\n ],\n name: 'Panic',\n type: 'error',\n}\n","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","import type { AbiEvent, AbiParameter } from 'abitype'\n\nimport type { Hex } from '../types/misc.js'\nimport { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js'\nimport { size } from '../utils/data/size.js'\n\nimport { BaseError } from './base.js'\n\nexport class AbiConstructorNotFoundError extends BaseError {\n override name = 'AbiConstructorNotFoundError'\n constructor({ docsPath }: { docsPath: string }) {\n super(\n [\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 {\n docsPath,\n },\n )\n }\n}\n\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n override name = 'AbiConstructorParamsNotFoundError'\n constructor({ docsPath }: { docsPath: string }) {\n super(\n [\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 {\n docsPath,\n },\n )\n }\n}\n\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n override name = 'AbiDecodingDataSizeInvalidError'\n constructor({ data, size }: { data: Hex; size: number }) {\n super(\n [\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 )\n }\n}\n\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n override name = 'AbiDecodingDataSizeTooSmallError'\n\n data: Hex\n params: readonly AbiParameter[]\n size: number\n\n constructor({\n data,\n params,\n size,\n }: { data: Hex; params: readonly AbiParameter[]; size: number }) {\n super(\n [`Data size of ${size} bytes is too small for given parameters.`].join(\n '\\n',\n ),\n {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n },\n )\n\n this.data = data\n this.params = params\n this.size = size\n }\n}\n\nexport class AbiDecodingZeroDataError extends BaseError {\n override name = 'AbiDecodingZeroDataError'\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.')\n }\n}\n\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n override name = 'AbiEncodingArrayLengthMismatchError'\n constructor({\n expectedLength,\n givenLength,\n type,\n }: { expectedLength: number; givenLength: number; type: string }) {\n super(\n [\n `ABI encoding array length mismatch for type ${type}.`,\n `Expected length: ${expectedLength}`,\n `Given length: ${givenLength}`,\n ].join('\\n'),\n )\n }\n}\n\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n override name = 'AbiEncodingBytesSizeMismatchError'\n constructor({ expectedSize, value }: { expectedSize: number; value: Hex }) {\n super(\n `Size of bytes \"${value}\" (bytes${size(\n value,\n )}) does not match expected size (bytes${expectedSize}).`,\n )\n }\n}\n\nexport class AbiEncodingLengthMismatchError extends BaseError {\n override name = 'AbiEncodingLengthMismatchError'\n constructor({\n expectedLength,\n givenLength,\n }: { expectedLength: number; givenLength: number }) {\n super(\n [\n 'ABI encoding params/values length mismatch.',\n `Expected length (params): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'),\n )\n }\n}\n\nexport class AbiErrorInputsNotFoundError extends BaseError {\n override name = 'AbiErrorInputsNotFoundError'\n constructor(errorName: string, { docsPath }: { docsPath: string }) {\n super(\n [\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 {\n docsPath,\n },\n )\n }\n}\n\nexport class AbiErrorNotFoundError extends BaseError {\n override name = 'AbiErrorNotFoundError'\n constructor(errorName?: string, { docsPath }: { docsPath?: string } = {}) {\n super(\n [\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 {\n docsPath,\n },\n )\n }\n}\n\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n override name = 'AbiErrorSignatureNotFoundError'\n constructor(signature: Hex, { docsPath }: { docsPath: string }) {\n super(\n [\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 signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'),\n {\n docsPath,\n },\n )\n }\n}\n\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n override name = 'AbiEventSignatureEmptyTopicsError'\n constructor({ docsPath }: { docsPath: string }) {\n super('Cannot extract event signature from empty topics.', {\n docsPath,\n })\n }\n}\n\nexport class AbiEventSignatureNotFoundError extends BaseError {\n override name = 'AbiEventSignatureNotFoundError'\n constructor(signature: Hex, { docsPath }: { docsPath: string }) {\n super(\n [\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 {\n docsPath,\n },\n )\n }\n}\n\nexport class AbiEventNotFoundError extends BaseError {\n override name = 'AbiEventNotFoundError'\n constructor(eventName?: string, { docsPath }: { docsPath?: string } = {}) {\n super(\n [\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 {\n docsPath,\n },\n )\n }\n}\n\nexport class AbiFunctionNotFoundError extends BaseError {\n override name = 'AbiFunctionNotFoundError'\n constructor(functionName?: string, { docsPath }: { docsPath?: string } = {}) {\n super(\n [\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 {\n docsPath,\n },\n )\n }\n}\n\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n override name = 'AbiFunctionOutputsNotFoundError'\n constructor(functionName: string, { docsPath }: { docsPath: string }) {\n super(\n [\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 {\n docsPath,\n },\n )\n }\n}\n\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n override name = 'AbiFunctionSignatureNotFoundError'\n constructor(signature: Hex, { docsPath }: { docsPath: string }) {\n super(\n [\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 {\n docsPath,\n },\n )\n }\n}\n\nexport class BytesSizeMismatchError extends BaseError {\n override name = 'BytesSizeMismatchError'\n constructor({\n expectedSize,\n givenSize,\n }: { expectedSize: number; givenSize: number }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`)\n }\n}\n\nexport class DecodeLogDataMismatch extends BaseError {\n override name = 'DecodeLogDataMismatch'\n\n abiItem: AbiEvent\n data: Hex\n params: readonly AbiParameter[]\n size: number\n\n constructor({\n abiItem,\n data,\n params,\n size,\n }: {\n abiItem: AbiEvent\n data: Hex\n params: readonly AbiParameter[]\n size: number\n }) {\n super(\n [\n `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n ].join('\\n'),\n {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n },\n )\n\n this.abiItem = abiItem\n this.data = data\n this.params = params\n this.size = size\n }\n}\n\nexport class DecodeLogTopicsMismatch extends BaseError {\n override name = 'DecodeLogTopicsMismatch'\n\n abiItem: AbiEvent\n\n constructor({\n abiItem,\n param,\n }: {\n abiItem: AbiEvent\n param: AbiParameter & { indexed: boolean }\n }) {\n super(\n [\n `Expected a topic for indexed event parameter${\n param.name ? ` \"${param.name}\"` : ''\n } on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n ].join('\\n'),\n )\n\n this.abiItem = abiItem\n }\n}\n\nexport class InvalidAbiEncodingTypeError extends BaseError {\n override name = 'InvalidAbiEncodingType'\n constructor(type: string, { docsPath }: { docsPath: string }) {\n super(\n [\n `Type \"${type}\" is not a valid encoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'),\n { docsPath },\n )\n }\n}\n\nexport class InvalidAbiDecodingTypeError extends BaseError {\n override name = 'InvalidAbiDecodingType'\n constructor(type: string, { docsPath }: { docsPath: string }) {\n super(\n [\n `Type \"${type}\" is not a valid decoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'),\n { docsPath },\n )\n }\n}\n\nexport class InvalidArrayError extends BaseError {\n override name = 'InvalidArrayError'\n constructor(value: unknown) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'))\n }\n}\n\nexport class InvalidDefinitionTypeError extends BaseError {\n override name = 'InvalidDefinitionTypeError'\n constructor(type: string) {\n super(\n [\n `\"${type}\" is not a valid definition type.`,\n 'Valid types: \"function\", \"event\", \"error\"',\n ].join('\\n'),\n )\n }\n}\n\nexport class UnsupportedPackedAbiType extends BaseError {\n override name = 'UnsupportedPackedAbiType'\n constructor(type: unknown) {\n super(`Type \"${type}\" is not supported for packed encoding.`)\n }\n}\n","import { BaseError } from './base.js'\n\nexport class AccountNotFoundError extends BaseError {\n override name = 'AccountNotFoundError'\n constructor({ docsPath }: { docsPath?: string } = {}) {\n super(\n [\n 'Could not find an Account to execute with this Action.',\n 'Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the WalletClient.',\n ].join('\\n'),\n {\n docsPath,\n docsSlug: 'account',\n },\n )\n }\n}\n","import { BaseError } from './base.js'\n\nexport class InvalidAddressError extends BaseError {\n override name = 'InvalidAddressError'\n constructor({ address }: { address: string }) {\n super(`Address \"${address}\" is invalid.`)\n }\n}\n","import { getVersion } from './utils.js'\n\ntype BaseErrorParameters = {\n docsPath?: string\n docsSlug?: string\n metaMessages?: string[]\n} & (\n | {\n cause?: never\n details?: string\n }\n | {\n cause: BaseError | Error\n details?: never\n }\n)\n\nexport class BaseError extends Error {\n details: string\n docsPath?: string\n metaMessages?: string[]\n shortMessage: string\n\n override name = 'ViemError'\n version = getVersion()\n\n constructor(shortMessage: string, args: BaseErrorParameters = {}) {\n super()\n\n const details =\n args.cause instanceof BaseError\n ? args.cause.details\n : args.cause?.message\n ? args.cause.message\n : args.details!\n const docsPath =\n args.cause instanceof BaseError\n ? args.cause.docsPath || args.docsPath\n : args.docsPath\n\n this.message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsPath\n ? [\n `Docs: https://viem.sh${docsPath}.html${\n args.docsSlug ? `#${args.docsSlug}` : ''\n }`,\n ]\n : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: ${this.version}`,\n ].join('\\n')\n\n if (args.cause) this.cause = args.cause\n this.details = details\n this.docsPath = docsPath\n this.metaMessages = args.metaMessages\n this.shortMessage = shortMessage\n }\n\n walk(fn?: (err: unknown) => boolean) {\n return walk(this, fn)\n }\n}\n\nfunction walk(err: unknown, fn?: (err: unknown) => boolean): unknown {\n if (fn?.(err)) return err\n if ((err as Error).cause) return walk((err as Error).cause, fn)\n return err\n}\n","import type { Hash } from '../types/misc.js'\n\nimport { BaseError } from './base.js'\n\nexport class BlockNotFoundError extends BaseError {\n override name = 'BlockNotFoundError'\n constructor({\n blockHash,\n blockNumber,\n }: {\n blockHash?: Hash\n blockNumber?: bigint\n }) {\n let identifier = 'Block'\n if (blockHash) identifier = `Block at hash \"${blockHash}\"`\n if (blockNumber) identifier = `Block at number \"${blockNumber}\"`\n super(`${identifier} could not be found.`)\n }\n}\n","import type { Address } from 'abitype'\n\nimport type { Hex } from '../types/misc.js'\nimport { stringify } from '../utils/stringify.js'\n\nimport { BaseError } from './base.js'\nimport { getUrl } from './utils.js'\n\nexport class OffchainLookupError extends BaseError {\n override name = 'OffchainLookupError'\n constructor({\n callbackSelector,\n cause,\n data,\n extraData,\n sender,\n urls,\n }: {\n callbackSelector: Hex\n cause: BaseError\n data: Hex\n extraData: Hex\n sender: Address\n urls: readonly string[]\n }) {\n super(\n cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.',\n {\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 },\n )\n }\n}\n\nexport class OffchainLookupResponseMalformedError extends BaseError {\n override name = 'OffchainLookupResponseMalformedError'\n constructor({ result, url }: { result: any; url: string }) {\n super(\n 'Offchain gateway response is malformed. Response data must be a hex value.',\n {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n },\n )\n }\n}\n\nexport class OffchainLookupSenderMismatchError extends BaseError {\n override name = 'OffchainLookupSenderMismatchError'\n constructor({ sender, to }: { sender: Address; to: Address }) {\n super(\n 'Reverted sender address does not match target contract address (`to`).',\n {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n },\n )\n }\n}\n","import type { Chain } from '../types/chain.js'\n\nimport { BaseError } from './base.js'\n\nexport class ChainDoesNotSupportContract extends BaseError {\n override name = 'ChainDoesNotSupportContract'\n constructor({\n blockNumber,\n chain,\n contract,\n }: {\n blockNumber?: bigint\n chain: Chain\n contract: { name: string; blockCreated?: number }\n }) {\n super(\n `Chain \"${chain.name}\" does not support contract \"${contract.name}\".`,\n {\n metaMessages: [\n 'This could be due to any of the following:',\n ...(blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n ? [\n `- The contract \"${contract.name}\" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`,\n ]\n : [\n `- The chain does not have the contract \"${contract.name}\" configured.`,\n ]),\n ],\n },\n )\n }\n}\n\nexport class ChainMismatchError extends BaseError {\n override name = 'ChainMismatchError'\n\n constructor({\n chain,\n currentChainId,\n }: {\n chain: Chain\n currentChainId: number\n }) {\n super(\n `The current chain of the wallet (id: ${currentChainId}) does not match the target chain for the transaction (id: ${chain.id} – ${chain.name}).`,\n {\n metaMessages: [\n `Current Chain ID: ${currentChainId}`,\n `Expected Chain ID: ${chain.id} – ${chain.name}`,\n ],\n },\n )\n }\n}\n\nexport class ChainNotFoundError extends BaseError {\n override name = 'ChainNotFoundError'\n\n constructor() {\n super(\n [\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 )\n }\n}\n\nexport class ClientChainNotConfiguredError extends BaseError {\n override name = 'ClientChainNotConfiguredError'\n\n constructor() {\n super('No chain was provided to the Client.')\n }\n}\n\nexport class InvalidChainIdError extends BaseError {\n override name = 'InvalidChainIdError'\n\n constructor({ chainId }: { chainId: number }) {\n super(`Chain ID \"${chainId}\" is invalid.`)\n }\n}\n","import type { Abi, Address } from 'abitype'\n\nimport { parseAccount } from '../accounts/utils/parseAccount.js'\nimport type { CallParameters } from '../actions/public/call.js'\nimport { panicReasons } from '../constants/solidity.js'\nimport type { Chain } from '../types/chain.js'\nimport type { Hex } from '../types/misc.js'\nimport {\n type DecodeErrorResultReturnType,\n decodeErrorResult,\n} 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'\n\nimport { BaseError } from './base.js'\nimport { prettyPrint } from './transaction.js'\nimport { getContractAddress } from './utils.js'\n\nexport class CallExecutionError extends BaseError {\n override cause: BaseError\n\n override name = 'CallExecutionError'\n\n constructor(\n cause: BaseError,\n {\n account: account_,\n docsPath,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n }: CallParameters & { chain?: Chain; docsPath?: string },\n ) {\n const account = account_ ? parseAccount(account_) : undefined\n const prettyArgs = prettyPrint({\n from: account?.address,\n to,\n value:\n typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice:\n typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas:\n typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas:\n typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n })\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) as string[],\n })\n this.cause = cause\n }\n}\n\nexport class ContractFunctionExecutionError extends BaseError {\n abi: Abi\n args?: unknown[]\n override cause: BaseError\n contractAddress?: Address\n formattedArgs?: string\n functionName: string\n sender?: Address\n\n override name = 'ContractFunctionExecutionError'\n\n constructor(\n cause: BaseError,\n {\n abi,\n args,\n contractAddress,\n docsPath,\n functionName,\n sender,\n }: {\n abi: Abi\n args?: any\n contractAddress?: Address\n docsPath?: string\n functionName: string\n sender?: Address\n },\n ) {\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\n const prettyArgs = prettyPrint({\n address: contractAddress && getContractAddress(contractAddress),\n function: functionWithParams,\n args:\n formattedArgs &&\n formattedArgs !== '()' &&\n `${[...Array(functionName?.length ?? 0).keys()]\n .map(() => ' ')\n .join('')}${formattedArgs}`,\n sender,\n })\n\n super(\n cause.shortMessage ||\n `An unknown error occurred while executing the contract function \"${functionName}\".`,\n {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Contract Call:',\n prettyArgs,\n ].filter(Boolean) as string[],\n },\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}\n\nexport class ContractFunctionRevertedError extends BaseError {\n override name = 'ContractFunctionRevertedError'\n\n data?: DecodeErrorResultReturnType\n reason?: string\n\n constructor({\n abi,\n data,\n functionName,\n message,\n }: { abi: Abi; data?: Hex; functionName: string; message?: string }) {\n let decodedData: DecodeErrorResultReturnType | undefined = undefined\n let metaMessages\n let reason\n if (data && data !== '0x') {\n decodedData = decodeErrorResult({ abi, data })\n const { abiItem, errorName, args: errorArgs } = decodedData\n if (errorName === 'Error') {\n reason = (errorArgs as [string])[0]\n } else if (errorName === 'Panic') {\n const [firstArg] = errorArgs as [number]\n reason = panicReasons[firstArg as keyof typeof panicReasons]\n } else {\n const errorWithParams = abiItem\n ? formatAbiItem(abiItem, { includeName: true })\n : undefined\n const formattedArgs =\n abiItem && errorArgs\n ? formatAbiItemWithArgs({\n abiItem,\n args: errorArgs,\n includeFunctionName: false,\n includeName: false,\n })\n : undefined\n\n metaMessages = [\n errorWithParams ? `Error: ${errorWithParams}` : '',\n formattedArgs && formattedArgs !== '()'\n ? ` ${[...Array(errorName?.length ?? 0).keys()]\n .map(() => ' ')\n .join('')}${formattedArgs}`\n : '',\n ]\n }\n } else if (message) reason = message\n\n super(\n reason && reason !== 'execution reverted'\n ? [\n `The contract function \"${functionName}\" reverted with the following reason:`,\n reason,\n ].join('\\n')\n : `The contract function \"${functionName}\" reverted.`,\n {\n metaMessages,\n },\n )\n\n this.reason = reason\n this.data = decodedData\n }\n}\n\nexport class ContractFunctionZeroDataError extends BaseError {\n override name = 'ContractFunctionZeroDataError'\n constructor({ functionName }: { functionName: string }) {\n super(`The contract function \"${functionName}\" returned no data (\"0x\").`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ` - The contract does not have the function \"${functionName}\",`,\n ' - The parameters passed to the contract function may be invalid, or',\n ' - The address is not a contract.',\n ],\n })\n }\n}\n\nexport class RawContractError extends BaseError {\n code = 3\n override name = 'RawContractError'\n\n data?: Hex | { data?: Hex }\n\n constructor({\n data,\n message,\n }: { data?: Hex | { data?: Hex }; message?: string }) {\n super(message || '')\n this.data = data\n }\n}\n","import { BaseError } from './base.js'\n\nexport class SliceOffsetOutOfBoundsError extends BaseError {\n override name = 'SliceOffsetOutOfBoundsError'\n constructor({\n offset,\n position,\n size,\n }: { offset: number; position: 'start' | 'end'; size: number }) {\n super(\n `Slice ${\n position === 'start' ? 'starting' : 'ending'\n } at offset \"${offset}\" is out-of-bounds (size: ${size}).`,\n )\n }\n}\n\nexport class SizeExceedsPaddingSizeError extends BaseError {\n override name = 'SizeExceedsPaddingSizeError'\n constructor({\n size,\n targetSize,\n type,\n }: {\n size: number\n targetSize: number\n type: 'hex' | 'bytes'\n }) {\n super(\n `${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (${size}) exceeds padding size (${targetSize}).`,\n )\n }\n}\n","import type { ByteArray, Hex } from '../types/misc.js'\n\nimport { BaseError } from './base.js'\n\nexport class DataLengthTooLongError extends BaseError {\n override name = 'DataLengthTooLongError'\n constructor({ consumed, length }: { consumed: number; length: number }) {\n super(\n `Consumed bytes (${consumed}) is shorter than data length (${\n length - 1\n }).`,\n )\n }\n}\n\nexport class DataLengthTooShortError extends BaseError {\n override name = 'DataLengthTooShortError'\n constructor({ length, dataLength }: { length: number; dataLength: number }) {\n super(\n `Data length (${dataLength - 1}) is shorter than prefix length (${\n length - 1\n }).`,\n )\n }\n}\n\nexport class IntegerOutOfRangeError extends BaseError {\n override name = 'IntegerOutOfRangeError'\n constructor({\n max,\n min,\n signed,\n size,\n value,\n }: {\n max?: string\n min: string\n signed?: boolean\n size?: number\n value: string\n }) {\n super(\n `Number \"${value}\" is not in safe ${\n size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''\n }integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`,\n )\n }\n}\n\nexport class InvalidBytesBooleanError extends BaseError {\n override name = 'InvalidBytesBooleanError'\n constructor(bytes: ByteArray) {\n super(\n `Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,\n )\n }\n}\n\nexport class InvalidHexBooleanError extends BaseError {\n override name = 'InvalidHexBooleanError'\n constructor(hex: Hex) {\n super(\n `Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`,\n )\n }\n}\n\nexport class InvalidHexValueError extends BaseError {\n override name = 'InvalidHexValueError'\n constructor(value: Hex) {\n super(\n `Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`,\n )\n }\n}\n\nexport class OffsetOutOfBoundsError extends BaseError {\n override name = 'OffsetOutOfBoundsError'\n constructor({ nextOffset, offset }: { nextOffset: number; offset: number }) {\n super(\n `Next offset (${nextOffset}) is greater than previous offset + consumed bytes (${offset})`,\n )\n }\n}\n\nexport class SizeOverflowError extends BaseError {\n override name = 'SizeOverflowError'\n constructor({ givenSize, maxSize }: { givenSize: number; maxSize: number }) {\n super(\n `Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`,\n )\n }\n}\n","import { BaseError } from './base.js'\n\nexport class EnsAvatarInvalidMetadataError extends BaseError {\n override name = 'EnsAvatarInvalidMetadataError'\n constructor({ data }: { data: any }) {\n super(\n 'Unable to extract image from metadata. The metadata may be malformed or invalid.',\n {\n metaMessages: [\n '- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.',\n '',\n `Provided data: ${JSON.stringify(data)}`,\n ],\n },\n )\n }\n}\n\nexport class EnsAvatarInvalidNftUriError extends BaseError {\n override name = 'EnsAvatarInvalidNftUriError'\n constructor({ reason }: { reason: string }) {\n super(`ENS NFT avatar URI is invalid. ${reason}`)\n }\n}\n\nexport class EnsAvatarUriResolutionError extends BaseError {\n override name = 'EnsAvatarUriResolutionError'\n constructor({ uri }: { uri: string }) {\n super(\n `Unable to resolve ENS avatar URI \"${uri}\". The URI may be malformed, invalid, or does not respond with a valid image.`,\n )\n }\n}\n\nexport class EnsAvatarUnsupportedNamespaceError extends BaseError {\n override name = 'EnsAvatarUnsupportedNamespaceError'\n constructor({ namespace }: { namespace: string }) {\n super(\n `ENS NFT avatar namespace \"${namespace}\" is not supported. Must be \"erc721\" or \"erc1155\".`,\n )\n }\n}\n","import type { Account } from '../accounts/types.js'\nimport type { EstimateGasParameters } from '../actions/public/estimateGas.js'\nimport type { Chain } from '../types/chain.js'\nimport { formatEther } from '../utils/unit/formatEther.js'\nimport { formatGwei } from '../utils/unit/formatGwei.js'\n\nimport { BaseError } from './base.js'\nimport { prettyPrint } from './transaction.js'\n\nexport class EstimateGasExecutionError extends BaseError {\n override cause: BaseError\n\n override name = 'EstimateGasExecutionError'\n\n constructor(\n cause: BaseError,\n {\n account,\n docsPath,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n }: Omit, 'account'> & {\n account?: Account\n chain?: Chain\n docsPath?: string\n },\n ) {\n const prettyArgs = prettyPrint({\n from: account?.address,\n to,\n value:\n typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice:\n typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas:\n typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas:\n typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n })\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) as string[],\n })\n this.cause = cause\n }\n}\n","import { BaseError } from './base.js'\n\nexport class FilterTypeNotSupportedError extends BaseError {\n override name = 'FilterTypeNotSupportedError'\n constructor(type: string) {\n super(`Filter type \"${type}\" is not supported.`)\n }\n}\n","import { formatGwei } from '../utils/unit/formatGwei.js'\n\nimport { BaseError } from './base.js'\n\n/**\n * geth: https://github.com/ethereum/go-ethereum/blob/master/core/error.go\n * https://github.com/ethereum/go-ethereum/blob/master/core/types/transaction.go#L34-L41\n *\n * erigon: https://github.com/ledgerwatch/erigon/blob/master/core/error.go\n * https://github.com/ledgerwatch/erigon/blob/master/core/types/transaction.go#L41-L46\n *\n * anvil: https://github.com/foundry-rs/foundry/blob/master/anvil/src/eth/error.rs#L108\n */\n\nexport class ExecutionRevertedError extends BaseError {\n static code = 3\n static nodeMessage = /execution reverted/\n\n override name = 'ExecutionRevertedError'\n\n constructor({\n cause,\n message,\n }: { cause?: BaseError; message?: string } = {}) {\n const reason = message\n ?.replace('execution reverted: ', '')\n ?.replace('execution reverted', '')\n super(\n `Execution reverted ${\n reason ? `with reason: ${reason}` : 'for an unknown reason'\n }.`,\n {\n cause,\n },\n )\n }\n}\n\nexport class FeeCapTooHighError extends BaseError {\n static nodeMessage =\n /max fee per gas higher than 2\\^256-1|fee cap higher than 2\\^256-1/\n override name = 'FeeCapTooHigh'\n constructor({\n cause,\n maxFeePerGas,\n }: { cause?: BaseError; maxFeePerGas?: bigint } = {}) {\n super(\n `The fee cap (\\`maxFeePerGas\\`${\n maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''\n }) cannot be higher than the maximum allowed value (2^256-1).`,\n {\n cause,\n },\n )\n }\n}\n\nexport class FeeCapTooLowError extends BaseError {\n static nodeMessage =\n /max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/\n override name = 'FeeCapTooLow'\n constructor({\n cause,\n maxFeePerGas,\n }: { cause?: BaseError; maxFeePerGas?: bigint } = {}) {\n super(\n `The fee cap (\\`maxFeePerGas\\`${\n maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)}` : ''\n } gwei) cannot be lower than the block base fee.`,\n {\n cause,\n },\n )\n }\n}\n\nexport class NonceTooHighError extends BaseError {\n static nodeMessage = /nonce too high/\n override name = 'NonceTooHighError'\n constructor({ cause, nonce }: { cause?: BaseError; nonce?: number } = {}) {\n super(\n `Nonce provided for the transaction ${\n nonce ? `(${nonce}) ` : ''\n }is higher than the next one expected.`,\n { cause },\n )\n }\n}\n\nexport class NonceTooLowError extends BaseError {\n static nodeMessage = /nonce too low|transaction already imported/\n override name = 'NonceTooLowError'\n constructor({ cause, nonce }: { cause?: BaseError; nonce?: number } = {}) {\n super(\n [\n `Nonce provided for the transaction ${\n nonce ? `(${nonce}) ` : ''\n }is lower than the current nonce of the account.`,\n 'Try increasing the nonce or find the latest nonce with `getTransactionCount`.',\n ].join('\\n'),\n { cause },\n )\n }\n}\n\nexport class NonceMaxValueError extends BaseError {\n static nodeMessage = /nonce has max value/\n override name = 'NonceMaxValueError'\n constructor({ cause, nonce }: { cause?: BaseError; nonce?: number } = {}) {\n super(\n `Nonce provided for the transaction ${\n nonce ? `(${nonce}) ` : ''\n }exceeds the maximum allowed nonce.`,\n { cause },\n )\n }\n}\n\nexport class InsufficientFundsError extends BaseError {\n static nodeMessage = /insufficient funds/\n override name = 'InsufficientFundsError'\n constructor({ cause }: { cause?: BaseError } = {}) {\n super(\n [\n 'The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.',\n ].join('\\n'),\n {\n cause,\n metaMessages: [\n 'This error could arise when the account does not have enough funds to:',\n ' - pay for the total gas fee,',\n ' - pay for the value to send.',\n ' ',\n 'The cost of the transaction is calculated as `gas * gas fee + value`, where:',\n ' - `gas` is the amount of gas needed for transaction to execute,',\n ' - `gas fee` is the gas fee,',\n ' - `value` is the amount of ether to send to the recipient.',\n ],\n },\n )\n }\n}\n\nexport class IntrinsicGasTooHighError extends BaseError {\n static nodeMessage = /intrinsic gas too high|gas limit reached/\n override name = 'IntrinsicGasTooHighError'\n constructor({ cause, gas }: { cause?: BaseError; gas?: bigint } = {}) {\n super(\n `The amount of gas ${\n gas ? `(${gas}) ` : ''\n }provided for the transaction exceeds the limit allowed for the block.`,\n {\n cause,\n },\n )\n }\n}\n\nexport class IntrinsicGasTooLowError extends BaseError {\n static nodeMessage = /intrinsic gas too low/\n override name = 'IntrinsicGasTooLowError'\n constructor({ cause, gas }: { cause?: BaseError; gas?: bigint } = {}) {\n super(\n `The amount of gas ${\n gas ? `(${gas}) ` : ''\n }provided for the transaction is too low.`,\n {\n cause,\n },\n )\n }\n}\n\nexport class TransactionTypeNotSupportedError extends BaseError {\n static nodeMessage = /transaction type not valid/\n override name = 'TransactionTypeNotSupportedError'\n constructor({ cause }: { cause?: BaseError }) {\n super('The transaction type is not supported for this chain.', {\n cause,\n })\n }\n}\n\nexport class TipAboveFeeCapError extends BaseError {\n static nodeMessage =\n /max priority fee per gas higher than max fee per gas|tip higher than fee cap/\n override name = 'TipAboveFeeCapError'\n constructor({\n cause,\n maxPriorityFeePerGas,\n maxFeePerGas,\n }: {\n cause?: BaseError\n maxPriorityFeePerGas?: bigint\n maxFeePerGas?: bigint\n } = {}) {\n super(\n [\n `The provided tip (\\`maxPriorityFeePerGas\\`${\n maxPriorityFeePerGas\n ? ` = ${formatGwei(maxPriorityFeePerGas)} gwei`\n : ''\n }) cannot be higher than the fee cap (\\`maxFeePerGas\\`${\n maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''\n }).`,\n ].join('\\n'),\n {\n cause,\n },\n )\n }\n}\n\nexport class UnknownNodeError extends BaseError {\n override name = 'UnknownNodeError'\n\n constructor({ cause }: { cause?: BaseError }) {\n super(`An error occurred while executing: ${cause?.message}`, {\n cause,\n })\n }\n}\n","import { stringify } from '../utils/stringify.js'\n\nimport { BaseError } from './base.js'\nimport { getUrl } from './utils.js'\n\nexport class HttpRequestError extends BaseError {\n override name = 'HttpRequestError'\n\n body?: { [x: string]: unknown } | { [y: string]: unknown }[]\n headers?: Headers\n status?: number\n url: string\n\n constructor({\n body,\n details,\n headers,\n status,\n url,\n }: {\n body?: { [x: string]: unknown } | { [y: string]: unknown }[]\n details?: string\n headers?: Headers\n status?: number\n url: string\n }) {\n super('HTTP request failed.', {\n details,\n metaMessages: [\n status && `Status: ${status}`,\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean) as string[],\n })\n this.body = body\n this.headers = headers\n this.status = status\n this.url = url\n }\n}\n\nexport class WebSocketRequestError extends BaseError {\n override name = 'WebSocketRequestError'\n\n constructor({\n body,\n details,\n url,\n }: {\n body: { [key: string]: unknown }\n details: string\n url: string\n }) {\n super('WebSocket request failed.', {\n details,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n })\n }\n}\n\nexport class RpcRequestError extends BaseError {\n override name = 'RpcRequestError'\n\n code: number\n\n constructor({\n body,\n error,\n url,\n }: {\n body: { [x: string]: unknown } | { [y: string]: unknown }[]\n error: { code: number; message: string }\n url: string\n }) {\n super('RPC Request failed.', {\n cause: error as any,\n details: error.message,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n })\n this.code = error.code\n }\n}\n\nexport class TimeoutError extends BaseError {\n override name = 'TimeoutError'\n\n constructor({\n body,\n url,\n }: {\n body: { [x: string]: unknown } | { [y: string]: unknown }[]\n url: string\n }) {\n super('The request took too long to respond.', {\n details: 'The request timed out.',\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n })\n }\n}\n","import type { Prettify } from '../types/utils.js'\nimport { BaseError } from './base.js'\nimport { RpcRequestError } from './request.js'\n\nconst unknownErrorCode = -1\n\nexport type RpcErrorCode =\n | -1\n | -32700 // Parse error\n | -32600 // Invalid request\n | -32601 // Method not found\n | -32602 // Invalid params\n | -32603 // Internal error\n | -32000 // Invalid input\n | -32001 // Resource not found\n | -32002 // Resource unavailable\n | -32003 // Transaction rejected\n | -32004 // Method not supported\n | -32005 // Limit exceeded\n | -32006 // JSON-RPC version not supported\n | -32042 // Method not found\n\ntype RpcErrorOptions = {\n code?: TCode | (number & {})\n docsPath?: string\n metaMessages?: string[]\n shortMessage: string\n}\n\n/**\n * Error subclass implementing JSON RPC 2.0 errors and Ethereum RPC errors per EIP-1474.\n *\n * - EIP https://eips.ethereum.org/EIPS/eip-1474\n */\nexport class RpcError extends BaseError {\n override name = 'RpcError'\n\n code: TCode | (number & {})\n\n constructor(\n cause: Error,\n { code, docsPath, metaMessages, shortMessage }: RpcErrorOptions,\n ) {\n super(shortMessage, {\n cause,\n docsPath,\n metaMessages:\n metaMessages || (cause as { metaMessages?: string[] })?.metaMessages,\n })\n this.name = cause.name\n this.code = (\n cause instanceof RpcRequestError ? cause.code : code ?? unknownErrorCode\n ) as TCode\n }\n}\n\nexport type ProviderRpcErrorCode =\n | 4001 // User Rejected Request\n | 4100 // Unauthorized\n | 4200 // Unsupported Method\n | 4900 // Disconnected\n | 4901 // Chain Disconnected\n | 4902 // Chain Not Recongnized\n\n/**\n * Error subclass implementing Ethereum Provider errors per EIP-1193.\n *\n * - EIP https://eips.ethereum.org/EIPS/eip-1193\n */\nexport class ProviderRpcError<\n T = undefined,\n> extends RpcError {\n override name = 'ProviderRpcError'\n\n data?: T\n\n constructor(\n cause: Error,\n options: Prettify<\n RpcErrorOptions & {\n data?: T\n }\n >,\n ) {\n super(cause, options)\n\n this.data = options.data\n }\n}\n\n/**\n * Subclass for a \"Parse error\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class ParseRpcError extends RpcError {\n override name = 'ParseRpcError'\n static code = -32700 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: ParseRpcError.code,\n shortMessage:\n 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n })\n }\n}\n\n/**\n * Subclass for a \"Invalid request\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class InvalidRequestRpcError extends RpcError {\n override name = 'InvalidRequestRpcError'\n static code = -32600 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: InvalidRequestRpcError.code,\n shortMessage: 'JSON is not a valid request object.',\n })\n }\n}\n\n/**\n * Subclass for a \"Method not found\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class MethodNotFoundRpcError extends RpcError {\n override name = 'MethodNotFoundRpcError'\n static code = -32601 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: MethodNotFoundRpcError.code,\n shortMessage: 'The method does not exist / is not available.',\n })\n }\n}\n\n/**\n * Subclass for an \"Invalid params\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class InvalidParamsRpcError extends RpcError {\n override name = 'InvalidParamsRpcError'\n static code = -32602 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: InvalidParamsRpcError.code,\n shortMessage: [\n 'Invalid parameters were provided to the RPC method.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n })\n }\n}\n\n/**\n * Subclass for an \"Internal error\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class InternalRpcError extends RpcError {\n override name = 'InternalRpcError'\n static code = -32603 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: InternalRpcError.code,\n shortMessage: 'An internal error was received.',\n })\n }\n}\n\n/**\n * Subclass for an \"Invalid input\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class InvalidInputRpcError extends RpcError {\n override name = 'InvalidInputRpcError'\n static code = -32000 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: InvalidInputRpcError.code,\n shortMessage: [\n 'Missing or invalid parameters.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n })\n }\n}\n\n/**\n * Subclass for a \"Resource not found\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class ResourceNotFoundRpcError extends RpcError {\n override name = 'ResourceNotFoundRpcError'\n static code = -32001 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: ResourceNotFoundRpcError.code,\n shortMessage: 'Requested resource not found.',\n })\n }\n}\n\n/**\n * Subclass for a \"Resource unavailable\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class ResourceUnavailableRpcError extends RpcError {\n override name = 'ResourceUnavailableRpcError'\n static code = -32002 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: ResourceUnavailableRpcError.code,\n shortMessage: 'Requested resource not available.',\n })\n }\n}\n\n/**\n * Subclass for a \"Transaction rejected\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class TransactionRejectedRpcError extends RpcError {\n override name = 'TransactionRejectedRpcError'\n static code = -32003 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: TransactionRejectedRpcError.code,\n shortMessage: 'Transaction creation failed.',\n })\n }\n}\n\n/**\n * Subclass for a \"Method not supported\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class MethodNotSupportedRpcError extends RpcError {\n override name = 'MethodNotSupportedRpcError'\n static code = -32004 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: MethodNotSupportedRpcError.code,\n shortMessage: 'Method is not implemented.',\n })\n }\n}\n\n/**\n * Subclass for a \"Limit exceeded\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class LimitExceededRpcError extends RpcError {\n override name = 'LimitExceededRpcError'\n static code = -32005 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: LimitExceededRpcError.code,\n shortMessage: 'Request exceeds defined limit.',\n })\n }\n}\n\n/**\n * Subclass for a \"JSON-RPC version not supported\" EIP-1474 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1474#error-codes\n */\nexport class JsonRpcVersionUnsupportedError extends RpcError {\n override name = 'JsonRpcVersionUnsupportedError'\n static code = -32006 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: JsonRpcVersionUnsupportedError.code,\n shortMessage: 'Version of JSON-RPC protocol is not supported.',\n })\n }\n}\n\n/**\n * Subclass for a \"User Rejected Request\" EIP-1193 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1193#provider-errors\n */\nexport class UserRejectedRequestError extends ProviderRpcError {\n override name = 'UserRejectedRequestError'\n static code = 4001 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: UserRejectedRequestError.code,\n shortMessage: 'User rejected the request.',\n })\n }\n}\n\n/**\n * Subclass for an \"Unauthorized\" EIP-1193 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1193#provider-errors\n */\nexport class UnauthorizedProviderError extends ProviderRpcError {\n override name = 'UnauthorizedProviderError'\n static code = 4100 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: UnauthorizedProviderError.code,\n shortMessage:\n 'The requested method and/or account has not been authorized by the user.',\n })\n }\n}\n\n/**\n * Subclass for an \"Unsupported Method\" EIP-1193 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1193#provider-errors\n */\nexport class UnsupportedProviderMethodError extends ProviderRpcError {\n override name = 'UnsupportedProviderMethodError'\n static code = 4200 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: UnsupportedProviderMethodError.code,\n shortMessage: 'The Provider does not support the requested method.',\n })\n }\n}\n\n/**\n * Subclass for an \"Disconnected\" EIP-1193 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1193#provider-errors\n */\nexport class ProviderDisconnectedError extends ProviderRpcError {\n override name = 'ProviderDisconnectedError'\n static code = 4900 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: ProviderDisconnectedError.code,\n shortMessage: 'The Provider is disconnected from all chains.',\n })\n }\n}\n\n/**\n * Subclass for an \"Chain Disconnected\" EIP-1193 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1193#provider-errors\n */\nexport class ChainDisconnectedError extends ProviderRpcError {\n override name = 'ChainDisconnectedError'\n static code = 4901 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: ChainDisconnectedError.code,\n shortMessage: 'The Provider is not connected to the requested chain.',\n })\n }\n}\n\n/**\n * Subclass for an \"Switch Chain\" EIP-1193 error.\n *\n * EIP https://eips.ethereum.org/EIPS/eip-1193#provider-errors\n */\nexport class SwitchChainError extends ProviderRpcError {\n override name = 'SwitchChainError'\n static code = 4902 as const\n\n constructor(cause: Error) {\n super(cause, {\n code: SwitchChainError.code,\n shortMessage: 'An error occurred when attempting to switch chain.',\n })\n }\n}\n\n/**\n * Subclass for an unknown RPC error.\n */\nexport class UnknownRpcError extends RpcError {\n override name = 'UnknownRpcError'\n\n constructor(cause: Error) {\n super(cause, {\n shortMessage: 'An unknown RPC error occurred.',\n })\n }\n}\n","import type { Account } from '../accounts/types.js'\nimport type { SendTransactionParameters } from '../actions/wallet/sendTransaction.js'\nimport type { BlockTag } from '../types/block.js'\nimport type { Chain } from '../types/chain.js'\nimport type { Hash, Hex } from '../types/misc.js'\nimport type { TransactionType } from '../types/transaction.js'\nimport { formatEther } from '../utils/unit/formatEther.js'\nimport { formatGwei } from '../utils/unit/formatGwei.js'\n\nimport { BaseError } from './base.js'\n\nexport function prettyPrint(\n args: Record,\n) {\n const entries = Object.entries(args)\n .map(([key, value]) => {\n if (value === undefined || value === false) return null\n return [key, value]\n })\n .filter(Boolean) as [string, string][]\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\nexport class FeeConflictError extends BaseError {\n override name = 'FeeConflictError'\n constructor() {\n super(\n [\n 'Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.',\n 'Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others.',\n ].join('\\n'),\n )\n }\n}\n\nexport class InvalidLegacyVError extends BaseError {\n override name = 'InvalidLegacyVError'\n\n constructor({ v }: { v: bigint }) {\n super(`Invalid \\`v\\` value \"${v}\". Expected 27 or 28.`)\n }\n}\n\nexport class InvalidSerializableTransactionError extends BaseError {\n override name = 'InvalidSerializableTransactionError'\n\n constructor({ transaction }: { transaction: Record }) {\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 '- a Legacy Transaction with `gasPrice`',\n ],\n })\n }\n}\n\nexport class InvalidSerializedTransactionTypeError extends BaseError {\n override name = 'InvalidSerializedTransactionType'\n\n serializedType: Hex\n\n constructor({ serializedType }: { serializedType: Hex }) {\n super(`Serialized transaction type \"${serializedType}\" is invalid.`)\n\n this.serializedType = serializedType\n }\n}\n\nexport class InvalidSerializedTransactionError extends BaseError {\n override name = 'InvalidSerializedTransactionError'\n\n serializedTransaction: Hex\n type: TransactionType\n\n constructor({\n attributes,\n serializedTransaction,\n type,\n }: {\n attributes: Record\n serializedTransaction: Hex\n type: TransactionType\n }) {\n const missing = Object.entries(attributes)\n .map(([key, value]) => (typeof value === 'undefined' ? key : undefined))\n .filter(Boolean)\n super(`Invalid serialized transaction of type \"${type}\" was provided.`, {\n metaMessages: [\n `Serialized Transaction: \"${serializedTransaction}\"`,\n missing.length > 0 ? `Missing Attributes: ${missing.join(', ')}` : '',\n ].filter(Boolean),\n })\n\n this.serializedTransaction = serializedTransaction\n this.type = type\n }\n}\n\nexport class InvalidStorageKeySizeError extends BaseError {\n override name = 'InvalidStorageKeySizeError'\n\n constructor({ storageKey }: { storageKey: Hex }) {\n super(\n `Size for storage key \"${storageKey}\" is invalid. Expected 32 bytes. Got ${Math.floor(\n (storageKey.length - 2) / 2,\n )} bytes.`,\n )\n }\n}\n\nexport class TransactionExecutionError extends BaseError {\n override cause: BaseError\n\n override name = 'TransactionExecutionError'\n\n constructor(\n cause: BaseError,\n {\n account,\n docsPath,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n }: Omit & {\n account: Account\n chain?: Chain\n docsPath?: string\n },\n ) {\n const prettyArgs = prettyPrint({\n chain: chain && `${chain?.name} (id: ${chain?.id})`,\n from: account?.address,\n to,\n value:\n typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice:\n typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas:\n typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas:\n typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n })\n\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Request Arguments:',\n prettyArgs,\n ].filter(Boolean) as string[],\n })\n this.cause = cause\n }\n}\n\nexport class TransactionNotFoundError extends BaseError {\n override name = 'TransactionNotFoundError'\n constructor({\n blockHash,\n blockNumber,\n blockTag,\n hash,\n index,\n }: {\n blockHash?: Hash\n blockNumber?: bigint\n blockTag?: BlockTag\n hash?: Hash\n index?: number\n }) {\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) identifier = `Transaction with hash \"${hash}\"`\n super(`${identifier} could not be found.`)\n }\n}\n\nexport class TransactionReceiptNotFoundError extends BaseError {\n override name = 'TransactionReceiptNotFoundError'\n constructor({ hash }: { hash: Hash }) {\n super(\n `Transaction receipt with hash \"${hash}\" could not be found. The Transaction may not be processed on a block yet.`,\n )\n }\n}\n\nexport class WaitForTransactionReceiptTimeoutError extends BaseError {\n override name = 'WaitForTransactionReceiptTimeoutError'\n constructor({ hash }: { hash: Hash }) {\n super(\n `Timed out while waiting for transaction with hash \"${hash}\" to be confirmed.`,\n )\n }\n}\n","import { BaseError } from './base.js'\n\nexport class UrlRequiredError extends BaseError {\n constructor() {\n super(\n 'No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.',\n {\n docsPath: '/docs/clients/intro',\n },\n )\n }\n}\n","import type { Address } from 'abitype'\n\nimport { version } from './version.js'\n\nexport const getContractAddress = (address: Address) => address\nexport const getUrl = (url: string) => url\nexport const getVersion = () => `viem@${version}`\n","export const version = '1.1.7'\n","export {\n type Abi,\n type Address,\n type ResolvedConfig,\n type ParseAbi,\n type ParseAbiItem,\n type ParseAbiParameter,\n type ParseAbiParameters,\n type TypedData,\n type TypedDataDomain,\n type TypedDataParameter,\n CircularReferenceError,\n InvalidAbiParameterError,\n InvalidAbiParametersError,\n InvalidAbiItemError,\n InvalidAbiTypeParameterError,\n InvalidFunctionModifierError,\n InvalidModifierError,\n InvalidParameterError,\n InvalidParenthesisError,\n InvalidSignatureError,\n InvalidStructSignatureError,\n SolidityProtectedKeywordError,\n UnknownTypeError,\n UnknownSignatureError,\n parseAbi,\n parseAbiItem,\n parseAbiParameter,\n parseAbiParameters,\n} from 'abitype'\n\nexport {\n getContract,\n type GetContractParameters,\n type GetContractReturnType,\n} from './actions/getContract.js'\nexport type { AddChainParameters } from './actions/wallet/addChain.js'\nexport type {\n CallParameters,\n CallReturnType,\n} from './actions/public/call.js'\nexport type { CreateBlockFilterReturnType } from './actions/public/createBlockFilter.js'\nexport type {\n CreateContractEventFilterParameters,\n CreateContractEventFilterReturnType,\n} from './actions/public/createContractEventFilter.js'\nexport type {\n CreateEventFilterParameters,\n CreateEventFilterReturnType,\n} from './actions/public/createEventFilter.js'\nexport type { CreatePendingTransactionFilterReturnType } from './actions/public/createPendingTransactionFilter.js'\nexport type {\n DeployContractParameters,\n DeployContractReturnType,\n} from './actions/wallet/deployContract.js'\nexport type { DropTransactionParameters } from './actions/test/dropTransaction.js'\nexport type {\n EstimateContractGasParameters,\n EstimateContractGasReturnType,\n} from './actions/public/estimateContractGas.js'\nexport type {\n EstimateGasParameters,\n EstimateGasReturnType,\n} from './actions/public/estimateGas.js'\nexport type { GetAddressesReturnType } from './actions/wallet/getAddresses.js'\nexport type {\n GetBalanceParameters,\n GetBalanceReturnType,\n} from './actions/public/getBalance.js'\nexport type {\n GetBlockNumberParameters,\n GetBlockNumberReturnType,\n} from './actions/public/getBlockNumber.js'\nexport type {\n GetBlockParameters,\n GetBlockReturnType,\n} from './actions/public/getBlock.js'\nexport type {\n GetBlockTransactionCountParameters,\n GetBlockTransactionCountReturnType,\n} from './actions/public/getBlockTransactionCount.js'\nexport type {\n GetBytecodeParameters,\n GetBytecodeReturnType,\n} from './actions/public/getBytecode.js'\nexport type { GetChainIdReturnType } from './actions/public/getChainId.js'\nexport type {\n GetEnsAddressParameters,\n GetEnsAddressReturnType,\n} from './actions/ens/getEnsAddress.js'\nexport type {\n GetEnsNameParameters,\n GetEnsNameReturnType,\n} from './actions/ens/getEnsName.js'\nexport type {\n GetEnsResolverParameters,\n GetEnsResolverReturnType,\n} from './actions/ens/getEnsResolver.js'\nexport type {\n GetFeeHistoryParameters,\n GetFeeHistoryReturnType,\n} from './actions/public/getFeeHistory.js'\nexport type {\n GetFilterChangesParameters,\n GetFilterChangesReturnType,\n} from './actions/public/getFilterChanges.js'\nexport type {\n GetFilterLogsParameters,\n GetFilterLogsReturnType,\n} from './actions/public/getFilterLogs.js'\nexport type { GetGasPriceReturnType } from './actions/public/getGasPrice.js'\nexport type {\n GetLogsParameters,\n GetLogsReturnType,\n} from './actions/public/getLogs.js'\nexport type { GetPermissionsReturnType } from './actions/wallet/getPermissions.js'\nexport type {\n GetStorageAtParameters,\n GetStorageAtReturnType,\n} from './actions/public/getStorageAt.js'\nexport type {\n GetTransactionConfirmationsParameters,\n GetTransactionConfirmationsReturnType,\n} from './actions/public/getTransactionConfirmations.js'\nexport type {\n GetTransactionCountParameters,\n GetTransactionCountReturnType,\n} from './actions/public/getTransactionCount.js'\nexport type {\n GetTransactionParameters,\n GetTransactionReturnType,\n} from './actions/public/getTransaction.js'\nexport type {\n GetTransactionReceiptParameters,\n GetTransactionReceiptReturnType,\n} from './actions/public/getTransactionReceipt.js'\nexport type { ImpersonateAccountParameters } from './actions/test/impersonateAccount.js'\nexport type { IncreaseTimeParameters } from './actions/test/increaseTime.js'\nexport type { MineParameters } from './actions/test/mine.js'\nexport type {\n MulticallParameters,\n MulticallReturnType,\n} from './actions/public/multicall.js'\nexport type {\n OnBlock,\n OnBlockParameter,\n WatchBlocksParameters,\n WatchBlocksReturnType,\n} from './actions/public/watchBlocks.js'\nexport type {\n OnBlockNumberFn,\n OnBlockNumberParameter,\n WatchBlockNumberParameters,\n WatchBlockNumberReturnType,\n} from './actions/public/watchBlockNumber.js'\nexport type {\n OnLogsFn,\n OnLogsParameter,\n WatchEventParameters,\n WatchEventReturnType,\n} from './actions/public/watchEvent.js'\nexport type {\n OnTransactionsFn,\n OnTransactionsParameter,\n WatchPendingTransactionsParameters,\n WatchPendingTransactionsReturnType,\n} from './actions/public/watchPendingTransactions.js'\nexport type {\n ReadContractParameters,\n ReadContractReturnType,\n} from './actions/public/readContract.js'\nexport type {\n ReplacementReason,\n ReplacementReturnType,\n WaitForTransactionReceiptParameters,\n WaitForTransactionReceiptReturnType,\n} from './actions/public/waitForTransactionReceipt.js'\nexport type { RequestAddressesReturnType } from './actions/wallet/requestAddresses.js'\nexport type {\n RequestPermissionsReturnType,\n RequestPermissionsParameters,\n} from './actions/wallet/requestPermissions.js'\nexport type { ResetParameters } from './actions/test/reset.js'\nexport type { RevertParameters } from './actions/test/revert.js'\nexport type {\n SendTransactionParameters,\n SendTransactionReturnType,\n} from './actions/wallet/sendTransaction.js'\nexport type {\n SendUnsignedTransactionParameters,\n SendUnsignedTransactionReturnType,\n} from './actions/test/sendUnsignedTransaction.js'\nexport type { SetBalanceParameters } from './actions/test/setBalance.js'\nexport type { SetBlockGasLimitParameters } from './actions/test/setBlockGasLimit.js'\nexport type { SetBlockTimestampIntervalParameters } from './actions/test/setBlockTimestampInterval.js'\nexport type { SetCodeParameters } from './actions/test/setCode.js'\nexport type { SetCoinbaseParameters } from './actions/test/setCoinbase.js'\nexport type { SetIntervalMiningParameters } from './actions/test/setIntervalMining.js'\nexport type { SetMinGasPriceParameters } from './actions/test/setMinGasPrice.js'\nexport type { SetNextBlockBaseFeePerGasParameters } from './actions/test/setNextBlockBaseFeePerGas.js'\nexport type { SetNextBlockTimestampParameters } from './actions/test/setNextBlockTimestamp.js'\nexport type { SetNonceParameters } from './actions/test/setNonce.js'\nexport type { SetStorageAtParameters } from './actions/test/setStorageAt.js'\nexport type {\n SignMessageParameters,\n SignMessageReturnType,\n} from './actions/wallet/signMessage.js'\nexport type {\n SignTypedDataParameters,\n SignTypedDataReturnType,\n} from './actions/wallet/signTypedData.js'\nexport type {\n SimulateContractParameters,\n SimulateContractReturnType,\n} from './actions/public/simulateContract.js'\nexport type { StopImpersonatingAccountParameters } from './actions/test/stopImpersonatingAccount.js'\nexport type { SwitchChainParameters } from './actions/wallet/switchChain.js'\nexport type {\n UninstallFilterParameters,\n UninstallFilterReturnType,\n} from './actions/public/uninstallFilter.js'\nexport type {\n WatchAssetParameters,\n WatchAssetReturnType,\n} from './actions/wallet/watchAsset.js'\nexport type {\n WatchContractEventParameters,\n WatchContractEventReturnType,\n} from './actions/public/watchContractEvent.js'\nexport type {\n WriteContractParameters,\n WriteContractReturnType,\n} from './actions/wallet/writeContract.js'\nexport {\n type Client,\n type ClientConfig,\n createClient,\n} from './clients/createClient.js'\nexport {\n type CustomTransport,\n type CustomTransportConfig,\n custom,\n} from './clients/transports/custom.js'\nexport {\n type FallbackTransport,\n type FallbackTransportConfig,\n fallback,\n} from './clients/transports/fallback.js'\nexport {\n type HttpTransport,\n type HttpTransportConfig,\n http,\n} from './clients/transports/http.js'\nexport {\n type PublicClient,\n type PublicClientConfig,\n createPublicClient,\n} from './clients/createPublicClient.js'\nexport {\n type TestClient,\n type TestClientConfig,\n createTestClient,\n} from './clients/createTestClient.js'\nexport {\n type Transport,\n type TransportConfig,\n createTransport,\n} from './clients/transports/createTransport.js'\nexport {\n type WalletClient,\n type WalletClientConfig,\n createWalletClient,\n} from './clients/createWalletClient.js'\nexport {\n type WebSocketTransport,\n type WebSocketTransportConfig,\n webSocket,\n} from './clients/transports/webSocket.js'\nexport { multicall3Abi } from './constants/abis.js'\nexport { etherUnits, gweiUnits, weiUnits } from './constants/unit.js'\nexport { zeroAddress } from './constants/address.js'\nexport {\n AbiConstructorNotFoundError,\n AbiConstructorParamsNotFoundError,\n AbiDecodingDataSizeInvalidError,\n AbiDecodingZeroDataError,\n AbiEncodingArrayLengthMismatchError,\n AbiEncodingLengthMismatchError,\n AbiErrorInputsNotFoundError,\n AbiErrorNotFoundError,\n AbiErrorSignatureNotFoundError,\n AbiEventNotFoundError,\n AbiEventSignatureEmptyTopicsError,\n AbiEventSignatureNotFoundError,\n AbiFunctionNotFoundError,\n AbiFunctionOutputsNotFoundError,\n AbiFunctionSignatureNotFoundError,\n DecodeLogTopicsMismatch,\n InvalidAbiDecodingTypeError,\n InvalidAbiEncodingTypeError,\n InvalidArrayError,\n InvalidDefinitionTypeError,\n} from './errors/abi.js'\nexport { BaseError } from './errors/base.js'\nexport { BlockNotFoundError } from './errors/block.js'\nexport {\n CallExecutionError,\n ContractFunctionExecutionError,\n ContractFunctionRevertedError,\n ContractFunctionZeroDataError,\n RawContractError,\n} from './errors/contract.js'\nexport {\n ChainDisconnectedError,\n InternalRpcError,\n InvalidInputRpcError,\n InvalidParamsRpcError,\n InvalidRequestRpcError,\n JsonRpcVersionUnsupportedError,\n LimitExceededRpcError,\n MethodNotFoundRpcError,\n MethodNotSupportedRpcError,\n ParseRpcError,\n ProviderDisconnectedError,\n ProviderRpcError,\n type ProviderRpcErrorCode,\n ResourceNotFoundRpcError,\n ResourceUnavailableRpcError,\n RpcError,\n type RpcErrorCode,\n TransactionRejectedRpcError,\n SwitchChainError,\n UnauthorizedProviderError,\n UnknownRpcError,\n UnsupportedProviderMethodError,\n UserRejectedRequestError,\n} from './errors/rpc.js'\nexport {\n ChainDoesNotSupportContract,\n ClientChainNotConfiguredError,\n InvalidChainIdError,\n} from './errors/chain.js'\nexport {\n DataLengthTooLongError,\n DataLengthTooShortError,\n InvalidBytesBooleanError,\n InvalidHexBooleanError,\n InvalidHexValueError,\n OffsetOutOfBoundsError,\n} from './errors/encoding.js'\nexport { EnsAvatarUriResolutionError } from './errors/ens.js'\nexport { EstimateGasExecutionError } from './errors/estimateGas.js'\nexport {\n ExecutionRevertedError,\n FeeCapTooHighError,\n FeeCapTooLowError,\n InsufficientFundsError,\n IntrinsicGasTooHighError,\n IntrinsicGasTooLowError,\n NonceMaxValueError,\n NonceTooHighError,\n NonceTooLowError,\n TipAboveFeeCapError,\n TransactionTypeNotSupportedError,\n UnknownNodeError,\n} from './errors/node.js'\nexport { FilterTypeNotSupportedError } from './errors/log.js'\nexport {\n HttpRequestError,\n RpcRequestError,\n TimeoutError,\n WebSocketRequestError,\n} from './errors/request.js'\nexport { InvalidAddressError } from './errors/address.js'\nexport {\n InvalidLegacyVError,\n TransactionExecutionError,\n TransactionNotFoundError,\n TransactionReceiptNotFoundError,\n WaitForTransactionReceiptTimeoutError,\n} from './errors/transaction.js'\nexport { SizeExceedsPaddingSizeError } from './errors/data.js'\nexport { UrlRequiredError } from './errors/transport.js'\nexport type {\n AbiItem,\n ContractFunctionConfig,\n ContractFunctionResult,\n GetConstructorArgs,\n GetErrorArgs,\n GetEventArgs,\n GetEventArgsFromTopics,\n GetFunctionArgs,\n GetValue,\n InferErrorName,\n InferEventName,\n InferFunctionName,\n InferItemName,\n} from './types/contract.js'\nexport type {\n AccessList,\n Transaction,\n TransactionBase,\n TransactionEIP1559,\n TransactionEIP2930,\n TransactionLegacy,\n TransactionReceipt,\n TransactionRequest,\n TransactionRequestBase,\n TransactionRequestEIP1559,\n TransactionRequestEIP2930,\n TransactionRequestLegacy,\n TransactionSerializable,\n TransactionSerializableBase,\n TransactionSerializableEIP1559,\n TransactionSerializableEIP2930,\n TransactionSerializableLegacy,\n TransactionSerialized,\n TransactionSerializedEIP1559,\n TransactionSerializedEIP2930,\n TransactionSerializedLegacy,\n TransactionType,\n} from './types/transaction.js'\nexport type {\n Account,\n AccountSource,\n CustomSource,\n HDAccount,\n HDOptions,\n JsonRpcAccount,\n LocalAccount,\n PrivateKeyAccount,\n} from './accounts/types.js'\nexport type { AssetGateway, AssetGatewayUrls } from './types/ens.js'\nexport type {\n Block,\n BlockIdentifier,\n BlockNumber,\n BlockTag,\n Uncle,\n} from './types/block.js'\nexport type {\n ByteArray,\n Hash,\n Hex,\n LogTopic,\n Signature,\n} from './types/misc.js'\nexport type { Chain } from './types/chain.js'\nexport type {\n AddEthereumChainParameter,\n EIP1193Events,\n EIP1193Parameters,\n EIP1193Provider,\n EIP1193RequestFn,\n EIP1474Methods,\n ProviderRpcError as EIP1193ProviderRpcError,\n ProviderConnectInfo,\n ProviderMessage,\n PublicRpcSchema,\n NetworkSync,\n RpcSchema,\n RpcSchemaOverride,\n TestRpcSchema,\n WatchAssetParams,\n WalletPermissionCaveat,\n WalletPermission,\n WalletRpcSchema,\n} from './types/eip1193.js'\nexport type {\n FeeHistory,\n FeeValues,\n FeeValuesEIP1559,\n FeeValuesLegacy,\n} from './types/fee.js'\nexport type {\n Formatter,\n Formatters,\n} from './types/formatter.js'\nexport type { Serializers } from './types/serializer.js'\nexport type {\n GetTypedDataDomain,\n GetTypedDataMessage,\n GetTypedDataPrimaryType,\n GetTypedDataTypes,\n TypedDataDefinition,\n} from './types/typedData.js'\nexport type { GetTransportConfig } from './types/transport.js'\nexport type { HDKey } from '@scure/bip32'\nexport type { Log } from './types/log.js'\nexport type {\n MulticallContracts,\n MulticallResult,\n MulticallResults,\n} from './types/multicall.js'\nexport type { ParseAccount } from './types/account.js'\nexport type {\n RpcBlock,\n RpcBlockIdentifier,\n RpcBlockNumber,\n RpcFeeHistory,\n RpcFeeValues,\n RpcLog,\n RpcTransaction,\n RpcTransactionReceipt,\n RpcTransactionRequest,\n RpcUncle,\n} from './types/rpc.js'\nexport { labelhash } from './utils/ens/labelhash.js'\nexport { namehash } from './utils/ens/namehash.js'\nexport {\n type FormattedBlock,\n defineBlock,\n formatBlock,\n} from './utils/formatters/block.js'\nexport { formatLog } from './utils/formatters/log.js'\nexport {\n type DecodeAbiParametersReturnType,\n decodeAbiParameters,\n} from './utils/abi/decodeAbiParameters.js'\nexport {\n type DecodeDeployDataParameters,\n type DecodeDeployDataReturnType,\n decodeDeployData,\n} from './utils/abi/decodeDeployData.js'\nexport {\n type DecodeErrorResultParameters,\n type DecodeErrorResultReturnType,\n decodeErrorResult,\n} from './utils/abi/decodeErrorResult.js'\nexport {\n type DecodeEventLogParameters,\n type DecodeEventLogReturnType,\n decodeEventLog,\n} from './utils/abi/decodeEventLog.js'\nexport {\n type DecodeFunctionDataParameters,\n decodeFunctionData,\n} from './utils/abi/decodeFunctionData.js'\nexport {\n type DecodeFunctionResultParameters,\n type DecodeFunctionResultReturnType,\n decodeFunctionResult,\n} from './utils/abi/decodeFunctionResult.js'\nexport {\n type EncodeAbiParametersReturnType,\n encodeAbiParameters,\n} from './utils/abi/encodeAbiParameters.js'\nexport {\n type EncodeDeployDataParameters,\n encodeDeployData,\n} from './utils/abi/encodeDeployData.js'\nexport {\n type EncodeErrorResultParameters,\n encodeErrorResult,\n} from './utils/abi/encodeErrorResult.js'\nexport {\n type EncodeEventTopicsParameters,\n encodeEventTopics,\n} from './utils/abi/encodeEventTopics.js'\nexport {\n type EncodeFunctionDataParameters,\n encodeFunctionData,\n} from './utils/abi/encodeFunctionData.js'\nexport {\n type EncodeFunctionResultParameters,\n encodeFunctionResult,\n} from './utils/abi/encodeFunctionResult.js'\nexport {\n type FormattedTransaction,\n defineTransaction,\n formatTransaction,\n transactionType,\n} from './utils/formatters/transaction.js'\nexport {\n type FormattedTransactionReceipt,\n defineTransactionReceipt,\n} from './utils/formatters/transactionReceipt.js'\nexport {\n type FormattedTransactionRequest,\n defineTransactionRequest,\n formatTransactionRequest,\n} from './utils/formatters/transactionRequest.js'\nexport {\n type GetAbiItemParameters,\n getAbiItem,\n} from './utils/abi/getAbiItem.js'\nexport {\n type GetContractAddressOptions,\n type GetCreate2AddressOptions,\n type GetCreateAddressOptions,\n getContractAddress,\n getCreate2Address,\n getCreateAddress,\n} from './utils/address/getContractAddress.js'\nexport {\n type GetSerializedTransactionType,\n getSerializedTransactionType,\n} from './utils/transaction/getSerializedTransactionType.js'\nexport {\n type GetTransactionType,\n getTransactionType,\n} from './utils/transaction/getTransactionType.js'\nexport {\n type HashTypedDataParameters,\n type HashTypedDataReturnType,\n hashTypedData,\n} from './utils/signature/hashTypedData.js'\nexport {\n type RecoverAddressParameters,\n type RecoverAddressReturnType,\n recoverAddress,\n} from './utils/signature/recoverAddress.js'\nexport {\n type RecoverMessageAddressParameters,\n type RecoverMessageAddressReturnType,\n recoverMessageAddress,\n} from './utils/signature/recoverMessageAddress.js'\nexport {\n type RecoverPublicKeyParameters,\n type RecoverPublicKeyReturnType,\n recoverPublicKey,\n} from './utils/signature/recoverPublicKey.js'\nexport {\n type RecoverTypedDataAddressParameters,\n type RecoverTypedDataAddressReturnType,\n recoverTypedDataAddress,\n} from './utils/signature/recoverTypedDataAddress.js'\nexport { type ToRlpReturnType, toRlp } from './utils/encoding/toRlp.js'\nexport {\n type VerifyMessageParameters,\n type VerifyMessageReturnType,\n verifyMessage,\n} from './utils/signature/verifyMessage.js'\nexport {\n type VerifyTypedDataParameters,\n type VerifyTypedDataReturnType,\n verifyTypedData,\n} from './utils/signature/verifyTypedData.js'\nexport { assertRequest } from './utils/transaction/assertRequest.js'\nexport {\n assertTransactionEIP1559,\n assertTransactionEIP2930,\n assertTransactionLegacy,\n} from './utils/transaction/assertTransaction.js'\nexport {\n boolToBytes,\n hexToBytes,\n numberToBytes,\n stringToBytes,\n toBytes,\n} from './utils/encoding/toBytes.js'\nexport {\n boolToHex,\n bytesToHex,\n numberToHex,\n stringToHex,\n toHex,\n} from './utils/encoding/toHex.js'\nexport {\n bytesToBigint,\n bytesToBool,\n bytesToNumber,\n bytesToString,\n fromBytes,\n} from './utils/encoding/fromBytes.js'\nexport {\n ccipFetch,\n offchainLookup,\n offchainLookupAbiItem,\n offchainLookupSignature,\n} from './utils/ccip.js'\nexport { concat, concatBytes, concatHex } from './utils/data/concat.js'\nexport { assertCurrentChain, defineChain } from './utils/chain.js'\nexport { encodePacked } from './utils/abi/encodePacked.js'\nexport { formatEther } from './utils/unit/formatEther.js'\nexport { formatGwei } from './utils/unit/formatGwei.js'\nexport { formatUnits } from './utils/unit/formatUnits.js'\nexport {\n fromHex,\n hexToBigInt,\n hexToBool,\n hexToNumber,\n hexToString,\n} from './utils/encoding/fromHex.js'\nexport { fromRlp } from './utils/encoding/fromRlp.js'\nexport { getAddress } from './utils/address/getAddress.js'\nexport { getContractError } from './utils/errors/getContractError.js'\nexport { getEventSelector } from './utils/hash/getEventSelector.js'\nexport { getFunctionSelector } from './utils/hash/getFunctionSelector.js'\nexport { hashMessage } from './utils/signature/hashMessage.js'\nexport { isAddress } from './utils/address/isAddress.js'\nexport { isAddressEqual } from './utils/address/isAddressEqual.js'\nexport { isBytes } from './utils/data/isBytes.js'\nexport { isHash } from './utils/hash/isHash.js'\nexport { isHex } from './utils/data/isHex.js'\nexport { keccak256 } from './utils/hash/keccak256.js'\nexport { pad, padBytes, padHex } from './utils/data/pad.js'\nexport { parseEther } from './utils/unit/parseEther.js'\nexport { parseGwei } from './utils/unit/parseGwei.js'\nexport { parseTransaction } from './utils/transaction/parseTransaction.js'\nexport { parseUnits } from './utils/unit/parseUnits.js'\nexport { prepareRequest } from './utils/transaction/prepareRequest.js'\nexport { serializeAccessList } from './utils/transaction/serializeAccessList.js'\nexport {\n serializeTransaction,\n type SerializeTransactionFn,\n} from './utils/transaction/serializeTransaction.js'\nexport { size } from './utils/data/size.js'\nexport { slice, sliceBytes, sliceHex } from './utils/data/slice.js'\nexport { stringify } from './utils/stringify.js'\nexport { trim } from './utils/data/trim.js'\nexport { validateTypedData } from './utils/typedData.js'\n","import type {\n AbiParameter,\n AbiParameterToPrimitiveType,\n AbiParametersToPrimitiveTypes,\n Narrow,\n} from 'abitype'\n\nimport {\n AbiDecodingDataSizeTooSmallError,\n AbiDecodingZeroDataError,\n InvalidAbiDecodingTypeError,\n} from '../../errors/abi.js'\nimport type { Hex } from '../../types/misc.js'\nimport { checksumAddress } from '../address/getAddress.js'\nimport { size } from '../data/size.js'\nimport { slice } from '../data/slice.js'\nimport { trim } from '../data/trim.js'\nimport {\n hexToBigInt,\n hexToBool,\n hexToNumber,\n hexToString,\n} from '../encoding/fromHex.js'\n\nimport { getArrayComponents } from './encodeAbiParameters.js'\n\nexport type DecodeAbiParametersReturnType<\n TParams extends\n | readonly AbiParameter[]\n | readonly unknown[] = readonly AbiParameter[],\n> = AbiParametersToPrimitiveTypes<\n TParams extends readonly AbiParameter[] ? TParams : AbiParameter[]\n>\n\nexport function decodeAbiParameters<\n TParams extends readonly AbiParameter[] | readonly unknown[],\n>(params: Narrow, data: Hex): DecodeAbiParametersReturnType {\n if (data === '0x' && (params as unknown[]).length > 0)\n throw new AbiDecodingZeroDataError()\n if (size(data) && size(data) < 32)\n throw new AbiDecodingDataSizeTooSmallError({\n data,\n params: params as readonly AbiParameter[],\n size: size(data),\n })\n return decodeParams({\n data,\n params: params as readonly AbiParameter[],\n }) as unknown as DecodeAbiParametersReturnType\n}\n\n////////////////////////////////////////////////////////////////////\n\ntype TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }\n\nfunction decodeParams({\n data,\n params,\n}: { data: Hex; params: TParams }) {\n const decodedValues: unknown[] = []\n let position = 0\n\n for (let i = 0; i < params.length; i++) {\n if (position >= size(data))\n throw new AbiDecodingDataSizeTooSmallError({\n data,\n params,\n size: size(data),\n })\n\n const param = params[i]\n const { consumed, value } = decodeParam({ data, param, position })\n decodedValues.push(value)\n // Step across the data by the amount of data consumed by this parameter.\n position += consumed\n }\n\n return decodedValues as unknown as AbiParametersToPrimitiveTypes\n}\n\nfunction decodeParam({\n data,\n param,\n position,\n}: { data: Hex; param: AbiParameter; position: number }): {\n consumed: number\n value: any\n} {\n const arrayComponents = getArrayComponents(param.type)\n if (arrayComponents) {\n const [length, type] = arrayComponents\n return decodeArray(data, {\n length,\n param: { ...param, type: type } as AbiParameter,\n position,\n })\n }\n if (param.type === 'tuple') {\n return decodeTuple(data, { param: param as TupleAbiParameter, position })\n }\n if (param.type === 'string') {\n return decodeString(data, { position })\n }\n if (param.type.startsWith('bytes')) {\n return decodeBytes(data, { param, position })\n }\n\n const value = slice(data, position, position + 32, { strict: true }) as Hex\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n return decodeNumber(value, { param })\n }\n if (param.type === 'address') {\n return decodeAddress(value)\n }\n if (param.type === 'bool') {\n return decodeBool(value)\n }\n throw new InvalidAbiDecodingTypeError(param.type, {\n docsPath: '/docs/contract/decodeAbiParameters',\n })\n}\n\n////////////////////////////////////////////////////////////////////\n\nfunction decodeAddress(value: Hex) {\n return { consumed: 32, value: checksumAddress(slice(value, -20)) }\n}\n\nfunction decodeArray(\n data: Hex,\n {\n param,\n length,\n position,\n }: {\n param: TParam\n length: number | null\n position: number\n },\n) {\n // If the length of the array is not known in advance (dynamic array),\n // we will need to decode the offset of the array data.\n if (!length) {\n // Get the offset of the array data.\n const offset = hexToNumber(\n slice(data, position, position + 32, { strict: true }),\n )\n // Get the length of the array from the offset.\n const length = hexToNumber(\n slice(data, offset, offset + 32, { strict: true }),\n )\n\n let consumed = 0\n const value: AbiParameterToPrimitiveType[] = []\n for (let i = 0; i < length; ++i) {\n const decodedChild = decodeParam({\n data: slice(data, offset + 32),\n param,\n position: consumed,\n })\n consumed += decodedChild.consumed\n value.push(decodedChild.value)\n }\n return { value, consumed: 32 }\n }\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 // Get the child type of the array.\n const arrayComponents = getArrayComponents(param.type)\n // If the child type is not known, the array is dynamic.\n const dynamicChild = !arrayComponents?.[0]\n\n let consumed = 0\n const value: AbiParameterToPrimitiveType[] = []\n for (let i = 0; i < length; ++i) {\n const offset = hexToNumber(\n slice(data, position, position + 32, { strict: true }),\n )\n const decodedChild = decodeParam({\n data: slice(data, offset),\n param,\n position: dynamicChild ? consumed : i * 32,\n })\n consumed += decodedChild.consumed\n value.push(decodedChild.value)\n }\n return { value, consumed: 32 }\n }\n\n // If the length of the array is known in advance,\n // and the length of each element in the array is known,\n // the array data is encoded contiguously after the array.\n let consumed = 0\n const value: AbiParameterToPrimitiveType[] = []\n for (let i = 0; i < length; ++i) {\n const decodedChild = decodeParam({\n data,\n param,\n position: position + consumed,\n })\n consumed += decodedChild.consumed\n value.push(decodedChild.value)\n }\n return { value, consumed }\n}\n\nfunction decodeBool(value: Hex) {\n return { consumed: 32, value: hexToBool(value) }\n}\n\nfunction decodeBytes(\n data: Hex,\n { param, position }: { param: TParam; position: number },\n) {\n const [_, size] = param.type.split('bytes')\n if (!size) {\n // If we don't have a size, we're dealing with a dynamic-size array\n // so we need to read the offset of the data part first.\n const offset = hexToNumber(\n slice(data, position, position + 32, { strict: true }),\n )\n const length = hexToNumber(\n slice(data, offset, offset + 32, { strict: true }),\n )\n // If there is no length, we have zero data.\n if (length === 0) return { consumed: 32, value: '0x' }\n const value = slice(data, offset + 32, offset + 32 + length, {\n strict: true,\n })\n return { consumed: 32, value }\n }\n\n const value = slice(data, position, position + parseInt(size), {\n strict: true,\n })\n return { consumed: 32, value }\n}\n\nfunction decodeNumber(\n value: Hex,\n { param }: { param: TParam },\n) {\n const signed = param.type.startsWith('int')\n const size = parseInt(param.type.split('int')[1] || '256')\n return {\n consumed: 32,\n value:\n size > 48\n ? hexToBigInt(value, { signed })\n : hexToNumber(value, { signed }),\n }\n}\n\nfunction decodeString(data: Hex, { position }: { position: number }) {\n const offset = hexToNumber(\n slice(data, position, position + 32, { strict: true }),\n )\n const length = hexToNumber(slice(data, offset, offset + 32, { strict: true }))\n // If there is no length, we have zero data (empty string).\n if (length === 0) return { consumed: 32, value: '' }\n const value = hexToString(\n trim(slice(data, offset + 32, offset + 32 + length, { strict: true })),\n )\n return { consumed: 32, value }\n}\n\nfunction decodeTuple<\n TParam extends AbiParameter & { components: readonly AbiParameter[] },\n>(data: Hex, { param, position }: { param: TParam; position: number }) {\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 =\n param.components.length === 0 || param.components.some(({ name }) => !name)\n\n // Initialize the value to an object or an array, depending on whether the\n // tuple is named or unnamed.\n const value: any = hasUnnamedChild ? [] : {}\n let consumed = 0\n\n // If the tuple has a dynamic child, we must first decode the offset to the\n // tuple data.\n if (hasDynamicChild(param)) {\n const offset = hexToNumber(\n slice(data, position, position + 32, { strict: true }),\n )\n // Decode each component of the tuple, starting at the offset.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i]\n const decodedChild = decodeParam({\n data: slice(data, offset),\n param: component,\n position: consumed,\n })\n consumed += decodedChild.consumed\n value[hasUnnamedChild ? i : component?.name!] = decodedChild.value\n }\n return { consumed: 32, value }\n }\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 decodedChild = decodeParam({\n data,\n param: component,\n position: position + consumed,\n })\n consumed += decodedChild.consumed\n value[hasUnnamedChild ? i : component?.name!] = decodedChild.value\n }\n return { consumed, value }\n}\n\nfunction hasDynamicChild(param: AbiParameter) {\n const { type } = param\n if (type === 'string') return true\n if (type === 'bytes') return true\n if (type.endsWith('[]')) return true\n\n if (type === 'tuple') return (param as any).components?.some(hasDynamicChild)\n\n const arrayComponents = getArrayComponents(param.type)\n if (\n arrayComponents &&\n hasDynamicChild({ ...param, type: arrayComponents[1] } as AbiParameter)\n )\n return true\n\n return false\n}\n","import type { Abi, Narrow } from 'abitype'\n\nimport {\n AbiConstructorNotFoundError,\n AbiConstructorParamsNotFoundError,\n} from '../../errors/abi.js'\nimport type { GetConstructorArgs } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\n\nimport { decodeAbiParameters } from './decodeAbiParameters.js'\n\nconst docsPath = '/docs/contract/decodeDeployData'\n\nexport type DecodeDeployDataParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n> = {\n abi: Narrow\n bytecode: Hex\n data: Hex\n}\nexport type DecodeDeployDataReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n> = {\n bytecode: Hex\n} & GetConstructorArgs\n\nexport function decodeDeployData({\n abi,\n bytecode,\n data,\n}: DecodeDeployDataParameters): DecodeDeployDataReturnType {\n if (data === bytecode) return { bytecode } as DecodeDeployDataReturnType\n\n const description = (abi as Abi).find(\n (x) => 'type' in x && x.type === 'constructor',\n )\n if (!description) 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\n const args = decodeAbiParameters(\n description.inputs,\n `0x${data.replace(bytecode, '')}`,\n )\n return { args, bytecode } as unknown as DecodeDeployDataReturnType\n}\n","import type {\n Abi,\n ExtractAbiError,\n ExtractAbiErrorNames,\n Narrow,\n} from 'abitype'\n\nimport { solidityError, solidityPanic } from '../../constants/solidity.js'\nimport {\n AbiDecodingZeroDataError,\n AbiErrorSignatureNotFoundError,\n} from '../../errors/abi.js'\nimport type { AbiItem, GetErrorArgs } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport { slice } from '../data/slice.js'\nimport { getFunctionSelector } from '../hash/getFunctionSelector.js'\n\nimport { decodeAbiParameters } from './decodeAbiParameters.js'\nimport { formatAbiItem } from './formatAbiItem.js'\n\nexport type DecodeErrorResultParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n> = { abi?: Narrow; data: Hex }\n\nexport type DecodeErrorResultReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n _ErrorNames extends string = TAbi extends Abi\n ? Abi extends TAbi\n ? string\n : ExtractAbiErrorNames\n : string,\n> = {\n [TName in _ErrorNames]: {\n abiItem: TAbi extends Abi ? ExtractAbiError : AbiItem\n args: GetErrorArgs['args']\n errorName: TName\n }\n}[_ErrorNames]\n\nexport function decodeErrorResult({\n abi,\n data,\n}: DecodeErrorResultParameters): DecodeErrorResultReturnType {\n const signature = slice(data, 0, 4)\n if (signature === '0x') throw new AbiDecodingZeroDataError()\n\n const abi_ = [...((abi as Abi) || []), solidityError, solidityPanic]\n const abiItem = abi_.find(\n (x) =>\n x.type === 'error' && signature === getFunctionSelector(formatAbiItem(x)),\n )\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) as readonly unknown[] | undefined,\n errorName: (abiItem as { name: string }).name,\n } as DecodeErrorResultReturnType\n}\n","import type { Abi, AbiParameter, ExtractAbiEventNames, Narrow } from 'abitype'\n\nimport {\n AbiDecodingDataSizeTooSmallError,\n AbiEventSignatureEmptyTopicsError,\n AbiEventSignatureNotFoundError,\n DecodeLogDataMismatch,\n DecodeLogTopicsMismatch,\n} from '../../errors/abi.js'\nimport type {\n EventDefinition,\n GetEventArgsFromTopics,\n InferEventName,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport { getEventSelector } from '../hash/getEventSelector.js'\n\nimport { decodeAbiParameters } from './decodeAbiParameters.js'\nimport { formatAbiItem } from './formatAbiItem.js'\n\nexport type DecodeEventLogParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TEventName extends string | undefined = string,\n TTopics extends Hex[] = Hex[],\n TData extends Hex | undefined = undefined,\n TStrict extends boolean = true,\n> = {\n abi: Narrow\n data?: TData\n eventName?: InferEventName\n strict?: TStrict\n topics: [signature: Hex, ...args: TTopics] | []\n}\n\nexport type DecodeEventLogReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n TEventName extends string | undefined = string,\n TTopics extends Hex[] = Hex[],\n TData extends Hex | undefined = undefined,\n TStrict extends boolean = true,\n _EventNames extends string = TAbi extends Abi\n ? Abi extends TAbi\n ? string\n : ExtractAbiEventNames\n : string,\n> = TEventName extends _EventNames[number]\n ? Prettify<\n {\n eventName: TEventName\n } & GetEventArgsFromTopics\n >\n : {\n [TName in _EventNames]: Prettify<\n {\n eventName: TName\n } & GetEventArgsFromTopics\n >\n }[_EventNames]\n\nconst docsPath = '/docs/contract/decodeEventLog'\n\nexport function decodeEventLog<\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined = undefined,\n TTopics extends Hex[] = Hex[],\n TData extends Hex | undefined = undefined,\n TStrict extends boolean = true,\n>({\n abi,\n data,\n strict: strict_,\n topics,\n}: DecodeEventLogParameters<\n TAbi,\n TEventName,\n TTopics,\n TData,\n TStrict\n>): DecodeEventLogReturnType {\n const strict = strict_ ?? true\n const [signature, ...argTopics] = topics\n if (!signature)\n throw new AbiEventSignatureEmptyTopicsError({\n docsPath,\n })\n const abiItem = (abi as Abi).find(\n (x) =>\n x.type === 'event' &&\n signature === getEventSelector(formatAbiItem(x) as EventDefinition),\n )\n if (!(abiItem && 'name' in abiItem) || abiItem.type !== 'event')\n throw new AbiEventSignatureNotFoundError(signature, {\n docsPath,\n })\n\n const { name, inputs } = abiItem\n const isUnnamed = inputs?.some((x) => !('name' in x && x.name))\n\n let args: any = isUnnamed ? [] : {}\n\n // Decode topics (indexed args).\n const indexedInputs = inputs.filter((x) => 'indexed' in x && x.indexed)\n if (argTopics.length > 0) {\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 as AbiParameter & { indexed: boolean },\n })\n args[param.name || i] = decodeTopic({ param, value: topic })\n }\n }\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) 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 } catch (err) {\n if (strict) {\n if (err instanceof AbiDecodingDataSizeTooSmallError)\n throw new DecodeLogDataMismatch({\n abiItem,\n data: err.data,\n params: err.params,\n size: err.size,\n })\n throw err\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\n return {\n eventName: name,\n args: Object.values(args).length > 0 ? args : undefined,\n } as unknown as DecodeEventLogReturnType<\n TAbi,\n TEventName,\n TTopics,\n TData,\n TStrict\n >\n}\n\nfunction decodeTopic({ param, value }: { param: AbiParameter; value: Hex }) {\n if (\n param.type === 'string' ||\n param.type === 'bytes' ||\n param.type === 'tuple' ||\n param.type.match(/^(.*)\\[(\\d+)?\\]$/)\n )\n return value\n const decodedArg = decodeAbiParameters([param], value) || []\n return decodedArg[0]\n}\n","import type { Abi, ExtractAbiFunctionNames } from 'abitype'\n\nimport { AbiFunctionSignatureNotFoundError } from '../../errors/abi.js'\nimport type { GetFunctionArgs } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport { slice } from '../data/slice.js'\nimport { getFunctionSelector } from '../hash/getFunctionSelector.js'\n\nimport { decodeAbiParameters } from './decodeAbiParameters.js'\nimport { formatAbiItem } from './formatAbiItem.js'\n\nexport type DecodeFunctionDataParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n> = {\n abi: TAbi\n data: Hex\n}\n\nexport type DecodeFunctionDataReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n _FunctionNames extends string = TAbi extends Abi\n ? Abi extends TAbi\n ? string\n : ExtractAbiFunctionNames\n : string,\n> = {\n [TName in _FunctionNames]: {\n args: GetFunctionArgs['args']\n functionName: TName\n }\n}[_FunctionNames]\n\nexport function decodeFunctionData({\n abi,\n data,\n}: DecodeFunctionDataParameters) {\n const signature = slice(data, 0, 4)\n const description = (abi as Abi).find(\n (x) =>\n x.type === 'function' &&\n signature === getFunctionSelector(formatAbiItem(x)),\n )\n if (!description)\n throw new AbiFunctionSignatureNotFoundError(signature, {\n docsPath: '/docs/contract/decodeFunctionData',\n })\n return {\n functionName: (description as { name: string }).name,\n args: ('inputs' in description &&\n description.inputs &&\n description.inputs.length > 0\n ? decodeAbiParameters(description.inputs, slice(data, 4))\n : undefined) as readonly unknown[] | undefined,\n } as DecodeFunctionDataReturnType\n}\n","import type { Abi, ExtractAbiFunctionNames, Narrow } from 'abitype'\n\nimport {\n AbiFunctionNotFoundError,\n AbiFunctionOutputsNotFoundError,\n} from '../../errors/abi.js'\nimport type {\n AbiItem,\n ContractFunctionResult,\n GetFunctionArgs,\n InferFunctionName,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\n\nimport { decodeAbiParameters } from './decodeAbiParameters.js'\nimport { type GetAbiItemParameters, getAbiItem } from './getAbiItem.js'\n\nconst docsPath = '/docs/contract/decodeFunctionResult'\n\nexport type DecodeFunctionResultParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string | undefined = string,\n _FunctionName = InferFunctionName,\n> = {\n functionName?: _FunctionName\n data: Hex\n} & (TFunctionName extends string\n ? { abi: Narrow } & Partial>\n : _FunctionName extends string\n ? { abi: [Narrow] } & Partial<\n GetFunctionArgs\n >\n : never)\n\nexport type DecodeFunctionResultReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string | undefined = string,\n _FunctionName extends string = TAbi extends Abi\n ? Abi extends TAbi\n ? string\n : ExtractAbiFunctionNames[number]\n : string,\n> = TFunctionName extends string\n ? ContractFunctionResult\n : ContractFunctionResult\n\nexport function decodeFunctionResult<\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string | undefined = undefined,\n>({\n abi,\n args,\n functionName,\n data,\n}: DecodeFunctionResultParameters<\n TAbi,\n TFunctionName\n>): DecodeFunctionResultReturnType {\n let abiItem = abi[0] as AbiItem\n if (functionName) {\n abiItem = getAbiItem({\n abi,\n args,\n name: functionName,\n } as GetAbiItemParameters)\n if (!abiItem) throw new AbiFunctionNotFoundError(functionName, { docsPath })\n }\n\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath })\n if (!abiItem.outputs)\n throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath })\n\n const values = decodeAbiParameters(abiItem.outputs, data)\n if (values && values.length > 1) return values as any\n if (values && values.length === 1) return values[0] as any\n return undefined as any\n}\n","import type {\n AbiParameter,\n AbiParameterToPrimitiveType,\n AbiParametersToPrimitiveTypes,\n Narrow,\n} from 'abitype'\n\nimport {\n AbiEncodingArrayLengthMismatchError,\n AbiEncodingBytesSizeMismatchError,\n AbiEncodingLengthMismatchError,\n InvalidAbiEncodingTypeError,\n InvalidArrayError,\n} from '../../errors/abi.js'\nimport { InvalidAddressError } from '../../errors/address.js'\nimport type { Hex } from '../../types/misc.js'\nimport { isAddress } from '../address/isAddress.js'\nimport { concat } from '../data/concat.js'\nimport { padHex } from '../data/pad.js'\nimport { size } from '../data/size.js'\nimport { slice } from '../data/slice.js'\nimport { boolToHex, numberToHex, stringToHex } from '../encoding/toHex.js'\n\nexport type EncodeAbiParametersReturnType = Hex\n\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n */\nexport function encodeAbiParameters<\n TParams extends readonly AbiParameter[] | readonly unknown[],\n>(\n params: Narrow,\n values: TParams extends readonly AbiParameter[]\n ? AbiParametersToPrimitiveTypes\n : never,\n): EncodeAbiParametersReturnType {\n if (params.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: params.length as number,\n givenLength: values.length,\n })\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParams = prepareParams({\n params: params as readonly AbiParameter[],\n values,\n })\n const data = encodeParams(preparedParams)\n if (data.length === 0) return '0x'\n return data\n}\n\n/////////////////////////////////////////////////////////////////\n\ntype PreparedParam = { dynamic: boolean; encoded: Hex }\n\ntype TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }\ntype Tuple = AbiParameterToPrimitiveType\n\nfunction prepareParams({\n params,\n values,\n}: {\n params: Narrow\n values: AbiParametersToPrimitiveTypes\n}) {\n const preparedParams: PreparedParam[] = []\n for (let i = 0; i < params.length; i++) {\n preparedParams.push(prepareParam({ param: params[i], value: values[i] }))\n }\n return preparedParams\n}\n\nfunction prepareParam({\n param,\n value,\n}: {\n param: TParam\n value: AbiParameterToPrimitiveType\n}): PreparedParam {\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 as unknown as Tuple, {\n param: param as TupleAbiParameter,\n })\n }\n if (param.type === 'address') {\n return encodeAddress(value as unknown as Hex)\n }\n if (param.type === 'bool') {\n return encodeBool(value as unknown as boolean)\n }\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n const signed = param.type.startsWith('int')\n return encodeNumber(value as unknown as number, { signed })\n }\n if (param.type.startsWith('bytes')) {\n return encodeBytes(value as unknown as Hex, { param })\n }\n if (param.type === 'string') {\n return encodeString(value as unknown as string)\n }\n throw new InvalidAbiEncodingTypeError(param.type, {\n docsPath: '/docs/contract/encodeAbiParameters',\n })\n}\n\n/////////////////////////////////////////////////////////////////\n\nfunction encodeParams(preparedParams: PreparedParam[]): Hex {\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) staticSize += 32\n else staticSize += size(encoded)\n }\n\n // 2. Split the parameters into static and dynamic parts.\n const staticParams: Hex[] = []\n const dynamicParams: Hex[] = []\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 } else {\n staticParams.push(encoded)\n }\n }\n\n // 3. Concatenate static and dynamic parts.\n return concat([...staticParams, ...dynamicParams])\n}\n\n/////////////////////////////////////////////////////////////////\n\nfunction encodeAddress(value: Hex): PreparedParam {\n if (!isAddress(value)) throw new InvalidAddressError({ address: value })\n return { dynamic: false, encoded: padHex(value.toLowerCase() as Hex) }\n}\n\nfunction encodeArray(\n value: AbiParameterToPrimitiveType,\n {\n length,\n param,\n }: {\n length: number | null\n param: TParam\n },\n): PreparedParam {\n const dynamic = length === null\n\n if (!Array.isArray(value)) 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\n let dynamicChild = false\n const preparedParams: PreparedParam[] = []\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParam({ param, value: value[i] })\n if (preparedParam.dynamic) dynamicChild = true\n preparedParams.push(preparedParam)\n }\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) return { dynamic: true, encoded: data }\n }\n return {\n dynamic: false,\n encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n }\n}\n\nfunction encodeBytes(\n value: Hex,\n { param }: { param: TParam },\n): PreparedParam {\n const [_, size_] = param.type.split('bytes')\n if (!size_) {\n const partsLength = Math.ceil(size(value) / 32)\n const parts: Hex[] = []\n for (let i = 0; i < partsLength; i++) {\n parts.push(\n padHex(slice(value, i * 32, (i + 1) * 32), {\n dir: 'right',\n }),\n )\n }\n return {\n dynamic: true,\n encoded: concat([\n padHex(numberToHex(size(value), { size: 32 })),\n ...parts,\n ]),\n }\n }\n if (size(value) !== parseInt(size_))\n throw new AbiEncodingBytesSizeMismatchError({\n expectedSize: parseInt(size_),\n value,\n })\n return { dynamic: false, encoded: padHex(value, { dir: 'right' }) }\n}\n\nfunction encodeBool(value: boolean): PreparedParam {\n return { dynamic: false, encoded: padHex(boolToHex(value)) }\n}\n\nfunction encodeNumber(\n value: number,\n { signed }: { signed: boolean },\n): PreparedParam {\n return {\n dynamic: false,\n encoded: numberToHex(value, {\n size: 32,\n signed,\n }),\n }\n}\n\nfunction encodeString(value: string): PreparedParam {\n const hexValue = stringToHex(value)\n const partsLength = Math.ceil(size(hexValue) / 32)\n const parts: Hex[] = []\n for (let i = 0; i < partsLength; i++) {\n parts.push(\n padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n dir: 'right',\n }),\n )\n }\n return {\n dynamic: true,\n encoded: concat([\n padHex(numberToHex(size(hexValue), { size: 32 })),\n ...parts,\n ]),\n }\n}\n\nfunction encodeTuple<\n TParam extends AbiParameter & { components: readonly AbiParameter[] },\n>(\n value: AbiParameterToPrimitiveType,\n { param }: { param: TParam },\n): PreparedParam {\n let dynamic = false\n const preparedParams: PreparedParam[] = []\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 as any)[index!] as readonly unknown[],\n })\n preparedParams.push(preparedParam)\n if (preparedParam.dynamic) dynamic = true\n }\n return {\n dynamic,\n encoded: dynamic\n ? encodeParams(preparedParams)\n : concat(preparedParams.map(({ encoded }) => encoded)),\n }\n}\n\nexport function getArrayComponents(\n type: string,\n): [length: number | null, innerType: string] | undefined {\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","import type { Abi, Narrow } from 'abitype'\n\nimport {\n AbiConstructorNotFoundError,\n AbiConstructorParamsNotFoundError,\n} from '../../errors/abi.js'\nimport type { GetConstructorArgs } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport { concatHex } from '../data/concat.js'\n\nimport { encodeAbiParameters } from './encodeAbiParameters.js'\n\nconst docsPath = '/docs/contract/encodeDeployData'\n\nexport type EncodeDeployDataParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n> = {\n abi: Narrow\n bytecode: Hex\n} & GetConstructorArgs\n\nexport function encodeDeployData({\n abi,\n args,\n bytecode,\n}: EncodeDeployDataParameters) {\n if (!args || args.length === 0) return bytecode\n\n const description = (abi as Abi).find(\n (x) => 'type' in x && x.type === 'constructor',\n )\n if (!description) 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\n const data = encodeAbiParameters(\n description.inputs,\n args as readonly unknown[],\n )\n return concatHex([bytecode, data!])\n}\n","import type { Abi, Narrow } from 'abitype'\n\nimport {\n AbiErrorInputsNotFoundError,\n AbiErrorNotFoundError,\n} from '../../errors/abi.js'\nimport type {\n AbiItem,\n GetErrorArgs,\n InferErrorName,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport { concatHex } from '../data/concat.js'\nimport { getFunctionSelector } from '../hash/getFunctionSelector.js'\n\nimport { encodeAbiParameters } from './encodeAbiParameters.js'\nimport { formatAbiItem } from './formatAbiItem.js'\nimport { type GetAbiItemParameters, getAbiItem } from './getAbiItem.js'\n\nconst docsPath = '/docs/contract/encodeErrorResult'\n\nexport type EncodeErrorResultParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TErrorName extends string | undefined = string,\n _ErrorName = InferErrorName,\n> = {\n errorName?: _ErrorName\n} & (TErrorName extends string\n ? { abi: Narrow } & GetErrorArgs\n : _ErrorName extends string\n ? { abi: [Narrow] } & GetErrorArgs\n : never)\n\nexport function encodeErrorResult<\n TAbi extends Abi | readonly unknown[],\n TErrorName extends string | undefined = undefined,\n>({ abi, errorName, args }: EncodeErrorResultParameters) {\n let abiItem = abi[0] as AbiItem\n if (errorName) {\n abiItem = getAbiItem({\n abi,\n args,\n name: errorName,\n } as GetAbiItemParameters)\n if (!abiItem) throw new AbiErrorNotFoundError(errorName, { docsPath })\n }\n\n if (abiItem.type !== 'error')\n throw new AbiErrorNotFoundError(undefined, { docsPath })\n\n const definition = formatAbiItem(abiItem)\n const signature = getFunctionSelector(definition)\n\n let data: Hex = '0x'\n if (args && (args as readonly unknown[]).length > 0) {\n if (!abiItem.inputs)\n throw new AbiErrorInputsNotFoundError(abiItem.name, { docsPath })\n data = encodeAbiParameters(abiItem.inputs, args as readonly unknown[])\n }\n return concatHex([signature, data])\n}\n","import type {\n Abi,\n AbiParameter,\n AbiParameterToPrimitiveType,\n Narrow,\n} from 'abitype'\n\nimport { AbiEventNotFoundError } from '../../errors/abi.js'\nimport { FilterTypeNotSupportedError } from '../../errors/log.js'\nimport type {\n AbiItem,\n EventDefinition,\n GetEventArgs,\n InferEventName,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport { toBytes } from '../encoding/toBytes.js'\nimport { getEventSelector } from '../hash/getEventSelector.js'\nimport { keccak256 } from '../hash/keccak256.js'\n\nimport { encodeAbiParameters } from './encodeAbiParameters.js'\nimport { formatAbiItem } from './formatAbiItem.js'\nimport { type GetAbiItemParameters, getAbiItem } from './getAbiItem.js'\n\nexport type EncodeEventTopicsParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TEventName extends string | undefined = string,\n _EventName = InferEventName,\n> = {\n eventName?: _EventName\n} & (TEventName extends string\n ? { abi: Narrow; args?: GetEventArgs }\n : _EventName extends string\n ? { abi: [Narrow]; args?: GetEventArgs }\n : never)\n\nexport function encodeEventTopics<\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined = undefined,\n>({ abi, eventName, args }: EncodeEventTopicsParameters) {\n let abiItem = abi[0] as AbiItem\n if (eventName) {\n abiItem = getAbiItem({\n abi,\n args,\n name: eventName,\n } as GetAbiItemParameters)\n if (!abiItem)\n throw new AbiEventNotFoundError(eventName, {\n docsPath: '/docs/contract/encodeEventTopics',\n })\n }\n\n if (abiItem.type !== 'event')\n throw new AbiEventNotFoundError(undefined, {\n docsPath: '/docs/contract/encodeEventTopics',\n })\n\n const definition = formatAbiItem(abiItem)\n const signature = getEventSelector(definition as EventDefinition)\n\n let topics: Hex[] = []\n if (args && 'inputs' in abiItem) {\n const indexedInputs = abiItem.inputs?.filter(\n (param) => 'indexed' in param && param.indexed,\n )\n const args_ = Array.isArray(args)\n ? args\n : Object.values(args).length > 0\n ? indexedInputs?.map((x: any) => (args as any)[x.name]) ?? []\n : []\n\n if (args_.length > 0) {\n topics =\n indexedInputs?.map((param, i) =>\n Array.isArray(args_[i])\n ? args_[i].map((_: any, j: number) =>\n encodeArg({ param, value: args_[i][j] }),\n )\n : args_[i]\n ? encodeArg({ param, value: args_[i] })\n : null,\n ) ?? []\n }\n }\n return [signature, ...topics]\n}\n\nfunction encodeArg({\n param,\n value,\n}: { param: AbiParameter; value: AbiParameterToPrimitiveType }) {\n if (param.type === 'string' || param.type === 'bytes')\n return keccak256(toBytes(value as string))\n if (param.type === 'tuple' || param.type.match(/^(.*)\\[(\\d+)?\\]$/))\n throw new FilterTypeNotSupportedError(param.type)\n return encodeAbiParameters([param], [value])\n}\n","import type { Abi, Narrow } from 'abitype'\n\nimport { AbiFunctionNotFoundError } from '../../errors/abi.js'\nimport type {\n AbiItem,\n GetFunctionArgs,\n InferFunctionName,\n} from '../../types/contract.js'\nimport { concatHex } from '../data/concat.js'\nimport { getFunctionSelector } from '../hash/getFunctionSelector.js'\n\nimport { encodeAbiParameters } from './encodeAbiParameters.js'\nimport { formatAbiItem } from './formatAbiItem.js'\nimport { type GetAbiItemParameters, getAbiItem } from './getAbiItem.js'\n\nexport type EncodeFunctionDataParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string | undefined = string,\n _FunctionName = InferFunctionName,\n> = {\n functionName?: _FunctionName\n} & (TFunctionName extends string\n ? { abi: Narrow } & GetFunctionArgs\n : _FunctionName extends string\n ? { abi: [Narrow] } & GetFunctionArgs\n : never)\n\nexport function encodeFunctionData<\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string | undefined = undefined,\n>({\n abi,\n args,\n functionName,\n}: EncodeFunctionDataParameters) {\n let abiItem = abi[0] as AbiItem\n if (functionName) {\n abiItem = getAbiItem({\n abi,\n args,\n name: functionName,\n } as GetAbiItemParameters)\n if (!abiItem)\n throw new AbiFunctionNotFoundError(functionName, {\n docsPath: '/docs/contract/encodeFunctionData',\n })\n }\n\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, {\n docsPath: '/docs/contract/encodeFunctionData',\n })\n\n const definition = formatAbiItem(abiItem)\n const signature = getFunctionSelector(definition)\n const data =\n 'inputs' in abiItem && abiItem.inputs\n ? encodeAbiParameters(abiItem.inputs, (args ?? []) as readonly unknown[])\n : undefined\n return concatHex([signature, data ?? '0x'])\n}\n","import type { Abi, Narrow } from 'abitype'\n\nimport {\n AbiFunctionNotFoundError,\n AbiFunctionOutputsNotFoundError,\n} from '../../errors/abi.js'\nimport type {\n AbiItem,\n ContractFunctionResult,\n InferFunctionName,\n} from '../../types/contract.js'\n\nimport { encodeAbiParameters } from './encodeAbiParameters.js'\nimport { type GetAbiItemParameters, getAbiItem } from './getAbiItem.js'\n\nconst docsPath = '/docs/contract/encodeFunctionResult'\n\nexport type EncodeFunctionResultParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string | undefined = string,\n _FunctionName = InferFunctionName,\n> = {\n functionName?: _FunctionName\n} & (TFunctionName extends string\n ? { abi: Narrow; result?: ContractFunctionResult }\n : _FunctionName extends string\n ? {\n abi: [Narrow]\n result?: ContractFunctionResult\n }\n : never)\n\nexport function encodeFunctionResult<\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string | undefined = undefined,\n>({\n abi,\n functionName,\n result,\n}: EncodeFunctionResultParameters) {\n let abiItem = abi[0] as AbiItem\n if (functionName) {\n abiItem = getAbiItem({\n abi,\n name: functionName,\n } as GetAbiItemParameters)\n if (!abiItem)\n throw new AbiFunctionNotFoundError(functionName, {\n docsPath: '/docs/contract/encodeFunctionResult',\n })\n }\n\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, {\n docsPath: '/docs/contract/encodeFunctionResult',\n })\n\n if (!abiItem.outputs)\n throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath })\n\n let values = Array.isArray(result) ? result : [result]\n if (abiItem.outputs.length === 0 && !values[0]) values = []\n\n return encodeAbiParameters(abiItem.outputs, values)\n}\n","import type {\n AbiParameterToPrimitiveType,\n AbiType,\n Address,\n Narrow,\n SolidityAddress,\n SolidityArrayWithoutTuple,\n SolidityBool,\n SolidityBytes,\n SolidityInt,\n SolidityString,\n} from 'abitype'\n\nimport {\n AbiEncodingLengthMismatchError,\n BytesSizeMismatchError,\n UnsupportedPackedAbiType,\n} from '../../errors/abi.js'\nimport { InvalidAddressError } from '../../errors/address.js'\nimport type { Hex } from '../../types/misc.js'\nimport { isAddress } from '../address/isAddress.js'\nimport { concat } from '../data/concat.js'\nimport { pad } from '../data/pad.js'\nimport { boolToHex, numberToHex, stringToHex } from '../encoding/toHex.js'\nimport { arrayRegex, bytesRegex, integerRegex } from '../regex.js'\n\ntype PackedAbiType =\n | SolidityAddress\n | SolidityBool\n | SolidityBytes\n | SolidityInt\n | SolidityString\n | SolidityArrayWithoutTuple\n\ntype EncodePackedValues = {\n [K in keyof TPackedAbiTypes]: TPackedAbiTypes[K] extends AbiType\n ? AbiParameterToPrimitiveType<{ type: TPackedAbiTypes[K] }>\n : unknown\n}\n\nexport function encodePacked<\n TPackedAbiTypes extends PackedAbiType[] | unknown[],\n>(\n types: Narrow,\n values: EncodePackedValues,\n): Hex {\n if (types.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: types.length as number,\n givenLength: values.length as number,\n })\n\n const data: Hex[] = []\n for (let i = 0; i < (types as unknown[]).length; i++) {\n const type = types[i]\n const value = values[i]\n data.push(encode(type, value))\n }\n return concat(data)\n}\n\nfunction encode(\n type: TPackedAbiType,\n value: EncodePackedValues<[TPackedAbiType]>[0],\n isArray: boolean = false,\n): Hex {\n if (type === 'address') {\n const address = value as Address\n if (!isAddress(address)) throw new InvalidAddressError({ address })\n return pad(address.toLowerCase() as Hex, {\n size: isArray ? 32 : null,\n }) as Address\n }\n if (type === 'string') return stringToHex(value as string)\n if (type === 'bytes') return value as Hex\n if (type === 'bool')\n return pad(boolToHex(value as boolean), { size: isArray ? 32 : 1 })\n\n const intMatch = (type as string).match(integerRegex)\n if (intMatch) {\n const [_type, baseType, bits = '256'] = intMatch\n const size = parseInt(bits) / 8\n return numberToHex(value as number, {\n size: isArray ? 32 : size,\n signed: baseType === 'int',\n })\n }\n\n const bytesMatch = (type as string).match(bytesRegex)\n if (bytesMatch) {\n const [_type, size] = bytesMatch\n if (parseInt(size) !== ((value as Hex).length - 2) / 2)\n throw new BytesSizeMismatchError({\n expectedSize: parseInt(size),\n givenSize: ((value as Hex).length - 2) / 2,\n })\n return pad(value as Hex, { dir: 'right', size: isArray ? 32 : null }) as Hex\n }\n\n const arrayMatch = (type as string).match(arrayRegex)\n if (arrayMatch && Array.isArray(value)) {\n const [_type, childType] = arrayMatch\n const data: Hex[] = []\n for (let i = 0; i < value.length; i++) {\n data.push(encode(childType, value[i], true))\n }\n return concat(data)\n }\n\n throw new UnsupportedPackedAbiType(type)\n}\n","import type { AbiParameter } from 'abitype'\n\nimport { InvalidDefinitionTypeError } from '../../errors/abi.js'\nimport type { AbiItem } from '../../types/contract.js'\n\nexport function formatAbiItem(\n abiItem: AbiItem,\n { includeName = false }: { includeName?: boolean } = {},\n) {\n if (\n abiItem.type !== 'function' &&\n abiItem.type !== 'event' &&\n abiItem.type !== 'error'\n )\n throw new InvalidDefinitionTypeError(abiItem.type)\n\n return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`\n}\n\nexport function formatAbiParams(\n params: readonly AbiParameter[] | undefined,\n { includeName = false }: { includeName?: boolean } = {},\n): string {\n if (!params) return ''\n return params\n .map((param) => formatAbiParam(param, { includeName }))\n .join(includeName ? ', ' : ',')\n}\n\nfunction formatAbiParam(\n param: AbiParameter,\n { includeName }: { includeName: boolean },\n): string {\n if (param.type.startsWith('tuple')) {\n return `(${formatAbiParams(\n (param as unknown as { components: AbiParameter[] }).components,\n { includeName },\n )})${param.type.slice('tuple'.length)}`\n }\n return param.type + (includeName && param.name ? ` ${param.name}` : '')\n}\n","import type { AbiParameter } from 'abitype'\n\nimport type { AbiItem } from '../../types/contract.js'\nimport { stringify } from '../stringify.js'\n\nexport function formatAbiItemWithArgs({\n abiItem,\n args,\n includeFunctionName = true,\n includeName = false,\n}: {\n abiItem: AbiItem\n args: readonly unknown[]\n includeFunctionName?: boolean\n includeName?: boolean\n}) {\n if (!('name' in abiItem)) return\n if (!('inputs' in abiItem)) return\n if (!abiItem.inputs) return\n return `${includeFunctionName ? abiItem.name : ''}(${abiItem.inputs\n .map(\n (input: AbiParameter, i: number) =>\n `${includeName && input.name ? `${input.name}: ` : ''}${\n typeof args[i] === 'object' ? stringify(args[i]) : args[i]\n }`,\n )\n .join(', ')})`\n}\n","import type { Abi, AbiParameter, Address, Narrow } from 'abitype'\n\nimport type { GetFunctionArgs, InferItemName } from '../../types/contract.js'\nimport { isAddress } from '../address/isAddress.js'\n\nexport type GetAbiItemParameters<\n TAbi extends Abi | readonly unknown[] = Abi,\n TItemName extends string = string,\n> = {\n abi: Narrow\n name: InferItemName\n} & Partial>\n\nexport type GetAbiItemReturnType<\n TAbi extends Abi | readonly unknown[] = Abi,\n TItemName extends string = string,\n> = Extract<\n TAbi[number],\n {\n name: TItemName\n }\n>\n\nexport function getAbiItem<\n TAbi extends Abi | readonly unknown[],\n TItemName extends string,\n>({\n abi,\n args = [],\n name,\n}: GetAbiItemParameters): GetAbiItemReturnType<\n TAbi,\n TItemName\n> {\n const abiItems = (abi as Abi).filter((x) => 'name' in x && x.name === name)\n\n if (abiItems.length === 0) return undefined as any\n if (abiItems.length === 1) return abiItems[0] as any\n\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem)) continue\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0) return abiItem as any\n continue\n }\n if (!abiItem.inputs) continue\n if (abiItem.inputs.length === 0) continue\n if (abiItem.inputs.length !== args.length) continue\n const matched = (args as readonly unknown[]).every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs![index]\n if (!abiParameter) return false\n return isArgOfType(arg, abiParameter as AbiParameter)\n })\n if (matched) return abiItem as any\n }\n return abiItems[0] as any\n}\n\nexport function isArgOfType(arg: unknown, abiParameter: AbiParameter): boolean {\n const argType = typeof arg\n const abiParameterType = abiParameter.type\n switch (abiParameterType) {\n case 'address':\n return isAddress(arg as Address)\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(\n (component, index) => {\n return isArgOfType(\n Object.values(arg as unknown[] | Record)[index],\n component as AbiParameter,\n )\n },\n )\n\n // `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (\n /^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(\n abiParameterType,\n )\n )\n return argType === 'number' || argType === 'bigint'\n\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\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 (\n Array.isArray(arg) &&\n arg.every((x: unknown) =>\n isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n } as AbiParameter),\n )\n )\n }\n\n return false\n }\n }\n}\n","import type { Address } from 'abitype'\n\nimport { InvalidAddressError } from '../../errors/address.js'\nimport { stringToBytes } from '../encoding/toBytes.js'\nimport { keccak256 } from '../hash/keccak256.js'\n\nimport { isAddress } from './isAddress.js'\n\nexport function checksumAddress(address_: Address, chainId?: number): Address {\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase()\n const hash = keccak256(stringToBytes(hexAddress), 'bytes')\n\n const address = (\n chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress\n ).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\n return `0x${address.join('')}`\n}\n\nexport function getAddress(address: string, chainId?: number): Address {\n if (!isAddress(address)) throw new InvalidAddressError({ address })\n return checksumAddress(address, chainId)\n}\n","import type { Address } from 'abitype'\n\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { concat } from '../data/concat.js'\nimport { isBytes } from '../data/isBytes.js'\nimport { pad } from '../data/pad.js'\nimport { slice } from '../data/slice.js'\nimport { toBytes } from '../encoding/toBytes.js'\nimport { toRlp } from '../encoding/toRlp.js'\nimport { keccak256 } from '../hash/keccak256.js'\n\nimport { getAddress } from './getAddress.js'\n\nexport type GetCreateAddressOptions = {\n from: Address\n nonce: bigint\n}\n\nexport type GetCreate2AddressOptions = {\n bytecode: ByteArray | Hex\n from: Address\n salt: ByteArray | Hex\n}\n\nexport type GetContractAddressOptions =\n | ({\n opcode?: 'CREATE'\n } & GetCreateAddressOptions)\n | ({ opcode: 'CREATE2' } & GetCreate2AddressOptions)\n\nexport function getContractAddress(opts: GetContractAddressOptions) {\n if (opts.opcode === 'CREATE2') return getCreate2Address(opts)\n return getCreateAddress(opts)\n}\n\nexport function getCreateAddress(opts: GetCreateAddressOptions) {\n const from = toBytes(getAddress(opts.from))\n\n let nonce = toBytes(opts.nonce)\n if (nonce[0] === 0) nonce = new Uint8Array([])\n\n return getAddress(\n `0x${keccak256(toRlp([from, nonce], 'bytes')).slice(26)}` as Address,\n )\n}\n\nexport function getCreate2Address(opts: GetCreate2AddressOptions) {\n const from = toBytes(getAddress(opts.from))\n const salt = pad(isBytes(opts.salt) ? opts.salt : toBytes(opts.salt as Hex), {\n size: 32,\n }) as ByteArray\n const bytecodeHash = toBytes(\n keccak256(\n (isBytes(opts.bytecode)\n ? opts.bytecode\n : toBytes(opts.bytecode as Hex)) as ByteArray,\n ),\n )\n return getAddress(\n slice(keccak256(concat([toBytes('0xff'), from, salt, bytecodeHash])), 12),\n )\n}\n","import type { Address } from 'abitype'\n\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/\n\nexport function isAddress(address: string): address is Address {\n return addressRegex.test(address)\n}\n","import type { Address } from 'abitype'\n\nimport { InvalidAddressError } from '../../errors/address.js'\n\nimport { isAddress } from './isAddress.js'\n\nexport function isAddressEqual(a: Address, b: Address) {\n if (!isAddress(a)) throw new InvalidAddressError({ address: a })\n if (!isAddress(b)) throw new InvalidAddressError({ address: b })\n return a.toLowerCase() === b.toLowerCase()\n}\n","import { BaseError } from '../errors/base.js'\nimport { HttpRequestError } from '../errors/request.js'\nimport {\n ChainDisconnectedError,\n InternalRpcError,\n InvalidInputRpcError,\n InvalidParamsRpcError,\n InvalidRequestRpcError,\n JsonRpcVersionUnsupportedError,\n LimitExceededRpcError,\n MethodNotFoundRpcError,\n MethodNotSupportedRpcError,\n ParseRpcError,\n ProviderDisconnectedError,\n type ProviderRpcErrorCode,\n ResourceNotFoundRpcError,\n ResourceUnavailableRpcError,\n type RpcError,\n type RpcErrorCode,\n SwitchChainError,\n TransactionRejectedRpcError,\n UnauthorizedProviderError,\n UnknownRpcError,\n UnsupportedProviderMethodError,\n UserRejectedRequestError,\n} from '../errors/rpc.js'\n\nimport { withRetry } from './promise/withRetry.js'\n\nexport const isDeterministicError = (error: Error) => {\n if ('code' in error)\n return (\n error.code !== -1 &&\n error.code !== -32004 &&\n error.code !== -32005 &&\n error.code !== -32042 &&\n error.code !== -32603\n )\n if (error instanceof HttpRequestError && error.status)\n return (\n error.status !== 403 &&\n error.status !== 408 &&\n error.status !== 413 &&\n error.status !== 429 &&\n error.status !== 500 &&\n error.status !== 502 &&\n error.status !== 503 &&\n error.status !== 504\n )\n return false\n}\n\nexport function buildRequest Promise>(\n request: TRequest,\n {\n retryDelay = 150,\n retryCount = 3,\n }: {\n // The base delay (in ms) between retries.\n retryDelay?: number\n // The max number of times to retry.\n retryCount?: number\n } = {},\n) {\n return (async (args: any) =>\n withRetry(\n async () => {\n try {\n return await request(args)\n } catch (err_) {\n const err = err_ as unknown as RpcError<\n RpcErrorCode | ProviderRpcErrorCode\n >\n switch (err.code) {\n // -32700\n case ParseRpcError.code:\n throw new ParseRpcError(err)\n // -32600\n case InvalidRequestRpcError.code:\n throw new InvalidRequestRpcError(err)\n // -32601\n case MethodNotFoundRpcError.code:\n throw new MethodNotFoundRpcError(err)\n // -32602\n case InvalidParamsRpcError.code:\n throw new InvalidParamsRpcError(err)\n // -32603\n case InternalRpcError.code:\n throw new InternalRpcError(err)\n // -32000\n case InvalidInputRpcError.code:\n throw new InvalidInputRpcError(err)\n // -32001\n case ResourceNotFoundRpcError.code:\n throw new ResourceNotFoundRpcError(err)\n // -32002\n case ResourceUnavailableRpcError.code:\n throw new ResourceUnavailableRpcError(err)\n // -32003\n case TransactionRejectedRpcError.code:\n throw new TransactionRejectedRpcError(err)\n // -32004\n case MethodNotSupportedRpcError.code:\n throw new MethodNotSupportedRpcError(err)\n // -32005\n case LimitExceededRpcError.code:\n throw new LimitExceededRpcError(err)\n // -32006\n case JsonRpcVersionUnsupportedError.code:\n throw new JsonRpcVersionUnsupportedError(err)\n // 4001\n case UserRejectedRequestError.code:\n throw new UserRejectedRequestError(err)\n // 4100\n case UnauthorizedProviderError.code:\n throw new UnauthorizedProviderError(err)\n // 4200\n case UnsupportedProviderMethodError.code:\n throw new UnsupportedProviderMethodError(err)\n // 4900\n case ProviderDisconnectedError.code:\n throw new ProviderDisconnectedError(err)\n // 4901\n case ChainDisconnectedError.code:\n throw new ChainDisconnectedError(err)\n // 4902\n case SwitchChainError.code:\n throw new SwitchChainError(err)\n default:\n if (err_ instanceof BaseError) throw err_\n throw new UnknownRpcError(err as Error)\n }\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/)) return parseInt(retryAfter) * 1000\n }\n\n // Otherwise, let's retry with an exponential backoff.\n return ~~(1 << count) * retryDelay\n },\n retryCount,\n shouldRetry: ({ error }) => !isDeterministicError(error),\n },\n )) as TRequest\n}\n","import type { Abi, Address } from 'abitype'\n\nimport { type CallParameters, call } from '../actions/public/call.js'\nimport type { PublicClient } from '../clients/createPublicClient.js'\nimport type { Transport } from '../clients/transports/createTransport.js'\nimport { type BaseError } from '../errors/base.js'\nimport {\n OffchainLookupError,\n OffchainLookupResponseMalformedError,\n OffchainLookupSenderMismatchError,\n} from '../errors/ccip.js'\nimport { HttpRequestError } from '../errors/request.js'\nimport type { Chain } from '../types/chain.js'\nimport type { GetErrorArgs } from '../types/contract.js'\nimport type { Hex } from '../types/misc.js'\n\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'\n\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} as const satisfies Abi[number]\n\nexport async function offchainLookup(\n client: PublicClient,\n {\n blockNumber,\n blockTag,\n data,\n to,\n }: Pick & {\n data: Hex\n to: Address\n },\n): Promise {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n }) as unknown as GetErrorArgs<\n [typeof offchainLookupAbiItem],\n 'OffchainLookup'\n >\n const [sender, urls, callData, callbackSelector, extraData] = args\n\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to })\n\n const result = await ccipFetch({ data: callData, sender, urls })\n\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters(\n [{ type: 'bytes' }, { type: 'bytes' }],\n [result, extraData],\n ),\n ]),\n to,\n } as CallParameters)\n\n return data_!\n } catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err as BaseError,\n data,\n extraData,\n sender,\n urls,\n })\n }\n}\n\nexport async function ccipFetch({\n data,\n sender,\n urls,\n}: { data: Hex; sender: Address; urls: readonly string[] }) {\n let error = new Error('An unknown error occurred.')\n\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i]\n const method =\n url.includes('{sender}') || url.includes('{data}') ? 'GET' : 'POST'\n const body = method === 'POST' ? { data, sender } : undefined\n\n try {\n const response = await fetch(\n url.replace('{sender}', sender).replace('{data}', data),\n {\n body: JSON.stringify(body),\n method,\n },\n )\n\n let result\n if (\n response.headers.get('Content-Type')?.startsWith('application/json')\n ) {\n result = (await response.json()).data\n } else {\n result = (await response.text()) as any\n }\n\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: stringify(result.error) || response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n })\n continue\n }\n\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n })\n continue\n }\n\n return result\n } catch (err) {\n error = new HttpRequestError({\n body,\n details: (err as Error).message,\n url,\n })\n }\n }\n\n throw error\n}\n","import {\n ChainDoesNotSupportContract,\n ChainMismatchError,\n ChainNotFoundError,\n} from '../errors/chain.js'\nimport type { Chain, ChainContract } from '../types/chain.js'\nimport type { Formatters } from '../types/formatter.js'\n\nexport type AssertCurrentChainParameters = {\n chain?: Chain\n currentChainId: number\n}\n\nexport function assertCurrentChain({\n chain,\n currentChainId,\n}: AssertCurrentChainParameters): void {\n if (!chain) throw new ChainNotFoundError()\n if (currentChainId !== chain.id)\n throw new ChainMismatchError({ chain, currentChainId })\n}\n\nexport function defineChain<\n TChain extends Chain,\n TFormatters extends Formatters,\n>(\n chain: TChain,\n config?: Pick, 'formatters' | 'serializers'>,\n) {\n return {\n ...chain,\n formatters: config?.formatters,\n serializers: config?.serializers,\n }\n}\n\nexport function getChainContractAddress({\n blockNumber,\n chain,\n contract: name,\n}: {\n blockNumber?: bigint\n chain: Chain\n contract: string\n}) {\n const contract = (chain?.contracts as Record)?.[name]\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain,\n contract: { name },\n })\n\n if (\n blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n )\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain,\n contract: {\n name,\n blockCreated: contract.blockCreated,\n },\n })\n\n return contract.address\n}\n","const paramsRegex = /((function|event)\\s)?(.*)(\\((.*)\\))/\n\nexport function extractFunctionParts(def: string) {\n const parts = def.match(paramsRegex)\n const type = parts?.[2] || undefined\n const name = parts?.[3]\n const params = parts?.[5] || undefined\n return { type, name, params }\n}\n\nexport function extractFunctionName(def: string) {\n return extractFunctionParts(def).name\n}\n\nexport function extractFunctionParams(def: string) {\n const params = extractFunctionParts(def).params\n const splitParams = params?.split(',').map((x) => x.trim().split(' '))\n return splitParams?.map((param) => ({\n type: param[0],\n name: param[1] === 'indexed' ? param[2] : param[1],\n ...(param[1] === 'indexed' ? { indexed: true } : {}),\n }))\n}\n\nexport function extractFunctionType(def: string) {\n return extractFunctionParts(def).type\n}\n","import type { ByteArray, Hex } from '../../types/misc.js'\n\nexport type ConcatReturnType =\n TValue extends Hex ? Hex : ByteArray\n\nexport function concat(\n values: TValue[],\n): ConcatReturnType {\n if (typeof values[0] === 'string')\n return concatHex(values as Hex[]) as ConcatReturnType\n return concatBytes(values as ByteArray[]) as ConcatReturnType\n}\n\nexport function concatBytes(values: ByteArray[]): ByteArray {\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}\n\nexport function concatHex(values: Hex[]): Hex {\n return `0x${(values as Hex[]).reduce(\n (acc, x) => acc + x.replace('0x', ''),\n '',\n )}`\n}\n","import type { ByteArray } from '../../types/misc.js'\n\nexport function isBytes(value: unknown): value is ByteArray {\n if (!value) return false\n if (typeof value !== 'object') return false\n if (!('BYTES_PER_ELEMENT' in value)) return false\n return (\n value.BYTES_PER_ELEMENT === 1 && value.constructor.name === 'Uint8Array'\n )\n}\n","import { type ByteArray, type Hex, isHex, toBytes } from '../../index.js'\nimport { equalBytes } from '@noble/curves/abstract/utils'\n\nexport function isBytesEqual(a_: ByteArray | Hex, b_: ByteArray | Hex) {\n const a = isHex(a_) ? toBytes(a_) : a_\n const b = isHex(b_) ? toBytes(b_) : b_\n return equalBytes(a, b)\n}\n","import type { Hex } from '../../types/misc.js'\n\nexport function isHex(\n value: unknown,\n { strict = true }: { strict?: boolean } = {},\n): value is Hex {\n if (!value) return false\n if (typeof value !== 'string') return false\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x')\n}\n","import { SizeExceedsPaddingSizeError } from '../../errors/data.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\ntype PadOptions = {\n dir?: 'left' | 'right'\n size?: number | null\n}\nexport type PadReturnType = TValue extends Hex\n ? Hex\n : ByteArray\n\nexport function pad(\n hexOrBytes: TValue,\n { dir, size = 32 }: PadOptions = {},\n): PadReturnType {\n if (typeof hexOrBytes === 'string')\n return padHex(hexOrBytes, { dir, size }) as PadReturnType\n return padBytes(hexOrBytes, { dir, size }) as PadReturnType\n}\n\nexport function padHex(hex_: Hex, { dir, size = 32 }: PadOptions = {}) {\n if (size === null) 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\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](\n size * 2,\n '0',\n )}` as Hex\n}\n\nexport function padBytes(\n bytes: ByteArray,\n { dir, size = 32 }: PadOptions = {},\n) {\n if (size === null) 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","import type { ByteArray, Hex } from '../../types/misc.js'\n\nimport { isHex } from './isHex.js'\n\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: Hex | ByteArray) {\n if (isHex(value, { strict: false })) return Math.ceil((value.length - 2) / 2)\n return value.length\n}\n","import { SliceOffsetOutOfBoundsError } from '../../errors/data.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nimport { isHex } from './isHex.js'\nimport { size } from './size.js'\n\nexport type SliceReturnType = TValue extends Hex\n ? Hex\n : ByteArray\n\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(\n value: TValue,\n start?: number,\n end?: number,\n { strict }: { strict?: boolean } = {},\n): SliceReturnType {\n if (isHex(value, { strict: false }))\n return sliceHex(value as Hex, start, end, {\n strict,\n }) as SliceReturnType\n return sliceBytes(value as ByteArray, start, end, {\n strict,\n }) as SliceReturnType\n}\n\nfunction assertStartOffset(value: Hex | ByteArray, start?: number) {\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}\n\nfunction assertEndOffset(value: Hex | ByteArray, start?: number, end?: number) {\n if (\n typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start\n ) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n })\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(\n value_: ByteArray,\n start?: number,\n end?: number,\n { strict }: { strict?: boolean } = {},\n): ByteArray {\n assertStartOffset(value_, start)\n const value = value_.slice(start, end)\n if (strict) assertEndOffset(value, start, end)\n return value\n}\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(\n value_: Hex,\n start?: number,\n end?: number,\n { strict }: { strict?: boolean } = {},\n): Hex {\n assertStartOffset(value_, start)\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}` as const\n if (strict) assertEndOffset(value, start, end)\n return value\n}\n","import type { ByteArray, Hex } from '../../types/misc.js'\n\ntype TrimOptions = {\n dir?: 'left' | 'right'\n}\nexport type TrimReturnType = TValue extends Hex\n ? Hex\n : ByteArray\n\nexport function trim(\n hexOrBytes: TValue,\n { dir = 'left' }: TrimOptions = {},\n): TrimReturnType {\n let data: any =\n typeof hexOrBytes === 'string' ? hexOrBytes.replace('0x', '') : hexOrBytes\n\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 break\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength)\n\n if (typeof hexOrBytes === 'string') {\n if (data.length === 1 && dir === 'right') data = `${data}0`\n return `0x${\n data.length % 2 === 1 ? `0${data}` : data\n }` as TrimReturnType\n }\n return data as TrimReturnType\n}\n","import { InvalidBytesBooleanError } from '../../errors/encoding.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { trim } from '../data/trim.js'\n\nimport { assertSize, hexToBigInt, hexToNumber } from './fromHex.js'\nimport { bytesToHex } from './toHex.js'\n\nexport type FromBytesParameters<\n TTo extends 'string' | 'hex' | 'bigint' | 'number' | 'boolean',\n> =\n | TTo\n | {\n /** Size of the bytes. */\n size?: number\n /** Type to convert to. */\n to: TTo\n }\n\ntype FromBytesReturnType = TTo extends 'string'\n ? string\n : TTo extends 'hex'\n ? Hex\n : TTo extends 'bigint'\n ? bigint\n : TTo extends 'number'\n ? number\n : TTo extends 'boolean'\n ? boolean\n : never\n\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.html\n * - Example: https://viem.sh/docs/utilities/fromBytes.html#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<\n TTo extends 'string' | 'hex' | 'bigint' | 'number' | 'boolean',\n>(\n bytes: ByteArray,\n toOrOpts: FromBytesParameters,\n): FromBytesReturnType {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts\n const to = opts.to\n\n if (to === 'number')\n return bytesToNumber(bytes, opts) as FromBytesReturnType\n if (to === 'bigint')\n return bytesToBigint(bytes, opts) as FromBytesReturnType\n if (to === 'boolean')\n return bytesToBool(bytes, opts) as FromBytesReturnType\n if (to === 'string')\n return bytesToString(bytes, opts) as FromBytesReturnType\n return bytesToHex(bytes, opts) as FromBytesReturnType\n}\n\nexport type BytesToBigIntOpts = {\n /** Whether or not the number of a signed representation. */\n signed?: boolean\n /** Size of the bytes. */\n size?: number\n}\n\n/**\n * Decodes a byte array into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes.html#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(\n bytes: ByteArray,\n opts: BytesToBigIntOpts = {},\n): bigint {\n if (typeof opts.size !== 'undefined') assertSize(bytes, { size: opts.size })\n const hex = bytesToHex(bytes, opts)\n return hexToBigInt(hex)\n}\n\nexport type BytesToBoolOpts = {\n /** Size of the bytes. */\n size?: number\n}\n\n/**\n * Decodes a byte array into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes.html#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(\n bytes_: ByteArray,\n opts: BytesToBoolOpts = {},\n): boolean {\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\nexport type BytesToNumberOpts = BytesToBigIntOpts\n\n/**\n * Decodes a byte array into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes.html#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(\n bytes: ByteArray,\n opts: BytesToNumberOpts = {},\n): number {\n if (typeof opts.size !== 'undefined') assertSize(bytes, { size: opts.size })\n const hex = bytesToHex(bytes, opts)\n return hexToNumber(hex)\n}\n\nexport type BytesToStringOpts = {\n /** Size of the bytes. */\n size?: number\n}\n\n/**\n * Decodes a byte array into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes.html#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(\n bytes_: ByteArray,\n opts: BytesToStringOpts = {},\n): string {\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","import {\n InvalidHexBooleanError,\n SizeOverflowError,\n} from '../../errors/encoding.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { size as size_ } from '../data/size.js'\nimport { trim } from '../data/trim.js'\n\nimport { hexToBytes } from './toBytes.js'\n\nexport function assertSize(\n hexOrBytes: Hex | ByteArray,\n { size }: { size: number },\n): void {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n })\n}\n\nexport type FromHexParameters<\n TTo extends 'string' | 'bigint' | 'number' | 'bytes' | 'boolean',\n> =\n | TTo\n | {\n /** Size (in bytes) of the hex value. */\n size?: number\n /** Type to convert to. */\n to: TTo\n }\n\nexport type FromHexReturnType = TTo extends 'string'\n ? string\n : TTo extends 'bigint'\n ? bigint\n : TTo extends 'number'\n ? number\n : TTo extends 'bytes'\n ? ByteArray\n : TTo extends 'boolean'\n ? boolean\n : never\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.html\n * - Example: https://viem.sh/docs/utilities/fromHex.html#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<\n TTo extends 'string' | 'bigint' | 'number' | 'bytes' | 'boolean',\n>(hex: Hex, toOrOpts: FromHexParameters): FromHexReturnType {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts\n const to = opts.to\n\n if (to === 'number') return hexToNumber(hex, opts) as FromHexReturnType\n if (to === 'bigint') return hexToBigInt(hex, opts) as FromHexReturnType\n if (to === 'string') return hexToString(hex, opts) as FromHexReturnType\n if (to === 'boolean') return hexToBool(hex, opts) as FromHexReturnType\n return hexToBytes(hex, opts) as FromHexReturnType\n}\n\nexport type HexToBigIntOpts = {\n /** Whether or not the number of a signed representation. */\n signed?: boolean\n /** Size (in bytes) of the hex value. */\n size?: number\n}\n\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#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: Hex, opts: HexToBigIntOpts = {}): bigint {\n const { signed } = opts\n\n if (opts.size) assertSize(hex, { size: opts.size })\n\n const value = BigInt(hex)\n if (!signed) return value\n\n const size = (hex.length - 2) / 2\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n\n if (value <= max) return value\n\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n\n}\n\nexport type HexToBoolOpts = {\n /** Size (in bytes) of the hex value. */\n size?: number\n}\n\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#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_: Hex, opts: HexToBoolOpts = {}): boolean {\n let hex = hex_\n if (opts.size) {\n assertSize(hex, { size: opts.size })\n hex = trim(hex)\n }\n if (trim(hex) === '0x00') return false\n if (trim(hex) === '0x01') return true\n throw new InvalidHexBooleanError(hex)\n}\n\nexport type HexToNumberOpts = HexToBigIntOpts\n\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#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: Hex, opts: HexToNumberOpts = {}): number {\n return Number(hexToBigInt(hex, opts))\n}\n\nexport type HexToStringOpts = {\n /** Size (in bytes) of the hex value. */\n size?: number\n}\n\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#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: Hex, opts: HexToStringOpts = {}): string {\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","import {\n DataLengthTooLongError,\n DataLengthTooShortError,\n InvalidHexValueError,\n OffsetOutOfBoundsError,\n} from '../../errors/encoding.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nimport { bytesToNumber } from './fromBytes.js'\nimport { hexToBytes } from './toBytes.js'\nimport { bytesToHex } from './toHex.js'\nimport type { RecursiveArray } from './toRlp.js'\n\ntype FromRlpReturnType = TTo extends 'bytes'\n ? ByteArray\n : TTo extends 'hex'\n ? Hex\n : never\n\nexport function fromRlp(\n value: ByteArray | Hex,\n to: TTo,\n): RecursiveArray> {\n const bytes = parse(value)\n const [data, consumed] = rlpToBytes(bytes)\n if (consumed < bytes.length)\n throw new DataLengthTooLongError({\n consumed,\n length: bytes.length,\n })\n return format(data, to)\n}\n\nfunction parse(value: ByteArray | Hex) {\n if (typeof value === 'string') {\n if (value.length > 3 && value.length % 2 !== 0)\n throw new InvalidHexValueError(value)\n return hexToBytes(value)\n }\n return value\n}\n\nfunction format(\n bytes: RecursiveArray,\n to: TTo,\n): RecursiveArray> {\n if (Array.isArray(bytes)) return bytes.map((b) => format(b, to))\n return (to === 'hex' ? bytesToHex(bytes) : bytes) as FromRlpReturnType\n}\n\nfunction rlpToBytes(\n bytes: ByteArray,\n offset = 0,\n): [result: RecursiveArray, consumed: number] {\n if (bytes.length === 0) return [new Uint8Array([]), 0]\n\n const prefix = bytes[offset]\n\n if (prefix <= 0x7f) return [new Uint8Array([bytes[offset]]), 1]\n\n if (prefix <= 0xb7) {\n const length = prefix - 0x80\n const offset_ = offset + 1\n\n if (offset_ + length > bytes.length)\n throw new DataLengthTooShortError({\n length: offset_ + length,\n dataLength: bytes.length,\n })\n\n return [bytes.slice(offset_, offset_ + length), 1 + length]\n }\n\n if (prefix <= 0xbf) {\n const lengthOfLength = prefix - 0xb7\n const offset_ = offset + 1\n const length = bytesToNumber(bytes.slice(offset_, offset_ + lengthOfLength))\n\n if (offset_ + lengthOfLength + length > bytes.length)\n throw new DataLengthTooShortError({\n length: lengthOfLength + length,\n dataLength: bytes.length - lengthOfLength,\n })\n\n return [\n bytes.slice(offset_ + lengthOfLength, offset_ + lengthOfLength + length),\n 1 + lengthOfLength + length,\n ]\n }\n\n let lengthOfLength = 0\n let length = prefix - 0xc0\n if (prefix > 0xf7) {\n lengthOfLength = prefix - 0xf7\n length = bytesToNumber(bytes.slice(offset + 1, offset + 1 + lengthOfLength))\n }\n\n let nextOffset = offset + 1 + lengthOfLength\n if (nextOffset > bytes.length)\n throw new DataLengthTooShortError({\n length: nextOffset,\n dataLength: bytes.length,\n })\n\n const consumed = 1 + lengthOfLength + length\n const result = []\n while (nextOffset < offset + consumed) {\n const decoded = rlpToBytes(bytes, nextOffset)\n result.push(decoded[0])\n nextOffset += decoded[1]\n if (nextOffset > offset + consumed)\n throw new OffsetOutOfBoundsError({\n nextOffset: nextOffset,\n offset: offset + consumed,\n })\n }\n\n return [result, consumed]\n}\n","import { BaseError } from '../../errors/base.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { isHex } from '../data/isHex.js'\nimport { pad } from '../data/pad.js'\n\nimport { assertSize } from './fromHex.js'\nimport { type NumberToHexOpts, numberToHex } from './toHex.js'\n\nconst encoder = /*#__PURE__*/ new TextEncoder()\n\nexport type ToBytesParameters = {\n /** Size of the output bytes. */\n size?: number\n}\n\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.html\n * - Example: https://viem.sh/docs/utilities/toBytes.html#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(\n value: string | bigint | number | boolean | Hex,\n opts: ToBytesParameters = {},\n): ByteArray {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToBytes(value, opts)\n if (typeof value === 'boolean') return boolToBytes(value, opts)\n if (isHex(value)) return hexToBytes(value, opts)\n return stringToBytes(value, opts)\n}\n\nexport type BoolToHexOpts = {\n /** Size of the output bytes. */\n size?: number\n}\n\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#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: boolean, opts: BoolToHexOpts = {}) {\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\nexport type HexToBytesOpts = {\n /** Size of the output bytes. */\n size?: number\n}\n\n/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#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_: Hex, opts: HexToBytesOpts = {}): ByteArray {\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\n let hexString = hex.slice(2) as string\n if (hexString.length % 2) hexString = `0${hexString}`\n\n const bytes = new Uint8Array(hexString.length / 2)\n for (let index = 0; index < bytes.length; index++) {\n const start = index * 2\n const hexByte = hexString.slice(start, start + 2)\n const byte = Number.parseInt(hexByte, 16)\n if (Number.isNaN(byte) || byte < 0)\n throw new BaseError(\n `Invalid byte sequence (\"${hexByte}\" in \"${hexString}\").`,\n )\n bytes[index] = byte\n }\n return bytes\n}\n\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#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: bigint | number, opts?: NumberToHexOpts) {\n const hex = numberToHex(value, opts)\n return hexToBytes(hex)\n}\n\nexport type StringToBytesOpts = {\n /** Size of the output bytes. */\n size?: number\n}\n\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#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(\n value: string,\n opts: StringToBytesOpts = {},\n): ByteArray {\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","import { IntegerOutOfRangeError } from '../../errors/encoding.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { pad } from '../data/pad.js'\n\nimport { assertSize } from './fromHex.js'\n\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) =>\n i.toString(16).padStart(2, '0'),\n)\n\nexport type ToHexParameters = {\n /** The size (in bytes) of the output hex value. */\n size?: number\n}\n\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html\n * - Example: https://viem.sh/docs/utilities/toHex.html#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(\n value: string | number | bigint | boolean | ByteArray,\n opts: ToHexParameters = {},\n): Hex {\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') return boolToHex(value, opts)\n return bytesToHex(value, opts)\n}\n\nexport type BoolToHexOpts = {\n /** The size (in bytes) of the output hex value. */\n size?: number\n}\n\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#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: boolean, opts: BoolToHexOpts = {}): Hex {\n const hex: 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\nexport type BytesToHexOpts = {\n /** The size (in bytes) of the output hex value. */\n size?: number\n}\n\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#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: ByteArray, opts: BytesToHexOpts = {}): Hex {\n let hexString = ''\n for (let i = 0; i < value.length; i++) {\n hexString += hexes[value[i]]\n }\n\n const hex: Hex = `0x${hexString}`\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\nexport type NumberToHexOpts =\n | {\n /** Whether or not the number of a signed representation. */\n signed?: boolean\n /** The size (in bytes) of the output hex value. */\n size: number\n }\n | {\n signed?: never\n /** The size (in bytes) of the output hex value. */\n size?: number\n }\n\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#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(\n value_: number | bigint,\n opts: NumberToHexOpts = {},\n): Hex {\n const { signed, size } = opts\n\n const value = BigInt(value_)\n\n let maxValue\n if (size) {\n if (signed) maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n\n else maxValue = 2n ** (BigInt(size) * 8n) - 1n\n } else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER)\n }\n\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0\n\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\n const hex = `0x${(signed && value < 0\n ? (1n << BigInt(size * 8)) + BigInt(value)\n : value\n ).toString(16)}` as Hex\n if (size) return pad(hex, { size }) as Hex\n return hex\n}\n\nexport type StringToHexOpts = {\n /** The size (in bytes) of the output hex value. */\n size?: number\n}\n\nconst encoder = /*#__PURE__*/ new TextEncoder()\n\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#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_: string, opts: StringToHexOpts = {}): Hex {\n const value = encoder.encode(value_)\n return bytesToHex(value, opts)\n}\n","import type { ByteArray, Hex } from '../../types/misc.js'\nimport { concat } from '../data/concat.js'\n\nimport { toBytes } from './toBytes.js'\nimport { bytesToHex } from './toHex.js'\n\nexport type RecursiveArray = T | RecursiveArray[]\n\ntype To = 'hex' | 'bytes'\n\nexport type ToRlpReturnType = TTo extends 'bytes'\n ? ByteArray\n : TTo extends 'hex'\n ? Hex\n : never\n\nexport function toRlp(\n hexOrBytes: RecursiveArray | RecursiveArray,\n to_?: TTo,\n) {\n const to = to_ || ('hex' as const)\n return format(bytesToRlp(parse(hexOrBytes)), to) as ToRlpReturnType\n}\n\nfunction parse(\n hexOrBytes: RecursiveArray | RecursiveArray,\n): RecursiveArray {\n if (Array.isArray(hexOrBytes)) return hexOrBytes.map(parse)\n return typeof hexOrBytes === 'string' ? toBytes(hexOrBytes) : hexOrBytes\n}\n\nfunction format(bytes: ByteArray, type: 'hex' | 'bytes' = 'bytes') {\n return type === 'hex' ? bytesToHex(bytes) : bytes\n}\n\nexport function bytesToRlp(bytes: RecursiveArray): ByteArray {\n if (Array.isArray(bytes)) {\n const encoded = concat(bytes.map(bytesToRlp))\n return new Uint8Array([...encodeLength(encoded.length, 0xc0), ...encoded])\n }\n\n if (bytes.length === 1 && bytes[0] < 0x80) return bytes\n return new Uint8Array([...encodeLength(bytes.length, 0x80), ...bytes])\n}\n\nfunction encodeLength(length: number, offset: number) {\n if (length < 56) return [offset + length]\n return [toBytes(length).length + offset + 55, ...toBytes(length)]\n}\n","import type { PublicClient } from '../../../clients/createPublicClient.js'\nimport type { Transport } from '../../../clients/transports/createTransport.js'\nimport type { Chain } from '../../../types/chain.js'\nimport type { AssetGatewayUrls } from '../../../types/ens.js'\n\nimport {\n getJsonImage,\n getMetadataAvatarUri,\n getNftTokenUri,\n parseAvatarUri,\n parseNftUri,\n resolveAvatarUri,\n} from './utils.js'\n\nexport async function parseAvatarRecord(\n client: PublicClient,\n {\n gatewayUrls,\n record,\n }: {\n gatewayUrls?: AssetGatewayUrls\n record: string\n },\n): Promise {\n if (/eip155:/i.test(record))\n return parseNftAvatarUri(client, { gatewayUrls, record })\n return parseAvatarUri({ uri: record, gatewayUrls })\n}\n\nasync function parseNftAvatarUri(\n client: PublicClient,\n {\n gatewayUrls,\n record,\n }: {\n gatewayUrls?: AssetGatewayUrls\n record: string\n },\n): Promise {\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 {\n uri: resolvedNftUri,\n isOnChain,\n isEncoded,\n } = resolveAvatarUri({ uri: nftUri, gatewayUrls })\n\n // if the resolved URI is on chain, return the data\n if (\n isOnChain &&\n (resolvedNftUri.includes('data:application/json;base64,') ||\n resolvedNftUri.startsWith('{'))\n ) {\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\n const decoded = JSON.parse(encodedJson)\n return parseAvatarUri({ uri: getJsonImage(decoded), gatewayUrls })\n }\n\n let uriTokenId = nft.tokenID\n if (nft.namespace === 'erc1155')\n uriTokenId = uriTokenId.replace('0x', '').padStart(64, '0')\n\n return getMetadataAvatarUri({\n gatewayUrls,\n uri: resolvedNftUri.replace(/(?:0x)?{id}/, uriTokenId),\n })\n}\n","import type { Address } from 'abitype'\n\nimport { readContract } from '../../../actions/public/readContract.js'\nimport type { PublicClient } from '../../../clients/createPublicClient.js'\nimport type { Transport } from '../../../clients/transports/createTransport.js'\nimport {\n EnsAvatarInvalidMetadataError,\n EnsAvatarInvalidNftUriError,\n EnsAvatarUnsupportedNamespaceError,\n EnsAvatarUriResolutionError,\n} from '../../../errors/ens.js'\nimport type { Chain } from '../../../types/chain.js'\nimport type { AssetGatewayUrls } from '../../../types/ens.js'\n\ntype UriItem = {\n uri: string\n isOnChain: boolean\n isEncoded: boolean\n}\n\nconst networkRegex =\n /(?https?:\\/\\/[^\\/]*|ipfs:\\/|ipns:\\/|ar:\\/)?(?\\/)?(?ipfs\\/|ipns\\/)?(?[\\w\\-.]+)(?\\/.*)?/\nconst ipfsHashRegex =\n /^(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\nexport async function isImageUri(uri: string) {\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 } catch (error: any) {\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 if (!globalThis.hasOwnProperty('Image')) 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\nexport function getGateway(custom: string | undefined, defaultGateway: string) {\n if (!custom) return defaultGateway\n if (custom.endsWith('/')) return custom.slice(0, -1)\n return custom\n}\n\nexport function resolveAvatarUri({\n uri,\n gatewayUrls,\n}: {\n uri: string\n gatewayUrls?: AssetGatewayUrls | undefined\n}): UriItem {\n const isEncoded = base64Regex.test(uri)\n if (isEncoded) return { uri, isOnChain: true, isEncoded }\n\n const ipfsGateway = getGateway(gatewayUrls?.ipfs, 'https://ipfs.io')\n const arweaveGateway = getGateway(gatewayUrls?.arweave, 'https://arweave.net')\n\n const networkRegexMatch = uri.match(networkRegex)\n const {\n protocol,\n subpath,\n target,\n subtarget = '',\n } = networkRegexMatch?.groups || {}\n\n const isIPNS = protocol === 'ipns:/' || subpath === 'ipns/'\n const isIPFS =\n protocol === 'ipfs:/' || subpath === 'ipfs/' || ipfsHashRegex.test(uri)\n\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\n if ((isIPNS || isIPFS) && target) {\n return {\n uri: `${ipfsGateway}/${isIPNS ? 'ipns' : 'ipfs'}/${target}${subtarget}`,\n isOnChain: false,\n isEncoded: false,\n }\n } else if (protocol === 'ar:/' && target) {\n return {\n uri: `${arweaveGateway}/${target}${subtarget || ''}`,\n isOnChain: false,\n isEncoded: false,\n }\n }\n\n let parsedUri = uri.replace(dataURIRegex, '')\n if (parsedUri.startsWith(' {\n try {\n const res = await fetch(uri).then((res) => res.json())\n const image = await parseAvatarUri({\n gatewayUrls,\n uri: getJsonImage(res),\n })\n return image\n } catch {\n throw new EnsAvatarUriResolutionError({ uri })\n }\n}\n\nexport async function parseAvatarUri({\n gatewayUrls,\n uri,\n}: {\n gatewayUrls?: AssetGatewayUrls | undefined\n uri: string\n}): Promise {\n const { uri: resolvedURI, isOnChain } = resolveAvatarUri({ uri, gatewayUrls })\n if (isOnChain) return resolvedURI\n\n // check if resolvedURI is an image, if it is return the url\n const isImage = await isImageUri(resolvedURI)\n if (isImage) return resolvedURI\n\n throw new EnsAvatarUriResolutionError({ uri })\n}\n\ntype ParsedNft = {\n chainID: number\n namespace: string\n contractAddress: Address\n tokenID: string\n}\n\nexport function parseNftUri(uri: string): ParsedNft {\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\n const [reference, asset_namespace, tokenID] = uri.split('/')\n const [eip_namespace, chainID] = reference.split(':')\n const [erc_namespace, contractAddress] = asset_namespace.split(':')\n\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\n return {\n chainID: parseInt(chainID),\n namespace: erc_namespace.toLowerCase(),\n contractAddress: contractAddress as Address,\n tokenID,\n }\n}\n\nexport async function getNftTokenUri(\n client: PublicClient,\n { nft }: { nft: ParsedNft },\n) {\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","import type { Hex } from '../../index.js'\n\nexport function encodeLabelhash(hash: Hex): `[${string}]` {\n return `[${hash.slice(2)}]`\n}\n","import type { Hex } from '../../index.js'\nimport { isHex } from '../index.js'\n\nexport function encodedLabelToLabelhash(label: string): Hex | null {\n if (label.length !== 66) return null\n if (label.indexOf('[') !== 0) return null\n if (label.indexOf(']') !== 65) return null\n const hash = `0x${label.slice(1, 65)}`\n if (!isHex(hash)) return null\n return hash\n}\n","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/**\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.html) function for this.\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label: string) {\n const result = new Uint8Array(32).fill(0)\n if (!label) return bytesToHex(result)\n return encodedLabelToLabelhash(label) || keccak256(stringToBytes(label))\n}\n","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/**\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.html) function for this.\n *\n * @example\n * namehash('wagmi-dev.eth')\n * '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\n */\nexport function namehash(name: string) {\n let result = new Uint8Array(32).fill(0)\n if (!name) return bytesToHex(result)\n\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\n return bytesToHex(result)\n}\n","// Adapted from https://github.com/mafintosh/dns-packet\nimport type { ByteArray } from '../../types/misc.js'\nimport { stringToBytes } from '../encoding/toBytes.js'\nimport { encodeLabelhash } from './encodeLabelhash.js'\nimport { labelhash } from './labelhash.js'\n\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n */\nexport function packetToBytes(packet: string): ByteArray {\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '')\n if (value.length === 0) return new Uint8Array(1)\n\n const bytes = new Uint8Array(stringToBytes(value).byteLength + 2)\n\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\n if (bytes.byteLength !== offset + 1) return bytes.slice(0, offset + 1)\n\n return bytes\n}\n","import type { CallParameters } from '../../actions/public/call.js'\nimport type { BaseError } from '../../errors/base.js'\nimport { CallExecutionError } from '../../errors/contract.js'\nimport type { Chain } from '../../types/chain.js'\n\nimport { containsNodeError, getNodeError } from './getNodeError.js'\n\nexport function getCallError(\n err: BaseError,\n {\n docsPath,\n ...args\n }: CallParameters & {\n chain?: Chain\n docsPath?: string\n },\n) {\n let cause = err\n if (containsNodeError(err)) cause = getNodeError(err, args)\n return new CallExecutionError(cause, {\n docsPath,\n ...args,\n })\n}\n","import type { Abi, Address } from 'abitype'\n\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js'\nimport { BaseError } from '../../errors/base.js'\nimport {\n ContractFunctionExecutionError,\n ContractFunctionRevertedError,\n ContractFunctionZeroDataError,\n RawContractError,\n} from '../../errors/contract.js'\n\nconst EXECUTION_REVERTED_ERROR_CODE = 3\n\nexport function getContractError(\n err: BaseError,\n {\n abi,\n address,\n args,\n docsPath,\n functionName,\n sender,\n }: {\n abi: Abi\n args: any\n address?: Address\n docsPath?: string\n functionName: string\n sender?: Address\n },\n) {\n const { code, data, message, shortMessage } = (\n err instanceof RawContractError\n ? err\n : err instanceof BaseError\n ? err.walk((err) => 'data' in (err as Error))\n : {}\n ) as RawContractError\n\n let cause = err\n if (err instanceof AbiDecodingZeroDataError) {\n cause = new ContractFunctionZeroDataError({ functionName })\n } else if (\n code === EXECUTION_REVERTED_ERROR_CODE &&\n (data || message || shortMessage)\n ) {\n cause = new ContractFunctionRevertedError({\n abi,\n data: typeof data === 'object' ? data.data : data,\n functionName,\n message: shortMessage ?? message,\n })\n }\n\n return new ContractFunctionExecutionError(cause, {\n abi,\n args,\n contractAddress: address,\n docsPath,\n functionName,\n sender,\n })\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { EstimateGasParameters } from '../../actions/public/estimateGas.js'\nimport type { BaseError } from '../../errors/base.js'\nimport { EstimateGasExecutionError } from '../../errors/estimateGas.js'\nimport type { Chain } from '../../types/chain.js'\n\nimport { containsNodeError, getNodeError } from './getNodeError.js'\n\nexport function getEstimateGasError(\n err: BaseError,\n {\n docsPath,\n ...args\n }: Omit & {\n account?: Account\n chain?: Chain\n docsPath?: string\n },\n) {\n let cause = err\n if (containsNodeError(err)) cause = getNodeError(err, args)\n return new EstimateGasExecutionError(cause, {\n docsPath,\n ...args,\n })\n}\n","import type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'\nimport type { BaseError } from '../../errors/base.js'\nimport {\n ExecutionRevertedError,\n FeeCapTooHighError,\n FeeCapTooLowError,\n InsufficientFundsError,\n IntrinsicGasTooHighError,\n IntrinsicGasTooLowError,\n NonceMaxValueError,\n NonceTooHighError,\n NonceTooLowError,\n TipAboveFeeCapError,\n TransactionTypeNotSupportedError,\n UnknownNodeError,\n} from '../../errors/node.js'\nimport { RpcRequestError } from '../../errors/request.js'\nimport {\n InvalidInputRpcError,\n TransactionRejectedRpcError,\n} from '../../errors/rpc.js'\n\nexport function containsNodeError(err: BaseError) {\n return (\n err instanceof TransactionRejectedRpcError ||\n err instanceof InvalidInputRpcError ||\n (err instanceof RpcRequestError && err.code === ExecutionRevertedError.code)\n )\n}\n\nexport function getNodeError(\n err: BaseError,\n args: Partial>,\n) {\n const message = err.details.toLowerCase()\n if (FeeCapTooHighError.nodeMessage.test(message))\n return new FeeCapTooHighError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n })\n else if (FeeCapTooLowError.nodeMessage.test(message))\n return new FeeCapTooLowError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n })\n else if (NonceTooHighError.nodeMessage.test(message))\n return new NonceTooHighError({ cause: err, nonce: args?.nonce })\n else if (NonceTooLowError.nodeMessage.test(message))\n return new NonceTooLowError({ cause: err, nonce: args?.nonce })\n else if (NonceMaxValueError.nodeMessage.test(message))\n return new NonceMaxValueError({ cause: err, nonce: args?.nonce })\n else if (InsufficientFundsError.nodeMessage.test(message))\n return new InsufficientFundsError({ cause: err })\n else if (IntrinsicGasTooHighError.nodeMessage.test(message))\n return new IntrinsicGasTooHighError({ cause: err, gas: args?.gas })\n else if (IntrinsicGasTooLowError.nodeMessage.test(message))\n return new IntrinsicGasTooLowError({ cause: err, gas: args?.gas })\n else if (TransactionTypeNotSupportedError.nodeMessage.test(message))\n return new TransactionTypeNotSupportedError({ cause: err })\n else if (TipAboveFeeCapError.nodeMessage.test(message))\n return new TipAboveFeeCapError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n maxPriorityFeePerGas: args?.maxPriorityFeePerGas,\n })\n else if (\n message.match(ExecutionRevertedError.nodeMessage) ||\n ('code' in (err.cause as BaseError) &&\n (err.cause as { code: number })?.code === ExecutionRevertedError.code)\n )\n return new ExecutionRevertedError({\n cause: err,\n message: (err.cause as BaseError).details || err.details,\n })\n return new UnknownNodeError({\n cause: (err.cause as BaseError).cause as BaseError,\n })\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'\nimport type { BaseError } from '../../errors/base.js'\nimport { TransactionExecutionError } from '../../errors/transaction.js'\nimport type { Chain } from '../../types/chain.js'\n\nimport { containsNodeError, getNodeError } from './getNodeError.js'\n\nexport function getTransactionError(\n err: BaseError,\n {\n docsPath,\n ...args\n }: Omit & {\n account: Account\n chain?: Chain\n docsPath?: string\n },\n) {\n let cause = err\n if (containsNodeError(err)) cause = getNodeError(err, args)\n return new TransactionExecutionError(cause, {\n docsPath,\n ...args,\n })\n}\n","import type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { OnResponseFn } from '../../clients/transports/fallback.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { EIP1193RequestFn, PublicRpcSchema } from '../../types/eip1193.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { Filter } from '../../types/utils.js'\n\ntype CreateFilterRequestScopeParameters = {\n method:\n | 'eth_newFilter'\n | 'eth_newPendingTransactionFilter'\n | 'eth_newBlockFilter'\n}\n\ntype FilterRpcSchema = Filter<\n PublicRpcSchema,\n { Method: 'eth_getFilterLogs' | 'eth_getFilterChanges' }\n>\n\ntype CreateFilterRequestScopeReturnType = (\n id: Hex,\n) => EIP1193RequestFn\n\n/**\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(\n client: PublicClient,\n { method }: CreateFilterRequestScopeParameters,\n): CreateFilterRequestScopeReturnType {\n const requestMap: Record = {}\n\n if (client.transport.type === 'fallback')\n client.transport.onResponse?.(\n ({\n method: method_,\n response: id,\n status,\n transport,\n }: Parameters[0]) => {\n if (status === 'success' && method === method_)\n requestMap[id as Hex] = transport.request\n },\n )\n\n return ((id) =>\n requestMap[id] || client.request) as CreateFilterRequestScopeReturnType\n}\n","import type { Block } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { ExtractFormatterReturnType } from '../../types/formatter.js'\nimport type { RpcBlock } from '../../types/rpc.js'\n\nimport { defineFormatter } from './formatter.js'\nimport { formatTransaction } from './transaction.js'\n\nexport type FormattedBlock<\n TChain extends Chain | undefined = Chain | undefined,\n> = ExtractFormatterReturnType\n\nexport function formatBlock(block: Partial) {\n const transactions = block.transactions?.map((transaction) => {\n if (typeof transaction === 'string') return transaction\n return formatTransaction(transaction)\n })\n return {\n ...block,\n baseFeePerGas: block.baseFeePerGas ? BigInt(block.baseFeePerGas) : null,\n difficulty: block.difficulty ? BigInt(block.difficulty) : 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 } as Block\n}\n\nexport const defineBlock = /*#__PURE__*/ defineFormatter('block', formatBlock)\n","import type { Formatter } from '../../types/formatter.js'\n\n/**\n * @description Picks out the keys from `value` that exist in the formatter.\n */\nexport function extract(\n value: Record,\n { format }: { format?: Formatter['format'] },\n) {\n if (!format) return {}\n const keys = Object.keys(format({}))\n return keys.reduce((data, key) => {\n if (value?.hasOwnProperty(key)) {\n ;(data as any)[key] = value[key]\n }\n return data\n }, {})\n}\n","import type { FeeHistory } from '../../types/fee.js'\nimport type { RpcFeeHistory } from '../../types/rpc.js'\n\nexport function formatFeeHistory(feeHistory: RpcFeeHistory): 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) =>\n reward.map((value) => BigInt(value)),\n ),\n }\n}\n","import type { Assign, Prettify } from '../../types/utils.js'\n\nexport function defineFormatter(\n type: TType,\n format: (_: TParameters) => TReturnType,\n) {\n return <\n TOverrideParameters,\n TOverrideReturnType,\n TExclude extends (keyof TParameters)[] = [],\n >({\n exclude,\n format: overrides,\n }: {\n exclude?: TExclude\n format: (_: TOverrideParameters) => TOverrideReturnType\n }) => {\n return {\n format: (args: TParameters & TOverrideParameters) => {\n const formatted = format(args)\n if (exclude) {\n for (const key of exclude) {\n delete (formatted as any)[key]\n }\n }\n return {\n ...formatted,\n ...overrides(args),\n } as Prettify> & {\n [K in TExclude[number]]: never\n }\n },\n type,\n }\n }\n}\n","import type { Log } from '../../types/log.js'\nimport type { RpcLog } from '../../types/rpc.js'\n\nexport function formatLog(\n log: Partial,\n { args, eventName }: { args?: unknown; eventName?: string } = {},\n) {\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 } as Log\n}\n","import type { Chain } from '../../types/chain.js'\nimport type { ExtractFormatterReturnType } from '../../types/formatter.js'\nimport type { RpcTransaction } from '../../types/rpc.js'\nimport type { Transaction } from '../../types/transaction.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\nimport { defineFormatter } from './formatter.js'\n\nexport type FormattedTransaction<\n TChain extends Chain | undefined = Chain | undefined,\n> = ExtractFormatterReturnType\n\nexport const transactionType = {\n '0x0': 'legacy',\n '0x1': 'eip2930',\n '0x2': 'eip1559',\n} as const\n\nexport function formatTransaction(transaction: Partial) {\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 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 ? transactionType[transaction.type] : 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\n if (transaction_.type === 'legacy') {\n delete transaction_['accessList']\n delete transaction_['maxFeePerGas']\n delete transaction_['maxPriorityFeePerGas']\n }\n if (transaction_.type === 'eip2930') {\n delete transaction_['maxFeePerGas']\n delete transaction_['maxPriorityFeePerGas']\n }\n return transaction_ as Transaction\n}\n\nexport const defineTransaction = /*#__PURE__*/ defineFormatter(\n 'transaction',\n formatTransaction,\n)\n","import type { Chain } from '../../types/chain.js'\nimport type { ExtractFormatterReturnType } from '../../types/formatter.js'\nimport type { RpcTransactionReceipt } from '../../types/rpc.js'\nimport type { TransactionReceipt } from '../../types/transaction.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\n\nimport { defineFormatter } from './formatter.js'\nimport { formatLog } from './log.js'\nimport { transactionType } from './transaction.js'\n\nexport type FormattedTransactionReceipt<\n TChain extends Chain | undefined = Chain | undefined,\n> = ExtractFormatterReturnType\n\nconst statuses = {\n '0x0': 'reverted',\n '0x1': 'success',\n} as const\n\nexport function formatTransactionReceipt(\n transactionReceipt: Partial,\n) {\n return {\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 ? statuses[transactionReceipt.status]\n : null,\n type: transactionReceipt.type\n ? transactionType[\n transactionReceipt.type as keyof typeof transactionType\n ] || transactionReceipt.type\n : null,\n } as TransactionReceipt\n}\n\nexport const defineTransactionReceipt = /*#__PURE__*/ defineFormatter(\n 'transactionReceipt',\n formatTransactionReceipt,\n)\n","import type { Chain } from '../../types/chain.js'\nimport type { ExtractFormatterParameters } from '../../types/formatter.js'\nimport type { RpcTransactionRequest } from '../../types/rpc.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport { numberToHex } from '../encoding/toHex.js'\nimport { defineFormatter } from './formatter.js'\n\nexport type FormattedTransactionRequest<\n TChain extends Chain | undefined = Chain | undefined,\n> = ExtractFormatterParameters\n\nexport function formatTransactionRequest(\n transactionRequest: Partial,\n) {\n return {\n ...transactionRequest,\n gas:\n typeof transactionRequest.gas !== 'undefined'\n ? numberToHex(transactionRequest.gas)\n : undefined,\n gasPrice:\n typeof transactionRequest.gasPrice !== 'undefined'\n ? numberToHex(transactionRequest.gasPrice)\n : undefined,\n maxFeePerGas:\n typeof transactionRequest.maxFeePerGas !== 'undefined'\n ? numberToHex(transactionRequest.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas:\n typeof transactionRequest.maxPriorityFeePerGas !== 'undefined'\n ? numberToHex(transactionRequest.maxPriorityFeePerGas)\n : undefined,\n nonce:\n typeof transactionRequest.nonce !== 'undefined'\n ? numberToHex(transactionRequest.nonce)\n : undefined,\n value:\n typeof transactionRequest.value !== 'undefined'\n ? numberToHex(transactionRequest.value)\n : undefined,\n } as RpcTransactionRequest\n}\n\nexport const defineTransactionRequest = /*#__PURE__*/ defineFormatter(\n 'transactionRequest',\n formatTransactionRequest,\n)\n","import type { EventDefinition } from '../../types/contract.js'\nimport type { AbiEvent } from 'abitype'\n\nimport { hashAbiItem, hashFunction } from './hashFunction.js'\n\nexport const getEventSelector = (event: EventDefinition | AbiEvent) => {\n if (typeof event === 'string') return hashFunction(event)\n return hashAbiItem(event)\n}\n","import { slice } from '../data/slice.js'\nimport type { AbiFunction } from 'abitype'\n\nimport { hashAbiItem, hashFunction } from './hashFunction.js'\n\nexport const getFunctionSelector = (fn: string | AbiFunction) => {\n if (typeof fn === 'string') return slice(hashFunction(fn), 0, 4)\n return slice(hashAbiItem(fn), 0, 4)\n}\n","import {\n extractFunctionName,\n extractFunctionParams,\n} from '../contract/extractFunctionParts.js'\nimport { toBytes } from '../encoding/toBytes.js'\nimport type { AbiEvent, AbiFunction } from 'abitype'\n\nimport { keccak256 } from './keccak256.js'\n\nconst hash = (value: string) => keccak256(toBytes(value))\n\nexport function hashFunction(def: string) {\n const name = extractFunctionName(def)\n const params = extractFunctionParams(def) || []\n return hash(`${name}(${params.map(({ type }) => type).join(',')})`)\n}\n\nexport function hashAbiItem(def: AbiFunction | AbiEvent) {\n return hash(`${def.name}(${def.inputs.map(({ type }) => type).join(',')})`)\n}\n","import type { Hex } from '../../types/misc.js'\nimport { isHex } from '../data/isHex.js'\nimport { size } from '../data/size.js'\n\nexport function isHash(hash: string): hash is Hex {\n return isHex(hash) && size(hash) === 32\n}\n","import { keccak_256 } from '@noble/hashes/sha3'\n\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { isHex } from '../data/isHex.js'\nimport { toBytes } from '../encoding/toBytes.js'\nimport { toHex } from '../encoding/toHex.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type Keccak256Hash =\n | (TTo extends 'bytes' ? ByteArray : never)\n | (TTo extends 'hex' ? Hex : never)\n\nexport function keccak256(\n value: Hex | ByteArray,\n to_?: TTo,\n): Keccak256Hash {\n const to = to_ || 'hex'\n const bytes = keccak_256(\n isHex(value, { strict: false }) ? toBytes(value) : value,\n )\n if (to === 'bytes') return bytes as Keccak256Hash\n return toHex(bytes) as Keccak256Hash\n}\n","export { buildRequest } from './buildRequest.js'\n\nexport {\n ccipFetch,\n offchainLookup,\n offchainLookupAbiItem,\n offchainLookupSignature,\n} from './ccip.js'\n\nexport {\n type AssertCurrentChainParameters,\n assertCurrentChain,\n defineChain,\n getChainContractAddress,\n} from './chain.js'\nexport { arrayRegex, bytesRegex, integerRegex } from './regex.js'\n\nexport {\n type HttpOptions,\n type HttpReturnType,\n type RpcRequest,\n type RpcResponse,\n type Socket,\n type WebSocketAsyncOptions,\n type WebSocketAsyncReturnType,\n type WebSocketOptions,\n type WebSocketReturnType,\n getSocket,\n rpc,\n} from './rpc.js'\nexport { stringify } from './stringify.js'\nexport { validateTypedData } from './typedData.js'\nexport {\n type DecodeAbiParametersReturnType,\n decodeAbiParameters,\n} from './abi/decodeAbiParameters.js'\nexport {\n type DecodeErrorResultParameters,\n type DecodeErrorResultReturnType,\n decodeErrorResult,\n} from './abi/decodeErrorResult.js'\nexport {\n type DecodeEventLogParameters,\n type DecodeEventLogReturnType,\n decodeEventLog,\n} from './abi/decodeEventLog.js'\nexport {\n type DecodeFunctionDataParameters,\n decodeFunctionData,\n} from './abi/decodeFunctionData.js'\nexport {\n type DecodeFunctionResultParameters,\n type DecodeFunctionResultReturnType,\n decodeFunctionResult,\n} from './abi/decodeFunctionResult.js'\nexport {\n type EncodeAbiParametersReturnType,\n encodeAbiParameters,\n} from './abi/encodeAbiParameters.js'\nexport {\n type EncodeDeployDataParameters,\n encodeDeployData,\n} from './abi/encodeDeployData.js'\nexport {\n type EncodeErrorResultParameters,\n encodeErrorResult,\n} from './abi/encodeErrorResult.js'\nexport {\n type EncodeEventTopicsParameters,\n encodeEventTopics,\n} from './abi/encodeEventTopics.js'\nexport {\n type EncodeFunctionDataParameters,\n encodeFunctionData,\n} from './abi/encodeFunctionData.js'\nexport {\n type EncodeFunctionResultParameters,\n encodeFunctionResult,\n} from './abi/encodeFunctionResult.js'\nexport { type GetAbiItemParameters, getAbiItem } from './abi/getAbiItem.js'\nexport {\n type ParseAbi,\n type ParseAbiItem,\n type ParseAbiParameter,\n type ParseAbiParameters,\n parseAbi,\n parseAbiItem,\n parseAbiParameter,\n parseAbiParameters,\n} from 'abitype'\nexport { encodePacked } from './abi/encodePacked.js'\nexport { formatAbiItemWithArgs } from './abi/formatAbiItemWithArgs.js'\nexport { formatAbiItem, formatAbiParams } from './abi/formatAbiItem.js'\nexport { parseAccount } from '../accounts/utils/parseAccount.js'\nexport { publicKeyToAddress } from '../accounts/utils/publicKeyToAddress.js'\nexport {\n type GetContractAddressOptions,\n type GetCreate2AddressOptions,\n type GetCreateAddressOptions,\n getContractAddress,\n getCreateAddress,\n getCreate2Address,\n} from './address/getContractAddress.js'\nexport { getAddress } from './address/getAddress.js'\nexport { isAddress } from './address/isAddress.js'\nexport { isAddressEqual } from './address/isAddressEqual.js'\nexport {\n extractFunctionName,\n extractFunctionParams,\n extractFunctionType,\n extractFunctionParts,\n} from './contract/extractFunctionParts.js'\nexport { concat, concatBytes, concatHex } from './data/concat.js'\nexport { isBytes } from './data/isBytes.js'\nexport { isHex } from './data/isHex.js'\nexport { pad, padBytes, padHex } from './data/pad.js'\nexport { size } from './data/size.js'\nexport { slice, sliceBytes, sliceHex } from './data/slice.js'\nexport { trim } from './data/trim.js'\nexport {\n type FormattedBlock,\n defineBlock,\n formatBlock,\n} from './formatters/block.js'\nexport {\n type FormattedTransaction,\n defineTransaction,\n formatTransaction,\n transactionType,\n} from './formatters/transaction.js'\nexport { formatLog } from './formatters/log.js'\nexport {\n type FormattedTransactionReceipt,\n defineTransactionReceipt,\n} from './formatters/transactionReceipt.js'\nexport {\n type FormattedTransactionRequest,\n defineTransactionRequest,\n formatTransactionRequest,\n} from './formatters/transactionRequest.js'\nexport { extract } from './formatters/extract.js'\nexport { type ToRlpReturnType, toRlp } from './encoding/toRlp.js'\nexport {\n boolToBytes,\n toBytes,\n hexToBytes,\n numberToBytes,\n stringToBytes,\n} from './encoding/toBytes.js'\nexport {\n boolToHex,\n bytesToHex,\n toHex,\n numberToHex,\n stringToHex,\n} from './encoding/toHex.js'\nexport {\n bytesToBigint,\n bytesToBool,\n bytesToNumber,\n bytesToString,\n fromBytes,\n} from './encoding/fromBytes.js'\nexport {\n fromHex,\n hexToBool,\n hexToBigInt,\n hexToNumber,\n hexToString,\n} from './encoding/fromHex.js'\nexport { fromRlp } from './encoding/fromRlp.js'\nexport { containsNodeError, getNodeError } from './errors/getNodeError.js'\nexport { getCallError } from './errors/getCallError.js'\nexport { getContractError } from './errors/getContractError.js'\nexport { getEstimateGasError } from './errors/getEstimateGasError.js'\nexport { getTransactionError } from './errors/getTransactionError.js'\nexport { defineFormatter } from './formatters/formatter.js'\nexport { getEventSelector } from './hash/getEventSelector.js'\nexport { getFunctionSelector } from './hash/getFunctionSelector.js'\nexport { isHash } from './hash/isHash.js'\nexport { keccak256 } from './hash/keccak256.js'\nexport {\n type HashTypedDataParameters,\n type HashTypedDataReturnType,\n hashTypedData,\n} from './signature/hashTypedData.js'\nexport {\n type RecoverAddressParameters,\n type RecoverAddressReturnType,\n recoverAddress,\n} from './signature/recoverAddress.js'\nexport {\n type RecoverMessageAddressParameters,\n type RecoverMessageAddressReturnType,\n recoverMessageAddress,\n} from './signature/recoverMessageAddress.js'\nexport {\n type RecoverPublicKeyParameters,\n type RecoverPublicKeyReturnType,\n recoverPublicKey,\n} from './signature/recoverPublicKey.js'\nexport {\n type RecoverTypedDataAddressParameters,\n type RecoverTypedDataAddressReturnType,\n recoverTypedDataAddress,\n} from './signature/recoverTypedDataAddress.js'\nexport {\n type VerifyMessageParameters,\n type VerifyMessageReturnType,\n verifyMessage,\n} from './signature/verifyMessage.js'\nexport {\n type VerifyTypedDataParameters,\n type VerifyTypedDataReturnType,\n verifyTypedData,\n} from './signature/verifyTypedData.js'\nexport { hashMessage } from './signature/hashMessage.js'\nexport {\n type GetSerializedTransactionType,\n getSerializedTransactionType,\n} from './transaction/getSerializedTransactionType.js'\nexport {\n type GetTransactionType,\n getTransactionType,\n} from './transaction/getTransactionType.js'\nexport { assertRequest } from './transaction/assertRequest.js'\nexport {\n assertTransactionEIP1559,\n assertTransactionEIP2930,\n assertTransactionLegacy,\n} from './transaction/assertTransaction.js'\nexport { parseTransaction } from './transaction/parseTransaction.js'\nexport { prepareRequest } from './transaction/prepareRequest.js'\nexport {\n serializeTransaction,\n type SerializeTransactionFn,\n} from './transaction/serializeTransaction.js'\nexport { serializeAccessList } from './transaction/serializeAccessList.js'\nexport { formatEther } from './unit/formatEther.js'\nexport { formatGwei } from './unit/formatGwei.js'\nexport { formatUnits } from './unit/formatUnits.js'\nexport { parseUnits } from './unit/parseUnits.js'\nexport { parseEther } from './unit/parseEther.js'\nexport { parseGwei } from './unit/parseGwei.js'\n","import type { MaybePromise } from '../types/utils.js'\n\ntype Callback = ((...args: any[]) => any) | undefined\ntype Callbacks = Record\n\nexport const listenersCache = /*#__PURE__*/ new Map<\n string,\n { id: number; fns: Callbacks }[]\n>()\nexport const cleanupCache = /*#__PURE__*/ new Map void>()\n\ntype EmitFunction = (\n emit: TCallbacks,\n) => MaybePromise void)>\n\nlet callbackCount = 0\n\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(\n observerId: string,\n callbacks: TCallbacks,\n fn: EmitFunction,\n) {\n const callbackId = ++callbackCount\n\n const getListeners = () => listenersCache.get(observerId) || []\n\n const unsubscribe = () => {\n const listeners = getListeners()\n listenersCache.set(\n observerId,\n listeners.filter((cb: any) => cb.id !== callbackId),\n )\n }\n\n const unwatch = () => {\n const cleanup = cleanupCache.get(observerId)\n if (getListeners().length === 1 && cleanup) cleanup()\n unsubscribe()\n }\n\n const listeners = getListeners()\n listenersCache.set(observerId, [\n ...listeners,\n { id: callbackId, fns: callbacks },\n ])\n\n if (listeners && listeners.length > 0) return unwatch\n\n const emit: TCallbacks = {} as TCallbacks\n for (const key in callbacks) {\n emit[key] = ((\n ...args: Parameters>\n ) => {\n const listeners = getListeners()\n if (listeners.length === 0) return\n listeners.forEach((listener) => listener.fns[key]?.(...args))\n }) as TCallbacks[Extract]\n }\n\n const cleanup = fn(emit)\n if (typeof cleanup === 'function') cleanupCache.set(observerId, cleanup)\n\n return unwatch\n}\n","import { wait } from './wait.js'\n\ntype PollOptions = {\n // Whether or not to emit when the polling starts.\n emitOnBegin?: boolean\n // The initial wait time (in ms) before polling.\n initialWaitTime?: (data: TData | void) => Promise\n // The interval (in ms).\n interval: number\n}\n\n/**\n * @description Polls a function at a specified interval.\n */\nexport function poll(\n fn: ({ unpoll }: { unpoll: () => void }) => Promise,\n { emitOnBegin, initialWaitTime, interval }: PollOptions,\n) {\n let active = true\n\n const unwatch = () => (active = false)\n\n const watch = async () => {\n let data: TData | void\n if (emitOnBegin) data = await fn({ unpoll: unwatch })\n\n const initialWait = (await initialWaitTime?.(data)) ?? interval\n await wait(initialWait)\n\n const poll = async () => {\n if (!active) return\n await fn({ unpoll: unwatch })\n await wait(interval)\n poll()\n }\n\n poll()\n }\n watch()\n\n return unwatch\n}\n","type Resolved = [\n result: TReturnType[number],\n results: TReturnType,\n]\n\ntype PendingPromise = {\n resolve?: (data: Resolved) => void\n reject?: (reason?: unknown) => void\n}\n\ntype SchedulerItem = { args: unknown; pendingPromise: PendingPromise }\n\nexport type CreateBatchSchedulerArguments<\n TParameters = unknown,\n TReturnType extends readonly unknown[] = readonly unknown[],\n> = {\n fn: (args: TParameters[]) => Promise\n id: number | string\n shouldSplitBatch?: (args: TParameters[]) => boolean\n wait?: number\n}\nexport type CreateBatchSchedulerReturnType<\n TParameters = unknown,\n TReturnType extends readonly unknown[] = readonly unknown[],\n> = {\n flush: () => void\n schedule: TParameters extends undefined\n ? (args?: TParameters) => Promise>\n : (args: TParameters) => Promise>\n}\n\nconst schedulerCache = /*#__PURE__*/ new Map()\n\nexport function createBatchScheduler<\n TParameters,\n TReturnType extends readonly unknown[],\n>({\n fn,\n id,\n shouldSplitBatch,\n wait = 0,\n}: CreateBatchSchedulerArguments<\n TParameters,\n TReturnType\n>): CreateBatchSchedulerReturnType {\n const exec = async () => {\n const scheduler = getScheduler()\n flush()\n\n const args = scheduler.map(({ args }) => args)\n\n if (args.length === 0) return\n\n fn(args as TParameters[])\n .then((data) => {\n scheduler.forEach(({ pendingPromise }, i) =>\n pendingPromise.resolve?.([data[i], data]),\n )\n })\n .catch((err) => {\n scheduler.forEach(({ pendingPromise }) => pendingPromise.reject?.(err))\n })\n }\n\n const flush = () => schedulerCache.delete(id)\n\n const getBatchedArgs = () =>\n getScheduler().map(({ args }) => args) as TParameters[]\n\n const getScheduler = () => schedulerCache.get(id) || []\n\n const setScheduler = (item: SchedulerItem) =>\n schedulerCache.set(id, [...getScheduler(), item])\n\n return {\n flush,\n async schedule(args: TParameters) {\n const pendingPromise: PendingPromise = {}\n const promise = new Promise>((resolve, reject) => {\n pendingPromise.resolve = resolve\n pendingPromise.reject = reject\n })\n\n const split = shouldSplitBatch?.([...getBatchedArgs(), args])\n\n if (split) exec()\n\n const hasActiveScheduler = getScheduler().length > 0\n if (hasActiveScheduler) {\n setScheduler({ args, pendingPromise })\n return promise\n }\n\n setScheduler({ args, pendingPromise })\n setTimeout(exec, wait)\n return promise\n },\n } as unknown as CreateBatchSchedulerReturnType\n}\n","export const promiseCache = /*#__PURE__*/ new Map()\nexport const responseCache = /*#__PURE__*/ new Map()\n\nexport function getCache(cacheKey: string) {\n const buildCache = (cacheKey: string, cache: Map) => ({\n clear: () => cache.delete(cacheKey),\n get: () => cache.get(cacheKey),\n set: (data: TData) => cache.set(cacheKey, data),\n })\n\n const promise = buildCache>(cacheKey, promiseCache)\n const response = buildCache<{ created: Date; data: TData }>(\n cacheKey,\n responseCache,\n )\n\n return {\n clear: () => {\n promise.clear()\n response.clear()\n },\n promise,\n response,\n }\n}\n\nexport type WithCacheParameters = {\n /** The key to cache the data against. */\n cacheKey: string\n /** The maximum age (in ms) of the cached value. Default: Infinity (no expiry) */\n maxAge?: number\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(\n fn: () => Promise,\n { cacheKey, maxAge = Infinity }: WithCacheParameters,\n) {\n const cache = getCache(cacheKey)\n\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 && maxAge > 0) {\n const age = new Date().getTime() - response.created.getTime()\n if (age < maxAge) return response.data\n }\n\n let promise = cache.promise.get()\n if (!promise) {\n promise = fn()\n\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\n try {\n const data = await promise\n\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\n return data\n } finally {\n // Clear the promise cache so that subsequent invocations will\n // invoke the promise again.\n cache.promise.clear()\n }\n}\n","import { wait } from '../wait.js'\n\nexport function withRetry(\n fn: () => Promise,\n {\n delay: delay_ = 100,\n retryCount = 2,\n shouldRetry = () => true,\n }: {\n // The delay (in ms) between retries.\n delay?: ((config: { count: number; error: Error }) => number) | number\n // The max number of times to retry.\n retryCount?: number\n // Whether or not to retry when an error is thrown.\n shouldRetry?: ({\n count,\n error,\n }: {\n count: number\n error: Error\n }) => Promise | boolean\n } = {},\n) {\n return new Promise((resolve, reject) => {\n const attemptRetry = async ({ count = 0 } = {}) => {\n const retry = async ({ error }: { error: Error }) => {\n const delay =\n typeof delay_ === 'function' ? delay_({ count, error }) : delay_\n if (delay) await wait(delay)\n attemptRetry({ count: count + 1 })\n }\n\n try {\n const data = await fn()\n resolve(data)\n } catch (err) {\n if (\n count < retryCount &&\n (await shouldRetry({ count, error: err as Error }))\n )\n return retry({ error: err as Error })\n reject(err)\n }\n }\n attemptRetry()\n })\n}\n","export function withTimeout(\n fn: ({ signal }: { signal?: AbortController['signal'] }) => Promise,\n {\n errorInstance,\n timeout,\n signal,\n }: {\n // The error instance to throw when the timeout is reached.\n errorInstance: Error\n // The timeout (in ms).\n timeout: number\n // Whether or not the timeout should use an abort signal.\n signal?: boolean\n },\n): Promise {\n return new Promise((resolve, reject) => {\n ;(async () => {\n let timeoutId!: NodeJS.Timeout\n try {\n const controller = new AbortController()\n if (timeout > 0) {\n timeoutId = setTimeout(() => {\n if (signal) {\n controller.abort()\n } else {\n reject(errorInstance)\n }\n }, timeout)\n }\n resolve(await fn({ signal: controller?.signal }))\n } catch (err) {\n if ((err as Error).name === 'AbortError') reject(errorInstance)\n reject(err)\n } finally {\n clearTimeout(timeoutId)\n }\n })()\n })\n}\n","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/\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\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex =\n /^(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","import type { MessageEvent, WebSocket } from 'isomorphic-ws'\n\nimport {\n HttpRequestError,\n TimeoutError,\n WebSocketRequestError,\n} from '../errors/request.js'\n\nimport { createBatchScheduler } from './promise/createBatchScheduler.js'\nimport { withTimeout } from './promise/withTimeout.js'\nimport { stringify } from './stringify.js'\n\nlet id = 0\n\ntype SuccessResult = {\n method?: never\n result: T\n error?: never\n}\ntype ErrorResult = {\n method?: never\n result?: never\n error: T\n}\ntype Subscription = {\n method: 'eth_subscription'\n error?: never\n result?: never\n params: {\n subscription: string\n } & (\n | {\n result: TResult\n error?: never\n }\n | {\n result?: never\n error: TError\n }\n )\n}\n\nexport type RpcRequest = { method: string; params?: any }\n\nexport type RpcResponse = {\n jsonrpc: `${number}`\n id: number\n} & (\n | SuccessResult\n | ErrorResult\n | Subscription\n)\n\n///////////////////////////////////////////////////\n// HTTP\n\nexport type HttpOptions =\n {\n // The RPC request body.\n body: TBody\n // Request configuration to pass to `fetch`.\n fetchOptions?: Omit\n // The timeout (in ms) for the request.\n timeout?: number\n }\n\nexport type HttpReturnType<\n TBody extends RpcRequest | RpcRequest[] = RpcRequest,\n> = TBody extends RpcRequest[] ? RpcResponse[] : RpcResponse\n\nasync function http(\n url: string,\n { body, fetchOptions = {}, timeout = 10_000 }: HttpOptions,\n): Promise> {\n const { headers, method, signal: signal_ } = fetchOptions\n try {\n const response = await withTimeout(\n async ({ signal }) => {\n const response = await fetch(url, {\n ...fetchOptions,\n body: Array.isArray(body)\n ? stringify(\n body.map((body) => ({\n jsonrpc: '2.0',\n id: id++,\n ...body,\n })),\n )\n : stringify({ jsonrpc: '2.0', id: id++, ...body }),\n headers: {\n ...headers,\n 'Content-Type': 'application/json',\n },\n method: method || 'POST',\n signal: signal_ || (timeout > 0 ? signal : undefined),\n })\n return response\n },\n {\n errorInstance: new TimeoutError({ body, url }),\n timeout,\n signal: true,\n },\n )\n\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 }\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\n return data\n } catch (err) {\n if (err instanceof HttpRequestError) throw err\n if (err instanceof TimeoutError) throw err\n throw new HttpRequestError({\n body,\n details: (err as Error).message,\n url,\n })\n }\n}\n\n///////////////////////////////////////////////////\n// WebSocket\n\ntype Id = string | number\ntype CallbackFn = (message: any) => void\ntype CallbackMap = Map\n\nexport type Socket = WebSocket & {\n requests: CallbackMap\n subscriptions: CallbackMap\n}\n\nconst sockets = /*#__PURE__*/ new Map()\n\nexport async function getSocket(url_: string) {\n const url = new URL(url_)\n const urlKey = url.toString()\n\n let socket = sockets.get(urlKey)\n\n // If the socket already exists, return it.\n if (socket) return socket\n\n const { schedule } = createBatchScheduler({\n id: urlKey,\n fn: async () => {\n let WebSocket = await import('isomorphic-ws')\n // Workaround for Vite.\n // https://github.com/vitejs/vite/issues/9703\n // TODO: Remove when issue is resolved.\n if (\n (WebSocket as unknown as { default?: typeof WebSocket }).default\n ?.constructor\n )\n WebSocket = (WebSocket as unknown as { default: typeof WebSocket })\n .default\n else WebSocket = WebSocket.WebSocket\n\n const webSocket = new WebSocket(url)\n\n // Set up a cache for incoming \"synchronous\" requests.\n const requests = new Map()\n\n // Set up a cache for subscriptions (eth_subscribe).\n const subscriptions = new Map()\n\n const onMessage: (event: MessageEvent) => void = ({ data }) => {\n const message: RpcResponse = JSON.parse(data as string)\n const isSubscription = message.method === 'eth_subscription'\n const id = isSubscription ? message.params.subscription : message.id\n const cache = isSubscription ? subscriptions : requests\n const callback = cache.get(id)\n if (callback) callback({ data })\n if (!isSubscription) cache.delete(id)\n }\n const onClose = () => {\n sockets.delete(urlKey)\n webSocket.removeEventListener('close', onClose)\n webSocket.removeEventListener('message', onMessage)\n }\n\n // Setup event listeners for RPC & subscription responses.\n webSocket.addEventListener('close', onClose)\n webSocket.addEventListener('message', onMessage)\n\n // Wait for the socket to open.\n if (webSocket.readyState === WebSocket.CONNECTING) {\n await new Promise((resolve, reject) => {\n if (!webSocket) return\n webSocket.onopen = resolve\n webSocket.onerror = reject\n })\n }\n\n // Create a new socket instance.\n socket = Object.assign(webSocket, {\n requests,\n subscriptions,\n })\n sockets.set(urlKey, socket)\n\n return [socket]\n },\n })\n\n const [_, [socket_]] = await schedule()\n return socket_\n}\n\nexport type WebSocketOptions = {\n /** The RPC request body. */\n body: RpcRequest\n /** The callback to invoke on response. */\n onResponse?: (message: RpcResponse) => void\n}\n\nexport type WebSocketReturnType = Socket\n\nfunction webSocket(\n socket: Socket,\n { body, onResponse }: WebSocketOptions,\n): WebSocketReturnType {\n if (\n socket.readyState === socket.CLOSED ||\n socket.readyState === socket.CLOSING\n )\n throw new WebSocketRequestError({\n body,\n url: socket.url,\n details: 'Socket is closed.',\n })\n\n const id_ = id++\n\n const callback = ({ data }: { data: any }) => {\n const message: RpcResponse = JSON.parse(data)\n\n if (typeof message.id === 'number' && id_ !== message.id) return\n\n onResponse?.(message)\n\n // If we are subscribing to a topic, we want to set up a listener for incoming\n // messages.\n if (body.method === 'eth_subscribe' && typeof message.result === 'string') {\n socket.subscriptions.set(message.result, callback)\n }\n\n // If we are unsubscribing from a topic, we want to remove the listener.\n if (body.method === 'eth_unsubscribe') {\n socket.subscriptions.delete(body.params?.[0])\n }\n }\n socket.requests.set(id_, callback)\n\n socket.send(JSON.stringify({ jsonrpc: '2.0', ...body, id: id_ }))\n\n return socket\n}\n\nexport type WebSocketAsyncOptions = {\n /** The RPC request body. */\n body: RpcRequest\n /** The timeout (in ms) for the request. */\n timeout?: number\n}\n\nexport type WebSocketAsyncReturnType = RpcResponse\n\nasync function webSocketAsync(\n socket: Socket,\n { body, timeout = 10_000 }: WebSocketAsyncOptions,\n): Promise {\n return withTimeout(\n () =>\n new Promise((onResponse) =>\n rpc.webSocket(socket, {\n body,\n onResponse,\n }),\n ),\n {\n errorInstance: new TimeoutError({ body, url: socket.url }),\n timeout,\n },\n )\n}\n\n///////////////////////////////////////////////////\n\nexport const rpc = {\n http,\n webSocket,\n webSocketAsync,\n}\n","import type { ByteArray, Hex, SignableMessage } from '../../types/misc.js'\nimport { concat } from '../data/concat.js'\nimport { stringToBytes, toBytes } from '../encoding/toBytes.js'\nimport { keccak256 } from '../hash/keccak256.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type HashMessage =\n | (TTo extends 'bytes' ? ByteArray : never)\n | (TTo extends 'hex' ? Hex : never)\n\nexport function hashMessage(\n message: SignableMessage,\n to_?: TTo,\n): HashMessage {\n const messageBytes = (() => {\n if (typeof message === 'string') return stringToBytes(message)\n if (message.raw instanceof Uint8Array) return message.raw\n return toBytes(message.raw)\n })()\n const prefixBytes = stringToBytes(\n `\\x19Ethereum Signed Message:\\n${messageBytes.length}`,\n )\n return keccak256(concat([prefixBytes, messageBytes]), to_)\n}\n","// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts\n\nimport type { AbiParameter, TypedData, TypedDataDomain } from 'abitype'\n\nimport type { Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\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 { validateTypedData } from '../typedData.js'\n\ntype MessageTypeProperty = {\n name: string\n type: string\n}\n\nexport type HashTypedDataParameters<\n TTypedData extends TypedData | { [key: string]: unknown } = TypedData,\n TPrimaryType extends string = string,\n> = TypedDataDefinition\n\nexport type HashTypedDataReturnType = Hex\n\nexport function hashTypedData<\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string = string,\n>({\n domain: domain_,\n message,\n primaryType,\n types: types_,\n}: HashTypedDataParameters): HashTypedDataReturnType {\n const domain: TypedDataDomain = typeof domain_ === 'undefined' ? {} : domain_\n const types = {\n EIP712Domain: [\n typeof domain?.name === 'string' && { name: 'name', type: 'string' },\n domain?.version && { name: 'version', type: 'string' },\n typeof domain?.chainId === 'number' && {\n name: 'chainId',\n type: 'uint256',\n },\n domain?.verifyingContract && {\n name: 'verifyingContract',\n type: 'address',\n },\n domain?.salt && { name: 'salt', type: 'bytes32' },\n ].filter(Boolean),\n ...(types_ as TTypedData),\n }\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 } as TypedDataDefinition)\n\n const parts: Hex[] = ['0x1901']\n if (domain)\n parts.push(\n hashDomain({\n domain,\n types: types as Record,\n }),\n )\n\n if (primaryType !== 'EIP712Domain') {\n parts.push(\n hashStruct({\n data: message,\n primaryType: primaryType as string,\n types: types as Record,\n }),\n )\n }\n\n return keccak256(concat(parts))\n}\n\nfunction hashDomain({\n domain,\n types,\n}: {\n domain: TypedDataDomain\n types: Record\n}) {\n return hashStruct({\n data: domain,\n primaryType: 'EIP712Domain',\n types,\n })\n}\n\nfunction hashStruct({\n data,\n primaryType,\n types,\n}: {\n data: Record\n primaryType: string\n types: Record\n}) {\n const encoded = encodeData({\n data,\n primaryType,\n types,\n })\n return keccak256(encoded)\n}\n\nfunction encodeData({\n data,\n primaryType,\n types,\n}: {\n data: Record\n primaryType: string\n types: Record\n}) {\n const encodedTypes: AbiParameter[] = [{ type: 'bytes32' }]\n const encodedValues: unknown[] = [hashType({ primaryType, types })]\n\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\n return encodeAbiParameters(encodedTypes, encodedValues)\n}\n\nfunction hashType({\n primaryType,\n types,\n}: {\n primaryType: string\n types: Record\n}) {\n const encodedHashType = toHex(encodeType({ primaryType, types }))\n return keccak256(encodedHashType)\n}\n\nfunction encodeType({\n primaryType,\n types,\n}: {\n primaryType: string\n types: Record\n}) {\n let result = ''\n const unsortedDeps = findTypeDependencies({ primaryType, types })\n unsortedDeps.delete(primaryType)\n\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\n return result\n}\n\nfunction findTypeDependencies(\n {\n primaryType: primaryType_,\n types,\n }: {\n primaryType: string\n types: Record\n },\n results: Set = new Set(),\n): 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\n results.add(primaryType)\n\n for (const field of types[primaryType]) {\n findTypeDependencies({ primaryType: field.type, types }, results)\n }\n return results\n}\n\nfunction encodeField({\n types,\n name,\n type,\n value,\n}: {\n types: Record\n name: string\n type: string\n value: any\n}): [type: AbiParameter, value: any] {\n if (types[type] !== undefined) {\n return [\n { type: 'bytes32' },\n keccak256(encodeData({ data: value, primaryType: type, types })),\n ]\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\n if (type === 'string') return [{ type: 'bytes32' }, keccak256(toHex(value))]\n\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['))\n const typeValuePairs = (value as [AbiParameter, any][]).map((item) =>\n encodeField({\n name,\n type: parsedType,\n types,\n value: item,\n }),\n )\n return [\n { type: 'bytes32' },\n keccak256(\n encodeAbiParameters(\n typeValuePairs.map(([t]) => t),\n typeValuePairs.map(([, v]) => v),\n ),\n ),\n ]\n }\n\n return [{ type }, value]\n}\n","import type { Address } from 'abitype'\n\nimport { publicKeyToAddress } from '../../accounts/utils/publicKeyToAddress.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nimport { recoverPublicKey } from './recoverPublicKey.js'\n\nexport type RecoverAddressParameters = {\n hash: Hex | ByteArray\n signature: Hex | ByteArray\n}\nexport type RecoverAddressReturnType = Address\n\nexport async function recoverAddress({\n hash,\n signature,\n}: RecoverAddressParameters): Promise {\n return publicKeyToAddress(await recoverPublicKey({ hash: hash, signature }))\n}\n","import type { Address } from 'abitype'\n\nimport type { ByteArray, Hex, SignableMessage } from '../../types/misc.js'\n\nimport { hashMessage } from './hashMessage.js'\nimport { recoverAddress } from './recoverAddress.js'\n\nexport type RecoverMessageAddressParameters = {\n message: SignableMessage\n signature: Hex | ByteArray\n}\nexport type RecoverMessageAddressReturnType = Address\n\nexport async function recoverMessageAddress({\n message,\n signature,\n}: RecoverMessageAddressParameters): Promise {\n return recoverAddress({ hash: hashMessage(message), signature })\n}\n","import type { ByteArray, Hex } from '../../types/misc.js'\nimport { isHex } from '../data/isHex.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\nimport { toHex } from '../encoding/toHex.js'\n\nexport type RecoverPublicKeyParameters = {\n hash: Hex | ByteArray\n signature: Hex | ByteArray\n}\nexport type RecoverPublicKeyReturnType = Hex\n\nexport async function recoverPublicKey({\n hash,\n signature,\n}: RecoverPublicKeyParameters): Promise {\n const signatureHex = isHex(signature) ? signature : toHex(signature)\n const hashHex = isHex(hash) ? hash : toHex(hash)\n\n // Derive v = recoveryId + 27 from end of the signature (27 is added when signing the message)\n // The recoveryId represents the y-coordinate on the secp256k1 elliptic curve and can have a value [0, 1].\n let v = hexToNumber(`0x${signatureHex.slice(130)}`)\n if (v === 0 || v === 1) v += 27\n\n const { secp256k1 } = await import('@noble/curves/secp256k1')\n const publicKey = secp256k1.Signature.fromCompact(\n signatureHex.substring(2, 130),\n )\n .addRecoveryBit(v - 27)\n .recoverPublicKey(hashHex.substring(2))\n .toHex(false)\n return `0x${publicKey}`\n}\n","import type { Address, TypedData } from 'abitype'\n\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\n\nimport { hashTypedData } from './hashTypedData.js'\nimport { recoverAddress } from './recoverAddress.js'\n\nexport type RecoverTypedDataAddressParameters<\n TTypedData extends TypedData | { [key: string]: unknown } = TypedData,\n TPrimaryType extends string = string,\n> = TypedDataDefinition & {\n signature: Hex | ByteArray\n}\nexport type RecoverTypedDataAddressReturnType = Address\n\nexport async function recoverTypedDataAddress<\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string = string,\n>({\n domain,\n message,\n primaryType,\n signature,\n types,\n}: RecoverTypedDataAddressParameters<\n TTypedData,\n TPrimaryType\n>): Promise {\n return recoverAddress({\n hash: hashTypedData({\n domain,\n message,\n primaryType,\n types,\n } as RecoverTypedDataAddressParameters),\n signature,\n })\n}\n","import type { Address } from 'abitype'\n\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { getAddress } from '../address/getAddress.js'\nimport { isAddressEqual } from '../address/isAddressEqual.js'\n\nimport { recoverMessageAddress } from './recoverMessageAddress.js'\n\nexport type VerifyMessageParameters = {\n /** The address that signed the original message. */\n address: Address\n /** The message to be verified. */\n message: string\n /** The signature that was generated by signing the message with the address's private key. */\n signature: Hex | ByteArray\n}\n\nexport type VerifyMessageReturnType = boolean\n\n/**\n * Verify that a message was signed by the provided address.\n *\n * Note: Only supports Externally Owned Accounts. Does not support Contract Accounts.\n * It is highly recommended to use `publicClient.verifyMessage` instead to ensure\n * wallet interoperability.\n *\n * - Docs {@link https://viem.sh/docs/utilities/verifyMessage.html}\n *\n * @param parameters - {@link VerifyMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifyMessageReturnType}\n */\nexport async function verifyMessage({\n address,\n message,\n signature,\n}: VerifyMessageParameters): Promise {\n return isAddressEqual(\n getAddress(address),\n await recoverMessageAddress({ message, signature }),\n )\n}\n","import type { Address, TypedData } from 'abitype'\n\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\nimport { getAddress } from '../address/getAddress.js'\nimport { isAddressEqual } from '../address/isAddressEqual.js'\n\nimport {\n type RecoverTypedDataAddressParameters,\n recoverTypedDataAddress,\n} from './recoverTypedDataAddress.js'\n\nexport type VerifyTypedDataParameters<\n TTypedData extends TypedData | { [key: string]: unknown } = TypedData,\n TPrimaryType extends string = string,\n> = TypedDataDefinition & {\n /** The address to verify the typed data for. */\n address: Address\n /** The signature to verify */\n signature: Hex | ByteArray\n}\n\nexport type VerifyTypedDataReturnType = boolean\n\n/**\n * Verify that typed data was signed by the provided address.\n *\n * Note: Only supports Externally Owned Accounts. Does not support Contract Accounts.\n * It is highly recommended to use `publicClient.verifyTypedData` instead to ensure\n * wallet interoperability.\n *\n * - Docs {@link https://viem.sh/docs/utilities/verifyTypedData.html}\n *\n * @param parameters - {@link VerifyTypedDataParameters}\n * @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\n */\nexport async function verifyTypedData<\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string = string,\n>({\n address,\n domain,\n message,\n primaryType,\n signature,\n types,\n}: VerifyTypedDataParameters<\n TTypedData,\n TPrimaryType\n>): Promise {\n return isAddressEqual(\n getAddress(address),\n await recoverTypedDataAddress({\n domain,\n message,\n primaryType,\n signature,\n types,\n } as RecoverTypedDataAddressParameters),\n )\n}\n","export const stringify: typeof JSON.stringify = (value, replacer, space) =>\n JSON.stringify(\n value,\n (key, value_) => {\n const value = typeof value_ === 'bigint' ? value_.toString() : value_\n return typeof replacer === 'function' ? replacer(key, value) : value\n },\n space,\n )\n","import { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'\nimport { InvalidAddressError } from '../../errors/address.js'\nimport { FeeCapTooHighError, TipAboveFeeCapError } from '../../errors/node.js'\nimport { FeeConflictError } from '../../errors/transaction.js'\nimport type { Chain } from '../../types/chain.js'\nimport { isAddress } from '../address/isAddress.js'\n\nexport function assertRequest(args: Partial>) {\n const {\n account: account_,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n to,\n } = 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)) throw new InvalidAddressError({ address: to })\n if (\n typeof gasPrice !== 'undefined' &&\n (typeof maxFeePerGas !== 'undefined' ||\n typeof maxPriorityFeePerGas !== 'undefined')\n )\n throw new FeeConflictError()\n\n if (maxFeePerGas && maxFeePerGas > 2n ** 256n - 1n)\n throw new FeeCapTooHighError({ maxFeePerGas })\n if (\n maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas\n )\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas })\n}\n","import { InvalidAddressError } from '../../errors/address.js'\nimport { BaseError } from '../../errors/base.js'\nimport { InvalidChainIdError } from '../../errors/chain.js'\nimport { FeeCapTooHighError, TipAboveFeeCapError } from '../../errors/node.js'\nimport type {\n TransactionSerializableEIP1559,\n TransactionSerializableEIP2930,\n TransactionSerializableLegacy,\n} from '../../types/transaction.js'\nimport { isAddress } from '../address/isAddress.js'\n\nexport function assertTransactionEIP1559(\n transaction: TransactionSerializableEIP1559,\n) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } =\n transaction\n if (chainId <= 0) throw new InvalidChainIdError({ chainId })\n if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })\n if (gasPrice)\n throw new BaseError(\n '`gasPrice` is not a valid EIP-1559 Transaction attribute.',\n )\n if (maxFeePerGas && maxFeePerGas > 2n ** 256n - 1n)\n throw new FeeCapTooHighError({ maxFeePerGas })\n if (\n maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas\n )\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas })\n}\n\nexport function assertTransactionEIP2930(\n transaction: TransactionSerializableEIP2930,\n) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } =\n transaction\n if (chainId <= 0) throw new InvalidChainIdError({ chainId })\n if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })\n if (maxPriorityFeePerGas || maxFeePerGas)\n throw new BaseError(\n '`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.',\n )\n if (gasPrice && gasPrice > 2n ** 256n - 1n)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice })\n}\n\nexport function assertTransactionLegacy(\n transaction: TransactionSerializableLegacy,\n) {\n const {\n chainId,\n maxPriorityFeePerGas,\n gasPrice,\n maxFeePerGas,\n to,\n accessList,\n } = transaction\n if (to && !isAddress(to)) 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(\n '`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.',\n )\n if (gasPrice && gasPrice > 2n ** 256n - 1n)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice })\n if (accessList)\n throw new BaseError(\n '`accessList` is not a valid Legacy Transaction attribute.',\n )\n}\n","import { InvalidSerializedTransactionTypeError } from '../../errors/transaction.js'\nimport type {\n TransactionSerialized,\n TransactionSerializedEIP1559,\n TransactionSerializedEIP2930,\n} from '../../types/transaction.js'\nimport { sliceHex } from '../data/slice.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\n\nexport type GetSerializedTransactionType<\n TTransactionSerialized extends TransactionSerialized = TransactionSerialized,\n> = TTransactionSerialized extends TransactionSerializedEIP1559\n ? 'eip1559'\n : TTransactionSerialized extends TransactionSerializedEIP2930\n ? 'eip2930'\n : 'legacy'\n\nexport function getSerializedTransactionType<\n TSerialized extends TransactionSerialized,\n>(\n serializedTransaction: TSerialized,\n): GetSerializedTransactionType {\n const serializedType = sliceHex(serializedTransaction, 0, 1)\n\n if (serializedType === '0x02')\n return 'eip1559' as GetSerializedTransactionType\n\n if (serializedType === '0x01')\n return 'eip2930' as GetSerializedTransactionType\n\n if (serializedType !== '0x' && hexToNumber(serializedType) >= 0xc0)\n return 'legacy' as GetSerializedTransactionType\n\n throw new InvalidSerializedTransactionTypeError({ serializedType })\n}\n","import { InvalidSerializableTransactionError } from '../../errors/transaction.js'\nimport type {\n TransactionSerializable,\n TransactionSerializableEIP1559,\n TransactionSerializableEIP2930,\n TransactionSerializableGeneric,\n TransactionSerializableLegacy,\n} from '../../types/transaction.js'\n\nexport type GetTransactionType<\n TTransactionSerializable extends TransactionSerializable = TransactionSerializable,\n> =\n | (TTransactionSerializable extends TransactionSerializableLegacy\n ? 'legacy'\n : never)\n | (TTransactionSerializable extends TransactionSerializableEIP1559\n ? 'eip1559'\n : never)\n | (TTransactionSerializable extends TransactionSerializableEIP2930\n ? 'eip2930'\n : never)\n | (TTransactionSerializable extends TransactionSerializableGeneric\n ? TTransactionSerializable['type']\n : never)\n\nexport function getTransactionType<\n TTransactionSerializable extends TransactionSerializable,\n>(\n transaction: TTransactionSerializable,\n): GetTransactionType {\n if (transaction.type)\n return transaction.type as GetTransactionType\n\n if (\n typeof transaction.maxFeePerGas !== 'undefined' ||\n typeof transaction.maxPriorityFeePerGas !== 'undefined'\n )\n return 'eip1559' as GetTransactionType\n\n if (typeof transaction.gasPrice !== 'undefined') {\n if (typeof transaction.accessList !== 'undefined')\n return 'eip2930' as GetTransactionType\n return 'legacy' as GetTransactionType\n }\n\n throw new InvalidSerializableTransactionError({ transaction })\n}\n","import { InvalidAddressError } from '../../errors/address.js'\nimport {\n InvalidLegacyVError,\n InvalidSerializedTransactionError,\n} from '../../errors/transaction.js'\nimport type { Hex, Signature } from '../../types/misc.js'\nimport type {\n AccessList,\n TransactionRequestEIP2930,\n TransactionRequestLegacy,\n TransactionSerializableEIP1559,\n TransactionSerializableEIP2930,\n TransactionSerializableLegacy,\n TransactionSerialized,\n TransactionSerializedEIP1559,\n TransactionSerializedEIP2930,\n TransactionType,\n} from '../../types/transaction.js'\nimport { isAddress } from '../address/isAddress.js'\nimport { isHex } from '../data/isHex.js'\nimport { padHex } from '../data/pad.js'\nimport { trim } from '../data/trim.js'\nimport { hexToBigInt, hexToNumber } from '../encoding/fromHex.js'\nimport { fromRlp } from '../encoding/fromRlp.js'\nimport type { RecursiveArray } from '../encoding/toRlp.js'\nimport { isHash } from '../hash/isHash.js'\n\nimport {\n assertTransactionEIP1559,\n assertTransactionEIP2930,\n assertTransactionLegacy,\n} from './assertTransaction.js'\nimport {\n type GetSerializedTransactionType,\n getSerializedTransactionType,\n} from './getSerializedTransactionType.js'\n\nexport type ParseTransactionReturnType<\n TSerialized extends TransactionSerialized = TransactionSerialized,\n TType extends TransactionType = GetSerializedTransactionType,\n> =\n | (TType extends 'eip1559' ? TransactionSerializableEIP1559 : never)\n | (TType extends 'eip2930' ? TransactionSerializableEIP2930 : never)\n | (TType extends 'legacy' ? TransactionSerializableLegacy : never)\n\nexport function parseTransaction(\n serializedTransaction: TSerialized,\n): ParseTransactionReturnType {\n const type = getSerializedTransactionType(serializedTransaction)\n\n if (type === 'eip1559')\n return parseTransactionEIP1559(\n serializedTransaction as TransactionSerializedEIP1559,\n ) as ParseTransactionReturnType\n\n if (type === 'eip2930')\n return parseTransactionEIP2930(\n serializedTransaction as TransactionSerializedEIP2930,\n ) as ParseTransactionReturnType\n\n return parseTransactionLegacy(\n serializedTransaction,\n ) as ParseTransactionReturnType\n}\n\nfunction parseTransactionEIP1559(\n serializedTransaction: TransactionSerializedEIP1559,\n): TransactionSerializableEIP1559 {\n const transactionArray = fromRlp(\n `0x${serializedTransaction.slice(4)}` as Hex,\n 'hex',\n )\n\n const [\n chainId,\n nonce,\n maxPriorityFeePerGas,\n maxFeePerGas,\n gas,\n to,\n value,\n data,\n accessList,\n v,\n r,\n s,\n ] = transactionArray\n\n if (!(transactionArray.length === 9 || transactionArray.length === 12))\n throw new InvalidSerializedTransactionError({\n attributes: {\n chainId,\n nonce,\n maxPriorityFeePerGas,\n maxFeePerGas,\n gas,\n to,\n value,\n data,\n accessList,\n ...(transactionArray.length > 9\n ? {\n v,\n r,\n s,\n }\n : {}),\n },\n serializedTransaction,\n type: 'eip1559',\n })\n\n const transaction: TransactionSerializableEIP1559 = {\n chainId: hexToNumber(chainId as Hex),\n type: 'eip1559',\n }\n if (isHex(to) && to !== '0x') transaction.to = to\n if (isHex(gas) && gas !== '0x') transaction.gas = hexToBigInt(gas)\n if (isHex(data) && data !== '0x') transaction.data = data\n if (isHex(nonce) && nonce !== '0x') transaction.nonce = hexToNumber(nonce)\n if (isHex(value) && value !== '0x') transaction.value = hexToBigInt(value)\n if (isHex(maxFeePerGas) && maxFeePerGas !== '0x')\n transaction.maxFeePerGas = hexToBigInt(maxFeePerGas)\n if (isHex(maxPriorityFeePerGas) && maxPriorityFeePerGas !== '0x')\n transaction.maxPriorityFeePerGas = hexToBigInt(maxPriorityFeePerGas)\n if (accessList.length !== 0 && accessList !== '0x')\n transaction.accessList = parseAccessList(accessList as RecursiveArray)\n\n assertTransactionEIP1559(transaction)\n\n const signature =\n transactionArray.length === 12\n ? parseEIP155Signature(transactionArray)\n : undefined\n\n return { ...signature, ...transaction }\n}\n\nfunction parseTransactionEIP2930(\n serializedTransaction: TransactionSerializedEIP2930,\n): Omit &\n ({ chainId: number } | ({ chainId: number } & Signature)) {\n const transactionArray = fromRlp(\n `0x${serializedTransaction.slice(4)}` as Hex,\n 'hex',\n )\n\n const [chainId, nonce, gasPrice, gas, to, value, data, accessList, v, r, s] =\n transactionArray\n\n if (!(transactionArray.length === 8 || transactionArray.length === 11))\n throw new InvalidSerializedTransactionError({\n attributes: {\n chainId,\n nonce,\n gasPrice,\n gas,\n to,\n value,\n data,\n accessList,\n ...(transactionArray.length > 8\n ? {\n v,\n r,\n s,\n }\n : {}),\n },\n serializedTransaction,\n type: 'eip2930',\n })\n\n const transaction: TransactionSerializableEIP2930 = {\n chainId: hexToNumber(chainId as Hex),\n type: 'eip2930',\n }\n if (isHex(to) && to !== '0x') transaction.to = to\n if (isHex(gas) && gas !== '0x') transaction.gas = hexToBigInt(gas)\n if (isHex(data) && data !== '0x') transaction.data = data\n if (isHex(nonce) && nonce !== '0x') transaction.nonce = hexToNumber(nonce)\n if (isHex(value) && value !== '0x') transaction.value = hexToBigInt(value)\n if (isHex(gasPrice) && gasPrice !== '0x')\n transaction.gasPrice = hexToBigInt(gasPrice)\n if (accessList.length !== 0 && accessList !== '0x')\n transaction.accessList = parseAccessList(accessList as RecursiveArray)\n\n assertTransactionEIP2930(transaction)\n\n const signature =\n transactionArray.length === 11\n ? parseEIP155Signature(transactionArray)\n : undefined\n\n return { ...signature, ...transaction }\n}\n\nfunction parseTransactionLegacy(\n serializedTransaction: Hex,\n): Omit &\n ({ chainId?: number } | ({ chainId: number } & Signature)) {\n const transactionArray = fromRlp(serializedTransaction, 'hex')\n\n const [nonce, gasPrice, gas, to, value, data, chainIdOrV_, r, s] =\n transactionArray\n\n if (!(transactionArray.length === 6 || transactionArray.length === 9))\n throw new InvalidSerializedTransactionError({\n attributes: {\n nonce,\n gasPrice,\n gas,\n to,\n value,\n data,\n ...(transactionArray.length > 6\n ? {\n v: chainIdOrV_,\n r,\n s,\n }\n : {}),\n },\n serializedTransaction,\n type: 'legacy',\n })\n\n const transaction: TransactionSerializableLegacy = {\n type: 'legacy',\n }\n if (isHex(to) && to !== '0x') transaction.to = to\n if (isHex(gas) && gas !== '0x') transaction.gas = hexToBigInt(gas)\n if (isHex(data) && data !== '0x') transaction.data = data\n if (isHex(nonce) && nonce !== '0x') transaction.nonce = hexToNumber(nonce)\n if (isHex(value) && value !== '0x') transaction.value = hexToBigInt(value)\n if (isHex(gasPrice) && gasPrice !== '0x')\n transaction.gasPrice = hexToBigInt(gasPrice)\n\n assertTransactionLegacy(transaction)\n\n if (transactionArray.length === 6) return transaction\n\n const chainIdOrV =\n isHex(chainIdOrV_) && chainIdOrV_ !== '0x'\n ? hexToBigInt(chainIdOrV_ as Hex)\n : 0n\n\n if (s === '0x' && r === '0x') {\n if (chainIdOrV > 0) transaction.chainId = Number(chainIdOrV)\n return transaction\n }\n\n const v = chainIdOrV\n\n const chainId: number | undefined = Number((v - 35n) / 2n)\n if (chainId > 0) transaction.chainId = chainId\n else if (v !== 27n && v !== 28n) throw new InvalidLegacyVError({ v })\n\n transaction.v = v\n transaction.s = s as Hex\n transaction.r = r as Hex\n\n return transaction\n}\n\nfunction parseAccessList(accessList_: RecursiveArray): AccessList {\n const accessList: AccessList = []\n for (let i = 0; i < accessList_.length; i++) {\n const [address, storageKeys] = accessList_[i] as [Hex, Hex[]]\n\n if (!isAddress(address)) throw new InvalidAddressError({ address })\n\n accessList.push({\n address: address,\n storageKeys: storageKeys.map((key) => (isHash(key) ? key : trim(key))),\n })\n }\n return accessList\n}\n\nfunction parseEIP155Signature(\n transactionArray: RecursiveArray,\n): Signature & { yParity: number } {\n const signature = transactionArray.slice(-3)\n const v =\n signature[0] === '0x' || hexToBigInt(signature[0] as Hex) === 0n ? 27n : 28n\n return {\n r: padHex(signature[1] as Hex, { size: 32 }),\n s: padHex(signature[2] as Hex, { size: 32 }),\n v,\n yParity: v === 27n ? 0 : 1,\n }\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport {\n type EstimateGasParameters,\n estimateGas,\n} from '../../actions/public/estimateGas.js'\nimport { getBlock } from '../../actions/public/getBlock.js'\nimport { getGasPrice } from '../../actions/public/getGasPrice.js'\nimport { getTransactionCount } from '../../actions/public/getTransactionCount.js'\nimport type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'\nimport type { PublicClient } from '../../clients/createPublicClient.js'\nimport type { WalletClient } from '../../clients/createWalletClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { AccountNotFoundError } from '../../errors/account.js'\nimport { BaseError } from '../../errors/base.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type { Chain } from '../../types/chain.js'\n\nimport { assertRequest } from './assertRequest.js'\n\nexport type PrepareRequestParameters<\n TAccount extends Account | undefined = undefined,\n> = GetAccountParameter & {\n gas?: SendTransactionParameters['gas']\n gasPrice?: SendTransactionParameters['gasPrice']\n maxFeePerGas?: SendTransactionParameters['maxFeePerGas']\n maxPriorityFeePerGas?: SendTransactionParameters['maxPriorityFeePerGas']\n nonce?: SendTransactionParameters['nonce']\n}\n\nexport type PrepareRequestReturnType<\n TAccount extends Account | undefined = undefined,\n TParameters extends PrepareRequestParameters = PrepareRequestParameters,\n> = TParameters & {\n from: Address\n gas: SendTransactionParameters['gas']\n gasPrice?: SendTransactionParameters['gasPrice']\n maxFeePerGas?: SendTransactionParameters['maxFeePerGas']\n maxPriorityFeePerGas?: SendTransactionParameters['maxPriorityFeePerGas']\n nonce: SendTransactionParameters['nonce']\n}\n\nexport const defaultTip = 1_500_000_000n // 1.5 gwei\n\nexport async function prepareRequest<\n TChain extends Chain | undefined,\n TAccount extends Account | undefined,\n TParameters extends PrepareRequestParameters,\n>(\n client:\n | WalletClient\n | PublicClient,\n args: TParameters,\n): Promise> {\n const {\n account: account_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n } = args\n if (!account_) throw new AccountNotFoundError()\n const account = parseAccount(account_)\n\n const block = await getBlock(client, { blockTag: 'latest' })\n\n const request = { ...args, from: account.address }\n\n if (typeof nonce === 'undefined')\n request.nonce = await getTransactionCount(client, {\n address: account.address,\n blockTag: 'pending',\n })\n\n if (block.baseFeePerGas) {\n if (typeof gasPrice !== 'undefined')\n throw new BaseError('Chain does not support legacy `gasPrice`.')\n\n // EIP-1559 fees\n if (typeof maxFeePerGas === 'undefined') {\n // Set a buffer of 1.2x on top of the base fee to account for fluctuations.\n request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? defaultTip\n request.maxFeePerGas =\n (block.baseFeePerGas * 120n) / 100n + request.maxPriorityFeePerGas\n } else {\n if (\n typeof maxPriorityFeePerGas === 'undefined' &&\n maxFeePerGas < defaultTip\n )\n throw new BaseError(\n '`maxFeePerGas` cannot be less than the default `maxPriorityFeePerGas` (1.5 gwei).',\n )\n request.maxFeePerGas = maxFeePerGas\n request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? defaultTip\n }\n } else {\n if (\n typeof maxFeePerGas !== 'undefined' ||\n typeof maxPriorityFeePerGas !== 'undefined'\n )\n throw new BaseError('Chain does not support EIP-1559 fees.')\n\n // Legacy fees\n if (typeof gasPrice === 'undefined')\n // Set a buffer of 1.2x on top of the base fee to account for fluctuations.\n request.gasPrice = ((await getGasPrice(client)) * 120n) / 100n\n }\n\n if (typeof gas === 'undefined')\n request.gas = await estimateGas(client, {\n ...request,\n account: { address: account.address, type: 'json-rpc' },\n } as EstimateGasParameters)\n\n assertRequest(request)\n\n return request as PrepareRequestReturnType\n}\n","import { InvalidAddressError } from '../../errors/address.js'\nimport { InvalidStorageKeySizeError } from '../../errors/transaction.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { AccessList } from '../../types/transaction.js'\nimport { isAddress } from '../address/isAddress.js'\nimport { type RecursiveArray } from '../encoding/toRlp.js'\n\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(\n accessList?: AccessList,\n): RecursiveArray {\n if (!accessList || accessList.length === 0) return []\n\n const serializedAccessList: RecursiveArray = []\n for (let i = 0; i < accessList.length; i++) {\n const { address, storageKeys } = accessList[i]\n\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\n if (!isAddress(address)) {\n throw new InvalidAddressError({ address })\n }\n\n serializedAccessList.push([address, storageKeys])\n }\n return serializedAccessList\n}\n","import { InvalidLegacyVError } from '../../errors/transaction.js'\nimport type { Signature } from '../../types/misc.js'\nimport type {\n TransactionSerializable,\n TransactionSerializableEIP1559,\n TransactionSerializableEIP2930,\n TransactionSerializableLegacy,\n TransactionSerialized,\n TransactionSerializedEIP1559,\n TransactionSerializedEIP2930,\n TransactionSerializedLegacy,\n TransactionType,\n} from '../../types/transaction.js'\nimport { concatHex } from '../data/concat.js'\nimport { trim } from '../data/trim.js'\nimport { toHex } from '../encoding/toHex.js'\nimport { toRlp } from '../encoding/toRlp.js'\n\nimport {\n assertTransactionEIP1559,\n assertTransactionEIP2930,\n assertTransactionLegacy,\n} from './assertTransaction.js'\nimport {\n type GetTransactionType,\n getTransactionType,\n} from './getTransactionType.js'\nimport { serializeAccessList } from './serializeAccessList.js'\n\nexport type SerializedTransactionReturnType<\n TTransactionSerializable extends TransactionSerializable = TransactionSerializable,\n TTransactionType extends TransactionType = GetTransactionType,\n> = TransactionSerialized\n\nexport type SerializeTransactionFn<\n TTransactionSerializable extends TransactionSerializable = TransactionSerializable,\n> = typeof serializeTransaction\n\nexport function serializeTransaction<\n TTransactionSerializable extends TransactionSerializable,\n>(\n transaction: TTransactionSerializable,\n signature?: Signature,\n): SerializedTransactionReturnType {\n const type = getTransactionType(transaction) as GetTransactionType\n\n if (type === 'eip1559')\n return serializeTransactionEIP1559(\n transaction as TransactionSerializableEIP1559,\n signature,\n ) as SerializedTransactionReturnType\n\n if (type === 'eip2930')\n return serializeTransactionEIP2930(\n transaction as TransactionSerializableEIP2930,\n signature,\n ) as SerializedTransactionReturnType\n\n return serializeTransactionLegacy(\n transaction as TransactionSerializableLegacy,\n signature,\n ) as SerializedTransactionReturnType\n}\n\nfunction serializeTransactionEIP1559(\n transaction: TransactionSerializableEIP1559,\n signature?: Signature,\n): TransactionSerializedEIP1559 {\n const {\n chainId,\n gas,\n nonce,\n to,\n value,\n maxFeePerGas,\n maxPriorityFeePerGas,\n accessList,\n data,\n } = transaction\n\n assertTransactionEIP1559(transaction)\n\n const serializedAccessList = serializeAccessList(accessList)\n\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 ]\n\n if (signature)\n serializedTransaction.push(\n signature.v === 27n ? '0x' : toHex(1), // yParity\n trim(signature.r),\n trim(signature.s),\n )\n\n return concatHex([\n '0x02',\n toRlp(serializedTransaction),\n ]) as TransactionSerializedEIP1559\n}\n\nfunction serializeTransactionEIP2930(\n transaction: TransactionSerializableEIP2930,\n signature?: Signature,\n): TransactionSerializedEIP2930 {\n const { chainId, gas, data, nonce, to, value, accessList, gasPrice } =\n transaction\n\n assertTransactionEIP2930(transaction)\n\n const serializedAccessList = serializeAccessList(accessList)\n\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 ]\n\n if (signature)\n serializedTransaction.push(\n signature.v === 27n ? '0x' : toHex(1), // yParity\n signature.r,\n signature.s,\n )\n\n return concatHex([\n '0x01',\n toRlp(serializedTransaction),\n ]) as TransactionSerializedEIP2930\n}\n\nfunction serializeTransactionLegacy(\n transaction: TransactionSerializableLegacy,\n signature?: Signature,\n): TransactionSerializedLegacy {\n const { chainId = 0, gas, data, nonce, to, value, gasPrice } = transaction\n\n assertTransactionLegacy(transaction)\n\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\n if (signature) {\n let v = 27n + (signature.v === 27n ? 0n : 1n)\n if (chainId > 0) v = BigInt(chainId * 2) + BigInt(35n + signature.v - 27n)\n else if (signature.v !== v)\n throw new InvalidLegacyVError({ v: signature.v })\n\n serializedTransaction = [\n ...serializedTransaction,\n toHex(v),\n signature.r,\n signature.s,\n ]\n } else if (chainId > 0) {\n serializedTransaction = [\n ...serializedTransaction,\n toHex(chainId),\n '0x',\n '0x',\n ]\n }\n\n return toRlp(serializedTransaction)\n}\n","import type { TypedData, TypedDataParameter, TypedDataType } from 'abitype'\n\nimport { BytesSizeMismatchError } from '../errors/abi.js'\nimport { InvalidAddressError } from '../errors/address.js'\nimport type { Hex } from '../types/misc.js'\nimport type { TypedDataDefinition } from '../types/typedData.js'\n\nimport { isAddress } from './address/isAddress.js'\nimport { size } from './data/size.js'\nimport { numberToHex } from './encoding/toHex.js'\nimport { bytesRegex, integerRegex } from './regex.js'\n\nexport function validateTypedData<\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string = string,\n>({\n domain,\n message,\n primaryType,\n types: types_,\n}: TypedDataDefinition) {\n const types = types_ as TypedData\n\n const validateData = (\n struct: readonly TypedDataParameter[],\n value_: Record,\n ) => {\n for (const param of struct) {\n const { name, type: type_ } = param\n const type = type_ as TypedDataType\n const value = value_[name]\n\n const integerMatch = type.match(integerRegex)\n if (\n integerMatch &&\n (typeof value === 'number' || typeof value === 'bigint')\n ) {\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: parseInt(size_) / 8,\n })\n }\n\n if (type === 'address' && typeof value === 'string' && !isAddress(value))\n throw new InvalidAddressError({ address: value })\n\n const bytesMatch = type.match(bytesRegex)\n if (bytesMatch) {\n const [_type, size_] = bytesMatch\n if (size_ && size(value as Hex) !== parseInt(size_))\n throw new BytesSizeMismatchError({\n expectedSize: parseInt(size_),\n givenSize: size(value as Hex),\n })\n }\n\n const struct = types[type]\n if (struct) validateData(struct, value as Record)\n }\n }\n\n // Validate domain types.\n if (types['EIP712Domain'] && domain)\n validateData(types['EIP712Domain'], domain)\n\n if (primaryType !== 'EIP712Domain') {\n // Validate message types.\n const type = types[primaryType]\n validateData(type, message as Record)\n }\n}\n","const size = 256\nlet index = size\nlet buffer: string\n\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","import { etherUnits } from '../../constants/unit.js'\n\nimport { formatUnits } from './formatUnits.js'\n\nexport function formatEther(wei: bigint, unit: 'wei' | 'gwei' = 'wei') {\n return formatUnits(wei, etherUnits[unit])\n}\n","import { gweiUnits } from '../../constants/unit.js'\n\nimport { formatUnits } from './formatUnits.js'\n\nexport function formatGwei(wei: bigint, unit: 'wei' = 'wei') {\n return formatUnits(wei, gweiUnits[unit])\n}\n","export function formatUnits(value: bigint, decimals: number) {\n let display = value.toString()\n\n const negative = display.startsWith('-')\n if (negative) display = display.slice(1)\n\n display = display.padStart(decimals, '0')\n\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'}${\n fraction ? `.${fraction}` : ''\n }`\n}\n","import { etherUnits } from '../../constants/unit.js'\n\nimport { parseUnits } from './parseUnits.js'\n\nexport function parseEther(ether: string, unit: 'wei' | 'gwei' = 'wei') {\n return parseUnits(ether, etherUnits[unit])\n}\n","import { gweiUnits } from '../../constants/unit.js'\n\nimport { parseUnits } from './parseUnits.js'\n\nexport function parseGwei(ether: string, unit: 'wei' = 'wei') {\n return parseUnits(ether, gweiUnits[unit])\n}\n","export function parseUnits(value: string, decimals: number) {\n let [integer, fraction = '0'] = value.split('.')\n\n const negative = integer.startsWith('-')\n if (negative) integer = integer.slice(1)\n\n // trim leading zeros.\n fraction = fraction.replace(/(0+)$/, '')\n\n // round off if the fraction is larger than the number of decimals.\n if (decimals === 0) {\n integer = `${Math.round(Number(`${integer}.${fraction}`))}`\n fraction = ''\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\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 fraction = `${left}${rounded}`\n\n if (fraction.length > decimals) {\n fraction = fraction.slice(1)\n integer = `${BigInt(integer) + 1n}`\n }\n\n fraction = fraction.slice(0, decimals)\n } else {\n fraction = fraction.padEnd(decimals, '0')\n }\n\n return BigInt(`${negative ? '-' : ''}${integer}${fraction}`)\n}\n","export async function wait(time: number) {\n return new Promise((res) => setTimeout(res, time))\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(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}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(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}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(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}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"42\":\"f83f0e18\",\"83\":\"c6cabbd1\",\"94\":\"f46b0bde\",\"101\":\"199636de\",\"113\":\"1c568d15\",\"128\":\"bad4ede8\",\"170\":\"c8d93fa7\",\"178\":\"96706f1a\",\"180\":\"d13dd48c\",\"208\":\"f83de211\",\"217\":\"283f405c\",\"222\":\"8c5bfde6\",\"271\":\"3dc768df\",\"320\":\"d8071291\",\"333\":\"bfde9406\",\"397\":\"116eb294\",\"412\":\"f2759980\",\"419\":\"b6ba0ac1\",\"425\":\"86b9754c\",\"439\":\"d8d864b8\",\"454\":\"772521c3\",\"462\":\"484bf422\",\"473\":\"8b72d6b7\",\"479\":\"f3f38153\",\"549\":\"fccb5e18\",\"557\":\"870f4eb0\",\"592\":\"e8fde05a\",\"596\":\"25979825\",\"621\":\"26e4c028\",\"684\":\"b6285cb5\",\"765\":\"80b54874\",\"772\":\"3dbd131e\",\"774\":\"34c2938f\",\"778\":\"b1d18dd6\",\"841\":\"4102ce4a\",\"854\":\"62279ffd\",\"856\":\"4ba19a8b\",\"872\":\"a1433f5f\",\"875\":\"239bfef2\",\"876\":\"d2cbb14f\",\"883\":\"addb5956\",\"914\":\"9a5a69d1\",\"943\":\"38db8cdf\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"cues:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcues\"] = self[\"webpackChunkcues\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on

,\n * useSubmit(), , etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | DataFunctionValue;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n DeferredData,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n V7_MutationFormMethod,\n V7_FormMethod,\n HTMLFormMethod,\n MutationFormMethod,\n MapRoutePropertiesFunction,\n} from \"./utils\";\nimport {\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_normalizeFormMethod: boolean;\n v7_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_normalizeFormMethod: false,\n v7_prependBasename: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = new Map();\n blockerFunctions.clear();\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n });\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath })\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error);\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher = getSubmittingFetcher(submission, existingFetcher);\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher = getLoadingFetcher(submission);\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n submission,\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher = getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (ABSOLUTE_URL_REGEX.test(redirect.location) && isBrowser) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename = stripBasename(url.pathname, basename) == null;\n\n if (routerWindow.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let activeSubmission =\n submission || getSubmissionFromNavigation(state.navigation);\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else if (isFetchActionRedirect) {\n // For a fetch action redirect, we kick off a new loading navigation\n // without the fetcher submission, but we send it along for shouldRevalidate\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: getLoadingNavigation(redirectLocation),\n fetcherSubmission: activeSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a submission, we will preserve it through the redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n activeSubmission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => createUseMatchesMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId != null && relative !== \"path\") {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route. When using relative:path,\n // fromRouteId is ignored since that is always relative to the current\n // location path\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: RouterNavigateOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They only set `defaultShouldRevalidate` on\n // explicit revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n //\n // They automatically revalidate without even calling shouldRevalidate if:\n // - They were cancelled\n // - They're in the middle of their first load and therefore this is still\n // an initial load and not a revalidation\n //\n // If neither of those is true, then they _always_ check shouldRevalidate\n let fetcher = state.fetchers.get(key);\n let isPerformingInitialLoad =\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined &&\n // If a fetcher.load redirected then it'll be \"loading\" without any data\n // so ensure we're not processing the redirect from this fetcher\n !fetchRedirectIds.has(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate =\n cancelledFetcherLoads.includes(key) ||\n isPerformingInitialLoad ||\n shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n IDLE_BLOCKER,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let [blocker, setBlocker] = React.useState(IDLE_BLOCKER);\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlocker(router.getBlocker(key, blockerFunction));\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router, setBlocker, setBlockerKey, blockerFunction]);\n\n // Prefer the blocker from state since DataRouterContext is memoized so this\n // ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : blocker;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n To,\n LazyRouteFunction,\n RelativeRoutingType,\n RouterState,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n RouteContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n useRoutesImpl,\n useLocation,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n future?: FutureConfig;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: RouterState) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a