From 74077765c9117e3bfdc639191bf39e32f9265f16 Mon Sep 17 00:00:00 2001 From: Will Cory Date: Sun, 29 Oct 2023 13:06:07 -0700 Subject: [PATCH] :recycle: chore: Migrate resolutions to Effect (#615) ## Description Migrate resolutions to using effect.ts Replace solc mocked test with real fixture test ## Testing Replace solc mocked test with real fixture test in @evmts/solc/src/compiler ## Additional Information - [ ] I read the [contributing docs](../docs/contributing.md) (if this is your first contribution) Your ENS/address: --------- Co-authored-by: Will Cory --- blockexplorer/package.json | 4 +- bun.lockb | Bin 1131128 -> 1130120 bytes bundlers/bun/package.json | 28 +- bundlers/bundler/package.json | 20 +- bundlers/bundler/src/bundler.spec.ts | 97 - bundlers/esbuild/package.json | 30 +- bundlers/rollup/package.json | 30 +- bundlers/rspack/package.json | 28 +- bundlers/unplugin/package.json | 22 +- bundlers/vite/package.json | 30 +- bundlers/webpack/package.json | 28 +- config/package.json | 4 +- config/src/config/validateUserConfig.js | 6 +- config/src/tsconfig/loadTsConfig.js | 12 +- effect/package.json | 4 +- effect/src/createRequireEffect.js | 6 +- .../{ccip-9658a292.js => ccip-41171db5.js} | 2 +- ...{events-43ea8283.js => events-d049dff1.js} | 2 +- .../{http-1236d3a2.js => http-ec971fc9.js} | 2 +- .../{index-22759f61.js => index-2e8e27db.js} | 2 +- .../{index-168e24fe.js => index-57f94c53.js} | 2 +- .../{index-3b7ee9e6.js => index-8bf9f197.js} | 2 +- .../{index-c43d377d.js => index-90f155ac.js} | 120 +- .../{index-303d7bf0.js => index-d1e546a8.js} | 2 +- .../{index-99447ffe.js => index-f89795f2.js} | 2 +- ...ex.es-e00ac5aa.js => index.es-04947dcd.js} | 4 +- examples/vite/dist/index.html | 2 +- .../vite/src/contracts/WagmiMintExample.sol | 2 +- resolutions/CHANGELOG.md | 361 -- resolutions/docs/README.md | 2 +- .../{ModuleInfo.md => types.ModuleInfo.md} | 23 +- resolutions/docs/modules.md | 145 +- resolutions/docs/modules/moduleFactory.md | 83 + resolutions/docs/modules/resolveImports.md | 69 + resolutions/docs/modules/types.md | 72 + resolutions/package.json | 11 +- .../__snapshots__/moduleFactory.spec.ts.snap | 81 + resolutions/src/fixtures/basic/Contract.sol | 105 + resolutions/src/fixtures/withlib/Contract.sol | 20 + .../withlib/lib/mylib/BaseContract.sol | 15 + .../src/fixtures/withremappings/Contract.sol | 20 + .../withremappings/lib/mylib/BaseContract.sol | 15 + .../fixtures/withremappings/remappings.json | 3 + resolutions/src/importResolution/README.md | 28 - resolutions/src/importResolution/index.js | 2 - .../src/importResolution/moduleFactory.js | 105 - .../importResolution/moduleFactory.spec.ts | 121 - .../src/importResolution/moduleFactorySync.js | 102 - .../moduleFactorySync.spec.ts | 121 - .../src/importResolution/resolveImportPath.js | 44 - .../resolveImportPath.spec.ts | 46 - .../src/importResolution/resolveImports.js | 30 - .../importResolution/resolveImports.spec.ts | 71 - resolutions/src/index.js | 12 +- resolutions/src/moduleFactory.js | 94 + resolutions/src/moduleFactory.spec.ts | 92 + resolutions/src/resolveImports.js | 88 + resolutions/src/resolveImports.spec.ts | 131 + resolutions/src/types.ts | 10 +- resolutions/src/utils/formatPath.js | 6 + resolutions/src/utils/index.js | 2 +- resolutions/src/utils/invariant.d.ts | 9 + resolutions/src/utils/invariant.js | 15 +- resolutions/src/utils/isImportLocal.js | 5 + resolutions/src/utils/isRelativeSolidity.js | 5 + resolutions/src/utils/isSolidity.js | 5 + resolutions/src/utils/resolveImportPath.js | 104 + .../src/utils/resolveImportPath.spec.ts | 60 + resolutions/src/utils/resolvePromise.js | 53 - resolutions/src/utils/resolvePromise.spec.ts | 145 - resolutions/src/utils/resolveSafe.js | 91 + resolutions/src/utils/resolveSafe.spec.ts | 79 + resolutions/src/utils/safeFao.js | 103 + resolutions/src/utils/safeFao.spec.ts | 93 + resolutions/src/utils/updateImportPath.js | 23 + .../src/utils/updateImportPath.spec.ts | 84 + resolutions/typedoc.json | 6 +- resolutions/vitest.config.ts | 6 +- runtime/CHANGELOG.md | 361 -- runtime/README.md | 8 +- runtime/docs/README.md | 8 +- runtime/package.json | 2 +- schemas/package.json | 4 +- solc/docs/interfaces/types.ModuleInfo.md | 71 - solc/docs/modules/resolveArtifacts.md | 4 +- solc/docs/modules/resolveArtifactsSync.md | 4 +- solc/docs/modules/solc.md | 4 +- solc/docs/modules/types.md | 27 +- solc/package.json | 11 +- .../compileContracts.spec.ts.snap | 2923 +++++++++++++++++ .../compileContractsSync.spec.ts.snap | 2923 +++++++++++++++++ solc/src/compiler/compileContracts.js | 40 +- solc/src/compiler/compileContracts.spec.ts | 370 +-- solc/src/compiler/compileContractsSync.js | 38 +- .../src/compiler/compileContractsSync.spec.ts | 603 +--- solc/src/fixtures/basic/Contract.sol | 106 + solc/src/fixtures/withlib/Contract.sol | 20 + .../withlib/lib/mylib/BaseContract.sol | 15 + solc/src/fixtures/withremappings/Contract.sol | 20 + .../withremappings/lib/mylib/BaseContract.sol | 15 + .../fixtures/withremappings/remappings.json | 3 + solc/src/resolveArtifactsSync.spec.ts | 20 - solc/src/types.ts | 14 +- solc/vitest.config.ts | 8 +- state/coverage/coverage-final.json | 2 +- state/types/AppState.d.ts | 1 + state/types/BaseState.d.ts | 1 + state/types/BaseState.spec.d.ts | 1 + state/types/index.d.ts | 1 + ts-plugin/package.json | 2 +- viem-effect/package.json | 4 +- 111 files changed, 8051 insertions(+), 3092 deletions(-) rename examples/vite/dist/assets/{ccip-9658a292.js => ccip-41171db5.js} (97%) rename examples/vite/dist/assets/{events-43ea8283.js => events-d049dff1.js} (98%) rename examples/vite/dist/assets/{http-1236d3a2.js => http-ec971fc9.js} (99%) rename examples/vite/dist/assets/{index-22759f61.js => index-2e8e27db.js} (99%) rename examples/vite/dist/assets/{index-168e24fe.js => index-57f94c53.js} (99%) rename examples/vite/dist/assets/{index-3b7ee9e6.js => index-8bf9f197.js} (99%) rename examples/vite/dist/assets/{index-c43d377d.js => index-90f155ac.js} (54%) rename examples/vite/dist/assets/{index-303d7bf0.js => index-d1e546a8.js} (99%) rename examples/vite/dist/assets/{index-99447ffe.js => index-f89795f2.js} (98%) rename examples/vite/dist/assets/{index.es-e00ac5aa.js => index.es-04947dcd.js} (99%) delete mode 100644 resolutions/CHANGELOG.md rename resolutions/docs/interfaces/{ModuleInfo.md => types.ModuleInfo.md} (65%) create mode 100644 resolutions/docs/modules/moduleFactory.md create mode 100644 resolutions/docs/modules/resolveImports.md create mode 100644 resolutions/docs/modules/types.md create mode 100644 resolutions/src/__snapshots__/moduleFactory.spec.ts.snap create mode 100644 resolutions/src/fixtures/basic/Contract.sol create mode 100644 resolutions/src/fixtures/withlib/Contract.sol create mode 100644 resolutions/src/fixtures/withlib/lib/mylib/BaseContract.sol create mode 100644 resolutions/src/fixtures/withremappings/Contract.sol create mode 100644 resolutions/src/fixtures/withremappings/lib/mylib/BaseContract.sol create mode 100644 resolutions/src/fixtures/withremappings/remappings.json delete mode 100644 resolutions/src/importResolution/README.md delete mode 100644 resolutions/src/importResolution/index.js delete mode 100644 resolutions/src/importResolution/moduleFactory.js delete mode 100644 resolutions/src/importResolution/moduleFactory.spec.ts delete mode 100644 resolutions/src/importResolution/moduleFactorySync.js delete mode 100644 resolutions/src/importResolution/moduleFactorySync.spec.ts delete mode 100644 resolutions/src/importResolution/resolveImportPath.js delete mode 100644 resolutions/src/importResolution/resolveImportPath.spec.ts delete mode 100644 resolutions/src/importResolution/resolveImports.js delete mode 100644 resolutions/src/importResolution/resolveImports.spec.ts create mode 100644 resolutions/src/moduleFactory.js create mode 100644 resolutions/src/moduleFactory.spec.ts create mode 100644 resolutions/src/resolveImports.js create mode 100644 resolutions/src/resolveImports.spec.ts create mode 100644 resolutions/src/utils/resolveImportPath.js create mode 100644 resolutions/src/utils/resolveImportPath.spec.ts delete mode 100644 resolutions/src/utils/resolvePromise.js delete mode 100644 resolutions/src/utils/resolvePromise.spec.ts create mode 100644 resolutions/src/utils/resolveSafe.js create mode 100644 resolutions/src/utils/resolveSafe.spec.ts create mode 100644 resolutions/src/utils/safeFao.js create mode 100644 resolutions/src/utils/safeFao.spec.ts create mode 100644 resolutions/src/utils/updateImportPath.js create mode 100644 resolutions/src/utils/updateImportPath.spec.ts delete mode 100644 runtime/CHANGELOG.md delete mode 100644 solc/docs/interfaces/types.ModuleInfo.md create mode 100644 solc/src/compiler/__snapshots__/compileContracts.spec.ts.snap create mode 100644 solc/src/compiler/__snapshots__/compileContractsSync.spec.ts.snap create mode 100644 solc/src/fixtures/basic/Contract.sol create mode 100644 solc/src/fixtures/withlib/Contract.sol create mode 100644 solc/src/fixtures/withlib/lib/mylib/BaseContract.sol create mode 100644 solc/src/fixtures/withremappings/Contract.sol create mode 100644 solc/src/fixtures/withremappings/lib/mylib/BaseContract.sol create mode 100644 solc/src/fixtures/withremappings/remappings.json diff --git a/blockexplorer/package.json b/blockexplorer/package.json index e8f95b7168..a4823c4f9b 100644 --- a/blockexplorer/package.json +++ b/blockexplorer/package.json @@ -56,9 +56,9 @@ "typecheck": "bun run tsc --noEmit" }, "dependencies": { - "@effect/schema": "^0.45.5", + "@effect/schema": "^0.46.2", "@evmts/schemas": "workspace:^", - "effect": "2.0.0-next.50" + "effect": "^2.0.0-next.52" }, "devDependencies": { "@evmts/tsconfig": "workspace:^", diff --git a/bun.lockb b/bun.lockb index ecab67044b53b0fdb3878e7eb903888d3a811dd2..a1742f23e0a1b6727b845cda03c6a7b8df72fde6 100755 GIT binary patch delta 223796 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

(i`MWxMFq!>t32G~@Z5Y%q)#(@KxPaIl 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

e?3EE-)rhZYIJFdbKWJI#Pz`@W!|j#vhk>&I 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�wiWk~VZt%$l4ND)R<(xF&#S7a)=PZQcsQLaL?{? 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

^=4#%l^eA#^UoucTmtsI8Y)Wn7=w} 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"], - "keywords": ["bun", "plugin", "solidity", "sol", "evmts"], + "keywords": [ + "bun", + "plugin", + "solidity", + "sol", + "evmts" + ], "repository": { "type": "git", "url": "https://github.com/evmts/evmts-monorepo.git", "directory": "packages/plugin" }, "license": "MIT", + "contributors": [ + "Will Cory " + ], "type": "module", - "main": "dist/index.cjs", - "module": "src/index.js", - "types": "types/index.d.ts", "exports": { ".": { "import": "./src/index.js", @@ -24,15 +29,22 @@ }, "./package.json": "./package.json" }, - "files": ["dist", "src", "types"], + "main": "dist/index.cjs", + "module": "src/index.js", + "types": "types/index.d.ts", + "files": [ + "dist", + "src", + "types" + ], "scripts": { "build": "nx run-many --targets=build:dist,build:types --projects=@evmts/bun-plugin ", "build:dist": "bun run tsup", "build:types": "bun run tsc --emitDeclarationOnly --declaration --declarationMap", "clean": "rm -rf node_modules && rm -rf artifacts && rm -rf dist && rm -rf cache", - "generate:docs": "bun run typedoc", "format": "rome format . --write", "format:check": "rome format .", + "generate:docs": "bun run typedoc", "lint": "rome check . --apply-unsafe", "lint:check": "rome check . --verbose", "test": "vitest --coverage", @@ -43,7 +55,7 @@ "dependencies": { "@evmts/bundler": "workspace:^", "@evmts/config": "workspace:^", - "effect": "^2.0.0-next.50" + "effect": "^2.0.0-next.52" }, "devDependencies": { "@evmts/core": "workspace:^", diff --git a/bundlers/bundler/package.json b/bundlers/bundler/package.json index 46b70d0134..ecd88f85eb 100644 --- a/bundlers/bundler/package.json +++ b/bundlers/bundler/package.json @@ -18,11 +18,10 @@ "directory": "bundlers/bundler" }, "license": "MIT", - "contributors": ["Will Cory "], + "contributors": [ + "Will Cory " + ], "type": "module", - "main": "dist/index.cjs", - "module": "src/index.js", - "types": "types/src/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -32,7 +31,14 @@ "default": "./dist/index.cjs" } }, - "files": ["dist", "types", "src"], + "main": "dist/index.cjs", + "module": "src/index.js", + "types": "types/src/index.d.ts", + "files": [ + "dist", + "types", + "src" + ], "scripts": { "build": "nx run-many --targets=build:dist,build:types --projects=@evmts/bundler ", "build:dist": "bun run tsup", @@ -55,16 +61,16 @@ "@evmts/tsconfig": "workspace:^", "@types/node": "^20.7.2", "@types/resolve": "^1.20.3", - "effect": "2.0.0-next.50", + "effect": "^2.0.0-next.52", "glob": "^10.3.10", "resolve": "^1.22.6", "solidity-ast": "^0.4.52", "unplugin": "^1.5.0" }, "devDependencies": { + "@evmts/core": "workspace:^", "@vitest/coverage-v8": "^0.34.6", "@vitest/ui": "^0.34.6", - "@evmts/core": "workspace:^", "abitype": "^0.9.8", "rome": "^12.1.3", "solc": "0.8.21", diff --git a/bundlers/bundler/src/bundler.spec.ts b/bundlers/bundler/src/bundler.spec.ts index c251347171..967b1aafc0 100644 --- a/bundlers/bundler/src/bundler.spec.ts +++ b/bundlers/bundler/src/bundler.spec.ts @@ -32,15 +32,6 @@ contract TestContract {}`, code: `import { TestContract } from 'module2' contract TestContract {}`, importedIds: ['module2'], - resolutions: [ - { - id: 'id', - rawCode: 'contract TestContract2 {}', - code: 'contract TestContract2 {}', - importedIds: ['module2'], - resolutions: [], - }, - ], }, } @@ -314,17 +305,6 @@ describe(bundler.name, () => { ], "rawCode": "import { TestContract } from 'module2' contract TestContract {}", - "resolutions": [ - { - "code": "contract TestContract2 {}", - "id": "id", - "importedIds": [ - "module2", - ], - "rawCode": "contract TestContract2 {}", - "resolutions": [], - }, - ], }, }, "solcInput": undefined, @@ -399,17 +379,6 @@ describe(bundler.name, () => { ], "rawCode": "import { TestContract } from 'module2' contract TestContract {}", - "resolutions": [ - { - "code": "contract TestContract2 {}", - "id": "id", - "importedIds": [ - "module2", - ], - "rawCode": "contract TestContract2 {}", - "resolutions": [], - }, - ], }, }, "solcInput": { @@ -490,17 +459,6 @@ describe(bundler.name, () => { ], "rawCode": "import { TestContract } from 'module2' contract TestContract {}", - "resolutions": [ - { - "code": "contract TestContract2 {}", - "id": "id", - "importedIds": [ - "module2", - ], - "rawCode": "contract TestContract2 {}", - "resolutions": [], - }, - ], }, }, "solcInput": { @@ -581,17 +539,6 @@ describe(bundler.name, () => { ], "rawCode": "import { TestContract } from 'module2' contract TestContract {}", - "resolutions": [ - { - "code": "contract TestContract2 {}", - "id": "id", - "importedIds": [ - "module2", - ], - "rawCode": "contract TestContract2 {}", - "resolutions": [], - }, - ], }, }, "solcInput": { @@ -672,17 +619,6 @@ describe(bundler.name, () => { ], "rawCode": "import { TestContract } from 'module2' contract TestContract {}", - "resolutions": [ - { - "code": "contract TestContract2 {}", - "id": "id", - "importedIds": [ - "module2", - ], - "rawCode": "contract TestContract2 {}", - "resolutions": [], - }, - ], }, }, "solcInput": { @@ -763,17 +699,6 @@ describe(bundler.name, () => { ], "rawCode": "import { TestContract } from 'module2' contract TestContract {}", - "resolutions": [ - { - "code": "contract TestContract2 {}", - "id": "id", - "importedIds": [ - "module2", - ], - "rawCode": "contract TestContract2 {}", - "resolutions": [], - }, - ], }, }, "solcInput": { @@ -854,17 +779,6 @@ describe(bundler.name, () => { ], "rawCode": "import { TestContract } from 'module2' contract TestContract {}", - "resolutions": [ - { - "code": "contract TestContract2 {}", - "id": "id", - "importedIds": [ - "module2", - ], - "rawCode": "contract TestContract2 {}", - "resolutions": [], - }, - ], }, }, "solcInput": { @@ -945,17 +859,6 @@ describe(bundler.name, () => { ], "rawCode": "import { TestContract } from 'module2' contract TestContract {}", - "resolutions": [ - { - "code": "contract TestContract2 {}", - "id": "id", - "importedIds": [ - "module2", - ], - "rawCode": "contract TestContract2 {}", - "resolutions": [], - }, - ], }, }, "solcInput": { diff --git a/bundlers/esbuild/package.json b/bundlers/esbuild/package.json index d8aa71ef44..3e7b65cdd0 100644 --- a/bundlers/esbuild/package.json +++ b/bundlers/esbuild/package.json @@ -1,20 +1,25 @@ { "name": "@evmts/esbuild-plugin", "version": "0.11.2", - "contributors": ["Will Cory "], "private": false, "description": "A esbuild plugin for evmts", - "keywords": ["esbuild", "plugin", "solidity", "sol", "evmts"], + "keywords": [ + "esbuild", + "plugin", + "solidity", + "sol", + "evmts" + ], "repository": { "type": "git", "url": "https://github.com/evmts/evmts-monorepo.git", "directory": "plugins/esbuild-plugin" }, "license": "MIT", + "contributors": [ + "Will Cory " + ], "type": "module", - "main": "dist/index.cjs", - "module": "src/index.js", - "types": "types/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -24,7 +29,14 @@ "default": "./dist/index.cjs" } }, - "files": ["dist", "types", "src"], + "main": "dist/index.cjs", + "module": "src/index.js", + "types": "types/index.d.ts", + "files": [ + "dist", + "types", + "src" + ], "scripts": { "build": "nx run-many --targets=build:dist,build:types --projects=@evmts/@evmts/esbuild-plugin ", "build:dist": "bun run tsup", @@ -36,8 +48,8 @@ "lint": "rome check . --apply-unsafe", "lint:check": "rome check . --verbose", "test": "vitest --coverage", - "test:run": "vitest run", "test:coverage": "vitest run --coverage", + "test:run": "vitest run", "test:ui": "vitest --ui" }, "dependencies": { @@ -47,10 +59,10 @@ "@evmts/tsconfig": "workspace:^", "@vitest/coverage-v8": "^0.34.6", "@vitest/ui": "^0.34.6", - "typedoc": "^0.25.2", - "typedoc-plugin-markdown": "^3.16.0", "rome": "^12.1.3", "tsup": "^7.2.0", + "typedoc": "^0.25.2", + "typedoc-plugin-markdown": "^3.16.0", "typescript": "^5.2.2", "vitest": "^0.34.6" }, diff --git a/bundlers/rollup/package.json b/bundlers/rollup/package.json index 0996505cc4..77b048c72a 100644 --- a/bundlers/rollup/package.json +++ b/bundlers/rollup/package.json @@ -1,20 +1,25 @@ { "name": "@evmts/rollup-plugin", "version": "0.11.2", - "contributors": ["Will Cory "], "private": false, "description": "A generic plugin that can be used in esbuild, webpack, vite, and rollup", - "keywords": ["rollup", "plugin", "solidity", "sol", "evmts"], + "keywords": [ + "rollup", + "plugin", + "solidity", + "sol", + "evmts" + ], "repository": { "type": "git", "url": "https://github.com/evmts/evmts-monorepo.git", "directory": "plugins/rollup-plugin" }, "license": "MIT", + "contributors": [ + "Will Cory " + ], "type": "module", - "main": "dist/index.cjs", - "module": "src/index.js", - "types": "types/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -24,18 +29,25 @@ "types": "./types/index.d.ts" } }, - "files": ["dist", "types", "src"], + "main": "dist/index.cjs", + "module": "src/index.js", + "types": "types/index.d.ts", + "files": [ + "dist", + "types", + "src" + ], "scripts": { "//test": "vitest", "//test:run": "vitest run", "//test:ui": "vitest --ui", - "generate:docs": "bun run typedoc", "build": "nx run-many --targets=build:dist,build:types --projects=@evmts/rollup-plugin ", "build:dist": "bun run tsup", "build:types": "bun run tsc --emitDeclarationOnly --declaration --declarationMap", "clean": "rm -rf node_modules && rm -rf artifacts && rm -rf dist && rm -rf cache", "format": "rome format . --write", "format:check": "rome format .", + "generate:docs": "bun run typedoc", "lint": "rome check . --apply-unsafe", "lint:check": "rome check . --verbose" }, @@ -44,11 +56,11 @@ }, "devDependencies": { "@evmts/tsconfig": "workspace:^", - "typedoc": "^0.25.2", - "typedoc-plugin-markdown": "^3.16.0", "@vitest/ui": "^0.34.6", "rome": "^12.1.3", "tsup": "^7.2.0", + "typedoc": "^0.25.2", + "typedoc-plugin-markdown": "^3.16.0", "typescript": "^5.2.2", "vitest": "^0.34.6" }, diff --git a/bundlers/rspack/package.json b/bundlers/rspack/package.json index 3bc1adbb52..87f34112a3 100644 --- a/bundlers/rspack/package.json +++ b/bundlers/rspack/package.json @@ -2,19 +2,24 @@ "name": "@evmts/rspack-plugin", "version": "0.11.2", "private": false, - "contributors": ["Will Cory "], "description": "An (experimental) rspack plugin for evmts", - "keywords": ["rspack", "plugin", "solidity", "sol", "evmts"], + "keywords": [ + "rspack", + "plugin", + "solidity", + "sol", + "evmts" + ], "repository": { "type": "git", "url": "https://github.com/evmts/evmts-monorepo.git", "directory": "bundlers/rspack" }, "license": "MIT", + "contributors": [ + "Will Cory " + ], "type": "module", - "main": "dist/index.cjs", - "module": "src/index.js", - "types": "types/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -24,7 +29,14 @@ "types": "./types/index.d.ts" } }, - "files": ["dist", "types", "src"], + "main": "dist/index.cjs", + "module": "src/index.js", + "types": "types/index.d.ts", + "files": [ + "dist", + "types", + "src" + ], "scripts": { "build": "nx run-many --targets=build:dist,build:types --projects=@evmts/rspack-plugin ", "build:dist": "bun run tsup", @@ -45,10 +57,10 @@ "devDependencies": { "@evmts/tsconfig": "workspace:^", "@vitest/ui": "^0.34.6", - "typedoc": "^0.25.2", - "typedoc-plugin-markdown": "^3.16.0", "rome": "^12.1.3", "tsup": "^7.2.0", + "typedoc": "^0.25.2", + "typedoc-plugin-markdown": "^3.16.0", "typescript": "^5.2.2", "vitest": "^0.34.6" }, diff --git a/bundlers/unplugin/package.json b/bundlers/unplugin/package.json index adc748c2b8..64daebcf5f 100644 --- a/bundlers/unplugin/package.json +++ b/bundlers/unplugin/package.json @@ -18,11 +18,10 @@ "directory": "bundlers/unplugin" }, "license": "MIT", - "contributors": ["Will Cory "], + "contributors": [ + "Will Cory " + ], "type": "module", - "main": "dist/index.cjs", - "module": "src/index.js", - "types": "types/src/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -32,7 +31,14 @@ "default": "./dist/index.cjs" } }, - "files": ["dist", "types", "src"], + "main": "dist/index.cjs", + "module": "src/index.js", + "types": "types/src/index.d.ts", + "files": [ + "dist", + "types", + "src" + ], "scripts": { "build": "nx run-many --targets=build:dist,build:types --projects=@evmts/unplugin ", "build:dist": "bun run tsup", @@ -55,17 +61,17 @@ "@evmts/tsconfig": "workspace:^", "@types/node": "^20.7.2", "@types/resolve": "^1.20.3", - "effect": "2.0.0-next.50", + "effect": "^2.0.0-next.52", "glob": "^10.3.10", "resolve": "^1.22.6", "solidity-ast": "^0.4.52", "unplugin": "^1.5.0" }, "devDependencies": { + "@evmts/bundler": "workspace:^", + "@evmts/core": "workspace:^", "@vitest/coverage-v8": "^0.34.6", "@vitest/ui": "^0.34.6", - "@evmts/core": "workspace:^", - "@evmts/bundler": "workspace:^", "abitype": "^0.9.8", "rome": "^12.1.3", "solc": "0.8.21", diff --git a/bundlers/vite/package.json b/bundlers/vite/package.json index 3c5a2a8c2c..733f7131ea 100644 --- a/bundlers/vite/package.json +++ b/bundlers/vite/package.json @@ -2,19 +2,24 @@ "name": "@evmts/vite-plugin", "version": "0.11.2", "private": false, - "contributors": ["Will Cory "], "description": "A vite plugin for evmts", - "keywords": ["vite", "plugin", "solidity", "sol", "evmts"], + "keywords": [ + "vite", + "plugin", + "solidity", + "sol", + "evmts" + ], "repository": { "type": "git", "url": "https://github.com/evmts/evmts-monorepo.git", "directory": "plugins/vite-plugin" }, "license": "MIT", + "contributors": [ + "Will Cory " + ], "type": "module", - "main": "dist/index.cjs", - "module": "src/index.js", - "types": "types/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -24,18 +29,25 @@ "types": "./types/index.d.ts" } }, - "files": ["dist", "types", "src"], + "main": "dist/index.cjs", + "module": "src/index.js", + "types": "types/index.d.ts", + "files": [ + "dist", + "types", + "src" + ], "scripts": { "//test": "vitest", "//test:run": "vitest run", "//test:ui": "vitest --ui", - "generate:docs": "bun run typedoc", "build": "nx run-many --targets=build:dist,build:types --projects=@evmts/vite-plugin ", "build:dist": "bun run tsup", "build:types": "bun run tsc --emitDeclarationOnly --declaration --declarationMap", "clean": "rm -rf node_modules && rm -rf artifacts && rm -rf dist && rm -rf cache", "format": "rome format . --write", "format:check": "rome format .", + "generate:docs": "bun run typedoc", "lint": "rome check . --apply-unsafe", "lint:check": "rome check . --verbose" }, @@ -45,10 +57,10 @@ "devDependencies": { "@evmts/tsconfig": "workspace:^", "@vitest/ui": "^0.34.6", - "typedoc": "^0.25.2", - "typedoc-plugin-markdown": "^3.16.0", "rome": "^12.1.3", "tsup": "^7.2.0", + "typedoc": "^0.25.2", + "typedoc-plugin-markdown": "^3.16.0", "typescript": "^5.2.2", "vitest": "^0.34.6" }, diff --git a/bundlers/webpack/package.json b/bundlers/webpack/package.json index 3a521134a7..cc8991822d 100644 --- a/bundlers/webpack/package.json +++ b/bundlers/webpack/package.json @@ -3,18 +3,23 @@ "version": "0.11.2", "private": false, "description": "A webpack plugin for evmts", - "contributors": ["Will Cory "], - "keywords": ["webpack", "plugin", "solidity", "sol", "evmts"], + "keywords": [ + "webpack", + "plugin", + "solidity", + "sol", + "evmts" + ], "repository": { "type": "git", "url": "https://github.com/evmts/evmts-monorepo.git", "directory": "packages/plugin" }, "license": "MIT", + "contributors": [ + "Will Cory " + ], "type": "module", - "main": "dist/index.cjs", - "module": "src/index.js", - "types": "types/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -24,15 +29,22 @@ "types": "./types/index.d.ts" } }, - "files": ["dist", "src", "types"], + "main": "dist/index.cjs", + "module": "src/index.js", + "types": "types/index.d.ts", + "files": [ + "dist", + "src", + "types" + ], "scripts": { "build": "nx run-many --targets=build:dist,build:types --projects=@evmts/webpack-plugin ", "build:dist": "bun run tsup", "build:types": "bun run tsc --emitDeclarationOnly --declaration --declarationMap", "clean": "rm -rf node_modules && rm -rf artifacts && rm -rf dist && rm -rf cache", "format": "rome format . --write", - "generate:docs": "bun run typedoc", "format:check": "rome format .", + "generate:docs": "bun run typedoc", "lint": "rome check . --apply-unsafe", "lint:check": "rome check . --verbose", "test": "vitest", @@ -46,9 +58,9 @@ "@evmts/tsconfig": "workspace:^", "@vitest/ui": "^0.34.6", "rome": "^12.1.3", + "tsup": "^7.2.0", "typedoc": "^0.25.2", "typedoc-plugin-markdown": "^3.16.0", - "tsup": "^7.2.0", "typescript": "^5.2.2", "vitest": "^0.34.6" }, diff --git a/config/package.json b/config/package.json index 7593dcff67..a35d128e4f 100644 --- a/config/package.json +++ b/config/package.json @@ -59,11 +59,11 @@ "test:ui": "vitest --ui" }, "dependencies": { - "@effect/schema": "^0.45.5", + "@effect/schema": "^0.46.2", "@evmts/effect": "workspace:^", "@types/node": "^20.7.2", "bundle-require": "^4.0.2", - "effect": "^2.0.0-next.50", + "effect": "^2.0.0-next.52", "jsonc-parser": "^3.2.0", "viem": "^1.14.0" }, diff --git a/config/src/config/validateUserConfig.js b/config/src/config/validateUserConfig.js index 824f37583e..ce7b3989a3 100644 --- a/config/src/config/validateUserConfig.js +++ b/config/src/config/validateUserConfig.js @@ -10,8 +10,8 @@ import { undefined as SUndefined, union, } from '@effect/schema/Schema' -import { Effect, pipe } from 'effect' -import { catchTag, fail, logDebug, tap } from 'effect/Effect' +import { pipe } from 'effect' +import { catchTag, fail, logDebug, tap, try as effectTry } from 'effect/Effect' import { flatMap } from 'effect/Effect' /** @@ -81,7 +81,7 @@ const SCompilerConfig = struct({ */ export const validateUserConfig = (untrustedConfigFactory) => { return pipe( - Effect.try({ + effectTry({ try: untrustedConfigFactory, catch: (cause) => new ConfigFnThrowError({ diff --git a/config/src/tsconfig/loadTsConfig.js b/config/src/tsconfig/loadTsConfig.js index 0e8b912da4..b14b44c69c 100644 --- a/config/src/tsconfig/loadTsConfig.js +++ b/config/src/tsconfig/loadTsConfig.js @@ -6,8 +6,14 @@ import { struct, } from '@effect/schema/Schema' import { parseJson } from '@evmts/effect' -import { Effect } from 'effect' -import { catchTag, fail, flatMap, logDebug, tap } from 'effect/Effect' +import { + catchTag, + fail, + flatMap, + logDebug, + tap, + try as tryEffect, +} from 'effect/Effect' import { existsSync, readFileSync } from 'fs' import * as path from 'path' @@ -80,7 +86,7 @@ export const loadTsConfig = (configFilePath) => { const tsConfigPath = path.join(configFilePath, 'tsconfig.json') const jsConfigPath = path.join(configFilePath, 'jsconfig.json') - return Effect.try({ + return tryEffect({ try: () => existsSync(jsConfigPath) ? readFileSync(jsConfigPath, 'utf8') diff --git a/effect/package.json b/effect/package.json index 234dff56f9..baed0ce1a2 100644 --- a/effect/package.json +++ b/effect/package.json @@ -51,10 +51,10 @@ "test:ui": "vitest --ui" }, "dependencies": { - "@effect/schema": "^0.45.5", + "@effect/schema": "^0.46.2", "@types/node": "^20.7.2", "bundle-require": "^4.0.2", - "effect": "^2.0.0-next.50", + "effect": "^2.0.0-next.52", "jsonc-parser": "^3.2.0", "viem": "^1.14.0" }, diff --git a/effect/src/createRequireEffect.js b/effect/src/createRequireEffect.js index ff6a02e0d8..e5627f596c 100644 --- a/effect/src/createRequireEffect.js +++ b/effect/src/createRequireEffect.js @@ -1,5 +1,5 @@ // TODO unused move this to @evmts/createRequire package -import { Effect } from 'effect' +import { try as tryEffect } from 'effect/Effect' import { map } from 'effect/Effect' import { createRequire } from 'module' @@ -48,7 +48,7 @@ export class RequireError extends Error { * @internal */ export const createRequireEffect = (url) => { - return Effect.try({ + return tryEffect({ try: () => createRequire(url), catch: (cause) => new CreateRequireError(url, { cause }), }).pipe( @@ -59,7 +59,7 @@ export const createRequireEffect = (url) => { * @returns {import("effect/Effect").Effect>} */ const requireAsEffect = (id) => { - return Effect.try({ + return tryEffect({ try: () => createdRequire(id), catch: (cause) => new RequireError(id, { cause }), }) diff --git a/examples/vite/dist/assets/ccip-9658a292.js b/examples/vite/dist/assets/ccip-41171db5.js similarity index 97% rename from examples/vite/dist/assets/ccip-9658a292.js rename to examples/vite/dist/assets/ccip-41171db5.js index 9c9f7edc67..692dc4e98c 100644 --- a/examples/vite/dist/assets/ccip-9658a292.js +++ b/examples/vite/dist/assets/ccip-41171db5.js @@ -1 +1 @@ -import{aU as f,aV as w,aW as y,aX as p,aY as h,aZ as g,a_ as k,a$ as O,b0 as L,b1 as m,b2 as E}from"./index-c43d377d.js";import"@safe-globalThis/safe-apps-provider";import"@safe-globalThis/safe-apps-sdk";class x extends f{constructor({callbackSelector:e,cause:t,data:n,extraData:c,sender:d,urls:a}){var i;super(t.shortMessage||"An error occurred while fetching for an offchain result.",{cause:t,metaMessages:[...t.metaMessages||[],(i=t.metaMessages)!=null&&i.length?"":[],"Offchain Gateway Call:",a&&[" Gateway URL(s):",...a.map(u=>` ${w(u)}`)],` Sender: ${d}`,` Data: ${n}`,` Callback selector: ${e}`,` Extra data: ${c}`].flat()}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"OffchainLookupError"})}}class M extends f{constructor({result:e,url:t}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${w(t)}`,`Response: ${y(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"OffchainLookupResponseMalformedError"})}}class $ extends f{constructor({sender:e,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${e}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"OffchainLookupSenderMismatchError"})}}function R(s,e){if(!p(s))throw new h({address:s});if(!p(e))throw new h({address:e});return s.toLowerCase()===e.toLowerCase()}const j="0x556f1830",S={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function D(s,{blockNumber:e,blockTag:t,data:n,to:c}){const{args:d}=g({data:n,abi:[S]}),[a,i,u,r,o]=d;try{if(!R(c,a))throw new $({sender:a,to:c});const l=await A({data:u,sender:a,urls:i}),{data:b}=await k(s,{blockNumber:e,blockTag:t,data:O([r,L([{type:"bytes"},{type:"bytes"}],[l,o])]),to:c});return b}catch(l){throw new x({callbackSelector:r,cause:l,data:n,extraData:o,sender:a,urls:i})}}async function A({data:s,sender:e,urls:t}){var c;let n=new Error("An unknown error occurred.");for(let d=0;d` ${w(u)}`)],` Sender: ${d}`,` Data: ${n}`,` Callback selector: ${e}`,` Extra data: ${c}`].flat()}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"OffchainLookupError"})}}class M extends f{constructor({result:e,url:t}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${w(t)}`,`Response: ${y(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"OffchainLookupResponseMalformedError"})}}class $ extends f{constructor({sender:e,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${e}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"OffchainLookupSenderMismatchError"})}}function R(s,e){if(!p(s))throw new h({address:s});if(!p(e))throw new h({address:e});return s.toLowerCase()===e.toLowerCase()}const j="0x556f1830",S={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function D(s,{blockNumber:e,blockTag:t,data:n,to:c}){const{args:d}=g({data:n,abi:[S]}),[a,i,u,r,o]=d;try{if(!R(c,a))throw new $({sender:a,to:c});const l=await A({data:u,sender:a,urls:i}),{data:b}=await k(s,{blockNumber:e,blockTag:t,data:O([r,L([{type:"bytes"},{type:"bytes"}],[l,o])]),to:c});return b}catch(l){throw new x({callbackSelector:r,cause:l,data:n,extraData:o,sender:a,urls:i})}}async function A({data:s,sender:e,urls:t}){var c;let n=new Error("An unknown error occurred.");for(let d=0;d0&&(s=n[0]),s instanceof Error)throw s;var u=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw u.context=s,u}var c=f[e];if(c===void 0)return!1;if(typeof c=="function")d(c,this,n);else for(var h=c.length,O=E(c,h),r=0;r0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=s.length,j(u)}return t}o.prototype.addListener=function(e,n){return g(this,e,n,!1)};o.prototype.on=o.prototype.addListener;o.prototype.prependListener=function(e,n){return g(this,e,n,!0)};function R(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=R.bind(r);return i.listener=n,r.wrapFn=i,i}o.prototype.once=function(e,n){return v(n),this.on(e,_(this,e,n)),this};o.prototype.prependOnceListener=function(e,n){return v(n),this.prependListener(e,_(this,e,n)),this};o.prototype.removeListener=function(e,n){var r,i,f,s,u;if(v(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(f=-1,s=r.length-1;s>=0;s--)if(r[s]===n||r[s].listener===n){u=r[s].listener,f=s;break}if(f<0)return this;f===0?r.shift():N(r,f),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,u||n)}return this};o.prototype.off=o.prototype.removeListener;o.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var f=Object.keys(r),s;for(i=0;i=0;i--)this.removeListener(e,n[i]);return this};function w(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?M(i):E(i,i.length)}o.prototype.listeners=function(e){return w(this,e,!0)};o.prototype.rawListeners=function(e){return w(this,e,!1)};o.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):b.call(t,e)};o.prototype.listenerCount=b;function b(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?l(this._events):[]};function E(t,e){for(var n=new Array(e),r=0;r0&&(s=n[0]),s instanceof Error)throw s;var u=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw u.context=s,u}var c=f[e];if(c===void 0)return!1;if(typeof c=="function")d(c,this,n);else for(var h=c.length,O=E(c,h),r=0;r0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=s.length,j(u)}return t}o.prototype.addListener=function(e,n){return g(this,e,n,!1)};o.prototype.on=o.prototype.addListener;o.prototype.prependListener=function(e,n){return g(this,e,n,!0)};function R(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=R.bind(r);return i.listener=n,r.wrapFn=i,i}o.prototype.once=function(e,n){return v(n),this.on(e,_(this,e,n)),this};o.prototype.prependOnceListener=function(e,n){return v(n),this.prependListener(e,_(this,e,n)),this};o.prototype.removeListener=function(e,n){var r,i,f,s,u;if(v(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(f=-1,s=r.length-1;s>=0;s--)if(r[s]===n||r[s].listener===n){u=r[s].listener,f=s;break}if(f<0)return this;f===0?r.shift():N(r,f),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,u||n)}return this};o.prototype.off=o.prototype.removeListener;o.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var f=Object.keys(r),s;for(i=0;i=0;i--)this.removeListener(e,n[i]);return this};function w(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?M(i):E(i,i.length)}o.prototype.listeners=function(e){return w(this,e,!0)};o.prototype.rawListeners=function(e){return w(this,e,!1)};o.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):b.call(t,e)};o.prototype.listenerCount=b;function b(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?l(this._events):[]};function E(t,e){for(var n=new Array(e),r=0;rJSON.stringify(t,(e,r)=>typeof r=="bigint"?r.toString()+"n":r),de=t=>{const e=/([\[:])?(\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\}\]])/g,r=t.replace(e,'$1"$2n"$3');return JSON.parse(r,(i,s)=>typeof s=="string"&&s.match(/^\d+n$/)?BigInt(s.substring(0,s.length-1)):s)};function ye(t){if(typeof t!="string")throw new Error(`Cannot safe json parse value of type ${typeof t}`);try{return de(t)}catch{return t}}function F(t){return typeof t=="string"?t:he(t)||""}const pe="PARSE_ERROR",be="INVALID_REQUEST",me="METHOD_NOT_FOUND",ge="INVALID_PARAMS",k="INTERNAL_ERROR",U="SERVER_ERROR",ve=[-32700,-32600,-32601,-32602,-32603],P={[pe]:{code:-32700,message:"Parse error"},[be]:{code:-32600,message:"Invalid Request"},[me]:{code:-32601,message:"Method not found"},[ge]:{code:-32602,message:"Invalid params"},[k]:{code:-32603,message:"Internal error"},[U]:{code:-32e3,message:"Server error"}},W=U;function _e(t){return ve.includes(t)}function H(t){return Object.keys(P).includes(t)?P[t]:P[W]}function we(t){const e=Object.values(P).find(r=>r.code===t);return e||P[W]}function Ee(t,e,r){return t.message.includes("getaddrinfo ENOTFOUND")||t.message.includes("connect ECONNREFUSED")?new Error(`Unavailable ${r} RPC url at ${e}`):t}var Re={};/*! ***************************************************************************** +import{e as X}from"./events-d049dff1.js";import{e as ue,k as le}from"./index-90f155ac.js";const he=t=>JSON.stringify(t,(e,r)=>typeof r=="bigint"?r.toString()+"n":r),de=t=>{const e=/([\[:])?(\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\}\]])/g,r=t.replace(e,'$1"$2n"$3');return JSON.parse(r,(i,s)=>typeof s=="string"&&s.match(/^\d+n$/)?BigInt(s.substring(0,s.length-1)):s)};function ye(t){if(typeof t!="string")throw new Error(`Cannot safe json parse value of type ${typeof t}`);try{return de(t)}catch{return t}}function F(t){return typeof t=="string"?t:he(t)||""}const pe="PARSE_ERROR",be="INVALID_REQUEST",me="METHOD_NOT_FOUND",ge="INVALID_PARAMS",k="INTERNAL_ERROR",U="SERVER_ERROR",ve=[-32700,-32600,-32601,-32602,-32603],P={[pe]:{code:-32700,message:"Parse error"},[be]:{code:-32600,message:"Invalid Request"},[me]:{code:-32601,message:"Method not found"},[ge]:{code:-32602,message:"Invalid params"},[k]:{code:-32603,message:"Internal error"},[U]:{code:-32e3,message:"Server error"}},W=U;function _e(t){return ve.includes(t)}function H(t){return Object.keys(P).includes(t)?P[t]:P[W]}function we(t){const e=Object.values(P).find(r=>r.code===t);return e||P[W]}function Ee(t,e,r){return t.message.includes("getaddrinfo ENOTFOUND")||t.message.includes("connect ECONNREFUSED")?new Error(`Unavailable ${r} RPC url at ${e}`):t}var Re={};/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any diff --git a/examples/vite/dist/assets/index-22759f61.js b/examples/vite/dist/assets/index-2e8e27db.js similarity index 99% rename from examples/vite/dist/assets/index-22759f61.js rename to examples/vite/dist/assets/index-2e8e27db.js index 24cc4c3a20..87d6e25840 100644 --- a/examples/vite/dist/assets/index-22759f61.js +++ b/examples/vite/dist/assets/index-2e8e27db.js @@ -1,4 +1,4 @@ -import{E as Dt}from"./events-43ea8283.js";import{b as Fr,s as $r,m as jr,c as ie,I as Hr,f as vt,J as Et,H as zr}from"./http-1236d3a2.js";import{k as Ve,aA as Wr,aB as Vr,aC as Jr,aD as Qr,aE as Kr,aF as Yr,aG as Gr,aH as Zr,aI as Xr,aJ as eo,aK as to,aL as no,aM as ro,aN as oo,aO as io,aP as so,aQ as ao,aR as co,e as Ft,aS as lo,aT as uo}from"./index-c43d377d.js";import{b as j,l as N,y as O,k as W,C as B,B as ge,E as fo,F as ho,a as ye,c as Je,d as Qe,V as $t,s as jt,_ as Ht,A as zt,e as Wt,T as Vt,q as Jt,x as Qt,G as Kt,f as Yt,P as go}from"./hooks.module-fb90a505.js";import"@safe-globalThis/safe-apps-provider";import"@safe-globalThis/safe-apps-sdk";const Ne="Session currently connected",$="Session currently disconnected",_o="Session Rejected",po="Missing JSON RPC response",mo='JSON-RPC success response must include "result" field',wo='JSON-RPC error response must include "error" field',yo='JSON RPC request must have valid "method" value',bo='JSON RPC request must have valid "id" value',vo="Missing one of the required parameters: bridge / uri / session",Ct="JSON RPC response format is invalid",Eo="URI format is invalid",Co="QRCode Modal not provided",St="User close QRCode Modal",So=["session_request","session_update","exchange_key","connect","disconnect","display_uri","modal_closed","transport_open","transport_close","transport_error"],Io=["wallet_addEthereumChain","wallet_switchEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode"],Ke=["eth_sendTransaction","eth_signTransaction","eth_sign","eth_signTypedData","eth_signTypedData_v1","eth_signTypedData_v2","eth_signTypedData_v3","eth_signTypedData_v4","personal_sign",...Io],Pe="WALLETCONNECT_DEEPLINK_CHOICE",Ro={1:"mainnet",3:"ropsten",4:"rinkeby",5:"goerli",42:"kovan"};var Gt=Ye;Ye.strict=Zt;Ye.loose=Xt;var ko=Object.prototype.toString,To={"[object Int8Array]":!0,"[object Int16Array]":!0,"[object Int32Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Uint16Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0};function Ye(t){return Zt(t)||Xt(t)}function Zt(t){return t instanceof Int8Array||t instanceof Int16Array||t instanceof Int32Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Uint16Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array}function Xt(t){return To[ko.call(t)]}const No=Ve(Gt);var xo=Gt.strict,Mo=function(e){if(xo(e)){var n=Buffer.from(e.buffer);return e.byteLength!==e.buffer.byteLength&&(n=n.slice(e.byteOffset,e.byteOffset+e.byteLength)),n}else return Buffer.from(e)};const Ao=Ve(Mo),Ge="hex",Ze="utf8",Oo="binary",Lo="buffer",Bo="array",Uo="typed-array",Po="array-buffer",be="0";function V(t){return new Uint8Array(t)}function Xe(t,e=!1){const n=t.toString(Ge);return e?se(n):n}function et(t){return t.toString(Ze)}function en(t){return t.readUIntBE(0,t.length)}function Z(t){return Ao(t)}function U(t,e=!1){return Xe(Z(t),e)}function tn(t){return et(Z(t))}function nn(t){return en(Z(t))}function tt(t){return Buffer.from(J(t),Ge)}function P(t){return V(tt(t))}function qo(t){return et(tt(t))}function Do(t){return nn(P(t))}function nt(t){return Buffer.from(t,Ze)}function rn(t){return V(nt(t))}function Fo(t,e=!1){return Xe(nt(t),e)}function $o(t){const e=parseInt(t,10);return ii(oi(e),"Number can only safely store up to 53 bits"),e}function jo(t){return Vo(rt(t))}function Ho(t){return ot(rt(t))}function zo(t,e){return Jo(rt(t),e)}function Wo(t){return`${t}`}function rt(t){const e=(t>>>0).toString(2);return st(e)}function Vo(t){return Z(ot(t))}function ot(t){return new Uint8Array(Xo(t).map(e=>parseInt(e,2)))}function Jo(t,e){return U(ot(t),e)}function Qo(t){return!(typeof t!="string"||!new RegExp(/^[01]+$/).test(t)||t.length%8!==0)}function on(t,e){return!(typeof t!="string"||!t.match(/^0x[0-9A-Fa-f]*$/)||e&&t.length!==2+2*e)}function ve(t){return Buffer.isBuffer(t)}function it(t){return No.strict(t)&&!ve(t)}function sn(t){return!it(t)&&!ve(t)&&typeof t.byteLength<"u"}function Ko(t){return ve(t)?Lo:it(t)?Uo:sn(t)?Po:Array.isArray(t)?Bo:typeof t}function Yo(t){return Qo(t)?Oo:on(t)?Ge:Ze}function Go(...t){return Buffer.concat(t)}function an(...t){let e=[];return t.forEach(n=>e=e.concat(Array.from(n))),new Uint8Array([...e])}function Zo(t,e=8){const n=t%e;return n?(t-n)/e*e+e:t}function Xo(t,e=8){const n=st(t).match(new RegExp(`.{${e}}`,"gi"));return Array.from(n||[])}function st(t,e=8,n=be){return ei(t,Zo(t.length,e),n)}function ei(t,e,n=be){return si(t,e,!0,n)}function J(t){return t.replace(/^0x/,"")}function se(t){return t.startsWith("0x")?t:`0x${t}`}function ti(t){return t=J(t),t=st(t,2),t&&(t=se(t)),t}function ni(t){const e=t.startsWith("0x");return t=J(t),t=t.startsWith(be)?t.substring(1):t,e?se(t):t}function ri(t){return typeof t>"u"}function oi(t){return!ri(t)}function ii(t,e){if(!t)throw new Error(e)}function si(t,e,n,r=be){const o=e-t.length;let i=t;if(o>0){const s=r.repeat(o);i=n?s+t:t+s}return i}function _e(t){return Z(new Uint8Array(t))}function ai(t){return tn(new Uint8Array(t))}function cn(t,e){return U(new Uint8Array(t),!e)}function ci(t){return nn(new Uint8Array(t))}function li(...t){return P(t.map(e=>U(new Uint8Array(e))).join("")).buffer}function ln(t){return V(t).buffer}function ui(t){return et(t)}function di(t,e){return Xe(t,!e)}function fi(t){return en(t)}function hi(...t){return Go(...t)}function gi(t){return rn(t).buffer}function _i(t){return nt(t)}function pi(t,e){return Fo(t,!e)}function mi(t){return $o(t)}function wi(t){return tt(t)}function un(t){return P(t).buffer}function yi(t){return qo(t)}function bi(t){return Do(t)}function vi(t){return jo(t)}function Ei(t){return Ho(t).buffer}function Ci(t){return Wo(t)}function dn(t,e){return zo(Number(t),!e)}const Si=Qr,Ii=Kr,Ri=Yr,ki=Gr,Ti=Zr,fn=Jr,Ni=Xr,hn=Wr,xi=eo,Mi=to,Ai=no,Ee=Vr;function Ce(t){return ro(t)}function Se(){const t=Ce();return t&&t.os?t.os:void 0}function gn(){const t=Se();return t?t.toLowerCase().includes("android"):!1}function _n(){const t=Se();return t?t.toLowerCase().includes("ios")||t.toLowerCase().includes("mac")&&navigator.maxTouchPoints>1:!1}function pn(){return Se()?gn()||_n():!1}function mn(){const t=Ce();return t&&t.name?t.name.toLowerCase()==="node":!1}function wn(){return!mn()&&!!fn()}const yn=Fr,bn=$r;function at(t,e){const n=bn(e),r=Ee();r&&r.setItem(t,n)}function ct(t){let e=null,n=null;const r=Ee();return r&&(n=r.getItem(t)),e=n&&yn(n),e}function lt(t){const e=Ee();e&&e.removeItem(t)}function qe(){return oo()}function Oi(t){return ti(t)}function Li(t){return se(t)}function Bi(t){return J(t)}function Ui(t){return ni(se(t))}const vn=jr;function he(){return((e,n)=>{for(n=e="";e++<36;n+=e*51&52?(e^15?8^Math.random()*(e^20?16:4):4).toString(16):"-");return n})()}function Pi(){console.warn("DEPRECATION WARNING: This WalletConnect client library will be deprecated in favor of @walletconnect/client. Please check docs.walletconnect.org to learn more about this migration!")}function En(t,e){let n;const r=Ro[t];return r&&(n=`https://${r}.infura.io/v3/${e}`),n}function Cn(t,e){let n;const r=En(t,e.infuraId);return e.custom&&e.custom[t]?n=e.custom[t]:r&&(n=r),n}function qi(t,e){const n=encodeURIComponent(t);return e.universalLink?`${e.universalLink}/wc?uri=${n}`:e.deepLink?`${e.deepLink}${e.deepLink.endsWith(":")?"//":"/"}wc?uri=${n}`:""}function Di(t){const e=t.href.split("?")[0];at(Pe,Object.assign(Object.assign({},t),{href:e}))}function Sn(t,e){return t.filter(n=>n.name.toLowerCase().includes(e.toLowerCase()))[0]}function Fi(t,e){let n=t;return e&&(n=e.map(r=>Sn(t,r)).filter(Boolean)),n}function $i(t,e){return async(...r)=>new Promise((o,i)=>{const s=(a,c)=>{(a===null||typeof a>"u")&&i(a),o(c)};t.apply(e,[...r,s])})}function In(t){const e=t.message||"Failed or Rejected Request";let n=-32e3;if(t&&!t.code)switch(e){case"Parse error":n=-32700;break;case"Invalid request":n=-32600;break;case"Method not found":n=-32601;break;case"Invalid params":n=-32602;break;case"Internal error":n=-32603;break;default:n=-32e3;break}const r={code:n,message:e};return t.data&&(r.data=t.data),r}const Rn="https://registry.walletconnect.com";function ji(){return Rn+"/api/v2/wallets"}function Hi(){return Rn+"/api/v2/dapps"}function kn(t,e="mobile"){var n;return{name:t.name||"",shortName:t.metadata.shortName||"",color:t.metadata.colors.primary||"",logo:(n=t.image_url.sm)!==null&&n!==void 0?n:"",universalLink:t[e].universal||"",deepLink:t[e].native||""}}function zi(t,e="mobile"){return Object.values(t).filter(n=>!!n[e].universal||!!n[e].native).map(n=>kn(n,e))}var ut={};(function(t){const e=ao,n=co,r=io,o=so,i=l=>l==null;function s(l){switch(l.arrayFormat){case"index":return d=>(f,u)=>{const g=f.length;return u===void 0||l.skipNull&&u===null||l.skipEmptyString&&u===""?f:u===null?[...f,[h(d,l),"[",g,"]"].join("")]:[...f,[h(d,l),"[",h(g,l),"]=",h(u,l)].join("")]};case"bracket":return d=>(f,u)=>u===void 0||l.skipNull&&u===null||l.skipEmptyString&&u===""?f:u===null?[...f,[h(d,l),"[]"].join("")]:[...f,[h(d,l),"[]=",h(u,l)].join("")];case"comma":case"separator":return d=>(f,u)=>u==null||u.length===0?f:f.length===0?[[h(d,l),"=",h(u,l)].join("")]:[[f,h(u,l)].join(l.arrayFormatSeparator)];default:return d=>(f,u)=>u===void 0||l.skipNull&&u===null||l.skipEmptyString&&u===""?f:u===null?[...f,h(d,l)]:[...f,[h(d,l),"=",h(u,l)].join("")]}}function a(l){let d;switch(l.arrayFormat){case"index":return(f,u,g)=>{if(d=/\[(\d*)\]$/.exec(f),f=f.replace(/\[\d*\]$/,""),!d){g[f]=u;return}g[f]===void 0&&(g[f]={}),g[f][d[1]]=u};case"bracket":return(f,u,g)=>{if(d=/(\[\])$/.exec(f),f=f.replace(/\[\]$/,""),!d){g[f]=u;return}if(g[f]===void 0){g[f]=[u];return}g[f]=[].concat(g[f],u)};case"comma":case"separator":return(f,u,g)=>{const y=typeof u=="string"&&u.includes(l.arrayFormatSeparator),m=typeof u=="string"&&!y&&_(u,l).includes(l.arrayFormatSeparator);u=m?_(u,l):u;const S=y||m?u.split(l.arrayFormatSeparator).map(R=>_(R,l)):u===null?u:_(u,l);g[f]=S};default:return(f,u,g)=>{if(g[f]===void 0){g[f]=u;return}g[f]=[].concat(g[f],u)}}}function c(l){if(typeof l!="string"||l.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function h(l,d){return d.encode?d.strict?e(l):encodeURIComponent(l):l}function _(l,d){return d.decode?n(l):l}function v(l){return Array.isArray(l)?l.sort():typeof l=="object"?v(Object.keys(l)).sort((d,f)=>Number(d)-Number(f)).map(d=>l[d]):l}function b(l){const d=l.indexOf("#");return d!==-1&&(l=l.slice(0,d)),l}function w(l){let d="";const f=l.indexOf("#");return f!==-1&&(d=l.slice(f)),d}function E(l){l=b(l);const d=l.indexOf("?");return d===-1?"":l.slice(d+1)}function C(l,d){return d.parseNumbers&&!Number.isNaN(Number(l))&&typeof l=="string"&&l.trim()!==""?l=Number(l):d.parseBooleans&&l!==null&&(l.toLowerCase()==="true"||l.toLowerCase()==="false")&&(l=l.toLowerCase()==="true"),l}function I(l,d){d=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},d),c(d.arrayFormatSeparator);const f=a(d),u=Object.create(null);if(typeof l!="string"||(l=l.trim().replace(/^[?#&]/,""),!l))return u;for(const g of l.split("&")){if(g==="")continue;let[y,m]=r(d.decode?g.replace(/\+/g," "):g,"=");m=m===void 0?null:["comma","separator"].includes(d.arrayFormat)?m:_(m,d),f(_(y,d),m,u)}for(const g of Object.keys(u)){const y=u[g];if(typeof y=="object"&&y!==null)for(const m of Object.keys(y))y[m]=C(y[m],d);else u[g]=C(y,d)}return d.sort===!1?u:(d.sort===!0?Object.keys(u).sort():Object.keys(u).sort(d.sort)).reduce((g,y)=>{const m=u[y];return m&&typeof m=="object"&&!Array.isArray(m)?g[y]=v(m):g[y]=m,g},Object.create(null))}t.extract=E,t.parse=I,t.stringify=(l,d)=>{if(!l)return"";d=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},d),c(d.arrayFormatSeparator);const f=m=>d.skipNull&&i(l[m])||d.skipEmptyString&&l[m]==="",u=s(d),g={};for(const m of Object.keys(l))f(m)||(g[m]=l[m]);const y=Object.keys(g);return d.sort!==!1&&y.sort(d.sort),y.map(m=>{const S=l[m];return S===void 0?"":S===null?h(m,d):Array.isArray(S)?S.reduce(u(m),[]).join("&"):h(m,d)+"="+h(S,d)}).filter(m=>m.length>0).join("&")},t.parseUrl=(l,d)=>{d=Object.assign({decode:!0},d);const[f,u]=r(l,"#");return Object.assign({url:f.split("?")[0]||"",query:I(E(l),d)},d&&d.parseFragmentIdentifier&&u?{fragmentIdentifier:_(u,d)}:{})},t.stringifyUrl=(l,d)=>{d=Object.assign({encode:!0,strict:!0},d);const f=b(l.url).split("?")[0]||"",u=t.extract(l.url),g=t.parse(u,{sort:!1}),y=Object.assign(g,l.query);let m=t.stringify(y,d);m&&(m=`?${m}`);let S=w(l.url);return l.fragmentIdentifier&&(S=`#${h(l.fragmentIdentifier,d)}`),`${f}${m}${S}`},t.pick=(l,d,f)=>{f=Object.assign({parseFragmentIdentifier:!0},f);const{url:u,query:g,fragmentIdentifier:y}=t.parseUrl(l,f);return t.stringifyUrl({url:u,query:o(g,d),fragmentIdentifier:y},f)},t.exclude=(l,d,f)=>{const u=Array.isArray(d)?g=>!d.includes(g):(g,y)=>!d(g,y);return t.pick(l,u,f)}})(ut);function Tn(t){const e=t.indexOf("?")!==-1?t.indexOf("?"):void 0;return typeof e<"u"?t.substr(e):""}function Nn(t,e){let n=dt(t);return n=Object.assign(Object.assign({},n),e),t=xn(n),t}function dt(t){return ut.parse(t)}function xn(t){return ut.stringify(t)}function Mn(t){return typeof t.bridge<"u"}function An(t){const e=t.indexOf(":"),n=t.indexOf("?")!==-1?t.indexOf("?"):void 0,r=t.substring(0,e),o=t.substring(e+1,n);function i(v){const b="@",w=v.split(b);return{handshakeTopic:w[0],version:parseInt(w[1],10)}}const s=i(o),a=typeof n<"u"?t.substr(n):"";function c(v){const b=dt(v);return{key:b.key||"",bridge:b.bridge||""}}const h=c(a);return Object.assign(Object.assign({protocol:r},s),h)}function Wi(t){return t===""||typeof t=="string"&&t.trim()===""}function Vi(t){return!(t&&t.length)}function Ji(t){return ve(t)}function Qi(t){return it(t)}function Ki(t){return sn(t)}function Yi(t){return Ko(t)}function Gi(t){return Yo(t)}function Zi(t,e){return on(t,e)}function Xi(t){return typeof t.params=="object"}function On(t){return typeof t.method<"u"}function H(t){return typeof t.result<"u"}function re(t){return typeof t.error<"u"}function De(t){return typeof t.event<"u"}function Ln(t){return So.includes(t)||t.startsWith("wc_")}function Bn(t){return t.method.startsWith("wc_")?!0:!Ke.includes(t.method)}const es=Object.freeze(Object.defineProperty({__proto__:null,addHexPrefix:Li,appendToQueryString:Nn,concatArrayBuffers:li,concatBuffers:hi,convertArrayBufferToBuffer:_e,convertArrayBufferToHex:cn,convertArrayBufferToNumber:ci,convertArrayBufferToUtf8:ai,convertBufferToArrayBuffer:ln,convertBufferToHex:di,convertBufferToNumber:fi,convertBufferToUtf8:ui,convertHexToArrayBuffer:un,convertHexToBuffer:wi,convertHexToNumber:bi,convertHexToUtf8:yi,convertNumberToArrayBuffer:Ei,convertNumberToBuffer:vi,convertNumberToHex:dn,convertNumberToUtf8:Ci,convertUtf8ToArrayBuffer:gi,convertUtf8ToBuffer:_i,convertUtf8ToHex:pi,convertUtf8ToNumber:mi,detectEnv:Ce,detectOS:Se,formatIOSMobile:qi,formatMobileRegistry:zi,formatMobileRegistryEntry:kn,formatQueryString:xn,formatRpcError:In,getClientMeta:qe,getCrypto:Mi,getCryptoOrThrow:xi,getDappRegistryUrl:Hi,getDocument:ki,getDocumentOrThrow:Ri,getEncoding:Gi,getFromWindow:Si,getFromWindowOrThrow:Ii,getInfuraRpcUrl:En,getLocal:ct,getLocalStorage:Ee,getLocalStorageOrThrow:Ai,getLocation:hn,getLocationOrThrow:Ni,getMobileLinkRegistry:Fi,getMobileRegistryEntry:Sn,getNavigator:fn,getNavigatorOrThrow:Ti,getQueryString:Tn,getRpcUrl:Cn,getType:Yi,getWalletRegistryUrl:ji,isAndroid:gn,isArrayBuffer:Ki,isBrowser:wn,isBuffer:Ji,isEmptyArray:Vi,isEmptyString:Wi,isHexString:Zi,isIOS:_n,isInternalEvent:De,isJsonRpcRequest:On,isJsonRpcResponseError:re,isJsonRpcResponseSuccess:H,isJsonRpcSubscription:Xi,isMobile:pn,isNode:mn,isReservedEvent:Ln,isSilentPayload:Bn,isTypedArray:Qi,isWalletConnectSession:Mn,logDeprecationWarning:Pi,parseQueryString:dt,parseWalletConnectUri:An,payloadId:vn,promisify:$i,removeHexLeadingZeros:Ui,removeHexPrefix:Bi,removeLocal:lt,safeJsonParse:yn,safeJsonStringify:bn,sanitizeHex:Oi,saveMobileLinkInfo:Di,setLocal:at,uuid:he},Symbol.toStringTag,{value:"Module"}));class ts{constructor(){this._eventEmitters=[],typeof window<"u"&&typeof window.addEventListener<"u"&&(window.addEventListener("online",()=>this.trigger("online")),window.addEventListener("offline",()=>this.trigger("offline")))}on(e,n){this._eventEmitters.push({event:e,callback:n})}trigger(e){let n=[];e&&(n=this._eventEmitters.filter(r=>r.event===e)),n.forEach(r=>{r.callback()})}}const ns=typeof globalThis.WebSocket<"u"?globalThis.WebSocket:require("ws");class rs{constructor(e){if(this.opts=e,this._queue=[],this._events=[],this._subscriptions=[],this._protocol=e.protocol,this._version=e.version,this._url="",this._netMonitor=null,this._socket=null,this._nextSocket=null,this._subscriptions=e.subscriptions||[],this._netMonitor=e.netMonitor||new ts,!e.url||typeof e.url!="string")throw new Error("Missing or invalid WebSocket url");this._url=e.url,this._netMonitor.on("online",()=>this._socketCreate())}set readyState(e){}get readyState(){return this._socket?this._socket.readyState:-1}set connecting(e){}get connecting(){return this.readyState===0}set connected(e){}get connected(){return this.readyState===1}set closing(e){}get closing(){return this.readyState===2}set closed(e){}get closed(){return this.readyState===3}open(){this._socketCreate()}close(){this._socketClose()}send(e,n,r){if(!n||typeof n!="string")throw new Error("Missing or invalid topic field");this._socketSend({topic:n,type:"pub",payload:e,silent:!!r})}subscribe(e){this._socketSend({topic:e,type:"sub",payload:"",silent:!0})}on(e,n){this._events.push({event:e,callback:n})}_socketCreate(){if(this._nextSocket)return;const e=os(this._url,this._protocol,this._version);if(this._nextSocket=new ns(e),!this._nextSocket)throw new Error("Failed to create socket");this._nextSocket.onmessage=n=>this._socketReceive(n),this._nextSocket.onopen=()=>this._socketOpen(),this._nextSocket.onerror=n=>this._socketError(n),this._nextSocket.onclose=()=>{setTimeout(()=>{this._nextSocket=null,this._socketCreate()},1e3)}}_socketOpen(){this._socketClose(),this._socket=this._nextSocket,this._nextSocket=null,this._queueSubscriptions(),this._pushQueue()}_socketClose(){this._socket&&(this._socket.onclose=()=>{},this._socket.close())}_socketSend(e){const n=JSON.stringify(e);this._socket&&this._socket.readyState===1?this._socket.send(n):(this._setToQueue(e),this._socketCreate())}async _socketReceive(e){let n;try{n=JSON.parse(e.data)}catch{return}if(this._socketSend({topic:n.topic,type:"ack",payload:"",silent:!0}),this._socket&&this._socket.readyState===1){const r=this._events.filter(o=>o.event==="message");r&&r.length&&r.forEach(o=>o.callback(n))}}_socketError(e){const n=this._events.filter(r=>r.event==="error");n&&n.length&&n.forEach(r=>r.callback(e))}_queueSubscriptions(){this._subscriptions.forEach(n=>this._queue.push({topic:n,type:"sub",payload:"",silent:!0})),this._subscriptions=this.opts.subscriptions||[]}_setToQueue(e){this._queue.push(e)}_pushQueue(){this._queue.forEach(n=>this._socketSend(n)),this._queue=[]}}function os(t,e,n){var r,o;const s=(t.startsWith("https")?t.replace("https","wss"):t.startsWith("http")?t.replace("http","ws"):t).split("?"),a=wn()?{protocol:e,version:n,env:"browser",host:((r=hn())===null||r===void 0?void 0:r.host)||""}:{protocol:e,version:n,env:((o=Ce())===null||o===void 0?void 0:o.name)||""},c=Nn(Tn(s[1]||""),a);return s[0]+"?"+c}class is{constructor(){this._eventEmitters=[]}subscribe(e){this._eventEmitters.push(e)}unsubscribe(e){this._eventEmitters=this._eventEmitters.filter(n=>n.event!==e)}trigger(e){let n=[],r;On(e)?r=e.method:H(e)||re(e)?r=`response:${e.id}`:De(e)?r=e.event:r="",r&&(n=this._eventEmitters.filter(o=>o.event===r)),(!n||!n.length)&&!Ln(r)&&!De(r)&&(n=this._eventEmitters.filter(o=>o.event==="call_request")),n.forEach(o=>{if(re(e)){const i=new Error(e.error.message);o.callback(i,null)}else o.callback(null,e)})}}class ss{constructor(e="walletconnect"){this.storageId=e}getSession(){let e=null;const n=ct(this.storageId);return n&&Mn(n)&&(e=n),e}setSession(e){return at(this.storageId,e),e}removeSession(){lt(this.storageId)}}const as="walletconnect.org",cs="abcdefghijklmnopqrstuvwxyz0123456789",Un=cs.split("").map(t=>`https://${t}.bridge.walletconnect.org`);function ls(t){let e=t.indexOf("//")>-1?t.split("/")[2]:t.split("/")[0];return e=e.split(":")[0],e=e.split("?")[0],e}function us(t){return ls(t).split(".").slice(-2).join(".")}function ds(){return Math.floor(Math.random()*Un.length)}function fs(){return Un[ds()]}function hs(t){return us(t)===as}function gs(t){return hs(t)?fs():t}class _s{constructor(e){if(this.protocol="wc",this.version=1,this._bridge="",this._key=null,this._clientId="",this._clientMeta=null,this._peerId="",this._peerMeta=null,this._handshakeId=0,this._handshakeTopic="",this._connected=!1,this._accounts=[],this._chainId=0,this._networkId=0,this._rpcUrl="",this._eventManager=new is,this._clientMeta=qe()||e.connectorOpts.clientMeta||null,this._cryptoLib=e.cryptoLib,this._sessionStorage=e.sessionStorage||new ss(e.connectorOpts.storageId),this._qrcodeModal=e.connectorOpts.qrcodeModal,this._qrcodeModalOptions=e.connectorOpts.qrcodeModalOptions,this._signingMethods=[...Ke,...e.connectorOpts.signingMethods||[]],!e.connectorOpts.bridge&&!e.connectorOpts.uri&&!e.connectorOpts.session)throw new Error(vo);e.connectorOpts.bridge&&(this.bridge=gs(e.connectorOpts.bridge)),e.connectorOpts.uri&&(this.uri=e.connectorOpts.uri);const n=e.connectorOpts.session||this._getStorageSession();n&&(this.session=n),this.handshakeId&&this._subscribeToSessionResponse(this.handshakeId,"Session request rejected"),this._transport=e.transport||new rs({protocol:this.protocol,version:this.version,url:this.bridge,subscriptions:[this.clientId]}),this._subscribeToInternalEvents(),this._initTransport(),e.connectorOpts.uri&&this._subscribeToSessionRequest(),e.pushServerOpts&&this._registerPushServer(e.pushServerOpts)}set bridge(e){e&&(this._bridge=e)}get bridge(){return this._bridge}set key(e){if(!e)return;const n=un(e);this._key=n}get key(){return this._key?cn(this._key,!0):""}set clientId(e){e&&(this._clientId=e)}get clientId(){let e=this._clientId;return e||(e=this._clientId=he()),this._clientId}set peerId(e){e&&(this._peerId=e)}get peerId(){return this._peerId}set clientMeta(e){}get clientMeta(){let e=this._clientMeta;return e||(e=this._clientMeta=qe()),e}set peerMeta(e){this._peerMeta=e}get peerMeta(){return this._peerMeta}set handshakeTopic(e){e&&(this._handshakeTopic=e)}get handshakeTopic(){return this._handshakeTopic}set handshakeId(e){e&&(this._handshakeId=e)}get handshakeId(){return this._handshakeId}get uri(){return this._formatUri()}set uri(e){if(!e)return;const{handshakeTopic:n,bridge:r,key:o}=this._parseUri(e);this.handshakeTopic=n,this.bridge=r,this.key=o}set chainId(e){this._chainId=e}get chainId(){return this._chainId}set networkId(e){this._networkId=e}get networkId(){return this._networkId}set accounts(e){this._accounts=e}get accounts(){return this._accounts}set rpcUrl(e){this._rpcUrl=e}get rpcUrl(){return this._rpcUrl}set connected(e){}get connected(){return this._connected}set pending(e){}get pending(){return!!this._handshakeTopic}get session(){return{connected:this.connected,accounts:this.accounts,chainId:this.chainId,bridge:this.bridge,key:this.key,clientId:this.clientId,clientMeta:this.clientMeta,peerId:this.peerId,peerMeta:this.peerMeta,handshakeId:this.handshakeId,handshakeTopic:this.handshakeTopic}}set session(e){e&&(this._connected=e.connected,this.accounts=e.accounts,this.chainId=e.chainId,this.bridge=e.bridge,this.key=e.key,this.clientId=e.clientId,this.clientMeta=e.clientMeta,this.peerId=e.peerId,this.peerMeta=e.peerMeta,this.handshakeId=e.handshakeId,this.handshakeTopic=e.handshakeTopic)}on(e,n){const r={event:e,callback:n};this._eventManager.subscribe(r)}off(e){this._eventManager.unsubscribe(e)}async createInstantRequest(e){this._key=await this._generateKey();const n=this._formatRequest({method:"wc_instantRequest",params:[{peerId:this.clientId,peerMeta:this.clientMeta,request:this._formatRequest(e)}]});this.handshakeId=n.id,this.handshakeTopic=he(),this._eventManager.trigger({event:"display_uri",params:[this.uri]}),this.on("modal_closed",()=>{throw new Error(St)});const r=()=>{this.killSession()};try{const o=await this._sendCallRequest(n);return o&&r(),o}catch(o){throw r(),o}}async connect(e){if(!this._qrcodeModal)throw new Error(Co);return this.connected?{chainId:this.chainId,accounts:this.accounts}:(await this.createSession(e),new Promise(async(n,r)=>{this.on("modal_closed",()=>r(new Error(St))),this.on("connect",(o,i)=>{if(o)return r(o);n(i.params[0])})}))}async createSession(e){if(this._connected)throw new Error(Ne);if(this.pending)return;this._key=await this._generateKey();const n=this._formatRequest({method:"wc_sessionRequest",params:[{peerId:this.clientId,peerMeta:this.clientMeta,chainId:e&&e.chainId?e.chainId:null}]});this.handshakeId=n.id,this.handshakeTopic=he(),this._sendSessionRequest(n,"Session update rejected",{topic:this.handshakeTopic}),this._eventManager.trigger({event:"display_uri",params:[this.uri]})}approveSession(e){if(this._connected)throw new Error(Ne);this.chainId=e.chainId,this.accounts=e.accounts,this.networkId=e.networkId||0,this.rpcUrl=e.rpcUrl||"";const n={approved:!0,chainId:this.chainId,networkId:this.networkId,accounts:this.accounts,rpcUrl:this.rpcUrl,peerId:this.clientId,peerMeta:this.clientMeta},r={id:this.handshakeId,jsonrpc:"2.0",result:n};this._sendResponse(r),this._connected=!0,this._setStorageSession(),this._eventManager.trigger({event:"connect",params:[{peerId:this.peerId,peerMeta:this.peerMeta,chainId:this.chainId,accounts:this.accounts}]})}rejectSession(e){if(this._connected)throw new Error(Ne);const n=e&&e.message?e.message:_o,r=this._formatResponse({id:this.handshakeId,error:{message:n}});this._sendResponse(r),this._connected=!1,this._eventManager.trigger({event:"disconnect",params:[{message:n}]}),this._removeStorageSession()}updateSession(e){if(!this._connected)throw new Error($);this.chainId=e.chainId,this.accounts=e.accounts,this.networkId=e.networkId||0,this.rpcUrl=e.rpcUrl||"";const n={approved:!0,chainId:this.chainId,networkId:this.networkId,accounts:this.accounts,rpcUrl:this.rpcUrl},r=this._formatRequest({method:"wc_sessionUpdate",params:[n]});this._sendSessionRequest(r,"Session update rejected"),this._eventManager.trigger({event:"session_update",params:[{chainId:this.chainId,accounts:this.accounts}]}),this._manageStorageSession()}async killSession(e){const n=e?e.message:"Session Disconnected",r={approved:!1,chainId:null,networkId:null,accounts:null},o=this._formatRequest({method:"wc_sessionUpdate",params:[r]});await this._sendRequest(o),this._handleSessionDisconnect(n)}async sendTransaction(e){if(!this._connected)throw new Error($);const n=e,r=this._formatRequest({method:"eth_sendTransaction",params:[n]});return await this._sendCallRequest(r)}async signTransaction(e){if(!this._connected)throw new Error($);const n=e,r=this._formatRequest({method:"eth_signTransaction",params:[n]});return await this._sendCallRequest(r)}async signMessage(e){if(!this._connected)throw new Error($);const n=this._formatRequest({method:"eth_sign",params:e});return await this._sendCallRequest(n)}async signPersonalMessage(e){if(!this._connected)throw new Error($);const n=this._formatRequest({method:"personal_sign",params:e});return await this._sendCallRequest(n)}async signTypedData(e){if(!this._connected)throw new Error($);const n=this._formatRequest({method:"eth_signTypedData",params:e});return await this._sendCallRequest(n)}async updateChain(e){if(!this._connected)throw new Error("Session currently disconnected");const n=this._formatRequest({method:"wallet_updateChain",params:[e]});return await this._sendCallRequest(n)}unsafeSend(e,n){return this._sendRequest(e,n),this._eventManager.trigger({event:"call_request_sent",params:[{request:e,options:n}]}),new Promise((r,o)=>{this._subscribeToResponse(e.id,(i,s)=>{if(i){o(i);return}if(!s)throw new Error(po);r(s)})})}async sendCustomRequest(e,n){if(!this._connected)throw new Error($);switch(e.method){case"eth_accounts":return this.accounts;case"eth_chainId":return dn(this.chainId);case"eth_sendTransaction":case"eth_signTransaction":e.params;break;case"personal_sign":e.params;break}const r=this._formatRequest(e);return await this._sendCallRequest(r,n)}approveRequest(e){if(H(e)){const n=this._formatResponse(e);this._sendResponse(n)}else throw new Error(mo)}rejectRequest(e){if(re(e)){const n=this._formatResponse(e);this._sendResponse(n)}else throw new Error(wo)}transportClose(){this._transport.close()}async _sendRequest(e,n){const r=this._formatRequest(e),o=await this._encrypt(r),i=typeof(n==null?void 0:n.topic)<"u"?n.topic:this.peerId,s=JSON.stringify(o),a=typeof(n==null?void 0:n.forcePushNotification)<"u"?!n.forcePushNotification:Bn(r);this._transport.send(s,i,a)}async _sendResponse(e){const n=await this._encrypt(e),r=this.peerId,o=JSON.stringify(n),i=!0;this._transport.send(o,r,i)}async _sendSessionRequest(e,n,r){this._sendRequest(e,r),this._subscribeToSessionResponse(e.id,n)}_sendCallRequest(e,n){return this._sendRequest(e,n),this._eventManager.trigger({event:"call_request_sent",params:[{request:e,options:n}]}),this._subscribeToCallResponse(e.id)}_formatRequest(e){if(typeof e.method>"u")throw new Error(yo);return{id:typeof e.id>"u"?vn():e.id,jsonrpc:"2.0",method:e.method,params:typeof e.params>"u"?[]:e.params}}_formatResponse(e){if(typeof e.id>"u")throw new Error(bo);const n={id:e.id,jsonrpc:"2.0"};if(re(e)){const r=In(e.error);return Object.assign(Object.assign(Object.assign({},n),e),{error:r})}else if(H(e))return Object.assign(Object.assign({},n),e);throw new Error(Ct)}_handleSessionDisconnect(e){const n=e||"Session Disconnected";this._connected||(this._qrcodeModal&&this._qrcodeModal.close(),lt(Pe)),this._connected&&(this._connected=!1),this._handshakeId&&(this._handshakeId=0),this._handshakeTopic&&(this._handshakeTopic=""),this._peerId&&(this._peerId=""),this._eventManager.trigger({event:"disconnect",params:[{message:n}]}),this._removeStorageSession(),this.transportClose()}_handleSessionResponse(e,n){n?n.approved?(this._connected?(n.chainId&&(this.chainId=n.chainId),n.accounts&&(this.accounts=n.accounts),this._eventManager.trigger({event:"session_update",params:[{chainId:this.chainId,accounts:this.accounts}]})):(this._connected=!0,n.chainId&&(this.chainId=n.chainId),n.accounts&&(this.accounts=n.accounts),n.peerId&&!this.peerId&&(this.peerId=n.peerId),n.peerMeta&&!this.peerMeta&&(this.peerMeta=n.peerMeta),this._eventManager.trigger({event:"connect",params:[{peerId:this.peerId,peerMeta:this.peerMeta,chainId:this.chainId,accounts:this.accounts}]})),this._manageStorageSession()):this._handleSessionDisconnect(e):this._handleSessionDisconnect(e)}async _handleIncomingMessages(e){if(![this.clientId,this.handshakeTopic].includes(e.topic))return;let r;try{r=JSON.parse(e.payload)}catch{return}const o=await this._decrypt(r);o&&this._eventManager.trigger(o)}_subscribeToSessionRequest(){this._transport.subscribe(this.handshakeTopic)}_subscribeToResponse(e,n){this.on(`response:${e}`,n)}_subscribeToSessionResponse(e,n){this._subscribeToResponse(e,(r,o)=>{if(r){this._handleSessionResponse(r.message);return}H(o)?this._handleSessionResponse(n,o.result):o.error&&o.error.message?this._handleSessionResponse(o.error.message):this._handleSessionResponse(n)})}_subscribeToCallResponse(e){return new Promise((n,r)=>{this._subscribeToResponse(e,(o,i)=>{if(o){r(o);return}H(i)?n(i.result):i.error&&i.error.message?r(i.error):r(new Error(Ct))})})}_subscribeToInternalEvents(){this.on("display_uri",()=>{this._qrcodeModal&&this._qrcodeModal.open(this.uri,()=>{this._eventManager.trigger({event:"modal_closed",params:[]})},this._qrcodeModalOptions)}),this.on("connect",()=>{this._qrcodeModal&&this._qrcodeModal.close()}),this.on("call_request_sent",(e,n)=>{const{request:r}=n.params[0];if(pn()&&this._signingMethods.includes(r.method)){const o=ct(Pe);o&&(window.location.href=o.href)}}),this.on("wc_sessionRequest",(e,n)=>{e&&this._eventManager.trigger({event:"error",params:[{code:"SESSION_REQUEST_ERROR",message:e.toString()}]}),this.handshakeId=n.id,this.peerId=n.params[0].peerId,this.peerMeta=n.params[0].peerMeta;const r=Object.assign(Object.assign({},n),{method:"session_request"});this._eventManager.trigger(r)}),this.on("wc_sessionUpdate",(e,n)=>{e&&this._handleSessionResponse(e.message),this._handleSessionResponse("Session disconnected",n.params[0])})}_initTransport(){this._transport.on("message",e=>this._handleIncomingMessages(e)),this._transport.on("open",()=>this._eventManager.trigger({event:"transport_open",params:[]})),this._transport.on("close",()=>this._eventManager.trigger({event:"transport_close",params:[]})),this._transport.on("error",()=>this._eventManager.trigger({event:"transport_error",params:["Websocket connection failed"]})),this._transport.open()}_formatUri(){const e=this.protocol,n=this.handshakeTopic,r=this.version,o=encodeURIComponent(this.bridge),i=this.key;return`${e}:${n}@${r}?bridge=${o}&key=${i}`}_parseUri(e){const n=An(e);if(n.protocol===this.protocol){if(!n.handshakeTopic)throw Error("Invalid or missing handshakeTopic parameter value");const r=n.handshakeTopic;if(!n.bridge)throw Error("Invalid or missing bridge url parameter value");const o=decodeURIComponent(n.bridge);if(!n.key)throw Error("Invalid or missing key parameter value");const i=n.key;return{handshakeTopic:r,bridge:o,key:i}}else throw new Error(Eo)}async _generateKey(){return this._cryptoLib?await this._cryptoLib.generateKey():null}async _encrypt(e){const n=this._key;return this._cryptoLib&&n?await this._cryptoLib.encrypt(e,n):null}async _decrypt(e){const n=this._key;return this._cryptoLib&&n?await this._cryptoLib.decrypt(e,n):null}_getStorageSession(){let e=null;return this._sessionStorage&&(e=this._sessionStorage.getSession()),e}_setStorageSession(){this._sessionStorage&&this._sessionStorage.setSession(this.session)}_removeStorageSession(){this._sessionStorage&&this._sessionStorage.removeSession()}_manageStorageSession(){this._connected?this._setStorageSession():this._removeStorageSession()}_registerPushServer(e){if(!e.url||typeof e.url!="string")throw Error("Invalid or missing pushServerOpts.url parameter value");if(!e.type||typeof e.type!="string")throw Error("Invalid or missing pushServerOpts.type parameter value");if(!e.token||typeof e.token!="string")throw Error("Invalid or missing pushServerOpts.token parameter value");const n={bridge:this.bridge,topic:this.clientId,type:e.type,token:e.token,peerName:"",language:e.language||""};this.on("connect",async(r,o)=>{if(r)throw r;if(e.peerMeta){const i=o.params[0].peerMeta.name;n.peerName=i}try{if(!(await(await fetch(`${e.url}/new`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(n)})).json()).success)throw Error("Failed to register in Push Server")}catch{throw Error("Failed to register in Push Server")}})}}function ps(t){return ie.getBrowerCrypto().getRandomValues(new Uint8Array(t))}const Pn=256,qn=Pn,ms=Pn,q="AES-CBC",ws=`SHA-${qn}`,Fe="HMAC",ys="encrypt",bs="decrypt",vs="sign",Es="verify";function Cs(t){return t===q?{length:qn,name:q}:{hash:{name:ws},name:Fe}}function Ss(t){return t===q?[ys,bs]:[vs,Es]}async function ft(t,e=q){return ie.getSubtleCrypto().importKey("raw",t,Cs(e),!0,Ss(e))}async function Is(t,e,n){const r=ie.getSubtleCrypto(),o=await ft(e,q),i=await r.encrypt({iv:t,name:q},o,n);return new Uint8Array(i)}async function Rs(t,e,n){const r=ie.getSubtleCrypto(),o=await ft(e,q),i=await r.decrypt({iv:t,name:q},o,n);return new Uint8Array(i)}async function ks(t,e){const n=ie.getSubtleCrypto(),r=await ft(t,Fe),o=await n.sign({length:ms,name:Fe},r,e);return new Uint8Array(o)}function Ts(t,e,n){return Is(t,e,n)}function Ns(t,e,n){return Rs(t,e,n)}async function Dn(t,e){return await ks(t,e)}async function Fn(t){const e=(t||256)/8,n=ps(e);return ln(Z(n))}async function $n(t,e){const n=P(t.data),r=P(t.iv),o=P(t.hmac),i=U(o,!1),s=an(n,r),a=await Dn(e,s),c=U(a,!1);return J(i)===J(c)}async function xs(t,e,n){const r=V(_e(e)),o=n||await Fn(128),i=V(_e(o)),s=U(i,!1),a=JSON.stringify(t),c=rn(a),h=await Ts(i,r,c),_=U(h,!1),v=an(h,i),b=await Dn(r,v),w=U(b,!1);return{data:_,hmac:w,iv:s}}async function Ms(t,e){const n=V(_e(e));if(!n)throw new Error("Missing key: required for decryption");if(!await $n(t,n))return null;const o=P(t.data),i=P(t.iv),s=await Ns(i,n,o),a=tn(s);let c;try{c=JSON.parse(a)}catch{return null}return c}const As=Object.freeze(Object.defineProperty({__proto__:null,decrypt:Ms,encrypt:xs,generateKey:Fn,verifyHmac:$n},Symbol.toStringTag,{value:"Module"}));class Os extends _s{constructor(e,n){super({cryptoLib:As,connectorOpts:e,pushServerOpts:n})}}const Ls=Ft(es);var ae={},Bs=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then},jn={},M={};let ht;const Us=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];M.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17};M.getSymbolTotalCodewords=function(e){return Us[e]};M.getBCHDigit=function(t){let e=0;for(;t!==0;)e++,t>>>=1;return e};M.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');ht=e};M.isKanjiModeEnabled=function(){return typeof ht<"u"};M.toSJIS=function(e){return ht(e)};var Ie={};(function(t){t.L={bit:1},t.M={bit:0},t.Q={bit:3},t.H={bit:2};function e(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return t.L;case"m":case"medium":return t.M;case"q":case"quartile":return t.Q;case"h":case"high":return t.H;default:throw new Error("Unknown EC Level: "+n)}}t.isValid=function(r){return r&&typeof r.bit<"u"&&r.bit>=0&&r.bit<4},t.from=function(r,o){if(t.isValid(r))return r;try{return e(r)}catch{return o}}})(Ie);function Hn(){this.buffer=[],this.length=0}Hn.prototype={get:function(t){const e=Math.floor(t/8);return(this.buffer[e]>>>7-t%8&1)===1},put:function(t,e){for(let n=0;n>>e-n-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var Ps=Hn;function ce(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}ce.prototype.set=function(t,e,n,r){const o=t*this.size+e;this.data[o]=n,r&&(this.reservedBit[o]=!0)};ce.prototype.get=function(t,e){return this.data[t*this.size+e]};ce.prototype.xor=function(t,e,n){this.data[t*this.size+e]^=n};ce.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]};var qs=ce,zn={};(function(t){const e=M.getSymbolSize;t.getRowColCoords=function(r){if(r===1)return[];const o=Math.floor(r/7)+2,i=e(r),s=i===145?26:Math.ceil((i-13)/(2*o-2))*2,a=[i-7];for(let c=1;c=0&&o<=7},t.from=function(o){return t.isValid(o)?parseInt(o,10):void 0},t.getPenaltyN1=function(o){const i=o.size;let s=0,a=0,c=0,h=null,_=null;for(let v=0;v=5&&(s+=e.N1+(a-5)),h=w,a=1),w=o.get(b,v),w===_?c++:(c>=5&&(s+=e.N1+(c-5)),_=w,c=1)}a>=5&&(s+=e.N1+(a-5)),c>=5&&(s+=e.N1+(c-5))}return s},t.getPenaltyN2=function(o){const i=o.size;let s=0;for(let a=0;a=10&&(a===1488||a===93)&&s++,c=c<<1&2047|o.get(_,h),_>=10&&(c===1488||c===93)&&s++}return s*e.N3},t.getPenaltyN4=function(o){let i=0;const s=o.data.length;for(let c=0;c=0;){const s=i[0];for(let c=0;c0){const i=new Uint8Array(this.degree);return i.set(r,o),i}return r};var Fs=gt,Kn={},D={},_t={};_t.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40};var A={};const Yn="[0-9]+",$s="[A-Z $%*+\\-./:]+";let oe="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";oe=oe.replace(/u/g,"\\u");const js="(?:(?![A-Z0-9 $%*+\\-./:]|"+oe+`)(?:.|[\r +import{E as Dt}from"./events-d049dff1.js";import{b as Fr,s as $r,m as jr,c as ie,I as Hr,f as vt,J as Et,H as zr}from"./http-ec971fc9.js";import{k as Ve,aA as Wr,aB as Vr,aC as Jr,aD as Qr,aE as Kr,aF as Yr,aG as Gr,aH as Zr,aI as Xr,aJ as eo,aK as to,aL as no,aM as ro,aN as oo,aO as io,aP as so,aQ as ao,aR as co,e as Ft,aS as lo,aT as uo}from"./index-90f155ac.js";import{b as j,l as N,y as O,k as W,C as B,B as ge,E as fo,F as ho,a as ye,c as Je,d as Qe,V as $t,s as jt,_ as Ht,A as zt,e as Wt,T as Vt,q as Jt,x as Qt,G as Kt,f as Yt,P as go}from"./hooks.module-fb90a505.js";import"@safe-globalThis/safe-apps-provider";import"@safe-globalThis/safe-apps-sdk";const Ne="Session currently connected",$="Session currently disconnected",_o="Session Rejected",po="Missing JSON RPC response",mo='JSON-RPC success response must include "result" field',wo='JSON-RPC error response must include "error" field',yo='JSON RPC request must have valid "method" value',bo='JSON RPC request must have valid "id" value',vo="Missing one of the required parameters: bridge / uri / session",Ct="JSON RPC response format is invalid",Eo="URI format is invalid",Co="QRCode Modal not provided",St="User close QRCode Modal",So=["session_request","session_update","exchange_key","connect","disconnect","display_uri","modal_closed","transport_open","transport_close","transport_error"],Io=["wallet_addEthereumChain","wallet_switchEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode"],Ke=["eth_sendTransaction","eth_signTransaction","eth_sign","eth_signTypedData","eth_signTypedData_v1","eth_signTypedData_v2","eth_signTypedData_v3","eth_signTypedData_v4","personal_sign",...Io],Pe="WALLETCONNECT_DEEPLINK_CHOICE",Ro={1:"mainnet",3:"ropsten",4:"rinkeby",5:"goerli",42:"kovan"};var Gt=Ye;Ye.strict=Zt;Ye.loose=Xt;var ko=Object.prototype.toString,To={"[object Int8Array]":!0,"[object Int16Array]":!0,"[object Int32Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Uint16Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0};function Ye(t){return Zt(t)||Xt(t)}function Zt(t){return t instanceof Int8Array||t instanceof Int16Array||t instanceof Int32Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Uint16Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array}function Xt(t){return To[ko.call(t)]}const No=Ve(Gt);var xo=Gt.strict,Mo=function(e){if(xo(e)){var n=Buffer.from(e.buffer);return e.byteLength!==e.buffer.byteLength&&(n=n.slice(e.byteOffset,e.byteOffset+e.byteLength)),n}else return Buffer.from(e)};const Ao=Ve(Mo),Ge="hex",Ze="utf8",Oo="binary",Lo="buffer",Bo="array",Uo="typed-array",Po="array-buffer",be="0";function V(t){return new Uint8Array(t)}function Xe(t,e=!1){const n=t.toString(Ge);return e?se(n):n}function et(t){return t.toString(Ze)}function en(t){return t.readUIntBE(0,t.length)}function Z(t){return Ao(t)}function U(t,e=!1){return Xe(Z(t),e)}function tn(t){return et(Z(t))}function nn(t){return en(Z(t))}function tt(t){return Buffer.from(J(t),Ge)}function P(t){return V(tt(t))}function qo(t){return et(tt(t))}function Do(t){return nn(P(t))}function nt(t){return Buffer.from(t,Ze)}function rn(t){return V(nt(t))}function Fo(t,e=!1){return Xe(nt(t),e)}function $o(t){const e=parseInt(t,10);return ii(oi(e),"Number can only safely store up to 53 bits"),e}function jo(t){return Vo(rt(t))}function Ho(t){return ot(rt(t))}function zo(t,e){return Jo(rt(t),e)}function Wo(t){return`${t}`}function rt(t){const e=(t>>>0).toString(2);return st(e)}function Vo(t){return Z(ot(t))}function ot(t){return new Uint8Array(Xo(t).map(e=>parseInt(e,2)))}function Jo(t,e){return U(ot(t),e)}function Qo(t){return!(typeof t!="string"||!new RegExp(/^[01]+$/).test(t)||t.length%8!==0)}function on(t,e){return!(typeof t!="string"||!t.match(/^0x[0-9A-Fa-f]*$/)||e&&t.length!==2+2*e)}function ve(t){return Buffer.isBuffer(t)}function it(t){return No.strict(t)&&!ve(t)}function sn(t){return!it(t)&&!ve(t)&&typeof t.byteLength<"u"}function Ko(t){return ve(t)?Lo:it(t)?Uo:sn(t)?Po:Array.isArray(t)?Bo:typeof t}function Yo(t){return Qo(t)?Oo:on(t)?Ge:Ze}function Go(...t){return Buffer.concat(t)}function an(...t){let e=[];return t.forEach(n=>e=e.concat(Array.from(n))),new Uint8Array([...e])}function Zo(t,e=8){const n=t%e;return n?(t-n)/e*e+e:t}function Xo(t,e=8){const n=st(t).match(new RegExp(`.{${e}}`,"gi"));return Array.from(n||[])}function st(t,e=8,n=be){return ei(t,Zo(t.length,e),n)}function ei(t,e,n=be){return si(t,e,!0,n)}function J(t){return t.replace(/^0x/,"")}function se(t){return t.startsWith("0x")?t:`0x${t}`}function ti(t){return t=J(t),t=st(t,2),t&&(t=se(t)),t}function ni(t){const e=t.startsWith("0x");return t=J(t),t=t.startsWith(be)?t.substring(1):t,e?se(t):t}function ri(t){return typeof t>"u"}function oi(t){return!ri(t)}function ii(t,e){if(!t)throw new Error(e)}function si(t,e,n,r=be){const o=e-t.length;let i=t;if(o>0){const s=r.repeat(o);i=n?s+t:t+s}return i}function _e(t){return Z(new Uint8Array(t))}function ai(t){return tn(new Uint8Array(t))}function cn(t,e){return U(new Uint8Array(t),!e)}function ci(t){return nn(new Uint8Array(t))}function li(...t){return P(t.map(e=>U(new Uint8Array(e))).join("")).buffer}function ln(t){return V(t).buffer}function ui(t){return et(t)}function di(t,e){return Xe(t,!e)}function fi(t){return en(t)}function hi(...t){return Go(...t)}function gi(t){return rn(t).buffer}function _i(t){return nt(t)}function pi(t,e){return Fo(t,!e)}function mi(t){return $o(t)}function wi(t){return tt(t)}function un(t){return P(t).buffer}function yi(t){return qo(t)}function bi(t){return Do(t)}function vi(t){return jo(t)}function Ei(t){return Ho(t).buffer}function Ci(t){return Wo(t)}function dn(t,e){return zo(Number(t),!e)}const Si=Qr,Ii=Kr,Ri=Yr,ki=Gr,Ti=Zr,fn=Jr,Ni=Xr,hn=Wr,xi=eo,Mi=to,Ai=no,Ee=Vr;function Ce(t){return ro(t)}function Se(){const t=Ce();return t&&t.os?t.os:void 0}function gn(){const t=Se();return t?t.toLowerCase().includes("android"):!1}function _n(){const t=Se();return t?t.toLowerCase().includes("ios")||t.toLowerCase().includes("mac")&&navigator.maxTouchPoints>1:!1}function pn(){return Se()?gn()||_n():!1}function mn(){const t=Ce();return t&&t.name?t.name.toLowerCase()==="node":!1}function wn(){return!mn()&&!!fn()}const yn=Fr,bn=$r;function at(t,e){const n=bn(e),r=Ee();r&&r.setItem(t,n)}function ct(t){let e=null,n=null;const r=Ee();return r&&(n=r.getItem(t)),e=n&&yn(n),e}function lt(t){const e=Ee();e&&e.removeItem(t)}function qe(){return oo()}function Oi(t){return ti(t)}function Li(t){return se(t)}function Bi(t){return J(t)}function Ui(t){return ni(se(t))}const vn=jr;function he(){return((e,n)=>{for(n=e="";e++<36;n+=e*51&52?(e^15?8^Math.random()*(e^20?16:4):4).toString(16):"-");return n})()}function Pi(){console.warn("DEPRECATION WARNING: This WalletConnect client library will be deprecated in favor of @walletconnect/client. Please check docs.walletconnect.org to learn more about this migration!")}function En(t,e){let n;const r=Ro[t];return r&&(n=`https://${r}.infura.io/v3/${e}`),n}function Cn(t,e){let n;const r=En(t,e.infuraId);return e.custom&&e.custom[t]?n=e.custom[t]:r&&(n=r),n}function qi(t,e){const n=encodeURIComponent(t);return e.universalLink?`${e.universalLink}/wc?uri=${n}`:e.deepLink?`${e.deepLink}${e.deepLink.endsWith(":")?"//":"/"}wc?uri=${n}`:""}function Di(t){const e=t.href.split("?")[0];at(Pe,Object.assign(Object.assign({},t),{href:e}))}function Sn(t,e){return t.filter(n=>n.name.toLowerCase().includes(e.toLowerCase()))[0]}function Fi(t,e){let n=t;return e&&(n=e.map(r=>Sn(t,r)).filter(Boolean)),n}function $i(t,e){return async(...r)=>new Promise((o,i)=>{const s=(a,c)=>{(a===null||typeof a>"u")&&i(a),o(c)};t.apply(e,[...r,s])})}function In(t){const e=t.message||"Failed or Rejected Request";let n=-32e3;if(t&&!t.code)switch(e){case"Parse error":n=-32700;break;case"Invalid request":n=-32600;break;case"Method not found":n=-32601;break;case"Invalid params":n=-32602;break;case"Internal error":n=-32603;break;default:n=-32e3;break}const r={code:n,message:e};return t.data&&(r.data=t.data),r}const Rn="https://registry.walletconnect.com";function ji(){return Rn+"/api/v2/wallets"}function Hi(){return Rn+"/api/v2/dapps"}function kn(t,e="mobile"){var n;return{name:t.name||"",shortName:t.metadata.shortName||"",color:t.metadata.colors.primary||"",logo:(n=t.image_url.sm)!==null&&n!==void 0?n:"",universalLink:t[e].universal||"",deepLink:t[e].native||""}}function zi(t,e="mobile"){return Object.values(t).filter(n=>!!n[e].universal||!!n[e].native).map(n=>kn(n,e))}var ut={};(function(t){const e=ao,n=co,r=io,o=so,i=l=>l==null;function s(l){switch(l.arrayFormat){case"index":return d=>(f,u)=>{const g=f.length;return u===void 0||l.skipNull&&u===null||l.skipEmptyString&&u===""?f:u===null?[...f,[h(d,l),"[",g,"]"].join("")]:[...f,[h(d,l),"[",h(g,l),"]=",h(u,l)].join("")]};case"bracket":return d=>(f,u)=>u===void 0||l.skipNull&&u===null||l.skipEmptyString&&u===""?f:u===null?[...f,[h(d,l),"[]"].join("")]:[...f,[h(d,l),"[]=",h(u,l)].join("")];case"comma":case"separator":return d=>(f,u)=>u==null||u.length===0?f:f.length===0?[[h(d,l),"=",h(u,l)].join("")]:[[f,h(u,l)].join(l.arrayFormatSeparator)];default:return d=>(f,u)=>u===void 0||l.skipNull&&u===null||l.skipEmptyString&&u===""?f:u===null?[...f,h(d,l)]:[...f,[h(d,l),"=",h(u,l)].join("")]}}function a(l){let d;switch(l.arrayFormat){case"index":return(f,u,g)=>{if(d=/\[(\d*)\]$/.exec(f),f=f.replace(/\[\d*\]$/,""),!d){g[f]=u;return}g[f]===void 0&&(g[f]={}),g[f][d[1]]=u};case"bracket":return(f,u,g)=>{if(d=/(\[\])$/.exec(f),f=f.replace(/\[\]$/,""),!d){g[f]=u;return}if(g[f]===void 0){g[f]=[u];return}g[f]=[].concat(g[f],u)};case"comma":case"separator":return(f,u,g)=>{const y=typeof u=="string"&&u.includes(l.arrayFormatSeparator),m=typeof u=="string"&&!y&&_(u,l).includes(l.arrayFormatSeparator);u=m?_(u,l):u;const S=y||m?u.split(l.arrayFormatSeparator).map(R=>_(R,l)):u===null?u:_(u,l);g[f]=S};default:return(f,u,g)=>{if(g[f]===void 0){g[f]=u;return}g[f]=[].concat(g[f],u)}}}function c(l){if(typeof l!="string"||l.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function h(l,d){return d.encode?d.strict?e(l):encodeURIComponent(l):l}function _(l,d){return d.decode?n(l):l}function v(l){return Array.isArray(l)?l.sort():typeof l=="object"?v(Object.keys(l)).sort((d,f)=>Number(d)-Number(f)).map(d=>l[d]):l}function b(l){const d=l.indexOf("#");return d!==-1&&(l=l.slice(0,d)),l}function w(l){let d="";const f=l.indexOf("#");return f!==-1&&(d=l.slice(f)),d}function E(l){l=b(l);const d=l.indexOf("?");return d===-1?"":l.slice(d+1)}function C(l,d){return d.parseNumbers&&!Number.isNaN(Number(l))&&typeof l=="string"&&l.trim()!==""?l=Number(l):d.parseBooleans&&l!==null&&(l.toLowerCase()==="true"||l.toLowerCase()==="false")&&(l=l.toLowerCase()==="true"),l}function I(l,d){d=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},d),c(d.arrayFormatSeparator);const f=a(d),u=Object.create(null);if(typeof l!="string"||(l=l.trim().replace(/^[?#&]/,""),!l))return u;for(const g of l.split("&")){if(g==="")continue;let[y,m]=r(d.decode?g.replace(/\+/g," "):g,"=");m=m===void 0?null:["comma","separator"].includes(d.arrayFormat)?m:_(m,d),f(_(y,d),m,u)}for(const g of Object.keys(u)){const y=u[g];if(typeof y=="object"&&y!==null)for(const m of Object.keys(y))y[m]=C(y[m],d);else u[g]=C(y,d)}return d.sort===!1?u:(d.sort===!0?Object.keys(u).sort():Object.keys(u).sort(d.sort)).reduce((g,y)=>{const m=u[y];return m&&typeof m=="object"&&!Array.isArray(m)?g[y]=v(m):g[y]=m,g},Object.create(null))}t.extract=E,t.parse=I,t.stringify=(l,d)=>{if(!l)return"";d=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},d),c(d.arrayFormatSeparator);const f=m=>d.skipNull&&i(l[m])||d.skipEmptyString&&l[m]==="",u=s(d),g={};for(const m of Object.keys(l))f(m)||(g[m]=l[m]);const y=Object.keys(g);return d.sort!==!1&&y.sort(d.sort),y.map(m=>{const S=l[m];return S===void 0?"":S===null?h(m,d):Array.isArray(S)?S.reduce(u(m),[]).join("&"):h(m,d)+"="+h(S,d)}).filter(m=>m.length>0).join("&")},t.parseUrl=(l,d)=>{d=Object.assign({decode:!0},d);const[f,u]=r(l,"#");return Object.assign({url:f.split("?")[0]||"",query:I(E(l),d)},d&&d.parseFragmentIdentifier&&u?{fragmentIdentifier:_(u,d)}:{})},t.stringifyUrl=(l,d)=>{d=Object.assign({encode:!0,strict:!0},d);const f=b(l.url).split("?")[0]||"",u=t.extract(l.url),g=t.parse(u,{sort:!1}),y=Object.assign(g,l.query);let m=t.stringify(y,d);m&&(m=`?${m}`);let S=w(l.url);return l.fragmentIdentifier&&(S=`#${h(l.fragmentIdentifier,d)}`),`${f}${m}${S}`},t.pick=(l,d,f)=>{f=Object.assign({parseFragmentIdentifier:!0},f);const{url:u,query:g,fragmentIdentifier:y}=t.parseUrl(l,f);return t.stringifyUrl({url:u,query:o(g,d),fragmentIdentifier:y},f)},t.exclude=(l,d,f)=>{const u=Array.isArray(d)?g=>!d.includes(g):(g,y)=>!d(g,y);return t.pick(l,u,f)}})(ut);function Tn(t){const e=t.indexOf("?")!==-1?t.indexOf("?"):void 0;return typeof e<"u"?t.substr(e):""}function Nn(t,e){let n=dt(t);return n=Object.assign(Object.assign({},n),e),t=xn(n),t}function dt(t){return ut.parse(t)}function xn(t){return ut.stringify(t)}function Mn(t){return typeof t.bridge<"u"}function An(t){const e=t.indexOf(":"),n=t.indexOf("?")!==-1?t.indexOf("?"):void 0,r=t.substring(0,e),o=t.substring(e+1,n);function i(v){const b="@",w=v.split(b);return{handshakeTopic:w[0],version:parseInt(w[1],10)}}const s=i(o),a=typeof n<"u"?t.substr(n):"";function c(v){const b=dt(v);return{key:b.key||"",bridge:b.bridge||""}}const h=c(a);return Object.assign(Object.assign({protocol:r},s),h)}function Wi(t){return t===""||typeof t=="string"&&t.trim()===""}function Vi(t){return!(t&&t.length)}function Ji(t){return ve(t)}function Qi(t){return it(t)}function Ki(t){return sn(t)}function Yi(t){return Ko(t)}function Gi(t){return Yo(t)}function Zi(t,e){return on(t,e)}function Xi(t){return typeof t.params=="object"}function On(t){return typeof t.method<"u"}function H(t){return typeof t.result<"u"}function re(t){return typeof t.error<"u"}function De(t){return typeof t.event<"u"}function Ln(t){return So.includes(t)||t.startsWith("wc_")}function Bn(t){return t.method.startsWith("wc_")?!0:!Ke.includes(t.method)}const es=Object.freeze(Object.defineProperty({__proto__:null,addHexPrefix:Li,appendToQueryString:Nn,concatArrayBuffers:li,concatBuffers:hi,convertArrayBufferToBuffer:_e,convertArrayBufferToHex:cn,convertArrayBufferToNumber:ci,convertArrayBufferToUtf8:ai,convertBufferToArrayBuffer:ln,convertBufferToHex:di,convertBufferToNumber:fi,convertBufferToUtf8:ui,convertHexToArrayBuffer:un,convertHexToBuffer:wi,convertHexToNumber:bi,convertHexToUtf8:yi,convertNumberToArrayBuffer:Ei,convertNumberToBuffer:vi,convertNumberToHex:dn,convertNumberToUtf8:Ci,convertUtf8ToArrayBuffer:gi,convertUtf8ToBuffer:_i,convertUtf8ToHex:pi,convertUtf8ToNumber:mi,detectEnv:Ce,detectOS:Se,formatIOSMobile:qi,formatMobileRegistry:zi,formatMobileRegistryEntry:kn,formatQueryString:xn,formatRpcError:In,getClientMeta:qe,getCrypto:Mi,getCryptoOrThrow:xi,getDappRegistryUrl:Hi,getDocument:ki,getDocumentOrThrow:Ri,getEncoding:Gi,getFromWindow:Si,getFromWindowOrThrow:Ii,getInfuraRpcUrl:En,getLocal:ct,getLocalStorage:Ee,getLocalStorageOrThrow:Ai,getLocation:hn,getLocationOrThrow:Ni,getMobileLinkRegistry:Fi,getMobileRegistryEntry:Sn,getNavigator:fn,getNavigatorOrThrow:Ti,getQueryString:Tn,getRpcUrl:Cn,getType:Yi,getWalletRegistryUrl:ji,isAndroid:gn,isArrayBuffer:Ki,isBrowser:wn,isBuffer:Ji,isEmptyArray:Vi,isEmptyString:Wi,isHexString:Zi,isIOS:_n,isInternalEvent:De,isJsonRpcRequest:On,isJsonRpcResponseError:re,isJsonRpcResponseSuccess:H,isJsonRpcSubscription:Xi,isMobile:pn,isNode:mn,isReservedEvent:Ln,isSilentPayload:Bn,isTypedArray:Qi,isWalletConnectSession:Mn,logDeprecationWarning:Pi,parseQueryString:dt,parseWalletConnectUri:An,payloadId:vn,promisify:$i,removeHexLeadingZeros:Ui,removeHexPrefix:Bi,removeLocal:lt,safeJsonParse:yn,safeJsonStringify:bn,sanitizeHex:Oi,saveMobileLinkInfo:Di,setLocal:at,uuid:he},Symbol.toStringTag,{value:"Module"}));class ts{constructor(){this._eventEmitters=[],typeof window<"u"&&typeof window.addEventListener<"u"&&(window.addEventListener("online",()=>this.trigger("online")),window.addEventListener("offline",()=>this.trigger("offline")))}on(e,n){this._eventEmitters.push({event:e,callback:n})}trigger(e){let n=[];e&&(n=this._eventEmitters.filter(r=>r.event===e)),n.forEach(r=>{r.callback()})}}const ns=typeof globalThis.WebSocket<"u"?globalThis.WebSocket:require("ws");class rs{constructor(e){if(this.opts=e,this._queue=[],this._events=[],this._subscriptions=[],this._protocol=e.protocol,this._version=e.version,this._url="",this._netMonitor=null,this._socket=null,this._nextSocket=null,this._subscriptions=e.subscriptions||[],this._netMonitor=e.netMonitor||new ts,!e.url||typeof e.url!="string")throw new Error("Missing or invalid WebSocket url");this._url=e.url,this._netMonitor.on("online",()=>this._socketCreate())}set readyState(e){}get readyState(){return this._socket?this._socket.readyState:-1}set connecting(e){}get connecting(){return this.readyState===0}set connected(e){}get connected(){return this.readyState===1}set closing(e){}get closing(){return this.readyState===2}set closed(e){}get closed(){return this.readyState===3}open(){this._socketCreate()}close(){this._socketClose()}send(e,n,r){if(!n||typeof n!="string")throw new Error("Missing or invalid topic field");this._socketSend({topic:n,type:"pub",payload:e,silent:!!r})}subscribe(e){this._socketSend({topic:e,type:"sub",payload:"",silent:!0})}on(e,n){this._events.push({event:e,callback:n})}_socketCreate(){if(this._nextSocket)return;const e=os(this._url,this._protocol,this._version);if(this._nextSocket=new ns(e),!this._nextSocket)throw new Error("Failed to create socket");this._nextSocket.onmessage=n=>this._socketReceive(n),this._nextSocket.onopen=()=>this._socketOpen(),this._nextSocket.onerror=n=>this._socketError(n),this._nextSocket.onclose=()=>{setTimeout(()=>{this._nextSocket=null,this._socketCreate()},1e3)}}_socketOpen(){this._socketClose(),this._socket=this._nextSocket,this._nextSocket=null,this._queueSubscriptions(),this._pushQueue()}_socketClose(){this._socket&&(this._socket.onclose=()=>{},this._socket.close())}_socketSend(e){const n=JSON.stringify(e);this._socket&&this._socket.readyState===1?this._socket.send(n):(this._setToQueue(e),this._socketCreate())}async _socketReceive(e){let n;try{n=JSON.parse(e.data)}catch{return}if(this._socketSend({topic:n.topic,type:"ack",payload:"",silent:!0}),this._socket&&this._socket.readyState===1){const r=this._events.filter(o=>o.event==="message");r&&r.length&&r.forEach(o=>o.callback(n))}}_socketError(e){const n=this._events.filter(r=>r.event==="error");n&&n.length&&n.forEach(r=>r.callback(e))}_queueSubscriptions(){this._subscriptions.forEach(n=>this._queue.push({topic:n,type:"sub",payload:"",silent:!0})),this._subscriptions=this.opts.subscriptions||[]}_setToQueue(e){this._queue.push(e)}_pushQueue(){this._queue.forEach(n=>this._socketSend(n)),this._queue=[]}}function os(t,e,n){var r,o;const s=(t.startsWith("https")?t.replace("https","wss"):t.startsWith("http")?t.replace("http","ws"):t).split("?"),a=wn()?{protocol:e,version:n,env:"browser",host:((r=hn())===null||r===void 0?void 0:r.host)||""}:{protocol:e,version:n,env:((o=Ce())===null||o===void 0?void 0:o.name)||""},c=Nn(Tn(s[1]||""),a);return s[0]+"?"+c}class is{constructor(){this._eventEmitters=[]}subscribe(e){this._eventEmitters.push(e)}unsubscribe(e){this._eventEmitters=this._eventEmitters.filter(n=>n.event!==e)}trigger(e){let n=[],r;On(e)?r=e.method:H(e)||re(e)?r=`response:${e.id}`:De(e)?r=e.event:r="",r&&(n=this._eventEmitters.filter(o=>o.event===r)),(!n||!n.length)&&!Ln(r)&&!De(r)&&(n=this._eventEmitters.filter(o=>o.event==="call_request")),n.forEach(o=>{if(re(e)){const i=new Error(e.error.message);o.callback(i,null)}else o.callback(null,e)})}}class ss{constructor(e="walletconnect"){this.storageId=e}getSession(){let e=null;const n=ct(this.storageId);return n&&Mn(n)&&(e=n),e}setSession(e){return at(this.storageId,e),e}removeSession(){lt(this.storageId)}}const as="walletconnect.org",cs="abcdefghijklmnopqrstuvwxyz0123456789",Un=cs.split("").map(t=>`https://${t}.bridge.walletconnect.org`);function ls(t){let e=t.indexOf("//")>-1?t.split("/")[2]:t.split("/")[0];return e=e.split(":")[0],e=e.split("?")[0],e}function us(t){return ls(t).split(".").slice(-2).join(".")}function ds(){return Math.floor(Math.random()*Un.length)}function fs(){return Un[ds()]}function hs(t){return us(t)===as}function gs(t){return hs(t)?fs():t}class _s{constructor(e){if(this.protocol="wc",this.version=1,this._bridge="",this._key=null,this._clientId="",this._clientMeta=null,this._peerId="",this._peerMeta=null,this._handshakeId=0,this._handshakeTopic="",this._connected=!1,this._accounts=[],this._chainId=0,this._networkId=0,this._rpcUrl="",this._eventManager=new is,this._clientMeta=qe()||e.connectorOpts.clientMeta||null,this._cryptoLib=e.cryptoLib,this._sessionStorage=e.sessionStorage||new ss(e.connectorOpts.storageId),this._qrcodeModal=e.connectorOpts.qrcodeModal,this._qrcodeModalOptions=e.connectorOpts.qrcodeModalOptions,this._signingMethods=[...Ke,...e.connectorOpts.signingMethods||[]],!e.connectorOpts.bridge&&!e.connectorOpts.uri&&!e.connectorOpts.session)throw new Error(vo);e.connectorOpts.bridge&&(this.bridge=gs(e.connectorOpts.bridge)),e.connectorOpts.uri&&(this.uri=e.connectorOpts.uri);const n=e.connectorOpts.session||this._getStorageSession();n&&(this.session=n),this.handshakeId&&this._subscribeToSessionResponse(this.handshakeId,"Session request rejected"),this._transport=e.transport||new rs({protocol:this.protocol,version:this.version,url:this.bridge,subscriptions:[this.clientId]}),this._subscribeToInternalEvents(),this._initTransport(),e.connectorOpts.uri&&this._subscribeToSessionRequest(),e.pushServerOpts&&this._registerPushServer(e.pushServerOpts)}set bridge(e){e&&(this._bridge=e)}get bridge(){return this._bridge}set key(e){if(!e)return;const n=un(e);this._key=n}get key(){return this._key?cn(this._key,!0):""}set clientId(e){e&&(this._clientId=e)}get clientId(){let e=this._clientId;return e||(e=this._clientId=he()),this._clientId}set peerId(e){e&&(this._peerId=e)}get peerId(){return this._peerId}set clientMeta(e){}get clientMeta(){let e=this._clientMeta;return e||(e=this._clientMeta=qe()),e}set peerMeta(e){this._peerMeta=e}get peerMeta(){return this._peerMeta}set handshakeTopic(e){e&&(this._handshakeTopic=e)}get handshakeTopic(){return this._handshakeTopic}set handshakeId(e){e&&(this._handshakeId=e)}get handshakeId(){return this._handshakeId}get uri(){return this._formatUri()}set uri(e){if(!e)return;const{handshakeTopic:n,bridge:r,key:o}=this._parseUri(e);this.handshakeTopic=n,this.bridge=r,this.key=o}set chainId(e){this._chainId=e}get chainId(){return this._chainId}set networkId(e){this._networkId=e}get networkId(){return this._networkId}set accounts(e){this._accounts=e}get accounts(){return this._accounts}set rpcUrl(e){this._rpcUrl=e}get rpcUrl(){return this._rpcUrl}set connected(e){}get connected(){return this._connected}set pending(e){}get pending(){return!!this._handshakeTopic}get session(){return{connected:this.connected,accounts:this.accounts,chainId:this.chainId,bridge:this.bridge,key:this.key,clientId:this.clientId,clientMeta:this.clientMeta,peerId:this.peerId,peerMeta:this.peerMeta,handshakeId:this.handshakeId,handshakeTopic:this.handshakeTopic}}set session(e){e&&(this._connected=e.connected,this.accounts=e.accounts,this.chainId=e.chainId,this.bridge=e.bridge,this.key=e.key,this.clientId=e.clientId,this.clientMeta=e.clientMeta,this.peerId=e.peerId,this.peerMeta=e.peerMeta,this.handshakeId=e.handshakeId,this.handshakeTopic=e.handshakeTopic)}on(e,n){const r={event:e,callback:n};this._eventManager.subscribe(r)}off(e){this._eventManager.unsubscribe(e)}async createInstantRequest(e){this._key=await this._generateKey();const n=this._formatRequest({method:"wc_instantRequest",params:[{peerId:this.clientId,peerMeta:this.clientMeta,request:this._formatRequest(e)}]});this.handshakeId=n.id,this.handshakeTopic=he(),this._eventManager.trigger({event:"display_uri",params:[this.uri]}),this.on("modal_closed",()=>{throw new Error(St)});const r=()=>{this.killSession()};try{const o=await this._sendCallRequest(n);return o&&r(),o}catch(o){throw r(),o}}async connect(e){if(!this._qrcodeModal)throw new Error(Co);return this.connected?{chainId:this.chainId,accounts:this.accounts}:(await this.createSession(e),new Promise(async(n,r)=>{this.on("modal_closed",()=>r(new Error(St))),this.on("connect",(o,i)=>{if(o)return r(o);n(i.params[0])})}))}async createSession(e){if(this._connected)throw new Error(Ne);if(this.pending)return;this._key=await this._generateKey();const n=this._formatRequest({method:"wc_sessionRequest",params:[{peerId:this.clientId,peerMeta:this.clientMeta,chainId:e&&e.chainId?e.chainId:null}]});this.handshakeId=n.id,this.handshakeTopic=he(),this._sendSessionRequest(n,"Session update rejected",{topic:this.handshakeTopic}),this._eventManager.trigger({event:"display_uri",params:[this.uri]})}approveSession(e){if(this._connected)throw new Error(Ne);this.chainId=e.chainId,this.accounts=e.accounts,this.networkId=e.networkId||0,this.rpcUrl=e.rpcUrl||"";const n={approved:!0,chainId:this.chainId,networkId:this.networkId,accounts:this.accounts,rpcUrl:this.rpcUrl,peerId:this.clientId,peerMeta:this.clientMeta},r={id:this.handshakeId,jsonrpc:"2.0",result:n};this._sendResponse(r),this._connected=!0,this._setStorageSession(),this._eventManager.trigger({event:"connect",params:[{peerId:this.peerId,peerMeta:this.peerMeta,chainId:this.chainId,accounts:this.accounts}]})}rejectSession(e){if(this._connected)throw new Error(Ne);const n=e&&e.message?e.message:_o,r=this._formatResponse({id:this.handshakeId,error:{message:n}});this._sendResponse(r),this._connected=!1,this._eventManager.trigger({event:"disconnect",params:[{message:n}]}),this._removeStorageSession()}updateSession(e){if(!this._connected)throw new Error($);this.chainId=e.chainId,this.accounts=e.accounts,this.networkId=e.networkId||0,this.rpcUrl=e.rpcUrl||"";const n={approved:!0,chainId:this.chainId,networkId:this.networkId,accounts:this.accounts,rpcUrl:this.rpcUrl},r=this._formatRequest({method:"wc_sessionUpdate",params:[n]});this._sendSessionRequest(r,"Session update rejected"),this._eventManager.trigger({event:"session_update",params:[{chainId:this.chainId,accounts:this.accounts}]}),this._manageStorageSession()}async killSession(e){const n=e?e.message:"Session Disconnected",r={approved:!1,chainId:null,networkId:null,accounts:null},o=this._formatRequest({method:"wc_sessionUpdate",params:[r]});await this._sendRequest(o),this._handleSessionDisconnect(n)}async sendTransaction(e){if(!this._connected)throw new Error($);const n=e,r=this._formatRequest({method:"eth_sendTransaction",params:[n]});return await this._sendCallRequest(r)}async signTransaction(e){if(!this._connected)throw new Error($);const n=e,r=this._formatRequest({method:"eth_signTransaction",params:[n]});return await this._sendCallRequest(r)}async signMessage(e){if(!this._connected)throw new Error($);const n=this._formatRequest({method:"eth_sign",params:e});return await this._sendCallRequest(n)}async signPersonalMessage(e){if(!this._connected)throw new Error($);const n=this._formatRequest({method:"personal_sign",params:e});return await this._sendCallRequest(n)}async signTypedData(e){if(!this._connected)throw new Error($);const n=this._formatRequest({method:"eth_signTypedData",params:e});return await this._sendCallRequest(n)}async updateChain(e){if(!this._connected)throw new Error("Session currently disconnected");const n=this._formatRequest({method:"wallet_updateChain",params:[e]});return await this._sendCallRequest(n)}unsafeSend(e,n){return this._sendRequest(e,n),this._eventManager.trigger({event:"call_request_sent",params:[{request:e,options:n}]}),new Promise((r,o)=>{this._subscribeToResponse(e.id,(i,s)=>{if(i){o(i);return}if(!s)throw new Error(po);r(s)})})}async sendCustomRequest(e,n){if(!this._connected)throw new Error($);switch(e.method){case"eth_accounts":return this.accounts;case"eth_chainId":return dn(this.chainId);case"eth_sendTransaction":case"eth_signTransaction":e.params;break;case"personal_sign":e.params;break}const r=this._formatRequest(e);return await this._sendCallRequest(r,n)}approveRequest(e){if(H(e)){const n=this._formatResponse(e);this._sendResponse(n)}else throw new Error(mo)}rejectRequest(e){if(re(e)){const n=this._formatResponse(e);this._sendResponse(n)}else throw new Error(wo)}transportClose(){this._transport.close()}async _sendRequest(e,n){const r=this._formatRequest(e),o=await this._encrypt(r),i=typeof(n==null?void 0:n.topic)<"u"?n.topic:this.peerId,s=JSON.stringify(o),a=typeof(n==null?void 0:n.forcePushNotification)<"u"?!n.forcePushNotification:Bn(r);this._transport.send(s,i,a)}async _sendResponse(e){const n=await this._encrypt(e),r=this.peerId,o=JSON.stringify(n),i=!0;this._transport.send(o,r,i)}async _sendSessionRequest(e,n,r){this._sendRequest(e,r),this._subscribeToSessionResponse(e.id,n)}_sendCallRequest(e,n){return this._sendRequest(e,n),this._eventManager.trigger({event:"call_request_sent",params:[{request:e,options:n}]}),this._subscribeToCallResponse(e.id)}_formatRequest(e){if(typeof e.method>"u")throw new Error(yo);return{id:typeof e.id>"u"?vn():e.id,jsonrpc:"2.0",method:e.method,params:typeof e.params>"u"?[]:e.params}}_formatResponse(e){if(typeof e.id>"u")throw new Error(bo);const n={id:e.id,jsonrpc:"2.0"};if(re(e)){const r=In(e.error);return Object.assign(Object.assign(Object.assign({},n),e),{error:r})}else if(H(e))return Object.assign(Object.assign({},n),e);throw new Error(Ct)}_handleSessionDisconnect(e){const n=e||"Session Disconnected";this._connected||(this._qrcodeModal&&this._qrcodeModal.close(),lt(Pe)),this._connected&&(this._connected=!1),this._handshakeId&&(this._handshakeId=0),this._handshakeTopic&&(this._handshakeTopic=""),this._peerId&&(this._peerId=""),this._eventManager.trigger({event:"disconnect",params:[{message:n}]}),this._removeStorageSession(),this.transportClose()}_handleSessionResponse(e,n){n?n.approved?(this._connected?(n.chainId&&(this.chainId=n.chainId),n.accounts&&(this.accounts=n.accounts),this._eventManager.trigger({event:"session_update",params:[{chainId:this.chainId,accounts:this.accounts}]})):(this._connected=!0,n.chainId&&(this.chainId=n.chainId),n.accounts&&(this.accounts=n.accounts),n.peerId&&!this.peerId&&(this.peerId=n.peerId),n.peerMeta&&!this.peerMeta&&(this.peerMeta=n.peerMeta),this._eventManager.trigger({event:"connect",params:[{peerId:this.peerId,peerMeta:this.peerMeta,chainId:this.chainId,accounts:this.accounts}]})),this._manageStorageSession()):this._handleSessionDisconnect(e):this._handleSessionDisconnect(e)}async _handleIncomingMessages(e){if(![this.clientId,this.handshakeTopic].includes(e.topic))return;let r;try{r=JSON.parse(e.payload)}catch{return}const o=await this._decrypt(r);o&&this._eventManager.trigger(o)}_subscribeToSessionRequest(){this._transport.subscribe(this.handshakeTopic)}_subscribeToResponse(e,n){this.on(`response:${e}`,n)}_subscribeToSessionResponse(e,n){this._subscribeToResponse(e,(r,o)=>{if(r){this._handleSessionResponse(r.message);return}H(o)?this._handleSessionResponse(n,o.result):o.error&&o.error.message?this._handleSessionResponse(o.error.message):this._handleSessionResponse(n)})}_subscribeToCallResponse(e){return new Promise((n,r)=>{this._subscribeToResponse(e,(o,i)=>{if(o){r(o);return}H(i)?n(i.result):i.error&&i.error.message?r(i.error):r(new Error(Ct))})})}_subscribeToInternalEvents(){this.on("display_uri",()=>{this._qrcodeModal&&this._qrcodeModal.open(this.uri,()=>{this._eventManager.trigger({event:"modal_closed",params:[]})},this._qrcodeModalOptions)}),this.on("connect",()=>{this._qrcodeModal&&this._qrcodeModal.close()}),this.on("call_request_sent",(e,n)=>{const{request:r}=n.params[0];if(pn()&&this._signingMethods.includes(r.method)){const o=ct(Pe);o&&(window.location.href=o.href)}}),this.on("wc_sessionRequest",(e,n)=>{e&&this._eventManager.trigger({event:"error",params:[{code:"SESSION_REQUEST_ERROR",message:e.toString()}]}),this.handshakeId=n.id,this.peerId=n.params[0].peerId,this.peerMeta=n.params[0].peerMeta;const r=Object.assign(Object.assign({},n),{method:"session_request"});this._eventManager.trigger(r)}),this.on("wc_sessionUpdate",(e,n)=>{e&&this._handleSessionResponse(e.message),this._handleSessionResponse("Session disconnected",n.params[0])})}_initTransport(){this._transport.on("message",e=>this._handleIncomingMessages(e)),this._transport.on("open",()=>this._eventManager.trigger({event:"transport_open",params:[]})),this._transport.on("close",()=>this._eventManager.trigger({event:"transport_close",params:[]})),this._transport.on("error",()=>this._eventManager.trigger({event:"transport_error",params:["Websocket connection failed"]})),this._transport.open()}_formatUri(){const e=this.protocol,n=this.handshakeTopic,r=this.version,o=encodeURIComponent(this.bridge),i=this.key;return`${e}:${n}@${r}?bridge=${o}&key=${i}`}_parseUri(e){const n=An(e);if(n.protocol===this.protocol){if(!n.handshakeTopic)throw Error("Invalid or missing handshakeTopic parameter value");const r=n.handshakeTopic;if(!n.bridge)throw Error("Invalid or missing bridge url parameter value");const o=decodeURIComponent(n.bridge);if(!n.key)throw Error("Invalid or missing key parameter value");const i=n.key;return{handshakeTopic:r,bridge:o,key:i}}else throw new Error(Eo)}async _generateKey(){return this._cryptoLib?await this._cryptoLib.generateKey():null}async _encrypt(e){const n=this._key;return this._cryptoLib&&n?await this._cryptoLib.encrypt(e,n):null}async _decrypt(e){const n=this._key;return this._cryptoLib&&n?await this._cryptoLib.decrypt(e,n):null}_getStorageSession(){let e=null;return this._sessionStorage&&(e=this._sessionStorage.getSession()),e}_setStorageSession(){this._sessionStorage&&this._sessionStorage.setSession(this.session)}_removeStorageSession(){this._sessionStorage&&this._sessionStorage.removeSession()}_manageStorageSession(){this._connected?this._setStorageSession():this._removeStorageSession()}_registerPushServer(e){if(!e.url||typeof e.url!="string")throw Error("Invalid or missing pushServerOpts.url parameter value");if(!e.type||typeof e.type!="string")throw Error("Invalid or missing pushServerOpts.type parameter value");if(!e.token||typeof e.token!="string")throw Error("Invalid or missing pushServerOpts.token parameter value");const n={bridge:this.bridge,topic:this.clientId,type:e.type,token:e.token,peerName:"",language:e.language||""};this.on("connect",async(r,o)=>{if(r)throw r;if(e.peerMeta){const i=o.params[0].peerMeta.name;n.peerName=i}try{if(!(await(await fetch(`${e.url}/new`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(n)})).json()).success)throw Error("Failed to register in Push Server")}catch{throw Error("Failed to register in Push Server")}})}}function ps(t){return ie.getBrowerCrypto().getRandomValues(new Uint8Array(t))}const Pn=256,qn=Pn,ms=Pn,q="AES-CBC",ws=`SHA-${qn}`,Fe="HMAC",ys="encrypt",bs="decrypt",vs="sign",Es="verify";function Cs(t){return t===q?{length:qn,name:q}:{hash:{name:ws},name:Fe}}function Ss(t){return t===q?[ys,bs]:[vs,Es]}async function ft(t,e=q){return ie.getSubtleCrypto().importKey("raw",t,Cs(e),!0,Ss(e))}async function Is(t,e,n){const r=ie.getSubtleCrypto(),o=await ft(e,q),i=await r.encrypt({iv:t,name:q},o,n);return new Uint8Array(i)}async function Rs(t,e,n){const r=ie.getSubtleCrypto(),o=await ft(e,q),i=await r.decrypt({iv:t,name:q},o,n);return new Uint8Array(i)}async function ks(t,e){const n=ie.getSubtleCrypto(),r=await ft(t,Fe),o=await n.sign({length:ms,name:Fe},r,e);return new Uint8Array(o)}function Ts(t,e,n){return Is(t,e,n)}function Ns(t,e,n){return Rs(t,e,n)}async function Dn(t,e){return await ks(t,e)}async function Fn(t){const e=(t||256)/8,n=ps(e);return ln(Z(n))}async function $n(t,e){const n=P(t.data),r=P(t.iv),o=P(t.hmac),i=U(o,!1),s=an(n,r),a=await Dn(e,s),c=U(a,!1);return J(i)===J(c)}async function xs(t,e,n){const r=V(_e(e)),o=n||await Fn(128),i=V(_e(o)),s=U(i,!1),a=JSON.stringify(t),c=rn(a),h=await Ts(i,r,c),_=U(h,!1),v=an(h,i),b=await Dn(r,v),w=U(b,!1);return{data:_,hmac:w,iv:s}}async function Ms(t,e){const n=V(_e(e));if(!n)throw new Error("Missing key: required for decryption");if(!await $n(t,n))return null;const o=P(t.data),i=P(t.iv),s=await Ns(i,n,o),a=tn(s);let c;try{c=JSON.parse(a)}catch{return null}return c}const As=Object.freeze(Object.defineProperty({__proto__:null,decrypt:Ms,encrypt:xs,generateKey:Fn,verifyHmac:$n},Symbol.toStringTag,{value:"Module"}));class Os extends _s{constructor(e,n){super({cryptoLib:As,connectorOpts:e,pushServerOpts:n})}}const Ls=Ft(es);var ae={},Bs=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then},jn={},M={};let ht;const Us=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];M.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17};M.getSymbolTotalCodewords=function(e){return Us[e]};M.getBCHDigit=function(t){let e=0;for(;t!==0;)e++,t>>>=1;return e};M.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');ht=e};M.isKanjiModeEnabled=function(){return typeof ht<"u"};M.toSJIS=function(e){return ht(e)};var Ie={};(function(t){t.L={bit:1},t.M={bit:0},t.Q={bit:3},t.H={bit:2};function e(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return t.L;case"m":case"medium":return t.M;case"q":case"quartile":return t.Q;case"h":case"high":return t.H;default:throw new Error("Unknown EC Level: "+n)}}t.isValid=function(r){return r&&typeof r.bit<"u"&&r.bit>=0&&r.bit<4},t.from=function(r,o){if(t.isValid(r))return r;try{return e(r)}catch{return o}}})(Ie);function Hn(){this.buffer=[],this.length=0}Hn.prototype={get:function(t){const e=Math.floor(t/8);return(this.buffer[e]>>>7-t%8&1)===1},put:function(t,e){for(let n=0;n>>e-n-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var Ps=Hn;function ce(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}ce.prototype.set=function(t,e,n,r){const o=t*this.size+e;this.data[o]=n,r&&(this.reservedBit[o]=!0)};ce.prototype.get=function(t,e){return this.data[t*this.size+e]};ce.prototype.xor=function(t,e,n){this.data[t*this.size+e]^=n};ce.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]};var qs=ce,zn={};(function(t){const e=M.getSymbolSize;t.getRowColCoords=function(r){if(r===1)return[];const o=Math.floor(r/7)+2,i=e(r),s=i===145?26:Math.ceil((i-13)/(2*o-2))*2,a=[i-7];for(let c=1;c=0&&o<=7},t.from=function(o){return t.isValid(o)?parseInt(o,10):void 0},t.getPenaltyN1=function(o){const i=o.size;let s=0,a=0,c=0,h=null,_=null;for(let v=0;v=5&&(s+=e.N1+(a-5)),h=w,a=1),w=o.get(b,v),w===_?c++:(c>=5&&(s+=e.N1+(c-5)),_=w,c=1)}a>=5&&(s+=e.N1+(a-5)),c>=5&&(s+=e.N1+(c-5))}return s},t.getPenaltyN2=function(o){const i=o.size;let s=0;for(let a=0;a=10&&(a===1488||a===93)&&s++,c=c<<1&2047|o.get(_,h),_>=10&&(c===1488||c===93)&&s++}return s*e.N3},t.getPenaltyN4=function(o){let i=0;const s=o.data.length;for(let c=0;c=0;){const s=i[0];for(let c=0;c0){const i=new Uint8Array(this.degree);return i.set(r,o),i}return r};var Fs=gt,Kn={},D={},_t={};_t.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40};var A={};const Yn="[0-9]+",$s="[A-Z $%*+\\-./:]+";let oe="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";oe=oe.replace(/u/g,"\\u");const js="(?:(?![A-Z0-9 $%*+\\-./:]|"+oe+`)(?:.|[\r ]))+`;A.KANJI=new RegExp(oe,"g");A.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");A.BYTE=new RegExp(js,"g");A.NUMERIC=new RegExp(Yn,"g");A.ALPHANUMERIC=new RegExp($s,"g");const Hs=new RegExp("^"+oe+"$"),zs=new RegExp("^"+Yn+"$"),Ws=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");A.testKanji=function(e){return Hs.test(e)};A.testNumeric=function(e){return zs.test(e)};A.testAlphanumeric=function(e){return Ws.test(e)};(function(t){const e=_t,n=A;t.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},t.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},t.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},t.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},t.MIXED={bit:-1},t.getCharCountIndicator=function(i,s){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!e.isValid(s))throw new Error("Invalid version: "+s);return s>=1&&s<10?i.ccBits[0]:s<27?i.ccBits[1]:i.ccBits[2]},t.getBestModeForData=function(i){return n.testNumeric(i)?t.NUMERIC:n.testAlphanumeric(i)?t.ALPHANUMERIC:n.testKanji(i)?t.KANJI:t.BYTE},t.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},t.isValid=function(i){return i&&i.bit&&i.ccBits};function r(o){if(typeof o!="string")throw new Error("Param is not a string");switch(o.toLowerCase()){case"numeric":return t.NUMERIC;case"alphanumeric":return t.ALPHANUMERIC;case"kanji":return t.KANJI;case"byte":return t.BYTE;default:throw new Error("Unknown mode: "+o)}}t.from=function(i,s){if(t.isValid(i))return i;try{return r(i)}catch{return s}}})(D);(function(t){const e=M,n=Re,r=Ie,o=D,i=_t,s=7973,a=e.getBCHDigit(s);function c(b,w,E){for(let C=1;C<=40;C++)if(w<=t.getCapacity(C,E,b))return C}function h(b,w){return o.getCharCountIndicator(b,w)+4}function _(b,w){let E=0;return b.forEach(function(C){const I=h(C.mode,w);E+=I+C.getBitsLength()}),E}function v(b,w){for(let E=1;E<=40;E++)if(_(b,E)<=t.getCapacity(E,w,o.MIXED))return E}t.from=function(w,E){return i.isValid(w)?parseInt(w,10):E},t.getCapacity=function(w,E,C){if(!i.isValid(w))throw new Error("Invalid QR Code version");typeof C>"u"&&(C=o.BYTE);const I=e.getSymbolTotalCodewords(w),l=n.getTotalCodewordsCount(w,E),d=(I-l)*8;if(C===o.MIXED)return d;const f=d-h(C,w);switch(C){case o.NUMERIC:return Math.floor(f/10*3);case o.ALPHANUMERIC:return Math.floor(f/11*2);case o.KANJI:return Math.floor(f/13);case o.BYTE:default:return Math.floor(f/8)}},t.getBestVersionForData=function(w,E){let C;const I=r.from(E,r.M);if(Array.isArray(w)){if(w.length>1)return v(w,I);if(w.length===0)return 1;C=w[0]}else C=w;return c(C.mode,C.getLength(),I)},t.getEncodedBits=function(w){if(!i.isValid(w)||w<7)throw new Error("Invalid QR Code version");let E=w<<12;for(;e.getBCHDigit(E)-a>=0;)E^=s<=0;)o^=Zn<<$e.getBCHDigit(o)-Rt;return(r<<10|o)^Vs};var Xn={};const Js=D;function Q(t){this.mode=Js.NUMERIC,this.data=t.toString()}Q.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)};Q.prototype.getLength=function(){return this.data.length};Q.prototype.getBitsLength=function(){return Q.getBitsLength(this.data.length)};Q.prototype.write=function(e){let n,r,o;for(n=0;n+3<=this.data.length;n+=3)r=this.data.substr(n,3),o=parseInt(r,10),e.put(o,10);const i=this.data.length-n;i>0&&(r=this.data.substr(n),o=parseInt(r,10),e.put(o,i*3+1))};var Qs=Q;const Ks=D,xe=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function K(t){this.mode=Ks.ALPHANUMERIC,this.data=t}K.getBitsLength=function(e){return 11*Math.floor(e/2)+6*(e%2)};K.prototype.getLength=function(){return this.data.length};K.prototype.getBitsLength=function(){return K.getBitsLength(this.data.length)};K.prototype.write=function(e){let n;for(n=0;n+2<=this.data.length;n+=2){let r=xe.indexOf(this.data[n])*45;r+=xe.indexOf(this.data[n+1]),e.put(r,11)}this.data.length%2&&e.put(xe.indexOf(this.data[n]),6)};var Ys=K;const Gs=lo,Zs=D;function Y(t){this.mode=Zs.BYTE,typeof t=="string"&&(t=Gs(t)),this.data=new Uint8Array(t)}Y.getBitsLength=function(e){return e*8};Y.prototype.getLength=function(){return this.data.length};Y.prototype.getBitsLength=function(){return Y.getBitsLength(this.data.length)};Y.prototype.write=function(t){for(let e=0,n=this.data.length;e=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw new Error("Invalid SJIS character: "+this.data[e]+` Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),t.put(n,13)}};var na=G;(function(t){const e=D,n=Qs,r=Ys,o=Xs,i=na,s=A,a=M,c=uo;function h(l){return unescape(encodeURIComponent(l)).length}function _(l,d,f){const u=[];let g;for(;(g=l.exec(f))!==null;)u.push({data:g[0],index:g.index,mode:d,length:g[0].length});return u}function v(l){const d=_(s.NUMERIC,e.NUMERIC,l),f=_(s.ALPHANUMERIC,e.ALPHANUMERIC,l);let u,g;return a.isKanjiModeEnabled()?(u=_(s.BYTE,e.BYTE,l),g=_(s.KANJI,e.KANJI,l)):(u=_(s.BYTE_KANJI,e.BYTE,l),g=[]),d.concat(f,u,g).sort(function(m,S){return m.index-S.index}).map(function(m){return{data:m.data,mode:m.mode,length:m.length}})}function b(l,d){switch(d){case e.NUMERIC:return n.getBitsLength(l);case e.ALPHANUMERIC:return r.getBitsLength(l);case e.KANJI:return i.getBitsLength(l);case e.BYTE:return o.getBitsLength(l)}}function w(l){return l.reduce(function(d,f){const u=d.length-1>=0?d[d.length-1]:null;return u&&u.mode===f.mode?(d[d.length-1].data+=f.data,d):(d.push(f),d)},[])}function E(l){const d=[];for(let f=0;f=0&&a<=6&&(c===0||c===6)||c>=0&&c<=6&&(a===0||a===6)||a>=2&&a<=4&&c>=2&&c<=4?t.set(i+a,s+c,!0,!0):t.set(i+a,s+c,!1,!0))}}function da(t){const e=t.size;for(let n=8;n>a&1)===1,t.set(o,i,s,!0),t.set(i,o,s,!0)}function Oe(t,e,n){const r=t.size,o=ca.getEncodedBits(e,n);let i,s;for(i=0;i<15;i++)s=(o>>i&1)===1,i<6?t.set(i,8,s,!0):i<8?t.set(i+1,8,s,!0):t.set(r-15+i,8,s,!0),i<8?t.set(8,r-i-1,s,!0):i<9?t.set(8,15-i-1+1,s,!0):t.set(8,15-i-1,s,!0);t.set(r-8,8,1,!0)}function ga(t,e){const n=t.size;let r=-1,o=n-1,i=7,s=0;for(let a=n-1;a>0;a-=2)for(a===6&&a--;;){for(let c=0;c<2;c++)if(!t.isReserved(o,a-c)){let h=!1;s>>i&1)===1),t.set(o,a-c,h),i--,i===-1&&(s++,i=7)}if(o+=r,o<0||n<=o){o-=r,r=-r;break}}}function _a(t,e,n){const r=new ra;n.forEach(function(c){r.put(c.mode.bit,4),r.put(c.getLength(),la.getCharCountIndicator(c.mode,t)),c.write(r)});const o=Te.getSymbolTotalCodewords(t),i=He.getTotalCodewordsCount(t,e),s=(o-i)*8;for(r.getLengthInBits()+4<=s&&r.put(0,4);r.getLengthInBits()%8!==0;)r.putBit(0);const a=(s-r.getLengthInBits())/8;for(let c=0;cn[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var Mu={},Fi={},Xs={};Object.defineProperty(Xs,"__esModule",{value:!0});Xs.walletLogo=void 0;const u0=(t,e)=>{let r;switch(t){case"standard":return r=e,`data:image/svg+xml,%3Csvg width='${e}' height='${r}' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E `;case"circle":return r=e,`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${e}' height='${r}' viewBox='0 0 999.81 999.81'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052fe;%7D.cls-2%7Bfill:%23fefefe;%7D.cls-3%7Bfill:%230152fe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M655-115.9h56c.83,1.59,2.36.88,3.56,1a478,478,0,0,1,75.06,10.42C891.4-81.76,978.33-32.58,1049.19,44q116.7,126,131.94,297.61c.38,4.14-.34,8.53,1.78,12.45v59c-1.58.84-.91,2.35-1,3.56a482.05,482.05,0,0,1-10.38,74.05c-24,106.72-76.64,196.76-158.83,268.93s-178.18,112.82-287.2,122.6c-4.83.43-9.86-.25-14.51,1.77H654c-1-1.68-2.69-.91-4.06-1a496.89,496.89,0,0,1-105.9-18.59c-93.54-27.42-172.78-77.59-236.91-150.94Q199.34,590.1,184.87,426.58c-.47-5.19.25-10.56-1.77-15.59V355c1.68-1,.91-2.7,1-4.06a498.12,498.12,0,0,1,18.58-105.9c26-88.75,72.64-164.9,140.6-227.57q126-116.27,297.21-131.61C645.32-114.57,650.35-113.88,655-115.9Zm377.92,500c0-192.44-156.31-349.49-347.56-350.15-194.13-.68-350.94,155.13-352.29,347.42-1.37,194.55,155.51,352.1,348.56,352.47C876.15,734.23,1032.93,577.84,1032.93,384.11Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-2' d='M1032.93,384.11c0,193.73-156.78,350.12-351.29,349.74-193-.37-349.93-157.92-348.56-352.47C334.43,189.09,491.24,33.28,685.37,34,876.62,34.62,1032.94,191.67,1032.93,384.11ZM683,496.81q43.74,0,87.48,0c15.55,0,25.32-9.72,25.33-25.21q0-87.48,0-175c0-15.83-9.68-25.46-25.59-25.46H595.77c-15.88,0-25.57,9.64-25.58,25.46q0,87.23,0,174.45c0,16.18,9.59,25.7,25.84,25.71Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-3' d='M683,496.81H596c-16.25,0-25.84-9.53-25.84-25.71q0-87.23,0-174.45c0-15.82,9.7-25.46,25.58-25.46H770.22c15.91,0,25.59,9.63,25.59,25.46q0,87.47,0,175c0,15.49-9.78,25.2-25.33,25.21Q726.74,496.84,683,496.81Z' transform='translate(-183.1 115.9)'/%3E%3C/svg%3E`;case"text":return r=(.1*e).toFixed(2),`data:image/svg+xml,%3Csvg width='${e}' height='${r}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E`;case"textWithLogo":return r=(.25*e).toFixed(2),`data:image/svg+xml,%3Csvg width='${e}' height='${r}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E`;case"textLight":return r=(.1*e).toFixed(2),`data:image/svg+xml,%3Csvg width='${e}' height='${r}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E`;case"textWithLogoLight":return r=(.25*e).toFixed(2),`data:image/svg+xml,%3Csvg width='${e}' height='${r}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E`;default:return r=e,`data:image/svg+xml,%3Csvg width='${e}' height='${r}' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E `}};Xs.walletLogo=u0;var eo={};Object.defineProperty(eo,"__esModule",{value:!0});eo.LINK_API_URL=void 0;eo.LINK_API_URL="https://www.walletlink.org";var to={};Object.defineProperty(to,"__esModule",{value:!0});to.ScopedLocalStorage=void 0;class c0{constructor(e){this.scope=e}setItem(e,r){localStorage.setItem(this.scopedKey(e),r)}getItem(e){return localStorage.getItem(this.scopedKey(e))}removeItem(e){localStorage.removeItem(this.scopedKey(e))}clear(){const e=this.scopedKey(""),r=[];for(let n=0;nlocalStorage.removeItem(n))}scopedKey(e){return`${this.scope}:${e}`}}to.ScopedLocalStorage=c0;var Kn={},gn={};Object.defineProperty(gn,"__esModule",{value:!0});const l0=Eu;function Lc(t,e,r){try{Reflect.apply(t,e,r)}catch(n){setTimeout(()=>{throw n})}}function f0(t){const e=t.length,r=new Array(e);for(let n=0;n0&&([o]=r),o instanceof Error)throw o;const a=new Error(`Unhandled error.${o?` (${o.message})`:""}`);throw a.context=o,a}const s=i[e];if(s===void 0)return!1;if(typeof s=="function")Lc(s,this,r);else{const o=s.length,a=f0(s);for(let c=0;c0?u:h},s.min=function(u,h){return u.cmp(h)<0?u:h},s.prototype._init=function(u,h,p){if(typeof u=="number")return this._initNumber(u,h,p);if(typeof u=="object")return this._initArray(u,h,p);h==="hex"&&(h=16),n(h===(h|0)&&h>=2&&h<=36),u=u.toString().replace(/\s+/g,"");var y=0;u[0]==="-"&&(y++,this.negative=1),y=0;y-=3)x=u[y]|u[y-1]<<8|u[y-2]<<16,this.words[w]|=x<>>26-T&67108863,T+=24,T>=26&&(T-=26,w++);else if(p==="le")for(y=0,w=0;y>>26-T&67108863,T+=24,T>=26&&(T-=26,w++);return this._strip()};function a(v,u){var h=v.charCodeAt(u);if(h>=48&&h<=57)return h-48;if(h>=65&&h<=70)return h-55;if(h>=97&&h<=102)return h-87;n(!1,"Invalid character in "+v)}function c(v,u,h){var p=a(v,h);return h-1>=u&&(p|=a(v,h-1)<<4),p}s.prototype._parseHex=function(u,h,p){this.length=Math.ceil((u.length-h)/6),this.words=new Array(this.length);for(var y=0;y=h;y-=2)T=c(u,h,y)<=18?(w-=18,x+=1,this.words[x]|=T>>>26):w+=8;else{var m=u.length-h;for(y=m%2===0?h+1:h;y=18?(w-=18,x+=1,this.words[x]|=T>>>26):w+=8}this._strip()};function l(v,u,h,p){for(var y=0,w=0,x=Math.min(v.length,h),T=u;T=49?w=m-49+10:m>=17?w=m-17+10:w=m,n(m>=0&&w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},s.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=g}catch{s.prototype.inspect=g}else s.prototype.inspect=g;function g(){return(this.red?""}var b=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],C=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];s.prototype.toString=function(u,h){u=u||10,h=h|0||1;var p;if(u===16||u==="hex"){p="";for(var y=0,w=0,x=0;x>>24-y&16777215,y+=2,y>=26&&(y-=26,x--),w!==0||x!==this.length-1?p=b[6-m.length]+m+p:p=m+p}for(w!==0&&(p=w.toString(16)+p);p.length%h!==0;)p="0"+p;return this.negative!==0&&(p="-"+p),p}if(u===(u|0)&&u>=2&&u<=36){var f=C[u],E=A[u];p="";var U=this.clone();for(U.negative=0;!U.isZero();){var q=U.modrn(E).toString(u);U=U.idivn(E),U.isZero()?p=q+p:p=b[f-q.length]+q+p}for(this.isZero()&&(p="0"+p);p.length%h!==0;)p="0"+p;return this.negative!==0&&(p="-"+p),p}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var u=this.words[0];return this.length===2?u+=this.words[1]*67108864:this.length===3&&this.words[2]===1?u+=4503599627370496+this.words[1]*67108864:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-u:u},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(u,h){return this.toArrayLike(o,u,h)}),s.prototype.toArray=function(u,h){return this.toArrayLike(Array,u,h)};var P=function(u,h){return u.allocUnsafe?u.allocUnsafe(h):new u(h)};s.prototype.toArrayLike=function(u,h,p){this._strip();var y=this.byteLength(),w=p||Math.max(1,y);n(y<=w,"byte array longer than desired length"),n(w>0,"Requested array length <= 0");var x=P(u,w),T=h==="le"?"LE":"BE";return this["_toArrayLike"+T](x,y),x},s.prototype._toArrayLikeLE=function(u,h){for(var p=0,y=0,w=0,x=0;w>8&255),p>16&255),x===6?(p>24&255),y=0,x=0):(y=T>>>24,x+=2)}if(p=0&&(u[p--]=T>>8&255),p>=0&&(u[p--]=T>>16&255),x===6?(p>=0&&(u[p--]=T>>24&255),y=0,x=0):(y=T>>>24,x+=2)}if(p>=0)for(u[p--]=y;p>=0;)u[p--]=0},Math.clz32?s.prototype._countBits=function(u){return 32-Math.clz32(u)}:s.prototype._countBits=function(u){var h=u,p=0;return h>=4096&&(p+=13,h>>>=13),h>=64&&(p+=7,h>>>=7),h>=8&&(p+=4,h>>>=4),h>=2&&(p+=2,h>>>=2),p+h},s.prototype._zeroBits=function(u){if(u===0)return 26;var h=u,p=0;return h&8191||(p+=13,h>>>=13),h&127||(p+=7,h>>>=7),h&15||(p+=4,h>>>=4),h&3||(p+=2,h>>>=2),h&1||p++,p},s.prototype.bitLength=function(){var u=this.words[this.length-1],h=this._countBits(u);return(this.length-1)*26+h};function N(v){for(var u=new Array(v.bitLength()),h=0;h>>y&1}return u}s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var u=0,h=0;hu.length?this.clone().ior(u):u.clone().ior(this)},s.prototype.uor=function(u){return this.length>u.length?this.clone().iuor(u):u.clone().iuor(this)},s.prototype.iuand=function(u){var h;this.length>u.length?h=u:h=this;for(var p=0;pu.length?this.clone().iand(u):u.clone().iand(this)},s.prototype.uand=function(u){return this.length>u.length?this.clone().iuand(u):u.clone().iuand(this)},s.prototype.iuxor=function(u){var h,p;this.length>u.length?(h=this,p=u):(h=u,p=this);for(var y=0;yu.length?this.clone().ixor(u):u.clone().ixor(this)},s.prototype.uxor=function(u){return this.length>u.length?this.clone().iuxor(u):u.clone().iuxor(this)},s.prototype.inotn=function(u){n(typeof u=="number"&&u>=0);var h=Math.ceil(u/26)|0,p=u%26;this._expand(h),p>0&&h--;for(var y=0;y0&&(this.words[y]=~this.words[y]&67108863>>26-p),this._strip()},s.prototype.notn=function(u){return this.clone().inotn(u)},s.prototype.setn=function(u,h){n(typeof u=="number"&&u>=0);var p=u/26|0,y=u%26;return this._expand(p+1),h?this.words[p]=this.words[p]|1<u.length?(p=this,y=u):(p=u,y=this);for(var w=0,x=0;x>>26;for(;w!==0&&x>>26;if(this.length=p.length,w!==0)this.words[this.length]=w,this.length++;else if(p!==this)for(;xu.length?this.clone().iadd(u):u.clone().iadd(this)},s.prototype.isub=function(u){if(u.negative!==0){u.negative=0;var h=this.iadd(u);return u.negative=1,h._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(u),this.negative=1,this._normSign();var p=this.cmp(u);if(p===0)return this.negative=0,this.length=1,this.words[0]=0,this;var y,w;p>0?(y=this,w=u):(y=u,w=this);for(var x=0,T=0;T>26,this.words[T]=h&67108863;for(;x!==0&&T>26,this.words[T]=h&67108863;if(x===0&&T>>26,U=m&67108863,q=Math.min(f,u.length-1),I=Math.max(0,f-v.length+1);I<=q;I++){var k=f-I|0;y=v.words[k]|0,w=u.words[I]|0,x=y*w+U,E+=x/67108864|0,U=x&67108863}h.words[f]=U|0,m=E|0}return m!==0?h.words[f]=m|0:h.length--,h._strip()}var R=function(u,h,p){var y=u.words,w=h.words,x=p.words,T=0,m,f,E,U=y[0]|0,q=U&8191,I=U>>>13,k=y[1]|0,D=k&8191,V=k>>>13,se=y[2]|0,_=se&8191,S=se>>>13,F=y[3]|0,H=F&8191,re=F>>>13,ie=y[4]|0,ee=ie&8191,de=ie>>>13,Qt=y[5]|0,we=Qt&8191,Se=Qt>>>13,mr=y[6]|0,ve=mr&8191,ye=mr>>>13,lr=y[7]|0,be=lr&8191,pe=lr>>>13,xt=y[8]|0,Ee=xt&8191,Me=xt>>>13,Mn=y[9]|0,xe=Mn&8191,Ce=Mn>>>13,xn=w[0]|0,Re=xn&8191,Ie=xn>>>13,Cn=w[1]|0,Ae=Cn&8191,Te=Cn>>>13,Rn=w[2]|0,ke=Rn&8191,Oe=Rn>>>13,In=w[3]|0,Ne=In&8191,Le=In>>>13,An=w[4]|0,Pe=An&8191,$e=An>>>13,Tn=w[5]|0,De=Tn&8191,Be=Tn>>>13,kn=w[6]|0,je=kn&8191,Fe=kn>>>13,On=w[7]|0,We=On&8191,He=On>>>13,Nn=w[8]|0,Ve=Nn&8191,Ue=Nn>>>13,Ln=w[9]|0,ze=Ln&8191,qe=Ln>>>13;p.negative=u.negative^h.negative,p.length=19,m=Math.imul(q,Re),f=Math.imul(q,Ie),f=f+Math.imul(I,Re)|0,E=Math.imul(I,Ie);var $r=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+($r>>>26)|0,$r&=67108863,m=Math.imul(D,Re),f=Math.imul(D,Ie),f=f+Math.imul(V,Re)|0,E=Math.imul(V,Ie),m=m+Math.imul(q,Ae)|0,f=f+Math.imul(q,Te)|0,f=f+Math.imul(I,Ae)|0,E=E+Math.imul(I,Te)|0;var Dr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Dr>>>26)|0,Dr&=67108863,m=Math.imul(_,Re),f=Math.imul(_,Ie),f=f+Math.imul(S,Re)|0,E=Math.imul(S,Ie),m=m+Math.imul(D,Ae)|0,f=f+Math.imul(D,Te)|0,f=f+Math.imul(V,Ae)|0,E=E+Math.imul(V,Te)|0,m=m+Math.imul(q,ke)|0,f=f+Math.imul(q,Oe)|0,f=f+Math.imul(I,ke)|0,E=E+Math.imul(I,Oe)|0;var Br=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Br>>>26)|0,Br&=67108863,m=Math.imul(H,Re),f=Math.imul(H,Ie),f=f+Math.imul(re,Re)|0,E=Math.imul(re,Ie),m=m+Math.imul(_,Ae)|0,f=f+Math.imul(_,Te)|0,f=f+Math.imul(S,Ae)|0,E=E+Math.imul(S,Te)|0,m=m+Math.imul(D,ke)|0,f=f+Math.imul(D,Oe)|0,f=f+Math.imul(V,ke)|0,E=E+Math.imul(V,Oe)|0,m=m+Math.imul(q,Ne)|0,f=f+Math.imul(q,Le)|0,f=f+Math.imul(I,Ne)|0,E=E+Math.imul(I,Le)|0;var jr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(jr>>>26)|0,jr&=67108863,m=Math.imul(ee,Re),f=Math.imul(ee,Ie),f=f+Math.imul(de,Re)|0,E=Math.imul(de,Ie),m=m+Math.imul(H,Ae)|0,f=f+Math.imul(H,Te)|0,f=f+Math.imul(re,Ae)|0,E=E+Math.imul(re,Te)|0,m=m+Math.imul(_,ke)|0,f=f+Math.imul(_,Oe)|0,f=f+Math.imul(S,ke)|0,E=E+Math.imul(S,Oe)|0,m=m+Math.imul(D,Ne)|0,f=f+Math.imul(D,Le)|0,f=f+Math.imul(V,Ne)|0,E=E+Math.imul(V,Le)|0,m=m+Math.imul(q,Pe)|0,f=f+Math.imul(q,$e)|0,f=f+Math.imul(I,Pe)|0,E=E+Math.imul(I,$e)|0;var Fr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Fr>>>26)|0,Fr&=67108863,m=Math.imul(we,Re),f=Math.imul(we,Ie),f=f+Math.imul(Se,Re)|0,E=Math.imul(Se,Ie),m=m+Math.imul(ee,Ae)|0,f=f+Math.imul(ee,Te)|0,f=f+Math.imul(de,Ae)|0,E=E+Math.imul(de,Te)|0,m=m+Math.imul(H,ke)|0,f=f+Math.imul(H,Oe)|0,f=f+Math.imul(re,ke)|0,E=E+Math.imul(re,Oe)|0,m=m+Math.imul(_,Ne)|0,f=f+Math.imul(_,Le)|0,f=f+Math.imul(S,Ne)|0,E=E+Math.imul(S,Le)|0,m=m+Math.imul(D,Pe)|0,f=f+Math.imul(D,$e)|0,f=f+Math.imul(V,Pe)|0,E=E+Math.imul(V,$e)|0,m=m+Math.imul(q,De)|0,f=f+Math.imul(q,Be)|0,f=f+Math.imul(I,De)|0,E=E+Math.imul(I,Be)|0;var Wr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,m=Math.imul(ve,Re),f=Math.imul(ve,Ie),f=f+Math.imul(ye,Re)|0,E=Math.imul(ye,Ie),m=m+Math.imul(we,Ae)|0,f=f+Math.imul(we,Te)|0,f=f+Math.imul(Se,Ae)|0,E=E+Math.imul(Se,Te)|0,m=m+Math.imul(ee,ke)|0,f=f+Math.imul(ee,Oe)|0,f=f+Math.imul(de,ke)|0,E=E+Math.imul(de,Oe)|0,m=m+Math.imul(H,Ne)|0,f=f+Math.imul(H,Le)|0,f=f+Math.imul(re,Ne)|0,E=E+Math.imul(re,Le)|0,m=m+Math.imul(_,Pe)|0,f=f+Math.imul(_,$e)|0,f=f+Math.imul(S,Pe)|0,E=E+Math.imul(S,$e)|0,m=m+Math.imul(D,De)|0,f=f+Math.imul(D,Be)|0,f=f+Math.imul(V,De)|0,E=E+Math.imul(V,Be)|0,m=m+Math.imul(q,je)|0,f=f+Math.imul(q,Fe)|0,f=f+Math.imul(I,je)|0,E=E+Math.imul(I,Fe)|0;var Hr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Hr>>>26)|0,Hr&=67108863,m=Math.imul(be,Re),f=Math.imul(be,Ie),f=f+Math.imul(pe,Re)|0,E=Math.imul(pe,Ie),m=m+Math.imul(ve,Ae)|0,f=f+Math.imul(ve,Te)|0,f=f+Math.imul(ye,Ae)|0,E=E+Math.imul(ye,Te)|0,m=m+Math.imul(we,ke)|0,f=f+Math.imul(we,Oe)|0,f=f+Math.imul(Se,ke)|0,E=E+Math.imul(Se,Oe)|0,m=m+Math.imul(ee,Ne)|0,f=f+Math.imul(ee,Le)|0,f=f+Math.imul(de,Ne)|0,E=E+Math.imul(de,Le)|0,m=m+Math.imul(H,Pe)|0,f=f+Math.imul(H,$e)|0,f=f+Math.imul(re,Pe)|0,E=E+Math.imul(re,$e)|0,m=m+Math.imul(_,De)|0,f=f+Math.imul(_,Be)|0,f=f+Math.imul(S,De)|0,E=E+Math.imul(S,Be)|0,m=m+Math.imul(D,je)|0,f=f+Math.imul(D,Fe)|0,f=f+Math.imul(V,je)|0,E=E+Math.imul(V,Fe)|0,m=m+Math.imul(q,We)|0,f=f+Math.imul(q,He)|0,f=f+Math.imul(I,We)|0,E=E+Math.imul(I,He)|0;var Vr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Vr>>>26)|0,Vr&=67108863,m=Math.imul(Ee,Re),f=Math.imul(Ee,Ie),f=f+Math.imul(Me,Re)|0,E=Math.imul(Me,Ie),m=m+Math.imul(be,Ae)|0,f=f+Math.imul(be,Te)|0,f=f+Math.imul(pe,Ae)|0,E=E+Math.imul(pe,Te)|0,m=m+Math.imul(ve,ke)|0,f=f+Math.imul(ve,Oe)|0,f=f+Math.imul(ye,ke)|0,E=E+Math.imul(ye,Oe)|0,m=m+Math.imul(we,Ne)|0,f=f+Math.imul(we,Le)|0,f=f+Math.imul(Se,Ne)|0,E=E+Math.imul(Se,Le)|0,m=m+Math.imul(ee,Pe)|0,f=f+Math.imul(ee,$e)|0,f=f+Math.imul(de,Pe)|0,E=E+Math.imul(de,$e)|0,m=m+Math.imul(H,De)|0,f=f+Math.imul(H,Be)|0,f=f+Math.imul(re,De)|0,E=E+Math.imul(re,Be)|0,m=m+Math.imul(_,je)|0,f=f+Math.imul(_,Fe)|0,f=f+Math.imul(S,je)|0,E=E+Math.imul(S,Fe)|0,m=m+Math.imul(D,We)|0,f=f+Math.imul(D,He)|0,f=f+Math.imul(V,We)|0,E=E+Math.imul(V,He)|0,m=m+Math.imul(q,Ve)|0,f=f+Math.imul(q,Ue)|0,f=f+Math.imul(I,Ve)|0,E=E+Math.imul(I,Ue)|0;var Ur=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Ur>>>26)|0,Ur&=67108863,m=Math.imul(xe,Re),f=Math.imul(xe,Ie),f=f+Math.imul(Ce,Re)|0,E=Math.imul(Ce,Ie),m=m+Math.imul(Ee,Ae)|0,f=f+Math.imul(Ee,Te)|0,f=f+Math.imul(Me,Ae)|0,E=E+Math.imul(Me,Te)|0,m=m+Math.imul(be,ke)|0,f=f+Math.imul(be,Oe)|0,f=f+Math.imul(pe,ke)|0,E=E+Math.imul(pe,Oe)|0,m=m+Math.imul(ve,Ne)|0,f=f+Math.imul(ve,Le)|0,f=f+Math.imul(ye,Ne)|0,E=E+Math.imul(ye,Le)|0,m=m+Math.imul(we,Pe)|0,f=f+Math.imul(we,$e)|0,f=f+Math.imul(Se,Pe)|0,E=E+Math.imul(Se,$e)|0,m=m+Math.imul(ee,De)|0,f=f+Math.imul(ee,Be)|0,f=f+Math.imul(de,De)|0,E=E+Math.imul(de,Be)|0,m=m+Math.imul(H,je)|0,f=f+Math.imul(H,Fe)|0,f=f+Math.imul(re,je)|0,E=E+Math.imul(re,Fe)|0,m=m+Math.imul(_,We)|0,f=f+Math.imul(_,He)|0,f=f+Math.imul(S,We)|0,E=E+Math.imul(S,He)|0,m=m+Math.imul(D,Ve)|0,f=f+Math.imul(D,Ue)|0,f=f+Math.imul(V,Ve)|0,E=E+Math.imul(V,Ue)|0,m=m+Math.imul(q,ze)|0,f=f+Math.imul(q,qe)|0,f=f+Math.imul(I,ze)|0,E=E+Math.imul(I,qe)|0;var zr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(zr>>>26)|0,zr&=67108863,m=Math.imul(xe,Ae),f=Math.imul(xe,Te),f=f+Math.imul(Ce,Ae)|0,E=Math.imul(Ce,Te),m=m+Math.imul(Ee,ke)|0,f=f+Math.imul(Ee,Oe)|0,f=f+Math.imul(Me,ke)|0,E=E+Math.imul(Me,Oe)|0,m=m+Math.imul(be,Ne)|0,f=f+Math.imul(be,Le)|0,f=f+Math.imul(pe,Ne)|0,E=E+Math.imul(pe,Le)|0,m=m+Math.imul(ve,Pe)|0,f=f+Math.imul(ve,$e)|0,f=f+Math.imul(ye,Pe)|0,E=E+Math.imul(ye,$e)|0,m=m+Math.imul(we,De)|0,f=f+Math.imul(we,Be)|0,f=f+Math.imul(Se,De)|0,E=E+Math.imul(Se,Be)|0,m=m+Math.imul(ee,je)|0,f=f+Math.imul(ee,Fe)|0,f=f+Math.imul(de,je)|0,E=E+Math.imul(de,Fe)|0,m=m+Math.imul(H,We)|0,f=f+Math.imul(H,He)|0,f=f+Math.imul(re,We)|0,E=E+Math.imul(re,He)|0,m=m+Math.imul(_,Ve)|0,f=f+Math.imul(_,Ue)|0,f=f+Math.imul(S,Ve)|0,E=E+Math.imul(S,Ue)|0,m=m+Math.imul(D,ze)|0,f=f+Math.imul(D,qe)|0,f=f+Math.imul(V,ze)|0,E=E+Math.imul(V,qe)|0;var qr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(qr>>>26)|0,qr&=67108863,m=Math.imul(xe,ke),f=Math.imul(xe,Oe),f=f+Math.imul(Ce,ke)|0,E=Math.imul(Ce,Oe),m=m+Math.imul(Ee,Ne)|0,f=f+Math.imul(Ee,Le)|0,f=f+Math.imul(Me,Ne)|0,E=E+Math.imul(Me,Le)|0,m=m+Math.imul(be,Pe)|0,f=f+Math.imul(be,$e)|0,f=f+Math.imul(pe,Pe)|0,E=E+Math.imul(pe,$e)|0,m=m+Math.imul(ve,De)|0,f=f+Math.imul(ve,Be)|0,f=f+Math.imul(ye,De)|0,E=E+Math.imul(ye,Be)|0,m=m+Math.imul(we,je)|0,f=f+Math.imul(we,Fe)|0,f=f+Math.imul(Se,je)|0,E=E+Math.imul(Se,Fe)|0,m=m+Math.imul(ee,We)|0,f=f+Math.imul(ee,He)|0,f=f+Math.imul(de,We)|0,E=E+Math.imul(de,He)|0,m=m+Math.imul(H,Ve)|0,f=f+Math.imul(H,Ue)|0,f=f+Math.imul(re,Ve)|0,E=E+Math.imul(re,Ue)|0,m=m+Math.imul(_,ze)|0,f=f+Math.imul(_,qe)|0,f=f+Math.imul(S,ze)|0,E=E+Math.imul(S,qe)|0;var Gr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Gr>>>26)|0,Gr&=67108863,m=Math.imul(xe,Ne),f=Math.imul(xe,Le),f=f+Math.imul(Ce,Ne)|0,E=Math.imul(Ce,Le),m=m+Math.imul(Ee,Pe)|0,f=f+Math.imul(Ee,$e)|0,f=f+Math.imul(Me,Pe)|0,E=E+Math.imul(Me,$e)|0,m=m+Math.imul(be,De)|0,f=f+Math.imul(be,Be)|0,f=f+Math.imul(pe,De)|0,E=E+Math.imul(pe,Be)|0,m=m+Math.imul(ve,je)|0,f=f+Math.imul(ve,Fe)|0,f=f+Math.imul(ye,je)|0,E=E+Math.imul(ye,Fe)|0,m=m+Math.imul(we,We)|0,f=f+Math.imul(we,He)|0,f=f+Math.imul(Se,We)|0,E=E+Math.imul(Se,He)|0,m=m+Math.imul(ee,Ve)|0,f=f+Math.imul(ee,Ue)|0,f=f+Math.imul(de,Ve)|0,E=E+Math.imul(de,Ue)|0,m=m+Math.imul(H,ze)|0,f=f+Math.imul(H,qe)|0,f=f+Math.imul(re,ze)|0,E=E+Math.imul(re,qe)|0;var Jr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Jr>>>26)|0,Jr&=67108863,m=Math.imul(xe,Pe),f=Math.imul(xe,$e),f=f+Math.imul(Ce,Pe)|0,E=Math.imul(Ce,$e),m=m+Math.imul(Ee,De)|0,f=f+Math.imul(Ee,Be)|0,f=f+Math.imul(Me,De)|0,E=E+Math.imul(Me,Be)|0,m=m+Math.imul(be,je)|0,f=f+Math.imul(be,Fe)|0,f=f+Math.imul(pe,je)|0,E=E+Math.imul(pe,Fe)|0,m=m+Math.imul(ve,We)|0,f=f+Math.imul(ve,He)|0,f=f+Math.imul(ye,We)|0,E=E+Math.imul(ye,He)|0,m=m+Math.imul(we,Ve)|0,f=f+Math.imul(we,Ue)|0,f=f+Math.imul(Se,Ve)|0,E=E+Math.imul(Se,Ue)|0,m=m+Math.imul(ee,ze)|0,f=f+Math.imul(ee,qe)|0,f=f+Math.imul(de,ze)|0,E=E+Math.imul(de,qe)|0;var Zr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Zr>>>26)|0,Zr&=67108863,m=Math.imul(xe,De),f=Math.imul(xe,Be),f=f+Math.imul(Ce,De)|0,E=Math.imul(Ce,Be),m=m+Math.imul(Ee,je)|0,f=f+Math.imul(Ee,Fe)|0,f=f+Math.imul(Me,je)|0,E=E+Math.imul(Me,Fe)|0,m=m+Math.imul(be,We)|0,f=f+Math.imul(be,He)|0,f=f+Math.imul(pe,We)|0,E=E+Math.imul(pe,He)|0,m=m+Math.imul(ve,Ve)|0,f=f+Math.imul(ve,Ue)|0,f=f+Math.imul(ye,Ve)|0,E=E+Math.imul(ye,Ue)|0,m=m+Math.imul(we,ze)|0,f=f+Math.imul(we,qe)|0,f=f+Math.imul(Se,ze)|0,E=E+Math.imul(Se,qe)|0;var ia=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(ia>>>26)|0,ia&=67108863,m=Math.imul(xe,je),f=Math.imul(xe,Fe),f=f+Math.imul(Ce,je)|0,E=Math.imul(Ce,Fe),m=m+Math.imul(Ee,We)|0,f=f+Math.imul(Ee,He)|0,f=f+Math.imul(Me,We)|0,E=E+Math.imul(Me,He)|0,m=m+Math.imul(be,Ve)|0,f=f+Math.imul(be,Ue)|0,f=f+Math.imul(pe,Ve)|0,E=E+Math.imul(pe,Ue)|0,m=m+Math.imul(ve,ze)|0,f=f+Math.imul(ve,qe)|0,f=f+Math.imul(ye,ze)|0,E=E+Math.imul(ye,qe)|0;var sa=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(sa>>>26)|0,sa&=67108863,m=Math.imul(xe,We),f=Math.imul(xe,He),f=f+Math.imul(Ce,We)|0,E=Math.imul(Ce,He),m=m+Math.imul(Ee,Ve)|0,f=f+Math.imul(Ee,Ue)|0,f=f+Math.imul(Me,Ve)|0,E=E+Math.imul(Me,Ue)|0,m=m+Math.imul(be,ze)|0,f=f+Math.imul(be,qe)|0,f=f+Math.imul(pe,ze)|0,E=E+Math.imul(pe,qe)|0;var oa=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(oa>>>26)|0,oa&=67108863,m=Math.imul(xe,Ve),f=Math.imul(xe,Ue),f=f+Math.imul(Ce,Ve)|0,E=Math.imul(Ce,Ue),m=m+Math.imul(Ee,ze)|0,f=f+Math.imul(Ee,qe)|0,f=f+Math.imul(Me,ze)|0,E=E+Math.imul(Me,qe)|0;var aa=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(aa>>>26)|0,aa&=67108863,m=Math.imul(xe,ze),f=Math.imul(xe,qe),f=f+Math.imul(Ce,ze)|0,E=Math.imul(Ce,qe);var ua=(T+m|0)+((f&8191)<<13)|0;return T=(E+(f>>>13)|0)+(ua>>>26)|0,ua&=67108863,x[0]=$r,x[1]=Dr,x[2]=Br,x[3]=jr,x[4]=Fr,x[5]=Wr,x[6]=Hr,x[7]=Vr,x[8]=Ur,x[9]=zr,x[10]=qr,x[11]=Gr,x[12]=Jr,x[13]=Zr,x[14]=ia,x[15]=sa,x[16]=oa,x[17]=aa,x[18]=ua,T!==0&&(x[19]=T,p.length++),p};Math.imul||(R=M);function O(v,u,h){h.negative=u.negative^v.negative,h.length=v.length+u.length;for(var p=0,y=0,w=0;w>>26)|0,y+=x>>>26,x&=67108863}h.words[w]=T,p=x,x=y}return p!==0?h.words[w]=p:h.length--,h._strip()}function $(v,u,h){return O(v,u,h)}s.prototype.mulTo=function(u,h){var p,y=this.length+u.length;return this.length===10&&u.length===10?p=R(this,u,h):y<63?p=M(this,u,h):y<1024?p=O(this,u,h):p=$(this,u,h),p},s.prototype.mul=function(u){var h=new s(null);return h.words=new Array(this.length+u.length),this.mulTo(u,h)},s.prototype.mulf=function(u){var h=new s(null);return h.words=new Array(this.length+u.length),$(this,u,h)},s.prototype.imul=function(u){return this.clone().mulTo(u,this)},s.prototype.imuln=function(u){var h=u<0;h&&(u=-u),n(typeof u=="number"),n(u<67108864);for(var p=0,y=0;y>=26,p+=w/67108864|0,p+=x>>>26,this.words[y]=x&67108863}return p!==0&&(this.words[y]=p,this.length++),h?this.ineg():this},s.prototype.muln=function(u){return this.clone().imuln(u)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(u){var h=N(u);if(h.length===0)return new s(1);for(var p=this,y=0;y=0);var h=u%26,p=(u-h)/26,y=67108863>>>26-h<<26-h,w;if(h!==0){var x=0;for(w=0;w>>26-h}x&&(this.words[w]=x,this.length++)}if(p!==0){for(w=this.length-1;w>=0;w--)this.words[w+p]=this.words[w];for(w=0;w=0);var y;h?y=(h-h%26)/26:y=0;var w=u%26,x=Math.min((u-w)/26,this.length),T=67108863^67108863>>>w<x)for(this.length-=x,f=0;f=0&&(E!==0||f>=y);f--){var U=this.words[f]|0;this.words[f]=E<<26-w|U>>>w,E=U&T}return m&&E!==0&&(m.words[m.length++]=E),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(u,h,p){return n(this.negative===0),this.iushrn(u,h,p)},s.prototype.shln=function(u){return this.clone().ishln(u)},s.prototype.ushln=function(u){return this.clone().iushln(u)},s.prototype.shrn=function(u){return this.clone().ishrn(u)},s.prototype.ushrn=function(u){return this.clone().iushrn(u)},s.prototype.testn=function(u){n(typeof u=="number"&&u>=0);var h=u%26,p=(u-h)/26,y=1<=0);var h=u%26,p=(u-h)/26;if(n(this.negative===0,"imaskn works only with positive numbers"),this.length<=p)return this;if(h!==0&&p++,this.length=Math.min(p,this.length),h!==0){var y=67108863^67108863>>>h<=67108864;h++)this.words[h]-=67108864,h===this.length-1?this.words[h+1]=1:this.words[h+1]++;return this.length=Math.max(this.length,h+1),this},s.prototype.isubn=function(u){if(n(typeof u=="number"),n(u<67108864),u<0)return this.iaddn(-u);if(this.negative!==0)return this.negative=0,this.iaddn(u),this.negative=1,this;if(this.words[0]-=u,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var h=0;h>26)-(m/67108864|0),this.words[w+p]=x&67108863}for(;w>26,this.words[w+p]=x&67108863;if(T===0)return this._strip();for(n(T===-1),T=0,w=0;w>26,this.words[w]=x&67108863;return this.negative=1,this._strip()},s.prototype._wordDiv=function(u,h){var p=this.length-u.length,y=this.clone(),w=u,x=w.words[w.length-1]|0,T=this._countBits(x);p=26-T,p!==0&&(w=w.ushln(p),y.iushln(p),x=w.words[w.length-1]|0);var m=y.length-w.length,f;if(h!=="mod"){f=new s(null),f.length=m+1,f.words=new Array(f.length);for(var E=0;E=0;q--){var I=(y.words[w.length+q]|0)*67108864+(y.words[w.length+q-1]|0);for(I=Math.min(I/x|0,67108863),y._ishlnsubmul(w,I,q);y.negative!==0;)I--,y.negative=0,y._ishlnsubmul(w,1,q),y.isZero()||(y.negative^=1);f&&(f.words[q]=I)}return f&&f._strip(),y._strip(),h!=="div"&&p!==0&&y.iushrn(p),{div:f||null,mod:y}},s.prototype.divmod=function(u,h,p){if(n(!u.isZero()),this.isZero())return{div:new s(0),mod:new s(0)};var y,w,x;return this.negative!==0&&u.negative===0?(x=this.neg().divmod(u,h),h!=="mod"&&(y=x.div.neg()),h!=="div"&&(w=x.mod.neg(),p&&w.negative!==0&&w.iadd(u)),{div:y,mod:w}):this.negative===0&&u.negative!==0?(x=this.divmod(u.neg(),h),h!=="mod"&&(y=x.div.neg()),{div:y,mod:x.mod}):this.negative&u.negative?(x=this.neg().divmod(u.neg(),h),h!=="div"&&(w=x.mod.neg(),p&&w.negative!==0&&w.isub(u)),{div:x.div,mod:w}):u.length>this.length||this.cmp(u)<0?{div:new s(0),mod:this}:u.length===1?h==="div"?{div:this.divn(u.words[0]),mod:null}:h==="mod"?{div:null,mod:new s(this.modrn(u.words[0]))}:{div:this.divn(u.words[0]),mod:new s(this.modrn(u.words[0]))}:this._wordDiv(u,h)},s.prototype.div=function(u){return this.divmod(u,"div",!1).div},s.prototype.mod=function(u){return this.divmod(u,"mod",!1).mod},s.prototype.umod=function(u){return this.divmod(u,"mod",!0).mod},s.prototype.divRound=function(u){var h=this.divmod(u);if(h.mod.isZero())return h.div;var p=h.div.negative!==0?h.mod.isub(u):h.mod,y=u.ushrn(1),w=u.andln(1),x=p.cmp(y);return x<0||w===1&&x===0?h.div:h.div.negative!==0?h.div.isubn(1):h.div.iaddn(1)},s.prototype.modrn=function(u){var h=u<0;h&&(u=-u),n(u<=67108863);for(var p=(1<<26)%u,y=0,w=this.length-1;w>=0;w--)y=(p*y+(this.words[w]|0))%u;return h?-y:y},s.prototype.modn=function(u){return this.modrn(u)},s.prototype.idivn=function(u){var h=u<0;h&&(u=-u),n(u<=67108863);for(var p=0,y=this.length-1;y>=0;y--){var w=(this.words[y]|0)+p*67108864;this.words[y]=w/u|0,p=w%u}return this._strip(),h?this.ineg():this},s.prototype.divn=function(u){return this.clone().idivn(u)},s.prototype.egcd=function(u){n(u.negative===0),n(!u.isZero());var h=this,p=u.clone();h.negative!==0?h=h.umod(u):h=h.clone();for(var y=new s(1),w=new s(0),x=new s(0),T=new s(1),m=0;h.isEven()&&p.isEven();)h.iushrn(1),p.iushrn(1),++m;for(var f=p.clone(),E=h.clone();!h.isZero();){for(var U=0,q=1;!(h.words[0]&q)&&U<26;++U,q<<=1);if(U>0)for(h.iushrn(U);U-- >0;)(y.isOdd()||w.isOdd())&&(y.iadd(f),w.isub(E)),y.iushrn(1),w.iushrn(1);for(var I=0,k=1;!(p.words[0]&k)&&I<26;++I,k<<=1);if(I>0)for(p.iushrn(I);I-- >0;)(x.isOdd()||T.isOdd())&&(x.iadd(f),T.isub(E)),x.iushrn(1),T.iushrn(1);h.cmp(p)>=0?(h.isub(p),y.isub(x),w.isub(T)):(p.isub(h),x.isub(y),T.isub(w))}return{a:x,b:T,gcd:p.iushln(m)}},s.prototype._invmp=function(u){n(u.negative===0),n(!u.isZero());var h=this,p=u.clone();h.negative!==0?h=h.umod(u):h=h.clone();for(var y=new s(1),w=new s(0),x=p.clone();h.cmpn(1)>0&&p.cmpn(1)>0;){for(var T=0,m=1;!(h.words[0]&m)&&T<26;++T,m<<=1);if(T>0)for(h.iushrn(T);T-- >0;)y.isOdd()&&y.iadd(x),y.iushrn(1);for(var f=0,E=1;!(p.words[0]&E)&&f<26;++f,E<<=1);if(f>0)for(p.iushrn(f);f-- >0;)w.isOdd()&&w.iadd(x),w.iushrn(1);h.cmp(p)>=0?(h.isub(p),y.isub(w)):(p.isub(h),w.isub(y))}var U;return h.cmpn(1)===0?U=y:U=w,U.cmpn(0)<0&&U.iadd(u),U},s.prototype.gcd=function(u){if(this.isZero())return u.abs();if(u.isZero())return this.abs();var h=this.clone(),p=u.clone();h.negative=0,p.negative=0;for(var y=0;h.isEven()&&p.isEven();y++)h.iushrn(1),p.iushrn(1);do{for(;h.isEven();)h.iushrn(1);for(;p.isEven();)p.iushrn(1);var w=h.cmp(p);if(w<0){var x=h;h=p,p=x}else if(w===0||p.cmpn(1)===0)break;h.isub(p)}while(!0);return p.iushln(y)},s.prototype.invm=function(u){return this.egcd(u).a.umod(u)},s.prototype.isEven=function(){return(this.words[0]&1)===0},s.prototype.isOdd=function(){return(this.words[0]&1)===1},s.prototype.andln=function(u){return this.words[0]&u},s.prototype.bincn=function(u){n(typeof u=="number");var h=u%26,p=(u-h)/26,y=1<>>26,T&=67108863,this.words[x]=T}return w!==0&&(this.words[x]=w,this.length++),this},s.prototype.isZero=function(){return this.length===1&&this.words[0]===0},s.prototype.cmpn=function(u){var h=u<0;if(this.negative!==0&&!h)return-1;if(this.negative===0&&h)return 1;this._strip();var p;if(this.length>1)p=1;else{h&&(u=-u),n(u<=67108863,"Number is too big");var y=this.words[0]|0;p=y===u?0:yu.length)return 1;if(this.length=0;p--){var y=this.words[p]|0,w=u.words[p]|0;if(y!==w){yw&&(h=1);break}}return h},s.prototype.gtn=function(u){return this.cmpn(u)===1},s.prototype.gt=function(u){return this.cmp(u)===1},s.prototype.gten=function(u){return this.cmpn(u)>=0},s.prototype.gte=function(u){return this.cmp(u)>=0},s.prototype.ltn=function(u){return this.cmpn(u)===-1},s.prototype.lt=function(u){return this.cmp(u)===-1},s.prototype.lten=function(u){return this.cmpn(u)<=0},s.prototype.lte=function(u){return this.cmp(u)<=0},s.prototype.eqn=function(u){return this.cmpn(u)===0},s.prototype.eq=function(u){return this.cmp(u)===0},s.red=function(u){return new Y(u)},s.prototype.toRed=function(u){return n(!this.red,"Already a number in reduction context"),n(this.negative===0,"red works only with positives"),u.convertTo(this)._forceRed(u)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(u){return this.red=u,this},s.prototype.forceRed=function(u){return n(!this.red,"Already a number in reduction context"),this._forceRed(u)},s.prototype.redAdd=function(u){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,u)},s.prototype.redIAdd=function(u){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,u)},s.prototype.redSub=function(u){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,u)},s.prototype.redISub=function(u){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,u)},s.prototype.redShl=function(u){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,u)},s.prototype.redMul=function(u){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.mul(this,u)},s.prototype.redIMul=function(u){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.imul(this,u)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(u){return n(this.red&&!u.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,u)};var L={k256:null,p224:null,p192:null,p25519:null};function B(v,u){this.name=v,this.p=new s(u,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}B.prototype._tmp=function(){var u=new s(null);return u.words=new Array(Math.ceil(this.n/13)),u},B.prototype.ireduce=function(u){var h=u,p;do this.split(h,this.tmp),h=this.imulK(h),h=h.iadd(this.tmp),p=h.bitLength();while(p>this.n);var y=p0?h.isub(this.p):h.strip!==void 0?h.strip():h._strip(),h},B.prototype.split=function(u,h){u.iushrn(this.n,0,h)},B.prototype.imulK=function(u){return u.imul(this.k)};function G(){B.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i(G,B),G.prototype.split=function(u,h){for(var p=4194303,y=Math.min(u.length,9),w=0;w>>22,x=T}x>>>=22,u.words[w-10]=x,x===0&&u.length>10?u.length-=10:u.length-=9},G.prototype.imulK=function(u){u.words[u.length]=0,u.words[u.length+1]=0,u.length+=2;for(var h=0,p=0;p>>=26,u.words[p]=w,h=y}return h!==0&&(u.words[u.length++]=h),u},s._prime=function(u){if(L[u])return L[u];var h;if(u==="k256")h=new G;else if(u==="p224")h=new z;else if(u==="p192")h=new W;else if(u==="p25519")h=new K;else throw new Error("Unknown prime "+u);return L[u]=h,h};function Y(v){if(typeof v=="string"){var u=s._prime(v);this.m=u.p,this.prime=u}else n(v.gtn(1),"modulus must be greater than 1"),this.m=v,this.prime=null}Y.prototype._verify1=function(u){n(u.negative===0,"red works only with positives"),n(u.red,"red works only with red numbers")},Y.prototype._verify2=function(u,h){n((u.negative|h.negative)===0,"red works only with positives"),n(u.red&&u.red===h.red,"red works only with red numbers")},Y.prototype.imod=function(u){return this.prime?this.prime.ireduce(u)._forceRed(this):(d(u,u.umod(this.m)._forceRed(this)),u)},Y.prototype.neg=function(u){return u.isZero()?u.clone():this.m.sub(u)._forceRed(this)},Y.prototype.add=function(u,h){this._verify2(u,h);var p=u.add(h);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},Y.prototype.iadd=function(u,h){this._verify2(u,h);var p=u.iadd(h);return p.cmp(this.m)>=0&&p.isub(this.m),p},Y.prototype.sub=function(u,h){this._verify2(u,h);var p=u.sub(h);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},Y.prototype.isub=function(u,h){this._verify2(u,h);var p=u.isub(h);return p.cmpn(0)<0&&p.iadd(this.m),p},Y.prototype.shl=function(u,h){return this._verify1(u),this.imod(u.ushln(h))},Y.prototype.imul=function(u,h){return this._verify2(u,h),this.imod(u.imul(h))},Y.prototype.mul=function(u,h){return this._verify2(u,h),this.imod(u.mul(h))},Y.prototype.isqr=function(u){return this.imul(u,u.clone())},Y.prototype.sqr=function(u){return this.mul(u,u)},Y.prototype.sqrt=function(u){if(u.isZero())return u.clone();var h=this.m.andln(3);if(n(h%2===1),h===3){var p=this.m.add(new s(1)).iushrn(2);return this.pow(u,p)}for(var y=this.m.subn(1),w=0;!y.isZero()&&y.andln(1)===0;)w++,y.iushrn(1);n(!y.isZero());var x=new s(1).toRed(this),T=x.redNeg(),m=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new s(2*f*f).toRed(this);this.pow(f,m).cmp(T)!==0;)f.redIAdd(T);for(var E=this.pow(f,y),U=this.pow(u,y.addn(1).iushrn(1)),q=this.pow(u,y),I=w;q.cmp(x)!==0;){for(var k=q,D=0;k.cmp(x)!==0;D++)k=k.redSqr();n(D=0;w--){for(var E=h.words[w],U=f-1;U>=0;U--){var q=E>>U&1;if(x!==y[0]&&(x=this.sqr(x)),q===0&&T===0){m=0;continue}T<<=1,T|=q,m++,!(m!==p&&(w!==0||U!==0))&&(x=this.mul(x,y[T]),m=0,T=0)}f=26}return x},Y.prototype.convertTo=function(u){var h=u.umod(this.m);return h===u?h.clone():h},Y.prototype.convertFrom=function(u){var h=u.clone();return h.red=null,h},s.mont=function(u){return new X(u)};function X(v){Y.call(this,v),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i(X,Y),X.prototype.convertTo=function(u){return this.imod(u.ushln(this.shift))},X.prototype.convertFrom=function(u){var h=this.imod(u.mul(this.rinv));return h.red=null,h},X.prototype.imul=function(u,h){if(u.isZero()||h.isZero())return u.words[0]=0,u.length=1,u;var p=u.imul(h),y=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),w=p.isub(y).iushrn(this.shift),x=w;return w.cmp(this.m)>=0?x=w.isub(this.m):w.cmpn(0)<0&&(x=w.iadd(this.m)),x._forceRed(this)},X.prototype.mul=function(u,h){if(u.isZero()||h.isZero())return new s(0)._forceRed(this);var p=u.mul(h),y=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),w=p.isub(y).iushrn(this.shift),x=w;return w.cmp(this.m)>=0?x=w.isub(this.m):w.cmpn(0)<0&&(x=w.iadd(this.m)),x._forceRed(this)},X.prototype.invm=function(u){var h=this.imod(u._invmp(this.m).mul(this.r2));return h._forceRed(this)}})(t,Z)})(xu);var ro=xu.exports,hi={};Object.defineProperty(hi,"__esModule",{value:!0});hi.EVENTS=void 0;hi.EVENTS={STARTED_CONNECTING:"walletlink_sdk.started.connecting",CONNECTED_STATE_CHANGE:"walletlink_sdk.connected",DISCONNECTED:"walletlink_sdk.disconnected",METADATA_DESTROYED:"walletlink_sdk_metadata_destroyed",LINKED:"walletlink_sdk.linked",FAILURE:"walletlink_sdk.generic_failure",SESSION_CONFIG_RECEIVED:"walletlink_sdk.session_config_event_received",ETH_ACCOUNTS_STATE:"walletlink_sdk.eth_accounts_state",SESSION_STATE_CHANGE:"walletlink_sdk.session_state_change",UNLINKED_ERROR_STATE:"walletlink_sdk.unlinked_error_state",SKIPPED_CLEARING_SESSION:"walletlink_sdk.skipped_clearing_session",GENERAL_ERROR:"walletlink_sdk.general_error",WEB3_REQUEST:"walletlink_sdk.web3.request",WEB3_REQUEST_PUBLISHED:"walletlink_sdk.web3.request_published",WEB3_RESPONSE:"walletlink_sdk.web3.response",UNKNOWN_ADDRESS_ENCOUNTERED:"walletlink_sdk.unknown_address_encountered"};var Ji={},Kf={},Ir={},Xf=Wi;Wi.default=Wi;Wi.stable=rh;Wi.stableStringify=rh;var js="[...]",eh="[Circular]",cn=[],nn=[];function th(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function Wi(t,e,r,n){typeof n>"u"&&(n=th()),Ya(t,"",0,[],void 0,0,n);var i;try{nn.length===0?i=JSON.stringify(t,e,r):i=JSON.stringify(t,nh(e),r)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;cn.length!==0;){var s=cn.pop();s.length===4?Object.defineProperty(s[0],s[1],s[3]):s[0][s[1]]=s[2]}}return i}function qn(t,e,r,n){var i=Object.getOwnPropertyDescriptor(n,r);i.get!==void 0?i.configurable?(Object.defineProperty(n,r,{value:t}),cn.push([n,r,e,i])):nn.push([e,r,t]):(n[r]=t,cn.push([n,r,e]))}function Ya(t,e,r,n,i,s,o){s+=1;var a;if(typeof t=="object"&&t!==null){for(a=0;ao.depthLimit){qn(js,t,e,i);return}if(typeof o.edgesLimit<"u"&&r+1>o.edgesLimit){qn(js,t,e,i);return}if(n.push(t),Array.isArray(t))for(a=0;ae?1:0}function rh(t,e,r,n){typeof n>"u"&&(n=th());var i=Ka(t,"",0,[],void 0,0,n)||t,s;try{nn.length===0?s=JSON.stringify(i,e,r):s=JSON.stringify(i,nh(e),r)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;cn.length!==0;){var o=cn.pop();o.length===4?Object.defineProperty(o[0],o[1],o[3]):o[0][o[1]]=o[2]}}return s}function Ka(t,e,r,n,i,s,o){s+=1;var a;if(typeof t=="object"&&t!==null){for(a=0;ao.depthLimit){qn(js,t,e,i);return}if(typeof o.edgesLimit<"u"&&r+1>o.edgesLimit){qn(js,t,e,i);return}if(n.push(t),Array.isArray(t))for(a=0;a0)for(var n=0;n=1e3&&t<=4999}function v0(t,e){if(e!=="[Circular]")return e}var Cu={},Ar={};Object.defineProperty(Ar,"__esModule",{value:!0});Ar.errorValues=Ar.errorCodes=void 0;Ar.errorCodes={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901}};Ar.errorValues={"-32700":{standard:"JSON RPC 2.0",message:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."},"-32600":{standard:"JSON RPC 2.0",message:"The JSON sent is not a valid Request object."},"-32601":{standard:"JSON RPC 2.0",message:"The method does not exist / is not available."},"-32602":{standard:"JSON RPC 2.0",message:"Invalid method parameter(s)."},"-32603":{standard:"JSON RPC 2.0",message:"Internal JSON-RPC error."},"-32000":{standard:"EIP-1474",message:"Invalid input."},"-32001":{standard:"EIP-1474",message:"Resource not found."},"-32002":{standard:"EIP-1474",message:"Resource unavailable."},"-32003":{standard:"EIP-1474",message:"Transaction rejected."},"-32004":{standard:"EIP-1474",message:"Method not supported."},"-32005":{standard:"EIP-1474",message:"Request limit exceeded."},4001:{standard:"EIP-1193",message:"User rejected the request."},4100:{standard:"EIP-1193",message:"The requested account and/or method has not been authorized by the user."},4200:{standard:"EIP-1193",message:"The requested method is not supported by this Ethereum provider."},4900:{standard:"EIP-1193",message:"The provider is disconnected from all chains."},4901:{standard:"EIP-1193",message:"The provider is disconnected from the specified chain."}};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.serializeError=t.isValidCode=t.getMessageFromCode=t.JSON_RPC_SERVER_ERROR_MESSAGE=void 0;const e=Ar,r=Ir,n=e.errorCodes.rpc.internal,i="Unspecified error message. This is a bug, please report it.",s={code:n,message:o(n)};t.JSON_RPC_SERVER_ERROR_MESSAGE="Unspecified server error.";function o(b,C=i){if(Number.isInteger(b)){const A=b.toString();if(g(e.errorValues,A))return e.errorValues[A].message;if(l(b))return t.JSON_RPC_SERVER_ERROR_MESSAGE}return C}t.getMessageFromCode=o;function a(b){if(!Number.isInteger(b))return!1;const C=b.toString();return!!(e.errorValues[C]||l(b))}t.isValidCode=a;function c(b,{fallbackError:C=s,shouldIncludeStack:A=!1}={}){var P,N;if(!C||!Number.isInteger(C.code)||typeof C.message!="string")throw new Error("Must provide fallback error with integer number code and string message.");if(b instanceof r.EthereumRpcError)return b.serialize();const M={};if(b&&typeof b=="object"&&!Array.isArray(b)&&g(b,"code")&&a(b.code)){const O=b;M.code=O.code,O.message&&typeof O.message=="string"?(M.message=O.message,g(O,"data")&&(M.data=O.data)):(M.message=o(M.code),M.data={originalError:d(b)})}else{M.code=C.code;const O=(P=b)===null||P===void 0?void 0:P.message;M.message=O&&typeof O=="string"?O:C.message,M.data={originalError:d(b)}}const R=(N=b)===null||N===void 0?void 0:N.stack;return A&&b&&R&&typeof R=="string"&&(M.stack=R),M}t.serializeError=c;function l(b){return b>=-32099&&b<=-32e3}function d(b){return b&&typeof b=="object"&&!Array.isArray(b)?Object.assign({},b):b}function g(b,C){return Object.prototype.hasOwnProperty.call(b,C)}})(Cu);var no={};Object.defineProperty(no,"__esModule",{value:!0});no.ethErrors=void 0;const Ru=Ir,sh=Cu,dt=Ar;no.ethErrors={rpc:{parse:t=>Tt(dt.errorCodes.rpc.parse,t),invalidRequest:t=>Tt(dt.errorCodes.rpc.invalidRequest,t),invalidParams:t=>Tt(dt.errorCodes.rpc.invalidParams,t),methodNotFound:t=>Tt(dt.errorCodes.rpc.methodNotFound,t),internal:t=>Tt(dt.errorCodes.rpc.internal,t),server:t=>{if(!t||typeof t!="object"||Array.isArray(t))throw new Error("Ethereum RPC Server errors must provide single object argument.");const{code:e}=t;if(!Number.isInteger(e)||e>-32005||e<-32099)throw new Error('"code" must be an integer such that: -32099 <= code <= -32005');return Tt(e,t)},invalidInput:t=>Tt(dt.errorCodes.rpc.invalidInput,t),resourceNotFound:t=>Tt(dt.errorCodes.rpc.resourceNotFound,t),resourceUnavailable:t=>Tt(dt.errorCodes.rpc.resourceUnavailable,t),transactionRejected:t=>Tt(dt.errorCodes.rpc.transactionRejected,t),methodNotSupported:t=>Tt(dt.errorCodes.rpc.methodNotSupported,t),limitExceeded:t=>Tt(dt.errorCodes.rpc.limitExceeded,t)},provider:{userRejectedRequest:t=>xi(dt.errorCodes.provider.userRejectedRequest,t),unauthorized:t=>xi(dt.errorCodes.provider.unauthorized,t),unsupportedMethod:t=>xi(dt.errorCodes.provider.unsupportedMethod,t),disconnected:t=>xi(dt.errorCodes.provider.disconnected,t),chainDisconnected:t=>xi(dt.errorCodes.provider.chainDisconnected,t),custom:t=>{if(!t||typeof t!="object"||Array.isArray(t))throw new Error("Ethereum Provider custom errors must provide single object argument.");const{code:e,message:r,data:n}=t;if(!r||typeof r!="string")throw new Error('"message" must be a nonempty string');return new Ru.EthereumProviderError(e,r,n)}}};function Tt(t,e){const[r,n]=oh(e);return new Ru.EthereumRpcError(t,r||sh.getMessageFromCode(t),n)}function xi(t,e){const[r,n]=oh(e);return new Ru.EthereumProviderError(t,r||sh.getMessageFromCode(t),n)}function oh(t){if(t){if(typeof t=="string")return[t];if(typeof t=="object"&&!Array.isArray(t)){const{message:e,data:r}=t;if(e&&typeof e!="string")throw new Error("Must specify string message.");return[e||void 0,r]}}return[]}(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.getMessageFromCode=t.serializeError=t.EthereumProviderError=t.EthereumRpcError=t.ethErrors=t.errorCodes=void 0;const e=Ir;Object.defineProperty(t,"EthereumRpcError",{enumerable:!0,get:function(){return e.EthereumRpcError}}),Object.defineProperty(t,"EthereumProviderError",{enumerable:!0,get:function(){return e.EthereumProviderError}});const r=Cu;Object.defineProperty(t,"serializeError",{enumerable:!0,get:function(){return r.serializeError}}),Object.defineProperty(t,"getMessageFromCode",{enumerable:!0,get:function(){return r.getMessageFromCode}});const n=no;Object.defineProperty(t,"ethErrors",{enumerable:!0,get:function(){return n.ethErrors}});const i=Ar;Object.defineProperty(t,"errorCodes",{enumerable:!0,get:function(){return i.errorCodes}})})(Kf);var _e={},io={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.Web3Method=void 0,function(e){e.requestEthereumAccounts="requestEthereumAccounts",e.signEthereumMessage="signEthereumMessage",e.signEthereumTransaction="signEthereumTransaction",e.submitEthereumTransaction="submitEthereumTransaction",e.ethereumAddressFromSignedMessage="ethereumAddressFromSignedMessage",e.scanQRCode="scanQRCode",e.generic="generic",e.childRequestEthereumAccounts="childRequestEthereumAccounts",e.addEthereumChain="addEthereumChain",e.switchEthereumChain="switchEthereumChain",e.makeEthereumJSONRPCRequest="makeEthereumJSONRPCRequest",e.watchAsset="watchAsset",e.selectProvider="selectProvider"}(t.Web3Method||(t.Web3Method={}))})(io);Object.defineProperty(_e,"__esModule",{value:!0});_e.EthereumAddressFromSignedMessageResponse=_e.SubmitEthereumTransactionResponse=_e.SignEthereumTransactionResponse=_e.SignEthereumMessageResponse=_e.isRequestEthereumAccountsResponse=_e.SelectProviderResponse=_e.WatchAssetReponse=_e.RequestEthereumAccountsResponse=_e.SwitchEthereumChainResponse=_e.AddEthereumChainResponse=_e.isErrorResponse=void 0;const cr=io;function y0(t){var e,r;return((e=t)===null||e===void 0?void 0:e.method)!==void 0&&((r=t)===null||r===void 0?void 0:r.errorMessage)!==void 0}_e.isErrorResponse=y0;function m0(t){return{method:cr.Web3Method.addEthereumChain,result:t}}_e.AddEthereumChainResponse=m0;function w0(t){return{method:cr.Web3Method.switchEthereumChain,result:t}}_e.SwitchEthereumChainResponse=w0;function _0(t){return{method:cr.Web3Method.requestEthereumAccounts,result:t}}_e.RequestEthereumAccountsResponse=_0;function S0(t){return{method:cr.Web3Method.watchAsset,result:t}}_e.WatchAssetReponse=S0;function E0(t){return{method:cr.Web3Method.selectProvider,result:t}}_e.SelectProviderResponse=E0;function M0(t){return t&&t.method===cr.Web3Method.requestEthereumAccounts}_e.isRequestEthereumAccountsResponse=M0;function x0(t){return{method:cr.Web3Method.signEthereumMessage,result:t}}_e.SignEthereumMessageResponse=x0;function C0(t){return{method:cr.Web3Method.signEthereumTransaction,result:t}}_e.SignEthereumTransactionResponse=C0;function R0(t){return{method:cr.Web3Method.submitEthereumTransaction,result:t}}_e.SubmitEthereumTransactionResponse=R0;function I0(t){return{method:cr.Web3Method.ethereumAddressFromSignedMessage,result:t}}_e.EthereumAddressFromSignedMessageResponse=I0;var di={};Object.defineProperty(di,"__esModule",{value:!0});di.LIB_VERSION=void 0;di.LIB_VERSION="3.7.2";(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCode=t.serializeError=t.standardErrors=t.standardErrorMessage=t.standardErrorCodes=void 0;const e=Kf,r=_e,n=di;t.standardErrorCodes=Object.freeze(Object.assign(Object.assign({},e.errorCodes),{provider:Object.freeze(Object.assign(Object.assign({},e.errorCodes.provider),{unsupportedChain:4902}))}));function i(d){return d!==void 0?(0,e.getMessageFromCode)(d):"Unknown error"}t.standardErrorMessage=i,t.standardErrors=Object.freeze(Object.assign(Object.assign({},e.ethErrors),{provider:Object.freeze(Object.assign(Object.assign({},e.ethErrors.provider),{unsupportedChain:(d="")=>e.ethErrors.provider.custom({code:t.standardErrorCodes.provider.unsupportedChain,message:`Unrecognized chain ID ${d}. Try adding the chain using wallet_addEthereumChain first.`})}))}));function s(d,g){const b=(0,e.serializeError)(o(d),{shouldIncludeStack:!0}),C=new URL("https://docs.cloud.coinbase.com/wallet-sdk/docs/errors");C.searchParams.set("version",n.LIB_VERSION),C.searchParams.set("code",b.code.toString());const A=a(b.data,g);return A&&C.searchParams.set("method",A),C.searchParams.set("message",b.message),Object.assign(Object.assign({},b),{docUrl:C.href})}t.serializeError=s;function o(d){return typeof d=="string"?{message:d,code:t.standardErrorCodes.rpc.internal}:(0,r.isErrorResponse)(d)?Object.assign(Object.assign({},d),{message:d.errorMessage,code:d.errorCode,data:{method:d.method,result:d.result}}):d}function a(d,g){var b;const C=(b=d)===null||b===void 0?void 0:b.method;if(C)return C;if(g!==void 0)return typeof g=="string"?g:Array.isArray(g)?g.length>0?g[0].method:void 0:g.method}function c(d){var g;if(typeof d=="number")return d;if(l(d))return(g=d.code)!==null&&g!==void 0?g:d.errorCode}t.getErrorCode=c;function l(d){return typeof d=="object"&&d!==null&&(typeof d.code=="number"||typeof d.errorCode=="number")}})(Ji);var pi={},ah={exports:{}},Xa={exports:{}};typeof Object.create=="function"?Xa.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Xa.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}};var Gt=Xa.exports,eu={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh */(function(t,e){var r=Gi,n=r.Buffer;function i(o,a){for(var c in o)a[c]=o[c]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(i(r,e),e.Buffer=s);function s(o,a,c){return n(o,a,c)}s.prototype=Object.create(n.prototype),i(n,s),s.from=function(o,a,c){if(typeof o=="number")throw new TypeError("Argument must not be a number");return n(o,a,c)},s.alloc=function(o,a,c){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=n(o);return a!==void 0?typeof c=="string"?l.fill(a,c):l.fill(a):l.fill(0),l},s.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n(o)},s.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(o)}})(eu,eu.exports);var bn=eu.exports,uh=bn.Buffer;function so(t,e){this._block=uh.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}so.prototype.update=function(t,e){typeof t=="string"&&(e=e||"utf8",t=uh.from(t,e));for(var r=this._block,n=this._blockSize,i=t.length,s=this._len,o=0;o=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var s=this._hash();return t?s.toString(t):s};so.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var gi=so,A0=Gt,ch=gi,T0=bn.Buffer,k0=[1518500249,1859775393,-1894007588,-899497514],O0=new Array(80);function Zi(){this.init(),this._w=O0,ch.call(this,64,56)}A0(Zi,ch);Zi.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function N0(t){return t<<5|t>>>27}function L0(t){return t<<30|t>>>2}function P0(t,e,r,n){return t===0?e&r|~e&n:t===2?e&r|e&n|r&n:e^r^n}Zi.prototype._update=function(t){for(var e=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)e[a]=t.readInt32BE(a*4);for(;a<80;++a)e[a]=e[a-3]^e[a-8]^e[a-14]^e[a-16];for(var c=0;c<80;++c){var l=~~(c/20),d=N0(r)+P0(l,n,i,s)+o+e[c]+k0[l]|0;o=s,s=i,i=L0(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};Zi.prototype._hash=function(){var t=T0.allocUnsafe(20);return t.writeInt32BE(this._a|0,0),t.writeInt32BE(this._b|0,4),t.writeInt32BE(this._c|0,8),t.writeInt32BE(this._d|0,12),t.writeInt32BE(this._e|0,16),t};var $0=Zi,D0=Gt,lh=gi,B0=bn.Buffer,j0=[1518500249,1859775393,-1894007588,-899497514],F0=new Array(80);function Qi(){this.init(),this._w=F0,lh.call(this,64,56)}D0(Qi,lh);Qi.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function W0(t){return t<<1|t>>>31}function H0(t){return t<<5|t>>>27}function V0(t){return t<<30|t>>>2}function U0(t,e,r,n){return t===0?e&r|~e&n:t===2?e&r|e&n|r&n:e^r^n}Qi.prototype._update=function(t){for(var e=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)e[a]=t.readInt32BE(a*4);for(;a<80;++a)e[a]=W0(e[a-3]^e[a-8]^e[a-14]^e[a-16]);for(var c=0;c<80;++c){var l=~~(c/20),d=H0(r)+U0(l,n,i,s)+o+e[c]+j0[l]|0;o=s,s=i,i=V0(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};Qi.prototype._hash=function(){var t=B0.allocUnsafe(20);return t.writeInt32BE(this._a|0,0),t.writeInt32BE(this._b|0,4),t.writeInt32BE(this._c|0,8),t.writeInt32BE(this._d|0,12),t.writeInt32BE(this._e|0,16),t};var z0=Qi,q0=Gt,fh=gi,G0=bn.Buffer,J0=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Z0=new Array(64);function Yi(){this.init(),this._w=Z0,fh.call(this,64,56)}q0(Yi,fh);Yi.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function Q0(t,e,r){return r^t&(e^r)}function Y0(t,e,r){return t&e|r&(t|e)}function K0(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function X0(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function eg(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}function tg(t){return(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10}Yi.prototype._update=function(t){for(var e=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=this._f|0,c=this._g|0,l=this._h|0,d=0;d<16;++d)e[d]=t.readInt32BE(d*4);for(;d<64;++d)e[d]=tg(e[d-2])+e[d-7]+eg(e[d-15])+e[d-16]|0;for(var g=0;g<64;++g){var b=l+X0(o)+Q0(o,a,c)+J0[g]+e[g]|0,C=K0(r)+Y0(r,n,i)|0;l=c,c=a,a=o,o=s+b|0,s=i,i=n,n=r,r=b+C|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0,this._f=a+this._f|0,this._g=c+this._g|0,this._h=l+this._h|0};Yi.prototype._hash=function(){var t=G0.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t};var hh=Yi,rg=Gt,ng=hh,ig=gi,sg=bn.Buffer,og=new Array(64);function oo(){this.init(),this._w=og,ig.call(this,64,56)}rg(oo,ng);oo.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};oo.prototype._hash=function(){var t=sg.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t};var ag=oo,ug=Gt,dh=gi,cg=bn.Buffer,Pc=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],lg=new Array(160);function Ki(){this.init(),this._w=lg,dh.call(this,128,112)}ug(Ki,dh);Ki.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function $c(t,e,r){return r^t&(e^r)}function Dc(t,e,r){return t&e|r&(t|e)}function Bc(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function jc(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function fg(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function hg(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function dg(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function pg(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function it(t,e){return t>>>0>>0?1:0}Ki.prototype._update=function(t){for(var e=this._w,r=this._ah|0,n=this._bh|0,i=this._ch|0,s=this._dh|0,o=this._eh|0,a=this._fh|0,c=this._gh|0,l=this._hh|0,d=this._al|0,g=this._bl|0,b=this._cl|0,C=this._dl|0,A=this._el|0,P=this._fl|0,N=this._gl|0,M=this._hl|0,R=0;R<32;R+=2)e[R]=t.readInt32BE(R*4),e[R+1]=t.readInt32BE(R*4+4);for(;R<160;R+=2){var O=e[R-30],$=e[R-15*2+1],L=fg(O,$),B=hg($,O);O=e[R-2*2],$=e[R-2*2+1];var G=dg(O,$),z=pg($,O),W=e[R-7*2],K=e[R-7*2+1],Y=e[R-16*2],X=e[R-16*2+1],v=B+K|0,u=L+W+it(v,B)|0;v=v+z|0,u=u+G+it(v,z)|0,v=v+X|0,u=u+Y+it(v,X)|0,e[R]=u,e[R+1]=v}for(var h=0;h<160;h+=2){u=e[h],v=e[h+1];var p=Dc(r,n,i),y=Dc(d,g,b),w=Bc(r,d),x=Bc(d,r),T=jc(o,A),m=jc(A,o),f=Pc[h],E=Pc[h+1],U=$c(o,a,c),q=$c(A,P,N),I=M+m|0,k=l+T+it(I,M)|0;I=I+q|0,k=k+U+it(I,q)|0,I=I+E|0,k=k+f+it(I,E)|0,I=I+v|0,k=k+u+it(I,v)|0;var D=x+y|0,V=w+p+it(D,x)|0;l=c,M=N,c=a,N=P,a=o,P=A,A=C+I|0,o=s+k+it(A,C)|0,s=i,C=b,i=n,b=g,n=r,g=d,d=I+D|0,r=k+V+it(d,I)|0}this._al=this._al+d|0,this._bl=this._bl+g|0,this._cl=this._cl+b|0,this._dl=this._dl+C|0,this._el=this._el+A|0,this._fl=this._fl+P|0,this._gl=this._gl+N|0,this._hl=this._hl+M|0,this._ah=this._ah+r+it(this._al,d)|0,this._bh=this._bh+n+it(this._bl,g)|0,this._ch=this._ch+i+it(this._cl,b)|0,this._dh=this._dh+s+it(this._dl,C)|0,this._eh=this._eh+o+it(this._el,A)|0,this._fh=this._fh+a+it(this._fl,P)|0,this._gh=this._gh+c+it(this._gl,N)|0,this._hh=this._hh+l+it(this._hl,M)|0};Ki.prototype._hash=function(){var t=cg.allocUnsafe(64);function e(r,n,i){t.writeInt32BE(r,i),t.writeInt32BE(n,i+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t};var ph=Ki,gg=Gt,bg=ph,vg=gi,yg=bn.Buffer,mg=new Array(160);function ao(){this.init(),this._w=mg,vg.call(this,128,112)}gg(ao,bg);ao.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};ao.prototype._hash=function(){var t=yg.allocUnsafe(48);function e(r,n,i){t.writeInt32BE(r,i),t.writeInt32BE(n,i+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t};var wg=ao,vn=ah.exports=function(e){e=e.toLowerCase();var r=vn[e];if(!r)throw new Error(e+" is not supported (we accept pull requests)");return new r};vn.sha=$0;vn.sha1=z0;vn.sha224=ag;vn.sha256=hh;vn.sha384=wg;vn.sha512=ph;var _g=ah.exports,J={},Sg=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;e[r]=i;for(r in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var s=Object.getOwnPropertySymbols(e);if(s.length!==1||s[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==i||o.enumerable!==!0)return!1}return!0},Fc=typeof Symbol<"u"&&Symbol,Eg=Sg,Mg=function(){return typeof Fc!="function"||typeof Symbol!="function"||typeof Fc("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:Eg()},Wc={foo:{}},xg=Object,Cg=function(){return{__proto__:Wc}.foo===Wc.foo&&!({__proto__:null}instanceof xg)},Rg="Function.prototype.bind called on incompatible ",Ig=Object.prototype.toString,Ag=Math.max,Tg="[object Function]",Hc=function(e,r){for(var n=[],i=0;i"u"||!at?ce:at(Uint8Array),un={"%AggregateError%":typeof AggregateError>"u"?ce:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?ce:ArrayBuffer,"%ArrayIteratorPrototype%":Pn&&at?at([][Symbol.iterator]()):ce,"%AsyncFromSyncIteratorPrototype%":ce,"%AsyncFunction%":Hn,"%AsyncGenerator%":Hn,"%AsyncGeneratorFunction%":Hn,"%AsyncIteratorPrototype%":Hn,"%Atomics%":typeof Atomics>"u"?ce:Atomics,"%BigInt%":typeof BigInt>"u"?ce:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?ce:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?ce:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?ce:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?ce:Float32Array,"%Float64Array%":typeof Float64Array>"u"?ce:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?ce:FinalizationRegistry,"%Function%":gh,"%GeneratorFunction%":Hn,"%Int8Array%":typeof Int8Array>"u"?ce:Int8Array,"%Int16Array%":typeof Int16Array>"u"?ce:Int16Array,"%Int32Array%":typeof Int32Array>"u"?ce:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Pn&&at?at(at([][Symbol.iterator]())):ce,"%JSON%":typeof JSON=="object"?JSON:ce,"%Map%":typeof Map>"u"?ce:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Pn||!at?ce:at(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?ce:Promise,"%Proxy%":typeof Proxy>"u"?ce:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?ce:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?ce:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Pn||!at?ce:at(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?ce:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Pn&&at?at(""[Symbol.iterator]()):ce,"%Symbol%":Pn?Symbol:ce,"%SyntaxError%":Xn,"%ThrowTypeError%":jg,"%TypedArray%":Wg,"%TypeError%":Gn,"%Uint8Array%":typeof Uint8Array>"u"?ce:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?ce:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?ce:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?ce:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?ce:WeakMap,"%WeakRef%":typeof WeakRef>"u"?ce:WeakRef,"%WeakSet%":typeof WeakSet>"u"?ce:WeakSet};if(at)try{null.error}catch(t){var Hg=at(at(t));un["%Error.prototype%"]=Hg}var Vg=function t(e){var r;if(e==="%AsyncFunction%")r=ca("async function () {}");else if(e==="%GeneratorFunction%")r=ca("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=ca("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&at&&(r=at(i.prototype))}return un[e]=r,r},Vc={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Xi=Iu,Fs=Bg,Ug=Xi.call(Function.call,Array.prototype.concat),zg=Xi.call(Function.apply,Array.prototype.splice),Uc=Xi.call(Function.call,String.prototype.replace),Ws=Xi.call(Function.call,String.prototype.slice),qg=Xi.call(Function.call,RegExp.prototype.exec),Gg=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Jg=/\\(\\)?/g,Zg=function(e){var r=Ws(e,0,1),n=Ws(e,-1);if(r==="%"&&n!=="%")throw new Xn("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Xn("invalid intrinsic syntax, expected opening `%`");var i=[];return Uc(e,Gg,function(s,o,a,c){i[i.length]=a?Uc(c,Jg,"$1"):o||s}),i},Qg=function(e,r){var n=e,i;if(Fs(Vc,n)&&(i=Vc[n],n="%"+i[0]+"%"),Fs(un,n)){var s=un[n];if(s===Hn&&(s=Vg(n)),typeof s>"u"&&!r)throw new Gn("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:s}}throw new Xn("intrinsic "+e+" does not exist!")},yn=function(e,r){if(typeof e!="string"||e.length===0)throw new Gn("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Gn('"allowMissing" argument must be a boolean');if(qg(/^%?[^%]*%?$/,e)===null)throw new Xn("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=Zg(e),i=n.length>0?n[0]:"",s=Qg("%"+i+"%",r),o=s.name,a=s.value,c=!1,l=s.alias;l&&(i=l[0],zg(n,Ug([0,1],l)));for(var d=1,g=!0;d=n.length){var P=an(a,b);g=!!P,g&&"get"in P&&!("originalValue"in P.get)?a=P.get:a=a[b]}else g=Fs(a,b),a=a[b];g&&!c&&(un[o]=a)}}return a},bh={exports:{}},Yg=yn,tu=Yg("%Object.defineProperty%",!0),ru=function(){if(tu)try{return tu({},"a",{value:1}),!0}catch{return!1}return!1};ru.hasArrayLengthDefineBug=function(){if(!ru())return null;try{return tu([],"length",{value:1}).length!==1}catch{return!0}};var vh=ru,Kg=yn,Ls=Kg("%Object.getOwnPropertyDescriptor%",!0);if(Ls)try{Ls([],"length")}catch{Ls=null}var yh=Ls,Xg=vh(),Au=yn,Ni=Xg&&Au("%Object.defineProperty%",!0);if(Ni)try{Ni({},"a",{value:1})}catch{Ni=!1}var eb=Au("%SyntaxError%"),$n=Au("%TypeError%"),zc=yh,tb=function(e,r,n){if(!e||typeof e!="object"&&typeof e!="function")throw new $n("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new $n("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new $n("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new $n("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new $n("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new $n("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,s=arguments.length>4?arguments[4]:null,o=arguments.length>5?arguments[5]:null,a=arguments.length>6?arguments[6]:!1,c=!!zc&&zc(e,r);if(Ni)Ni(e,r,{configurable:o===null&&c?c.configurable:!o,enumerable:i===null&&c?c.enumerable:!i,value:n,writable:s===null&&c?c.writable:!s});else if(a||!i&&!s&&!o)e[r]=n;else throw new eb("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},mh=yn,qc=tb,rb=vh(),Gc=yh,Jc=mh("%TypeError%"),nb=mh("%Math.floor%"),ib=function(e,r){if(typeof e!="function")throw new Jc("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||nb(r)!==r)throw new Jc("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],i=!0,s=!0;if("length"in e&&Gc){var o=Gc(e,"length");o&&!o.configurable&&(i=!1),o&&!o.writable&&(s=!1)}return(i||s||!n)&&(rb?qc(e,"length",r,!0,!0):qc(e,"length",r)),e};(function(t){var e=Iu,r=yn,n=ib,i=r("%TypeError%"),s=r("%Function.prototype.apply%"),o=r("%Function.prototype.call%"),a=r("%Reflect.apply%",!0)||e.call(o,s),c=r("%Object.defineProperty%",!0),l=r("%Math.max%");if(c)try{c({},"a",{value:1})}catch{c=null}t.exports=function(b){if(typeof b!="function")throw new i("a function is required");var C=a(e,o,arguments);return n(C,1+l(0,b.length-(arguments.length-1)),!0)};var d=function(){return a(e,s,arguments)};c?c(t.exports,"apply",{value:d}):t.exports.apply=d})(bh);var sb=bh.exports,wh=yn,_h=sb,ob=_h(wh("String.prototype.indexOf")),ab=function(e,r){var n=wh(e,!!r);return typeof n=="function"&&ob(e,".prototype.")>-1?_h(n):n},Tu=typeof Map=="function"&&Map.prototype,fa=Object.getOwnPropertyDescriptor&&Tu?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Hs=Tu&&fa&&typeof fa.get=="function"?fa.get:null,Zc=Tu&&Map.prototype.forEach,ku=typeof Set=="function"&&Set.prototype,ha=Object.getOwnPropertyDescriptor&&ku?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Vs=ku&&ha&&typeof ha.get=="function"?ha.get:null,Qc=ku&&Set.prototype.forEach,ub=typeof WeakMap=="function"&&WeakMap.prototype,Li=ub?WeakMap.prototype.has:null,cb=typeof WeakSet=="function"&&WeakSet.prototype,Pi=cb?WeakSet.prototype.has:null,lb=typeof WeakRef=="function"&&WeakRef.prototype,Yc=lb?WeakRef.prototype.deref:null,fb=Boolean.prototype.valueOf,hb=Object.prototype.toString,db=Function.prototype.toString,pb=String.prototype.match,Ou=String.prototype.slice,Cr=String.prototype.replace,gb=String.prototype.toUpperCase,Kc=String.prototype.toLowerCase,Sh=RegExp.prototype.test,Xc=Array.prototype.concat,nr=Array.prototype.join,bb=Array.prototype.slice,el=Math.floor,nu=typeof BigInt=="function"?BigInt.prototype.valueOf:null,da=Object.getOwnPropertySymbols,iu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,ei=typeof Symbol=="function"&&typeof Symbol.iterator=="object",vt=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===ei||"symbol")?Symbol.toStringTag:null,Eh=Object.prototype.propertyIsEnumerable,tl=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function rl(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||Sh.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-el(-t):el(t);if(n!==t){var i=String(n),s=Ou.call(e,i.length+1);return Cr.call(i,r,"$&_")+"."+Cr.call(Cr.call(s,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Cr.call(e,r,"$&_")}var su=Ks,nl=su.custom,il=xh(nl)?nl:null,vb=function t(e,r,n,i){var s=r||{};if(Er(s,"quoteStyle")&&s.quoteStyle!=="single"&&s.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Er(s,"maxStringLength")&&(typeof s.maxStringLength=="number"?s.maxStringLength<0&&s.maxStringLength!==1/0:s.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=Er(s,"customInspect")?s.customInspect:!0;if(typeof o!="boolean"&&o!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Er(s,"indent")&&s.indent!==null&&s.indent!==" "&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Er(s,"numericSeparator")&&typeof s.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var a=s.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return Rh(e,s);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return a?rl(e,c):c}if(typeof e=="bigint"){var l=String(e)+"n";return a?rl(e,l):l}var d=typeof s.depth>"u"?5:s.depth;if(typeof n>"u"&&(n=0),n>=d&&d>0&&typeof e=="object")return ou(e)?"[Array]":"[Object]";var g=Pb(s,n);if(typeof i>"u")i=[];else if(Ch(i,e)>=0)return"[Circular]";function b(v,u,h){if(u&&(i=bb.call(i),i.push(u)),h){var p={depth:s.depth};return Er(s,"quoteStyle")&&(p.quoteStyle=s.quoteStyle),t(v,p,n+1,i)}return t(v,s,n+1,i)}if(typeof e=="function"&&!sl(e)){var C=Cb(e),A=ys(e,b);return"[Function"+(C?": "+C:" (anonymous)")+"]"+(A.length>0?" { "+nr.call(A,", ")+" }":"")}if(xh(e)){var P=ei?Cr.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):iu.call(e);return typeof e=="object"&&!ei?Ci(P):P}if(Ob(e)){for(var N="<"+Kc.call(String(e.nodeName)),M=e.attributes||[],R=0;R",N}if(ou(e)){if(e.length===0)return"[]";var O=ys(e,b);return g&&!Lb(O)?"["+au(O,g)+"]":"[ "+nr.call(O,", ")+" ]"}if(wb(e)){var $=ys(e,b);return!("cause"in Error.prototype)&&"cause"in e&&!Eh.call(e,"cause")?"{ ["+String(e)+"] "+nr.call(Xc.call("[cause]: "+b(e.cause),$),", ")+" }":$.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+nr.call($,", ")+" }"}if(typeof e=="object"&&o){if(il&&typeof e[il]=="function"&&su)return su(e,{depth:d-n});if(o!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(Rb(e)){var L=[];return Zc&&Zc.call(e,function(v,u){L.push(b(u,e,!0)+" => "+b(v,e))}),ol("Map",Hs.call(e),L,g)}if(Tb(e)){var B=[];return Qc&&Qc.call(e,function(v){B.push(b(v,e))}),ol("Set",Vs.call(e),B,g)}if(Ib(e))return pa("WeakMap");if(kb(e))return pa("WeakSet");if(Ab(e))return pa("WeakRef");if(Sb(e))return Ci(b(Number(e)));if(Mb(e))return Ci(b(nu.call(e)));if(Eb(e))return Ci(fb.call(e));if(_b(e))return Ci(b(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(e===globalThis)return"{ [object globalThis] }";if(!mb(e)&&!sl(e)){var G=ys(e,b),z=tl?tl(e)===Object.prototype:e instanceof Object||e.constructor===Object,W=e instanceof Object?"":"null prototype",K=!z&&vt&&Object(e)===e&&vt in e?Ou.call(Pr(e),8,-1):W?"Object":"",Y=z||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",X=Y+(K||W?"["+nr.call(Xc.call([],K||[],W||[]),": ")+"] ":"");return G.length===0?X+"{}":g?X+"{"+au(G,g)+"}":X+"{ "+nr.call(G,", ")+" }"}return String(e)};function Mh(t,e,r){var n=(r.quoteStyle||e)==="double"?'"':"'";return n+t+n}function yb(t){return Cr.call(String(t),/"/g,""")}function ou(t){return Pr(t)==="[object Array]"&&(!vt||!(typeof t=="object"&&vt in t))}function mb(t){return Pr(t)==="[object Date]"&&(!vt||!(typeof t=="object"&&vt in t))}function sl(t){return Pr(t)==="[object RegExp]"&&(!vt||!(typeof t=="object"&&vt in t))}function wb(t){return Pr(t)==="[object Error]"&&(!vt||!(typeof t=="object"&&vt in t))}function _b(t){return Pr(t)==="[object String]"&&(!vt||!(typeof t=="object"&&vt in t))}function Sb(t){return Pr(t)==="[object Number]"&&(!vt||!(typeof t=="object"&&vt in t))}function Eb(t){return Pr(t)==="[object Boolean]"&&(!vt||!(typeof t=="object"&&vt in t))}function xh(t){if(ei)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!iu)return!1;try{return iu.call(t),!0}catch{}return!1}function Mb(t){if(!t||typeof t!="object"||!nu)return!1;try{return nu.call(t),!0}catch{}return!1}var xb=Object.prototype.hasOwnProperty||function(t){return t in this};function Er(t,e){return xb.call(t,e)}function Pr(t){return hb.call(t)}function Cb(t){if(t.name)return t.name;var e=pb.call(db.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function Ch(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return Rh(Ou.call(t,0,e.maxStringLength),e)+n}var i=Cr.call(Cr.call(t,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Nb);return Mh(i,"single",e)}function Nb(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+gb.call(e.toString(16))}function Ci(t){return"Object("+t+")"}function pa(t){return t+" { ? }"}function ol(t,e,r,n){var i=n?au(r,n):nr.call(r,", ");return t+" ("+e+") {"+i+"}"}function Lb(t){for(var e=0;en[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var Mu={},Fi={},Xs={};Object.defineProperty(Xs,"__esModule",{value:!0});Xs.walletLogo=void 0;const u0=(t,e)=>{let r;switch(t){case"standard":return r=e,`data:image/svg+xml,%3Csvg width='${e}' height='${r}' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E `;case"circle":return r=e,`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${e}' height='${r}' viewBox='0 0 999.81 999.81'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052fe;%7D.cls-2%7Bfill:%23fefefe;%7D.cls-3%7Bfill:%230152fe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M655-115.9h56c.83,1.59,2.36.88,3.56,1a478,478,0,0,1,75.06,10.42C891.4-81.76,978.33-32.58,1049.19,44q116.7,126,131.94,297.61c.38,4.14-.34,8.53,1.78,12.45v59c-1.58.84-.91,2.35-1,3.56a482.05,482.05,0,0,1-10.38,74.05c-24,106.72-76.64,196.76-158.83,268.93s-178.18,112.82-287.2,122.6c-4.83.43-9.86-.25-14.51,1.77H654c-1-1.68-2.69-.91-4.06-1a496.89,496.89,0,0,1-105.9-18.59c-93.54-27.42-172.78-77.59-236.91-150.94Q199.34,590.1,184.87,426.58c-.47-5.19.25-10.56-1.77-15.59V355c1.68-1,.91-2.7,1-4.06a498.12,498.12,0,0,1,18.58-105.9c26-88.75,72.64-164.9,140.6-227.57q126-116.27,297.21-131.61C645.32-114.57,650.35-113.88,655-115.9Zm377.92,500c0-192.44-156.31-349.49-347.56-350.15-194.13-.68-350.94,155.13-352.29,347.42-1.37,194.55,155.51,352.1,348.56,352.47C876.15,734.23,1032.93,577.84,1032.93,384.11Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-2' d='M1032.93,384.11c0,193.73-156.78,350.12-351.29,349.74-193-.37-349.93-157.92-348.56-352.47C334.43,189.09,491.24,33.28,685.37,34,876.62,34.62,1032.94,191.67,1032.93,384.11ZM683,496.81q43.74,0,87.48,0c15.55,0,25.32-9.72,25.33-25.21q0-87.48,0-175c0-15.83-9.68-25.46-25.59-25.46H595.77c-15.88,0-25.57,9.64-25.58,25.46q0,87.23,0,174.45c0,16.18,9.59,25.7,25.84,25.71Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-3' d='M683,496.81H596c-16.25,0-25.84-9.53-25.84-25.71q0-87.23,0-174.45c0-15.82,9.7-25.46,25.58-25.46H770.22c15.91,0,25.59,9.63,25.59,25.46q0,87.47,0,175c0,15.49-9.78,25.2-25.33,25.21Q726.74,496.84,683,496.81Z' transform='translate(-183.1 115.9)'/%3E%3C/svg%3E`;case"text":return r=(.1*e).toFixed(2),`data:image/svg+xml,%3Csvg width='${e}' height='${r}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E`;case"textWithLogo":return r=(.25*e).toFixed(2),`data:image/svg+xml,%3Csvg width='${e}' height='${r}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E`;case"textLight":return r=(.1*e).toFixed(2),`data:image/svg+xml,%3Csvg width='${e}' height='${r}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E`;case"textWithLogoLight":return r=(.25*e).toFixed(2),`data:image/svg+xml,%3Csvg width='${e}' height='${r}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E`;default:return r=e,`data:image/svg+xml,%3Csvg width='${e}' height='${r}' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E `}};Xs.walletLogo=u0;var eo={};Object.defineProperty(eo,"__esModule",{value:!0});eo.LINK_API_URL=void 0;eo.LINK_API_URL="https://www.walletlink.org";var to={};Object.defineProperty(to,"__esModule",{value:!0});to.ScopedLocalStorage=void 0;class c0{constructor(e){this.scope=e}setItem(e,r){localStorage.setItem(this.scopedKey(e),r)}getItem(e){return localStorage.getItem(this.scopedKey(e))}removeItem(e){localStorage.removeItem(this.scopedKey(e))}clear(){const e=this.scopedKey(""),r=[];for(let n=0;nlocalStorage.removeItem(n))}scopedKey(e){return`${this.scope}:${e}`}}to.ScopedLocalStorage=c0;var Kn={},gn={};Object.defineProperty(gn,"__esModule",{value:!0});const l0=Eu;function Lc(t,e,r){try{Reflect.apply(t,e,r)}catch(n){setTimeout(()=>{throw n})}}function f0(t){const e=t.length,r=new Array(e);for(let n=0;n0&&([o]=r),o instanceof Error)throw o;const a=new Error(`Unhandled error.${o?` (${o.message})`:""}`);throw a.context=o,a}const s=i[e];if(s===void 0)return!1;if(typeof s=="function")Lc(s,this,r);else{const o=s.length,a=f0(s);for(let c=0;c0?u:h},s.min=function(u,h){return u.cmp(h)<0?u:h},s.prototype._init=function(u,h,p){if(typeof u=="number")return this._initNumber(u,h,p);if(typeof u=="object")return this._initArray(u,h,p);h==="hex"&&(h=16),n(h===(h|0)&&h>=2&&h<=36),u=u.toString().replace(/\s+/g,"");var y=0;u[0]==="-"&&(y++,this.negative=1),y=0;y-=3)x=u[y]|u[y-1]<<8|u[y-2]<<16,this.words[w]|=x<>>26-T&67108863,T+=24,T>=26&&(T-=26,w++);else if(p==="le")for(y=0,w=0;y>>26-T&67108863,T+=24,T>=26&&(T-=26,w++);return this._strip()};function a(v,u){var h=v.charCodeAt(u);if(h>=48&&h<=57)return h-48;if(h>=65&&h<=70)return h-55;if(h>=97&&h<=102)return h-87;n(!1,"Invalid character in "+v)}function c(v,u,h){var p=a(v,h);return h-1>=u&&(p|=a(v,h-1)<<4),p}s.prototype._parseHex=function(u,h,p){this.length=Math.ceil((u.length-h)/6),this.words=new Array(this.length);for(var y=0;y=h;y-=2)T=c(u,h,y)<=18?(w-=18,x+=1,this.words[x]|=T>>>26):w+=8;else{var m=u.length-h;for(y=m%2===0?h+1:h;y=18?(w-=18,x+=1,this.words[x]|=T>>>26):w+=8}this._strip()};function l(v,u,h,p){for(var y=0,w=0,x=Math.min(v.length,h),T=u;T=49?w=m-49+10:m>=17?w=m-17+10:w=m,n(m>=0&&w1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},s.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=g}catch{s.prototype.inspect=g}else s.prototype.inspect=g;function g(){return(this.red?""}var b=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],C=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],A=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];s.prototype.toString=function(u,h){u=u||10,h=h|0||1;var p;if(u===16||u==="hex"){p="";for(var y=0,w=0,x=0;x>>24-y&16777215,y+=2,y>=26&&(y-=26,x--),w!==0||x!==this.length-1?p=b[6-m.length]+m+p:p=m+p}for(w!==0&&(p=w.toString(16)+p);p.length%h!==0;)p="0"+p;return this.negative!==0&&(p="-"+p),p}if(u===(u|0)&&u>=2&&u<=36){var f=C[u],E=A[u];p="";var U=this.clone();for(U.negative=0;!U.isZero();){var q=U.modrn(E).toString(u);U=U.idivn(E),U.isZero()?p=q+p:p=b[f-q.length]+q+p}for(this.isZero()&&(p="0"+p);p.length%h!==0;)p="0"+p;return this.negative!==0&&(p="-"+p),p}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var u=this.words[0];return this.length===2?u+=this.words[1]*67108864:this.length===3&&this.words[2]===1?u+=4503599627370496+this.words[1]*67108864:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-u:u},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(u,h){return this.toArrayLike(o,u,h)}),s.prototype.toArray=function(u,h){return this.toArrayLike(Array,u,h)};var P=function(u,h){return u.allocUnsafe?u.allocUnsafe(h):new u(h)};s.prototype.toArrayLike=function(u,h,p){this._strip();var y=this.byteLength(),w=p||Math.max(1,y);n(y<=w,"byte array longer than desired length"),n(w>0,"Requested array length <= 0");var x=P(u,w),T=h==="le"?"LE":"BE";return this["_toArrayLike"+T](x,y),x},s.prototype._toArrayLikeLE=function(u,h){for(var p=0,y=0,w=0,x=0;w>8&255),p>16&255),x===6?(p>24&255),y=0,x=0):(y=T>>>24,x+=2)}if(p=0&&(u[p--]=T>>8&255),p>=0&&(u[p--]=T>>16&255),x===6?(p>=0&&(u[p--]=T>>24&255),y=0,x=0):(y=T>>>24,x+=2)}if(p>=0)for(u[p--]=y;p>=0;)u[p--]=0},Math.clz32?s.prototype._countBits=function(u){return 32-Math.clz32(u)}:s.prototype._countBits=function(u){var h=u,p=0;return h>=4096&&(p+=13,h>>>=13),h>=64&&(p+=7,h>>>=7),h>=8&&(p+=4,h>>>=4),h>=2&&(p+=2,h>>>=2),p+h},s.prototype._zeroBits=function(u){if(u===0)return 26;var h=u,p=0;return h&8191||(p+=13,h>>>=13),h&127||(p+=7,h>>>=7),h&15||(p+=4,h>>>=4),h&3||(p+=2,h>>>=2),h&1||p++,p},s.prototype.bitLength=function(){var u=this.words[this.length-1],h=this._countBits(u);return(this.length-1)*26+h};function N(v){for(var u=new Array(v.bitLength()),h=0;h>>y&1}return u}s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var u=0,h=0;hu.length?this.clone().ior(u):u.clone().ior(this)},s.prototype.uor=function(u){return this.length>u.length?this.clone().iuor(u):u.clone().iuor(this)},s.prototype.iuand=function(u){var h;this.length>u.length?h=u:h=this;for(var p=0;pu.length?this.clone().iand(u):u.clone().iand(this)},s.prototype.uand=function(u){return this.length>u.length?this.clone().iuand(u):u.clone().iuand(this)},s.prototype.iuxor=function(u){var h,p;this.length>u.length?(h=this,p=u):(h=u,p=this);for(var y=0;yu.length?this.clone().ixor(u):u.clone().ixor(this)},s.prototype.uxor=function(u){return this.length>u.length?this.clone().iuxor(u):u.clone().iuxor(this)},s.prototype.inotn=function(u){n(typeof u=="number"&&u>=0);var h=Math.ceil(u/26)|0,p=u%26;this._expand(h),p>0&&h--;for(var y=0;y0&&(this.words[y]=~this.words[y]&67108863>>26-p),this._strip()},s.prototype.notn=function(u){return this.clone().inotn(u)},s.prototype.setn=function(u,h){n(typeof u=="number"&&u>=0);var p=u/26|0,y=u%26;return this._expand(p+1),h?this.words[p]=this.words[p]|1<u.length?(p=this,y=u):(p=u,y=this);for(var w=0,x=0;x>>26;for(;w!==0&&x>>26;if(this.length=p.length,w!==0)this.words[this.length]=w,this.length++;else if(p!==this)for(;xu.length?this.clone().iadd(u):u.clone().iadd(this)},s.prototype.isub=function(u){if(u.negative!==0){u.negative=0;var h=this.iadd(u);return u.negative=1,h._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(u),this.negative=1,this._normSign();var p=this.cmp(u);if(p===0)return this.negative=0,this.length=1,this.words[0]=0,this;var y,w;p>0?(y=this,w=u):(y=u,w=this);for(var x=0,T=0;T>26,this.words[T]=h&67108863;for(;x!==0&&T>26,this.words[T]=h&67108863;if(x===0&&T>>26,U=m&67108863,q=Math.min(f,u.length-1),I=Math.max(0,f-v.length+1);I<=q;I++){var k=f-I|0;y=v.words[k]|0,w=u.words[I]|0,x=y*w+U,E+=x/67108864|0,U=x&67108863}h.words[f]=U|0,m=E|0}return m!==0?h.words[f]=m|0:h.length--,h._strip()}var R=function(u,h,p){var y=u.words,w=h.words,x=p.words,T=0,m,f,E,U=y[0]|0,q=U&8191,I=U>>>13,k=y[1]|0,D=k&8191,V=k>>>13,se=y[2]|0,_=se&8191,S=se>>>13,F=y[3]|0,H=F&8191,re=F>>>13,ie=y[4]|0,ee=ie&8191,de=ie>>>13,Qt=y[5]|0,we=Qt&8191,Se=Qt>>>13,mr=y[6]|0,ve=mr&8191,ye=mr>>>13,lr=y[7]|0,be=lr&8191,pe=lr>>>13,xt=y[8]|0,Ee=xt&8191,Me=xt>>>13,Mn=y[9]|0,xe=Mn&8191,Ce=Mn>>>13,xn=w[0]|0,Re=xn&8191,Ie=xn>>>13,Cn=w[1]|0,Ae=Cn&8191,Te=Cn>>>13,Rn=w[2]|0,ke=Rn&8191,Oe=Rn>>>13,In=w[3]|0,Ne=In&8191,Le=In>>>13,An=w[4]|0,Pe=An&8191,$e=An>>>13,Tn=w[5]|0,De=Tn&8191,Be=Tn>>>13,kn=w[6]|0,je=kn&8191,Fe=kn>>>13,On=w[7]|0,We=On&8191,He=On>>>13,Nn=w[8]|0,Ve=Nn&8191,Ue=Nn>>>13,Ln=w[9]|0,ze=Ln&8191,qe=Ln>>>13;p.negative=u.negative^h.negative,p.length=19,m=Math.imul(q,Re),f=Math.imul(q,Ie),f=f+Math.imul(I,Re)|0,E=Math.imul(I,Ie);var $r=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+($r>>>26)|0,$r&=67108863,m=Math.imul(D,Re),f=Math.imul(D,Ie),f=f+Math.imul(V,Re)|0,E=Math.imul(V,Ie),m=m+Math.imul(q,Ae)|0,f=f+Math.imul(q,Te)|0,f=f+Math.imul(I,Ae)|0,E=E+Math.imul(I,Te)|0;var Dr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Dr>>>26)|0,Dr&=67108863,m=Math.imul(_,Re),f=Math.imul(_,Ie),f=f+Math.imul(S,Re)|0,E=Math.imul(S,Ie),m=m+Math.imul(D,Ae)|0,f=f+Math.imul(D,Te)|0,f=f+Math.imul(V,Ae)|0,E=E+Math.imul(V,Te)|0,m=m+Math.imul(q,ke)|0,f=f+Math.imul(q,Oe)|0,f=f+Math.imul(I,ke)|0,E=E+Math.imul(I,Oe)|0;var Br=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Br>>>26)|0,Br&=67108863,m=Math.imul(H,Re),f=Math.imul(H,Ie),f=f+Math.imul(re,Re)|0,E=Math.imul(re,Ie),m=m+Math.imul(_,Ae)|0,f=f+Math.imul(_,Te)|0,f=f+Math.imul(S,Ae)|0,E=E+Math.imul(S,Te)|0,m=m+Math.imul(D,ke)|0,f=f+Math.imul(D,Oe)|0,f=f+Math.imul(V,ke)|0,E=E+Math.imul(V,Oe)|0,m=m+Math.imul(q,Ne)|0,f=f+Math.imul(q,Le)|0,f=f+Math.imul(I,Ne)|0,E=E+Math.imul(I,Le)|0;var jr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(jr>>>26)|0,jr&=67108863,m=Math.imul(ee,Re),f=Math.imul(ee,Ie),f=f+Math.imul(de,Re)|0,E=Math.imul(de,Ie),m=m+Math.imul(H,Ae)|0,f=f+Math.imul(H,Te)|0,f=f+Math.imul(re,Ae)|0,E=E+Math.imul(re,Te)|0,m=m+Math.imul(_,ke)|0,f=f+Math.imul(_,Oe)|0,f=f+Math.imul(S,ke)|0,E=E+Math.imul(S,Oe)|0,m=m+Math.imul(D,Ne)|0,f=f+Math.imul(D,Le)|0,f=f+Math.imul(V,Ne)|0,E=E+Math.imul(V,Le)|0,m=m+Math.imul(q,Pe)|0,f=f+Math.imul(q,$e)|0,f=f+Math.imul(I,Pe)|0,E=E+Math.imul(I,$e)|0;var Fr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Fr>>>26)|0,Fr&=67108863,m=Math.imul(we,Re),f=Math.imul(we,Ie),f=f+Math.imul(Se,Re)|0,E=Math.imul(Se,Ie),m=m+Math.imul(ee,Ae)|0,f=f+Math.imul(ee,Te)|0,f=f+Math.imul(de,Ae)|0,E=E+Math.imul(de,Te)|0,m=m+Math.imul(H,ke)|0,f=f+Math.imul(H,Oe)|0,f=f+Math.imul(re,ke)|0,E=E+Math.imul(re,Oe)|0,m=m+Math.imul(_,Ne)|0,f=f+Math.imul(_,Le)|0,f=f+Math.imul(S,Ne)|0,E=E+Math.imul(S,Le)|0,m=m+Math.imul(D,Pe)|0,f=f+Math.imul(D,$e)|0,f=f+Math.imul(V,Pe)|0,E=E+Math.imul(V,$e)|0,m=m+Math.imul(q,De)|0,f=f+Math.imul(q,Be)|0,f=f+Math.imul(I,De)|0,E=E+Math.imul(I,Be)|0;var Wr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,m=Math.imul(ve,Re),f=Math.imul(ve,Ie),f=f+Math.imul(ye,Re)|0,E=Math.imul(ye,Ie),m=m+Math.imul(we,Ae)|0,f=f+Math.imul(we,Te)|0,f=f+Math.imul(Se,Ae)|0,E=E+Math.imul(Se,Te)|0,m=m+Math.imul(ee,ke)|0,f=f+Math.imul(ee,Oe)|0,f=f+Math.imul(de,ke)|0,E=E+Math.imul(de,Oe)|0,m=m+Math.imul(H,Ne)|0,f=f+Math.imul(H,Le)|0,f=f+Math.imul(re,Ne)|0,E=E+Math.imul(re,Le)|0,m=m+Math.imul(_,Pe)|0,f=f+Math.imul(_,$e)|0,f=f+Math.imul(S,Pe)|0,E=E+Math.imul(S,$e)|0,m=m+Math.imul(D,De)|0,f=f+Math.imul(D,Be)|0,f=f+Math.imul(V,De)|0,E=E+Math.imul(V,Be)|0,m=m+Math.imul(q,je)|0,f=f+Math.imul(q,Fe)|0,f=f+Math.imul(I,je)|0,E=E+Math.imul(I,Fe)|0;var Hr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Hr>>>26)|0,Hr&=67108863,m=Math.imul(be,Re),f=Math.imul(be,Ie),f=f+Math.imul(pe,Re)|0,E=Math.imul(pe,Ie),m=m+Math.imul(ve,Ae)|0,f=f+Math.imul(ve,Te)|0,f=f+Math.imul(ye,Ae)|0,E=E+Math.imul(ye,Te)|0,m=m+Math.imul(we,ke)|0,f=f+Math.imul(we,Oe)|0,f=f+Math.imul(Se,ke)|0,E=E+Math.imul(Se,Oe)|0,m=m+Math.imul(ee,Ne)|0,f=f+Math.imul(ee,Le)|0,f=f+Math.imul(de,Ne)|0,E=E+Math.imul(de,Le)|0,m=m+Math.imul(H,Pe)|0,f=f+Math.imul(H,$e)|0,f=f+Math.imul(re,Pe)|0,E=E+Math.imul(re,$e)|0,m=m+Math.imul(_,De)|0,f=f+Math.imul(_,Be)|0,f=f+Math.imul(S,De)|0,E=E+Math.imul(S,Be)|0,m=m+Math.imul(D,je)|0,f=f+Math.imul(D,Fe)|0,f=f+Math.imul(V,je)|0,E=E+Math.imul(V,Fe)|0,m=m+Math.imul(q,We)|0,f=f+Math.imul(q,He)|0,f=f+Math.imul(I,We)|0,E=E+Math.imul(I,He)|0;var Vr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Vr>>>26)|0,Vr&=67108863,m=Math.imul(Ee,Re),f=Math.imul(Ee,Ie),f=f+Math.imul(Me,Re)|0,E=Math.imul(Me,Ie),m=m+Math.imul(be,Ae)|0,f=f+Math.imul(be,Te)|0,f=f+Math.imul(pe,Ae)|0,E=E+Math.imul(pe,Te)|0,m=m+Math.imul(ve,ke)|0,f=f+Math.imul(ve,Oe)|0,f=f+Math.imul(ye,ke)|0,E=E+Math.imul(ye,Oe)|0,m=m+Math.imul(we,Ne)|0,f=f+Math.imul(we,Le)|0,f=f+Math.imul(Se,Ne)|0,E=E+Math.imul(Se,Le)|0,m=m+Math.imul(ee,Pe)|0,f=f+Math.imul(ee,$e)|0,f=f+Math.imul(de,Pe)|0,E=E+Math.imul(de,$e)|0,m=m+Math.imul(H,De)|0,f=f+Math.imul(H,Be)|0,f=f+Math.imul(re,De)|0,E=E+Math.imul(re,Be)|0,m=m+Math.imul(_,je)|0,f=f+Math.imul(_,Fe)|0,f=f+Math.imul(S,je)|0,E=E+Math.imul(S,Fe)|0,m=m+Math.imul(D,We)|0,f=f+Math.imul(D,He)|0,f=f+Math.imul(V,We)|0,E=E+Math.imul(V,He)|0,m=m+Math.imul(q,Ve)|0,f=f+Math.imul(q,Ue)|0,f=f+Math.imul(I,Ve)|0,E=E+Math.imul(I,Ue)|0;var Ur=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Ur>>>26)|0,Ur&=67108863,m=Math.imul(xe,Re),f=Math.imul(xe,Ie),f=f+Math.imul(Ce,Re)|0,E=Math.imul(Ce,Ie),m=m+Math.imul(Ee,Ae)|0,f=f+Math.imul(Ee,Te)|0,f=f+Math.imul(Me,Ae)|0,E=E+Math.imul(Me,Te)|0,m=m+Math.imul(be,ke)|0,f=f+Math.imul(be,Oe)|0,f=f+Math.imul(pe,ke)|0,E=E+Math.imul(pe,Oe)|0,m=m+Math.imul(ve,Ne)|0,f=f+Math.imul(ve,Le)|0,f=f+Math.imul(ye,Ne)|0,E=E+Math.imul(ye,Le)|0,m=m+Math.imul(we,Pe)|0,f=f+Math.imul(we,$e)|0,f=f+Math.imul(Se,Pe)|0,E=E+Math.imul(Se,$e)|0,m=m+Math.imul(ee,De)|0,f=f+Math.imul(ee,Be)|0,f=f+Math.imul(de,De)|0,E=E+Math.imul(de,Be)|0,m=m+Math.imul(H,je)|0,f=f+Math.imul(H,Fe)|0,f=f+Math.imul(re,je)|0,E=E+Math.imul(re,Fe)|0,m=m+Math.imul(_,We)|0,f=f+Math.imul(_,He)|0,f=f+Math.imul(S,We)|0,E=E+Math.imul(S,He)|0,m=m+Math.imul(D,Ve)|0,f=f+Math.imul(D,Ue)|0,f=f+Math.imul(V,Ve)|0,E=E+Math.imul(V,Ue)|0,m=m+Math.imul(q,ze)|0,f=f+Math.imul(q,qe)|0,f=f+Math.imul(I,ze)|0,E=E+Math.imul(I,qe)|0;var zr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(zr>>>26)|0,zr&=67108863,m=Math.imul(xe,Ae),f=Math.imul(xe,Te),f=f+Math.imul(Ce,Ae)|0,E=Math.imul(Ce,Te),m=m+Math.imul(Ee,ke)|0,f=f+Math.imul(Ee,Oe)|0,f=f+Math.imul(Me,ke)|0,E=E+Math.imul(Me,Oe)|0,m=m+Math.imul(be,Ne)|0,f=f+Math.imul(be,Le)|0,f=f+Math.imul(pe,Ne)|0,E=E+Math.imul(pe,Le)|0,m=m+Math.imul(ve,Pe)|0,f=f+Math.imul(ve,$e)|0,f=f+Math.imul(ye,Pe)|0,E=E+Math.imul(ye,$e)|0,m=m+Math.imul(we,De)|0,f=f+Math.imul(we,Be)|0,f=f+Math.imul(Se,De)|0,E=E+Math.imul(Se,Be)|0,m=m+Math.imul(ee,je)|0,f=f+Math.imul(ee,Fe)|0,f=f+Math.imul(de,je)|0,E=E+Math.imul(de,Fe)|0,m=m+Math.imul(H,We)|0,f=f+Math.imul(H,He)|0,f=f+Math.imul(re,We)|0,E=E+Math.imul(re,He)|0,m=m+Math.imul(_,Ve)|0,f=f+Math.imul(_,Ue)|0,f=f+Math.imul(S,Ve)|0,E=E+Math.imul(S,Ue)|0,m=m+Math.imul(D,ze)|0,f=f+Math.imul(D,qe)|0,f=f+Math.imul(V,ze)|0,E=E+Math.imul(V,qe)|0;var qr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(qr>>>26)|0,qr&=67108863,m=Math.imul(xe,ke),f=Math.imul(xe,Oe),f=f+Math.imul(Ce,ke)|0,E=Math.imul(Ce,Oe),m=m+Math.imul(Ee,Ne)|0,f=f+Math.imul(Ee,Le)|0,f=f+Math.imul(Me,Ne)|0,E=E+Math.imul(Me,Le)|0,m=m+Math.imul(be,Pe)|0,f=f+Math.imul(be,$e)|0,f=f+Math.imul(pe,Pe)|0,E=E+Math.imul(pe,$e)|0,m=m+Math.imul(ve,De)|0,f=f+Math.imul(ve,Be)|0,f=f+Math.imul(ye,De)|0,E=E+Math.imul(ye,Be)|0,m=m+Math.imul(we,je)|0,f=f+Math.imul(we,Fe)|0,f=f+Math.imul(Se,je)|0,E=E+Math.imul(Se,Fe)|0,m=m+Math.imul(ee,We)|0,f=f+Math.imul(ee,He)|0,f=f+Math.imul(de,We)|0,E=E+Math.imul(de,He)|0,m=m+Math.imul(H,Ve)|0,f=f+Math.imul(H,Ue)|0,f=f+Math.imul(re,Ve)|0,E=E+Math.imul(re,Ue)|0,m=m+Math.imul(_,ze)|0,f=f+Math.imul(_,qe)|0,f=f+Math.imul(S,ze)|0,E=E+Math.imul(S,qe)|0;var Gr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Gr>>>26)|0,Gr&=67108863,m=Math.imul(xe,Ne),f=Math.imul(xe,Le),f=f+Math.imul(Ce,Ne)|0,E=Math.imul(Ce,Le),m=m+Math.imul(Ee,Pe)|0,f=f+Math.imul(Ee,$e)|0,f=f+Math.imul(Me,Pe)|0,E=E+Math.imul(Me,$e)|0,m=m+Math.imul(be,De)|0,f=f+Math.imul(be,Be)|0,f=f+Math.imul(pe,De)|0,E=E+Math.imul(pe,Be)|0,m=m+Math.imul(ve,je)|0,f=f+Math.imul(ve,Fe)|0,f=f+Math.imul(ye,je)|0,E=E+Math.imul(ye,Fe)|0,m=m+Math.imul(we,We)|0,f=f+Math.imul(we,He)|0,f=f+Math.imul(Se,We)|0,E=E+Math.imul(Se,He)|0,m=m+Math.imul(ee,Ve)|0,f=f+Math.imul(ee,Ue)|0,f=f+Math.imul(de,Ve)|0,E=E+Math.imul(de,Ue)|0,m=m+Math.imul(H,ze)|0,f=f+Math.imul(H,qe)|0,f=f+Math.imul(re,ze)|0,E=E+Math.imul(re,qe)|0;var Jr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Jr>>>26)|0,Jr&=67108863,m=Math.imul(xe,Pe),f=Math.imul(xe,$e),f=f+Math.imul(Ce,Pe)|0,E=Math.imul(Ce,$e),m=m+Math.imul(Ee,De)|0,f=f+Math.imul(Ee,Be)|0,f=f+Math.imul(Me,De)|0,E=E+Math.imul(Me,Be)|0,m=m+Math.imul(be,je)|0,f=f+Math.imul(be,Fe)|0,f=f+Math.imul(pe,je)|0,E=E+Math.imul(pe,Fe)|0,m=m+Math.imul(ve,We)|0,f=f+Math.imul(ve,He)|0,f=f+Math.imul(ye,We)|0,E=E+Math.imul(ye,He)|0,m=m+Math.imul(we,Ve)|0,f=f+Math.imul(we,Ue)|0,f=f+Math.imul(Se,Ve)|0,E=E+Math.imul(Se,Ue)|0,m=m+Math.imul(ee,ze)|0,f=f+Math.imul(ee,qe)|0,f=f+Math.imul(de,ze)|0,E=E+Math.imul(de,qe)|0;var Zr=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(Zr>>>26)|0,Zr&=67108863,m=Math.imul(xe,De),f=Math.imul(xe,Be),f=f+Math.imul(Ce,De)|0,E=Math.imul(Ce,Be),m=m+Math.imul(Ee,je)|0,f=f+Math.imul(Ee,Fe)|0,f=f+Math.imul(Me,je)|0,E=E+Math.imul(Me,Fe)|0,m=m+Math.imul(be,We)|0,f=f+Math.imul(be,He)|0,f=f+Math.imul(pe,We)|0,E=E+Math.imul(pe,He)|0,m=m+Math.imul(ve,Ve)|0,f=f+Math.imul(ve,Ue)|0,f=f+Math.imul(ye,Ve)|0,E=E+Math.imul(ye,Ue)|0,m=m+Math.imul(we,ze)|0,f=f+Math.imul(we,qe)|0,f=f+Math.imul(Se,ze)|0,E=E+Math.imul(Se,qe)|0;var ia=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(ia>>>26)|0,ia&=67108863,m=Math.imul(xe,je),f=Math.imul(xe,Fe),f=f+Math.imul(Ce,je)|0,E=Math.imul(Ce,Fe),m=m+Math.imul(Ee,We)|0,f=f+Math.imul(Ee,He)|0,f=f+Math.imul(Me,We)|0,E=E+Math.imul(Me,He)|0,m=m+Math.imul(be,Ve)|0,f=f+Math.imul(be,Ue)|0,f=f+Math.imul(pe,Ve)|0,E=E+Math.imul(pe,Ue)|0,m=m+Math.imul(ve,ze)|0,f=f+Math.imul(ve,qe)|0,f=f+Math.imul(ye,ze)|0,E=E+Math.imul(ye,qe)|0;var sa=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(sa>>>26)|0,sa&=67108863,m=Math.imul(xe,We),f=Math.imul(xe,He),f=f+Math.imul(Ce,We)|0,E=Math.imul(Ce,He),m=m+Math.imul(Ee,Ve)|0,f=f+Math.imul(Ee,Ue)|0,f=f+Math.imul(Me,Ve)|0,E=E+Math.imul(Me,Ue)|0,m=m+Math.imul(be,ze)|0,f=f+Math.imul(be,qe)|0,f=f+Math.imul(pe,ze)|0,E=E+Math.imul(pe,qe)|0;var oa=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(oa>>>26)|0,oa&=67108863,m=Math.imul(xe,Ve),f=Math.imul(xe,Ue),f=f+Math.imul(Ce,Ve)|0,E=Math.imul(Ce,Ue),m=m+Math.imul(Ee,ze)|0,f=f+Math.imul(Ee,qe)|0,f=f+Math.imul(Me,ze)|0,E=E+Math.imul(Me,qe)|0;var aa=(T+m|0)+((f&8191)<<13)|0;T=(E+(f>>>13)|0)+(aa>>>26)|0,aa&=67108863,m=Math.imul(xe,ze),f=Math.imul(xe,qe),f=f+Math.imul(Ce,ze)|0,E=Math.imul(Ce,qe);var ua=(T+m|0)+((f&8191)<<13)|0;return T=(E+(f>>>13)|0)+(ua>>>26)|0,ua&=67108863,x[0]=$r,x[1]=Dr,x[2]=Br,x[3]=jr,x[4]=Fr,x[5]=Wr,x[6]=Hr,x[7]=Vr,x[8]=Ur,x[9]=zr,x[10]=qr,x[11]=Gr,x[12]=Jr,x[13]=Zr,x[14]=ia,x[15]=sa,x[16]=oa,x[17]=aa,x[18]=ua,T!==0&&(x[19]=T,p.length++),p};Math.imul||(R=M);function O(v,u,h){h.negative=u.negative^v.negative,h.length=v.length+u.length;for(var p=0,y=0,w=0;w>>26)|0,y+=x>>>26,x&=67108863}h.words[w]=T,p=x,x=y}return p!==0?h.words[w]=p:h.length--,h._strip()}function $(v,u,h){return O(v,u,h)}s.prototype.mulTo=function(u,h){var p,y=this.length+u.length;return this.length===10&&u.length===10?p=R(this,u,h):y<63?p=M(this,u,h):y<1024?p=O(this,u,h):p=$(this,u,h),p},s.prototype.mul=function(u){var h=new s(null);return h.words=new Array(this.length+u.length),this.mulTo(u,h)},s.prototype.mulf=function(u){var h=new s(null);return h.words=new Array(this.length+u.length),$(this,u,h)},s.prototype.imul=function(u){return this.clone().mulTo(u,this)},s.prototype.imuln=function(u){var h=u<0;h&&(u=-u),n(typeof u=="number"),n(u<67108864);for(var p=0,y=0;y>=26,p+=w/67108864|0,p+=x>>>26,this.words[y]=x&67108863}return p!==0&&(this.words[y]=p,this.length++),h?this.ineg():this},s.prototype.muln=function(u){return this.clone().imuln(u)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(u){var h=N(u);if(h.length===0)return new s(1);for(var p=this,y=0;y=0);var h=u%26,p=(u-h)/26,y=67108863>>>26-h<<26-h,w;if(h!==0){var x=0;for(w=0;w>>26-h}x&&(this.words[w]=x,this.length++)}if(p!==0){for(w=this.length-1;w>=0;w--)this.words[w+p]=this.words[w];for(w=0;w=0);var y;h?y=(h-h%26)/26:y=0;var w=u%26,x=Math.min((u-w)/26,this.length),T=67108863^67108863>>>w<x)for(this.length-=x,f=0;f=0&&(E!==0||f>=y);f--){var U=this.words[f]|0;this.words[f]=E<<26-w|U>>>w,E=U&T}return m&&E!==0&&(m.words[m.length++]=E),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(u,h,p){return n(this.negative===0),this.iushrn(u,h,p)},s.prototype.shln=function(u){return this.clone().ishln(u)},s.prototype.ushln=function(u){return this.clone().iushln(u)},s.prototype.shrn=function(u){return this.clone().ishrn(u)},s.prototype.ushrn=function(u){return this.clone().iushrn(u)},s.prototype.testn=function(u){n(typeof u=="number"&&u>=0);var h=u%26,p=(u-h)/26,y=1<=0);var h=u%26,p=(u-h)/26;if(n(this.negative===0,"imaskn works only with positive numbers"),this.length<=p)return this;if(h!==0&&p++,this.length=Math.min(p,this.length),h!==0){var y=67108863^67108863>>>h<=67108864;h++)this.words[h]-=67108864,h===this.length-1?this.words[h+1]=1:this.words[h+1]++;return this.length=Math.max(this.length,h+1),this},s.prototype.isubn=function(u){if(n(typeof u=="number"),n(u<67108864),u<0)return this.iaddn(-u);if(this.negative!==0)return this.negative=0,this.iaddn(u),this.negative=1,this;if(this.words[0]-=u,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var h=0;h>26)-(m/67108864|0),this.words[w+p]=x&67108863}for(;w>26,this.words[w+p]=x&67108863;if(T===0)return this._strip();for(n(T===-1),T=0,w=0;w>26,this.words[w]=x&67108863;return this.negative=1,this._strip()},s.prototype._wordDiv=function(u,h){var p=this.length-u.length,y=this.clone(),w=u,x=w.words[w.length-1]|0,T=this._countBits(x);p=26-T,p!==0&&(w=w.ushln(p),y.iushln(p),x=w.words[w.length-1]|0);var m=y.length-w.length,f;if(h!=="mod"){f=new s(null),f.length=m+1,f.words=new Array(f.length);for(var E=0;E=0;q--){var I=(y.words[w.length+q]|0)*67108864+(y.words[w.length+q-1]|0);for(I=Math.min(I/x|0,67108863),y._ishlnsubmul(w,I,q);y.negative!==0;)I--,y.negative=0,y._ishlnsubmul(w,1,q),y.isZero()||(y.negative^=1);f&&(f.words[q]=I)}return f&&f._strip(),y._strip(),h!=="div"&&p!==0&&y.iushrn(p),{div:f||null,mod:y}},s.prototype.divmod=function(u,h,p){if(n(!u.isZero()),this.isZero())return{div:new s(0),mod:new s(0)};var y,w,x;return this.negative!==0&&u.negative===0?(x=this.neg().divmod(u,h),h!=="mod"&&(y=x.div.neg()),h!=="div"&&(w=x.mod.neg(),p&&w.negative!==0&&w.iadd(u)),{div:y,mod:w}):this.negative===0&&u.negative!==0?(x=this.divmod(u.neg(),h),h!=="mod"&&(y=x.div.neg()),{div:y,mod:x.mod}):this.negative&u.negative?(x=this.neg().divmod(u.neg(),h),h!=="div"&&(w=x.mod.neg(),p&&w.negative!==0&&w.isub(u)),{div:x.div,mod:w}):u.length>this.length||this.cmp(u)<0?{div:new s(0),mod:this}:u.length===1?h==="div"?{div:this.divn(u.words[0]),mod:null}:h==="mod"?{div:null,mod:new s(this.modrn(u.words[0]))}:{div:this.divn(u.words[0]),mod:new s(this.modrn(u.words[0]))}:this._wordDiv(u,h)},s.prototype.div=function(u){return this.divmod(u,"div",!1).div},s.prototype.mod=function(u){return this.divmod(u,"mod",!1).mod},s.prototype.umod=function(u){return this.divmod(u,"mod",!0).mod},s.prototype.divRound=function(u){var h=this.divmod(u);if(h.mod.isZero())return h.div;var p=h.div.negative!==0?h.mod.isub(u):h.mod,y=u.ushrn(1),w=u.andln(1),x=p.cmp(y);return x<0||w===1&&x===0?h.div:h.div.negative!==0?h.div.isubn(1):h.div.iaddn(1)},s.prototype.modrn=function(u){var h=u<0;h&&(u=-u),n(u<=67108863);for(var p=(1<<26)%u,y=0,w=this.length-1;w>=0;w--)y=(p*y+(this.words[w]|0))%u;return h?-y:y},s.prototype.modn=function(u){return this.modrn(u)},s.prototype.idivn=function(u){var h=u<0;h&&(u=-u),n(u<=67108863);for(var p=0,y=this.length-1;y>=0;y--){var w=(this.words[y]|0)+p*67108864;this.words[y]=w/u|0,p=w%u}return this._strip(),h?this.ineg():this},s.prototype.divn=function(u){return this.clone().idivn(u)},s.prototype.egcd=function(u){n(u.negative===0),n(!u.isZero());var h=this,p=u.clone();h.negative!==0?h=h.umod(u):h=h.clone();for(var y=new s(1),w=new s(0),x=new s(0),T=new s(1),m=0;h.isEven()&&p.isEven();)h.iushrn(1),p.iushrn(1),++m;for(var f=p.clone(),E=h.clone();!h.isZero();){for(var U=0,q=1;!(h.words[0]&q)&&U<26;++U,q<<=1);if(U>0)for(h.iushrn(U);U-- >0;)(y.isOdd()||w.isOdd())&&(y.iadd(f),w.isub(E)),y.iushrn(1),w.iushrn(1);for(var I=0,k=1;!(p.words[0]&k)&&I<26;++I,k<<=1);if(I>0)for(p.iushrn(I);I-- >0;)(x.isOdd()||T.isOdd())&&(x.iadd(f),T.isub(E)),x.iushrn(1),T.iushrn(1);h.cmp(p)>=0?(h.isub(p),y.isub(x),w.isub(T)):(p.isub(h),x.isub(y),T.isub(w))}return{a:x,b:T,gcd:p.iushln(m)}},s.prototype._invmp=function(u){n(u.negative===0),n(!u.isZero());var h=this,p=u.clone();h.negative!==0?h=h.umod(u):h=h.clone();for(var y=new s(1),w=new s(0),x=p.clone();h.cmpn(1)>0&&p.cmpn(1)>0;){for(var T=0,m=1;!(h.words[0]&m)&&T<26;++T,m<<=1);if(T>0)for(h.iushrn(T);T-- >0;)y.isOdd()&&y.iadd(x),y.iushrn(1);for(var f=0,E=1;!(p.words[0]&E)&&f<26;++f,E<<=1);if(f>0)for(p.iushrn(f);f-- >0;)w.isOdd()&&w.iadd(x),w.iushrn(1);h.cmp(p)>=0?(h.isub(p),y.isub(w)):(p.isub(h),w.isub(y))}var U;return h.cmpn(1)===0?U=y:U=w,U.cmpn(0)<0&&U.iadd(u),U},s.prototype.gcd=function(u){if(this.isZero())return u.abs();if(u.isZero())return this.abs();var h=this.clone(),p=u.clone();h.negative=0,p.negative=0;for(var y=0;h.isEven()&&p.isEven();y++)h.iushrn(1),p.iushrn(1);do{for(;h.isEven();)h.iushrn(1);for(;p.isEven();)p.iushrn(1);var w=h.cmp(p);if(w<0){var x=h;h=p,p=x}else if(w===0||p.cmpn(1)===0)break;h.isub(p)}while(!0);return p.iushln(y)},s.prototype.invm=function(u){return this.egcd(u).a.umod(u)},s.prototype.isEven=function(){return(this.words[0]&1)===0},s.prototype.isOdd=function(){return(this.words[0]&1)===1},s.prototype.andln=function(u){return this.words[0]&u},s.prototype.bincn=function(u){n(typeof u=="number");var h=u%26,p=(u-h)/26,y=1<>>26,T&=67108863,this.words[x]=T}return w!==0&&(this.words[x]=w,this.length++),this},s.prototype.isZero=function(){return this.length===1&&this.words[0]===0},s.prototype.cmpn=function(u){var h=u<0;if(this.negative!==0&&!h)return-1;if(this.negative===0&&h)return 1;this._strip();var p;if(this.length>1)p=1;else{h&&(u=-u),n(u<=67108863,"Number is too big");var y=this.words[0]|0;p=y===u?0:yu.length)return 1;if(this.length=0;p--){var y=this.words[p]|0,w=u.words[p]|0;if(y!==w){yw&&(h=1);break}}return h},s.prototype.gtn=function(u){return this.cmpn(u)===1},s.prototype.gt=function(u){return this.cmp(u)===1},s.prototype.gten=function(u){return this.cmpn(u)>=0},s.prototype.gte=function(u){return this.cmp(u)>=0},s.prototype.ltn=function(u){return this.cmpn(u)===-1},s.prototype.lt=function(u){return this.cmp(u)===-1},s.prototype.lten=function(u){return this.cmpn(u)<=0},s.prototype.lte=function(u){return this.cmp(u)<=0},s.prototype.eqn=function(u){return this.cmpn(u)===0},s.prototype.eq=function(u){return this.cmp(u)===0},s.red=function(u){return new Y(u)},s.prototype.toRed=function(u){return n(!this.red,"Already a number in reduction context"),n(this.negative===0,"red works only with positives"),u.convertTo(this)._forceRed(u)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(u){return this.red=u,this},s.prototype.forceRed=function(u){return n(!this.red,"Already a number in reduction context"),this._forceRed(u)},s.prototype.redAdd=function(u){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,u)},s.prototype.redIAdd=function(u){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,u)},s.prototype.redSub=function(u){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,u)},s.prototype.redISub=function(u){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,u)},s.prototype.redShl=function(u){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,u)},s.prototype.redMul=function(u){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.mul(this,u)},s.prototype.redIMul=function(u){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,u),this.red.imul(this,u)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(u){return n(this.red&&!u.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,u)};var L={k256:null,p224:null,p192:null,p25519:null};function B(v,u){this.name=v,this.p=new s(u,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}B.prototype._tmp=function(){var u=new s(null);return u.words=new Array(Math.ceil(this.n/13)),u},B.prototype.ireduce=function(u){var h=u,p;do this.split(h,this.tmp),h=this.imulK(h),h=h.iadd(this.tmp),p=h.bitLength();while(p>this.n);var y=p0?h.isub(this.p):h.strip!==void 0?h.strip():h._strip(),h},B.prototype.split=function(u,h){u.iushrn(this.n,0,h)},B.prototype.imulK=function(u){return u.imul(this.k)};function G(){B.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i(G,B),G.prototype.split=function(u,h){for(var p=4194303,y=Math.min(u.length,9),w=0;w>>22,x=T}x>>>=22,u.words[w-10]=x,x===0&&u.length>10?u.length-=10:u.length-=9},G.prototype.imulK=function(u){u.words[u.length]=0,u.words[u.length+1]=0,u.length+=2;for(var h=0,p=0;p>>=26,u.words[p]=w,h=y}return h!==0&&(u.words[u.length++]=h),u},s._prime=function(u){if(L[u])return L[u];var h;if(u==="k256")h=new G;else if(u==="p224")h=new z;else if(u==="p192")h=new W;else if(u==="p25519")h=new K;else throw new Error("Unknown prime "+u);return L[u]=h,h};function Y(v){if(typeof v=="string"){var u=s._prime(v);this.m=u.p,this.prime=u}else n(v.gtn(1),"modulus must be greater than 1"),this.m=v,this.prime=null}Y.prototype._verify1=function(u){n(u.negative===0,"red works only with positives"),n(u.red,"red works only with red numbers")},Y.prototype._verify2=function(u,h){n((u.negative|h.negative)===0,"red works only with positives"),n(u.red&&u.red===h.red,"red works only with red numbers")},Y.prototype.imod=function(u){return this.prime?this.prime.ireduce(u)._forceRed(this):(d(u,u.umod(this.m)._forceRed(this)),u)},Y.prototype.neg=function(u){return u.isZero()?u.clone():this.m.sub(u)._forceRed(this)},Y.prototype.add=function(u,h){this._verify2(u,h);var p=u.add(h);return p.cmp(this.m)>=0&&p.isub(this.m),p._forceRed(this)},Y.prototype.iadd=function(u,h){this._verify2(u,h);var p=u.iadd(h);return p.cmp(this.m)>=0&&p.isub(this.m),p},Y.prototype.sub=function(u,h){this._verify2(u,h);var p=u.sub(h);return p.cmpn(0)<0&&p.iadd(this.m),p._forceRed(this)},Y.prototype.isub=function(u,h){this._verify2(u,h);var p=u.isub(h);return p.cmpn(0)<0&&p.iadd(this.m),p},Y.prototype.shl=function(u,h){return this._verify1(u),this.imod(u.ushln(h))},Y.prototype.imul=function(u,h){return this._verify2(u,h),this.imod(u.imul(h))},Y.prototype.mul=function(u,h){return this._verify2(u,h),this.imod(u.mul(h))},Y.prototype.isqr=function(u){return this.imul(u,u.clone())},Y.prototype.sqr=function(u){return this.mul(u,u)},Y.prototype.sqrt=function(u){if(u.isZero())return u.clone();var h=this.m.andln(3);if(n(h%2===1),h===3){var p=this.m.add(new s(1)).iushrn(2);return this.pow(u,p)}for(var y=this.m.subn(1),w=0;!y.isZero()&&y.andln(1)===0;)w++,y.iushrn(1);n(!y.isZero());var x=new s(1).toRed(this),T=x.redNeg(),m=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new s(2*f*f).toRed(this);this.pow(f,m).cmp(T)!==0;)f.redIAdd(T);for(var E=this.pow(f,y),U=this.pow(u,y.addn(1).iushrn(1)),q=this.pow(u,y),I=w;q.cmp(x)!==0;){for(var k=q,D=0;k.cmp(x)!==0;D++)k=k.redSqr();n(D=0;w--){for(var E=h.words[w],U=f-1;U>=0;U--){var q=E>>U&1;if(x!==y[0]&&(x=this.sqr(x)),q===0&&T===0){m=0;continue}T<<=1,T|=q,m++,!(m!==p&&(w!==0||U!==0))&&(x=this.mul(x,y[T]),m=0,T=0)}f=26}return x},Y.prototype.convertTo=function(u){var h=u.umod(this.m);return h===u?h.clone():h},Y.prototype.convertFrom=function(u){var h=u.clone();return h.red=null,h},s.mont=function(u){return new X(u)};function X(v){Y.call(this,v),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i(X,Y),X.prototype.convertTo=function(u){return this.imod(u.ushln(this.shift))},X.prototype.convertFrom=function(u){var h=this.imod(u.mul(this.rinv));return h.red=null,h},X.prototype.imul=function(u,h){if(u.isZero()||h.isZero())return u.words[0]=0,u.length=1,u;var p=u.imul(h),y=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),w=p.isub(y).iushrn(this.shift),x=w;return w.cmp(this.m)>=0?x=w.isub(this.m):w.cmpn(0)<0&&(x=w.iadd(this.m)),x._forceRed(this)},X.prototype.mul=function(u,h){if(u.isZero()||h.isZero())return new s(0)._forceRed(this);var p=u.mul(h),y=p.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),w=p.isub(y).iushrn(this.shift),x=w;return w.cmp(this.m)>=0?x=w.isub(this.m):w.cmpn(0)<0&&(x=w.iadd(this.m)),x._forceRed(this)},X.prototype.invm=function(u){var h=this.imod(u._invmp(this.m).mul(this.r2));return h._forceRed(this)}})(t,Z)})(xu);var ro=xu.exports,hi={};Object.defineProperty(hi,"__esModule",{value:!0});hi.EVENTS=void 0;hi.EVENTS={STARTED_CONNECTING:"walletlink_sdk.started.connecting",CONNECTED_STATE_CHANGE:"walletlink_sdk.connected",DISCONNECTED:"walletlink_sdk.disconnected",METADATA_DESTROYED:"walletlink_sdk_metadata_destroyed",LINKED:"walletlink_sdk.linked",FAILURE:"walletlink_sdk.generic_failure",SESSION_CONFIG_RECEIVED:"walletlink_sdk.session_config_event_received",ETH_ACCOUNTS_STATE:"walletlink_sdk.eth_accounts_state",SESSION_STATE_CHANGE:"walletlink_sdk.session_state_change",UNLINKED_ERROR_STATE:"walletlink_sdk.unlinked_error_state",SKIPPED_CLEARING_SESSION:"walletlink_sdk.skipped_clearing_session",GENERAL_ERROR:"walletlink_sdk.general_error",WEB3_REQUEST:"walletlink_sdk.web3.request",WEB3_REQUEST_PUBLISHED:"walletlink_sdk.web3.request_published",WEB3_RESPONSE:"walletlink_sdk.web3.response",UNKNOWN_ADDRESS_ENCOUNTERED:"walletlink_sdk.unknown_address_encountered"};var Ji={},Kf={},Ir={},Xf=Wi;Wi.default=Wi;Wi.stable=rh;Wi.stableStringify=rh;var js="[...]",eh="[Circular]",cn=[],nn=[];function th(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function Wi(t,e,r,n){typeof n>"u"&&(n=th()),Ya(t,"",0,[],void 0,0,n);var i;try{nn.length===0?i=JSON.stringify(t,e,r):i=JSON.stringify(t,nh(e),r)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;cn.length!==0;){var s=cn.pop();s.length===4?Object.defineProperty(s[0],s[1],s[3]):s[0][s[1]]=s[2]}}return i}function qn(t,e,r,n){var i=Object.getOwnPropertyDescriptor(n,r);i.get!==void 0?i.configurable?(Object.defineProperty(n,r,{value:t}),cn.push([n,r,e,i])):nn.push([e,r,t]):(n[r]=t,cn.push([n,r,e]))}function Ya(t,e,r,n,i,s,o){s+=1;var a;if(typeof t=="object"&&t!==null){for(a=0;ao.depthLimit){qn(js,t,e,i);return}if(typeof o.edgesLimit<"u"&&r+1>o.edgesLimit){qn(js,t,e,i);return}if(n.push(t),Array.isArray(t))for(a=0;ae?1:0}function rh(t,e,r,n){typeof n>"u"&&(n=th());var i=Ka(t,"",0,[],void 0,0,n)||t,s;try{nn.length===0?s=JSON.stringify(i,e,r):s=JSON.stringify(i,nh(e),r)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;cn.length!==0;){var o=cn.pop();o.length===4?Object.defineProperty(o[0],o[1],o[3]):o[0][o[1]]=o[2]}}return s}function Ka(t,e,r,n,i,s,o){s+=1;var a;if(typeof t=="object"&&t!==null){for(a=0;ao.depthLimit){qn(js,t,e,i);return}if(typeof o.edgesLimit<"u"&&r+1>o.edgesLimit){qn(js,t,e,i);return}if(n.push(t),Array.isArray(t))for(a=0;a0)for(var n=0;n=1e3&&t<=4999}function v0(t,e){if(e!=="[Circular]")return e}var Cu={},Ar={};Object.defineProperty(Ar,"__esModule",{value:!0});Ar.errorValues=Ar.errorCodes=void 0;Ar.errorCodes={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901}};Ar.errorValues={"-32700":{standard:"JSON RPC 2.0",message:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."},"-32600":{standard:"JSON RPC 2.0",message:"The JSON sent is not a valid Request object."},"-32601":{standard:"JSON RPC 2.0",message:"The method does not exist / is not available."},"-32602":{standard:"JSON RPC 2.0",message:"Invalid method parameter(s)."},"-32603":{standard:"JSON RPC 2.0",message:"Internal JSON-RPC error."},"-32000":{standard:"EIP-1474",message:"Invalid input."},"-32001":{standard:"EIP-1474",message:"Resource not found."},"-32002":{standard:"EIP-1474",message:"Resource unavailable."},"-32003":{standard:"EIP-1474",message:"Transaction rejected."},"-32004":{standard:"EIP-1474",message:"Method not supported."},"-32005":{standard:"EIP-1474",message:"Request limit exceeded."},4001:{standard:"EIP-1193",message:"User rejected the request."},4100:{standard:"EIP-1193",message:"The requested account and/or method has not been authorized by the user."},4200:{standard:"EIP-1193",message:"The requested method is not supported by this Ethereum provider."},4900:{standard:"EIP-1193",message:"The provider is disconnected from all chains."},4901:{standard:"EIP-1193",message:"The provider is disconnected from the specified chain."}};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.serializeError=t.isValidCode=t.getMessageFromCode=t.JSON_RPC_SERVER_ERROR_MESSAGE=void 0;const e=Ar,r=Ir,n=e.errorCodes.rpc.internal,i="Unspecified error message. This is a bug, please report it.",s={code:n,message:o(n)};t.JSON_RPC_SERVER_ERROR_MESSAGE="Unspecified server error.";function o(b,C=i){if(Number.isInteger(b)){const A=b.toString();if(g(e.errorValues,A))return e.errorValues[A].message;if(l(b))return t.JSON_RPC_SERVER_ERROR_MESSAGE}return C}t.getMessageFromCode=o;function a(b){if(!Number.isInteger(b))return!1;const C=b.toString();return!!(e.errorValues[C]||l(b))}t.isValidCode=a;function c(b,{fallbackError:C=s,shouldIncludeStack:A=!1}={}){var P,N;if(!C||!Number.isInteger(C.code)||typeof C.message!="string")throw new Error("Must provide fallback error with integer number code and string message.");if(b instanceof r.EthereumRpcError)return b.serialize();const M={};if(b&&typeof b=="object"&&!Array.isArray(b)&&g(b,"code")&&a(b.code)){const O=b;M.code=O.code,O.message&&typeof O.message=="string"?(M.message=O.message,g(O,"data")&&(M.data=O.data)):(M.message=o(M.code),M.data={originalError:d(b)})}else{M.code=C.code;const O=(P=b)===null||P===void 0?void 0:P.message;M.message=O&&typeof O=="string"?O:C.message,M.data={originalError:d(b)}}const R=(N=b)===null||N===void 0?void 0:N.stack;return A&&b&&R&&typeof R=="string"&&(M.stack=R),M}t.serializeError=c;function l(b){return b>=-32099&&b<=-32e3}function d(b){return b&&typeof b=="object"&&!Array.isArray(b)?Object.assign({},b):b}function g(b,C){return Object.prototype.hasOwnProperty.call(b,C)}})(Cu);var no={};Object.defineProperty(no,"__esModule",{value:!0});no.ethErrors=void 0;const Ru=Ir,sh=Cu,dt=Ar;no.ethErrors={rpc:{parse:t=>Tt(dt.errorCodes.rpc.parse,t),invalidRequest:t=>Tt(dt.errorCodes.rpc.invalidRequest,t),invalidParams:t=>Tt(dt.errorCodes.rpc.invalidParams,t),methodNotFound:t=>Tt(dt.errorCodes.rpc.methodNotFound,t),internal:t=>Tt(dt.errorCodes.rpc.internal,t),server:t=>{if(!t||typeof t!="object"||Array.isArray(t))throw new Error("Ethereum RPC Server errors must provide single object argument.");const{code:e}=t;if(!Number.isInteger(e)||e>-32005||e<-32099)throw new Error('"code" must be an integer such that: -32099 <= code <= -32005');return Tt(e,t)},invalidInput:t=>Tt(dt.errorCodes.rpc.invalidInput,t),resourceNotFound:t=>Tt(dt.errorCodes.rpc.resourceNotFound,t),resourceUnavailable:t=>Tt(dt.errorCodes.rpc.resourceUnavailable,t),transactionRejected:t=>Tt(dt.errorCodes.rpc.transactionRejected,t),methodNotSupported:t=>Tt(dt.errorCodes.rpc.methodNotSupported,t),limitExceeded:t=>Tt(dt.errorCodes.rpc.limitExceeded,t)},provider:{userRejectedRequest:t=>xi(dt.errorCodes.provider.userRejectedRequest,t),unauthorized:t=>xi(dt.errorCodes.provider.unauthorized,t),unsupportedMethod:t=>xi(dt.errorCodes.provider.unsupportedMethod,t),disconnected:t=>xi(dt.errorCodes.provider.disconnected,t),chainDisconnected:t=>xi(dt.errorCodes.provider.chainDisconnected,t),custom:t=>{if(!t||typeof t!="object"||Array.isArray(t))throw new Error("Ethereum Provider custom errors must provide single object argument.");const{code:e,message:r,data:n}=t;if(!r||typeof r!="string")throw new Error('"message" must be a nonempty string');return new Ru.EthereumProviderError(e,r,n)}}};function Tt(t,e){const[r,n]=oh(e);return new Ru.EthereumRpcError(t,r||sh.getMessageFromCode(t),n)}function xi(t,e){const[r,n]=oh(e);return new Ru.EthereumProviderError(t,r||sh.getMessageFromCode(t),n)}function oh(t){if(t){if(typeof t=="string")return[t];if(typeof t=="object"&&!Array.isArray(t)){const{message:e,data:r}=t;if(e&&typeof e!="string")throw new Error("Must specify string message.");return[e||void 0,r]}}return[]}(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.getMessageFromCode=t.serializeError=t.EthereumProviderError=t.EthereumRpcError=t.ethErrors=t.errorCodes=void 0;const e=Ir;Object.defineProperty(t,"EthereumRpcError",{enumerable:!0,get:function(){return e.EthereumRpcError}}),Object.defineProperty(t,"EthereumProviderError",{enumerable:!0,get:function(){return e.EthereumProviderError}});const r=Cu;Object.defineProperty(t,"serializeError",{enumerable:!0,get:function(){return r.serializeError}}),Object.defineProperty(t,"getMessageFromCode",{enumerable:!0,get:function(){return r.getMessageFromCode}});const n=no;Object.defineProperty(t,"ethErrors",{enumerable:!0,get:function(){return n.ethErrors}});const i=Ar;Object.defineProperty(t,"errorCodes",{enumerable:!0,get:function(){return i.errorCodes}})})(Kf);var _e={},io={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.Web3Method=void 0,function(e){e.requestEthereumAccounts="requestEthereumAccounts",e.signEthereumMessage="signEthereumMessage",e.signEthereumTransaction="signEthereumTransaction",e.submitEthereumTransaction="submitEthereumTransaction",e.ethereumAddressFromSignedMessage="ethereumAddressFromSignedMessage",e.scanQRCode="scanQRCode",e.generic="generic",e.childRequestEthereumAccounts="childRequestEthereumAccounts",e.addEthereumChain="addEthereumChain",e.switchEthereumChain="switchEthereumChain",e.makeEthereumJSONRPCRequest="makeEthereumJSONRPCRequest",e.watchAsset="watchAsset",e.selectProvider="selectProvider"}(t.Web3Method||(t.Web3Method={}))})(io);Object.defineProperty(_e,"__esModule",{value:!0});_e.EthereumAddressFromSignedMessageResponse=_e.SubmitEthereumTransactionResponse=_e.SignEthereumTransactionResponse=_e.SignEthereumMessageResponse=_e.isRequestEthereumAccountsResponse=_e.SelectProviderResponse=_e.WatchAssetReponse=_e.RequestEthereumAccountsResponse=_e.SwitchEthereumChainResponse=_e.AddEthereumChainResponse=_e.isErrorResponse=void 0;const cr=io;function y0(t){var e,r;return((e=t)===null||e===void 0?void 0:e.method)!==void 0&&((r=t)===null||r===void 0?void 0:r.errorMessage)!==void 0}_e.isErrorResponse=y0;function m0(t){return{method:cr.Web3Method.addEthereumChain,result:t}}_e.AddEthereumChainResponse=m0;function w0(t){return{method:cr.Web3Method.switchEthereumChain,result:t}}_e.SwitchEthereumChainResponse=w0;function _0(t){return{method:cr.Web3Method.requestEthereumAccounts,result:t}}_e.RequestEthereumAccountsResponse=_0;function S0(t){return{method:cr.Web3Method.watchAsset,result:t}}_e.WatchAssetReponse=S0;function E0(t){return{method:cr.Web3Method.selectProvider,result:t}}_e.SelectProviderResponse=E0;function M0(t){return t&&t.method===cr.Web3Method.requestEthereumAccounts}_e.isRequestEthereumAccountsResponse=M0;function x0(t){return{method:cr.Web3Method.signEthereumMessage,result:t}}_e.SignEthereumMessageResponse=x0;function C0(t){return{method:cr.Web3Method.signEthereumTransaction,result:t}}_e.SignEthereumTransactionResponse=C0;function R0(t){return{method:cr.Web3Method.submitEthereumTransaction,result:t}}_e.SubmitEthereumTransactionResponse=R0;function I0(t){return{method:cr.Web3Method.ethereumAddressFromSignedMessage,result:t}}_e.EthereumAddressFromSignedMessageResponse=I0;var di={};Object.defineProperty(di,"__esModule",{value:!0});di.LIB_VERSION=void 0;di.LIB_VERSION="3.7.2";(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCode=t.serializeError=t.standardErrors=t.standardErrorMessage=t.standardErrorCodes=void 0;const e=Kf,r=_e,n=di;t.standardErrorCodes=Object.freeze(Object.assign(Object.assign({},e.errorCodes),{provider:Object.freeze(Object.assign(Object.assign({},e.errorCodes.provider),{unsupportedChain:4902}))}));function i(d){return d!==void 0?(0,e.getMessageFromCode)(d):"Unknown error"}t.standardErrorMessage=i,t.standardErrors=Object.freeze(Object.assign(Object.assign({},e.ethErrors),{provider:Object.freeze(Object.assign(Object.assign({},e.ethErrors.provider),{unsupportedChain:(d="")=>e.ethErrors.provider.custom({code:t.standardErrorCodes.provider.unsupportedChain,message:`Unrecognized chain ID ${d}. Try adding the chain using wallet_addEthereumChain first.`})}))}));function s(d,g){const b=(0,e.serializeError)(o(d),{shouldIncludeStack:!0}),C=new URL("https://docs.cloud.coinbase.com/wallet-sdk/docs/errors");C.searchParams.set("version",n.LIB_VERSION),C.searchParams.set("code",b.code.toString());const A=a(b.data,g);return A&&C.searchParams.set("method",A),C.searchParams.set("message",b.message),Object.assign(Object.assign({},b),{docUrl:C.href})}t.serializeError=s;function o(d){return typeof d=="string"?{message:d,code:t.standardErrorCodes.rpc.internal}:(0,r.isErrorResponse)(d)?Object.assign(Object.assign({},d),{message:d.errorMessage,code:d.errorCode,data:{method:d.method,result:d.result}}):d}function a(d,g){var b;const C=(b=d)===null||b===void 0?void 0:b.method;if(C)return C;if(g!==void 0)return typeof g=="string"?g:Array.isArray(g)?g.length>0?g[0].method:void 0:g.method}function c(d){var g;if(typeof d=="number")return d;if(l(d))return(g=d.code)!==null&&g!==void 0?g:d.errorCode}t.getErrorCode=c;function l(d){return typeof d=="object"&&d!==null&&(typeof d.code=="number"||typeof d.errorCode=="number")}})(Ji);var pi={},ah={exports:{}},Xa={exports:{}};typeof Object.create=="function"?Xa.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Xa.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}};var Gt=Xa.exports,eu={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh */(function(t,e){var r=Gi,n=r.Buffer;function i(o,a){for(var c in o)a[c]=o[c]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(i(r,e),e.Buffer=s);function s(o,a,c){return n(o,a,c)}s.prototype=Object.create(n.prototype),i(n,s),s.from=function(o,a,c){if(typeof o=="number")throw new TypeError("Argument must not be a number");return n(o,a,c)},s.alloc=function(o,a,c){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=n(o);return a!==void 0?typeof c=="string"?l.fill(a,c):l.fill(a):l.fill(0),l},s.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n(o)},s.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(o)}})(eu,eu.exports);var bn=eu.exports,uh=bn.Buffer;function so(t,e){this._block=uh.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}so.prototype.update=function(t,e){typeof t=="string"&&(e=e||"utf8",t=uh.from(t,e));for(var r=this._block,n=this._blockSize,i=t.length,s=this._len,o=0;o=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var s=this._hash();return t?s.toString(t):s};so.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var gi=so,A0=Gt,ch=gi,T0=bn.Buffer,k0=[1518500249,1859775393,-1894007588,-899497514],O0=new Array(80);function Zi(){this.init(),this._w=O0,ch.call(this,64,56)}A0(Zi,ch);Zi.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function N0(t){return t<<5|t>>>27}function L0(t){return t<<30|t>>>2}function P0(t,e,r,n){return t===0?e&r|~e&n:t===2?e&r|e&n|r&n:e^r^n}Zi.prototype._update=function(t){for(var e=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)e[a]=t.readInt32BE(a*4);for(;a<80;++a)e[a]=e[a-3]^e[a-8]^e[a-14]^e[a-16];for(var c=0;c<80;++c){var l=~~(c/20),d=N0(r)+P0(l,n,i,s)+o+e[c]+k0[l]|0;o=s,s=i,i=L0(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};Zi.prototype._hash=function(){var t=T0.allocUnsafe(20);return t.writeInt32BE(this._a|0,0),t.writeInt32BE(this._b|0,4),t.writeInt32BE(this._c|0,8),t.writeInt32BE(this._d|0,12),t.writeInt32BE(this._e|0,16),t};var $0=Zi,D0=Gt,lh=gi,B0=bn.Buffer,j0=[1518500249,1859775393,-1894007588,-899497514],F0=new Array(80);function Qi(){this.init(),this._w=F0,lh.call(this,64,56)}D0(Qi,lh);Qi.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function W0(t){return t<<1|t>>>31}function H0(t){return t<<5|t>>>27}function V0(t){return t<<30|t>>>2}function U0(t,e,r,n){return t===0?e&r|~e&n:t===2?e&r|e&n|r&n:e^r^n}Qi.prototype._update=function(t){for(var e=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)e[a]=t.readInt32BE(a*4);for(;a<80;++a)e[a]=W0(e[a-3]^e[a-8]^e[a-14]^e[a-16]);for(var c=0;c<80;++c){var l=~~(c/20),d=H0(r)+U0(l,n,i,s)+o+e[c]+j0[l]|0;o=s,s=i,i=V0(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};Qi.prototype._hash=function(){var t=B0.allocUnsafe(20);return t.writeInt32BE(this._a|0,0),t.writeInt32BE(this._b|0,4),t.writeInt32BE(this._c|0,8),t.writeInt32BE(this._d|0,12),t.writeInt32BE(this._e|0,16),t};var z0=Qi,q0=Gt,fh=gi,G0=bn.Buffer,J0=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Z0=new Array(64);function Yi(){this.init(),this._w=Z0,fh.call(this,64,56)}q0(Yi,fh);Yi.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function Q0(t,e,r){return r^t&(e^r)}function Y0(t,e,r){return t&e|r&(t|e)}function K0(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function X0(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function eg(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}function tg(t){return(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10}Yi.prototype._update=function(t){for(var e=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=this._f|0,c=this._g|0,l=this._h|0,d=0;d<16;++d)e[d]=t.readInt32BE(d*4);for(;d<64;++d)e[d]=tg(e[d-2])+e[d-7]+eg(e[d-15])+e[d-16]|0;for(var g=0;g<64;++g){var b=l+X0(o)+Q0(o,a,c)+J0[g]+e[g]|0,C=K0(r)+Y0(r,n,i)|0;l=c,c=a,a=o,o=s+b|0,s=i,i=n,n=r,r=b+C|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0,this._f=a+this._f|0,this._g=c+this._g|0,this._h=l+this._h|0};Yi.prototype._hash=function(){var t=G0.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t};var hh=Yi,rg=Gt,ng=hh,ig=gi,sg=bn.Buffer,og=new Array(64);function oo(){this.init(),this._w=og,ig.call(this,64,56)}rg(oo,ng);oo.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};oo.prototype._hash=function(){var t=sg.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t};var ag=oo,ug=Gt,dh=gi,cg=bn.Buffer,Pc=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],lg=new Array(160);function Ki(){this.init(),this._w=lg,dh.call(this,128,112)}ug(Ki,dh);Ki.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function $c(t,e,r){return r^t&(e^r)}function Dc(t,e,r){return t&e|r&(t|e)}function Bc(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function jc(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function fg(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function hg(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function dg(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function pg(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function it(t,e){return t>>>0>>0?1:0}Ki.prototype._update=function(t){for(var e=this._w,r=this._ah|0,n=this._bh|0,i=this._ch|0,s=this._dh|0,o=this._eh|0,a=this._fh|0,c=this._gh|0,l=this._hh|0,d=this._al|0,g=this._bl|0,b=this._cl|0,C=this._dl|0,A=this._el|0,P=this._fl|0,N=this._gl|0,M=this._hl|0,R=0;R<32;R+=2)e[R]=t.readInt32BE(R*4),e[R+1]=t.readInt32BE(R*4+4);for(;R<160;R+=2){var O=e[R-30],$=e[R-15*2+1],L=fg(O,$),B=hg($,O);O=e[R-2*2],$=e[R-2*2+1];var G=dg(O,$),z=pg($,O),W=e[R-7*2],K=e[R-7*2+1],Y=e[R-16*2],X=e[R-16*2+1],v=B+K|0,u=L+W+it(v,B)|0;v=v+z|0,u=u+G+it(v,z)|0,v=v+X|0,u=u+Y+it(v,X)|0,e[R]=u,e[R+1]=v}for(var h=0;h<160;h+=2){u=e[h],v=e[h+1];var p=Dc(r,n,i),y=Dc(d,g,b),w=Bc(r,d),x=Bc(d,r),T=jc(o,A),m=jc(A,o),f=Pc[h],E=Pc[h+1],U=$c(o,a,c),q=$c(A,P,N),I=M+m|0,k=l+T+it(I,M)|0;I=I+q|0,k=k+U+it(I,q)|0,I=I+E|0,k=k+f+it(I,E)|0,I=I+v|0,k=k+u+it(I,v)|0;var D=x+y|0,V=w+p+it(D,x)|0;l=c,M=N,c=a,N=P,a=o,P=A,A=C+I|0,o=s+k+it(A,C)|0,s=i,C=b,i=n,b=g,n=r,g=d,d=I+D|0,r=k+V+it(d,I)|0}this._al=this._al+d|0,this._bl=this._bl+g|0,this._cl=this._cl+b|0,this._dl=this._dl+C|0,this._el=this._el+A|0,this._fl=this._fl+P|0,this._gl=this._gl+N|0,this._hl=this._hl+M|0,this._ah=this._ah+r+it(this._al,d)|0,this._bh=this._bh+n+it(this._bl,g)|0,this._ch=this._ch+i+it(this._cl,b)|0,this._dh=this._dh+s+it(this._dl,C)|0,this._eh=this._eh+o+it(this._el,A)|0,this._fh=this._fh+a+it(this._fl,P)|0,this._gh=this._gh+c+it(this._gl,N)|0,this._hh=this._hh+l+it(this._hl,M)|0};Ki.prototype._hash=function(){var t=cg.allocUnsafe(64);function e(r,n,i){t.writeInt32BE(r,i),t.writeInt32BE(n,i+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t};var ph=Ki,gg=Gt,bg=ph,vg=gi,yg=bn.Buffer,mg=new Array(160);function ao(){this.init(),this._w=mg,vg.call(this,128,112)}gg(ao,bg);ao.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};ao.prototype._hash=function(){var t=yg.allocUnsafe(48);function e(r,n,i){t.writeInt32BE(r,i),t.writeInt32BE(n,i+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t};var wg=ao,vn=ah.exports=function(e){e=e.toLowerCase();var r=vn[e];if(!r)throw new Error(e+" is not supported (we accept pull requests)");return new r};vn.sha=$0;vn.sha1=z0;vn.sha224=ag;vn.sha256=hh;vn.sha384=wg;vn.sha512=ph;var _g=ah.exports,J={},Sg=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;e[r]=i;for(r in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var s=Object.getOwnPropertySymbols(e);if(s.length!==1||s[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==i||o.enumerable!==!0)return!1}return!0},Fc=typeof Symbol<"u"&&Symbol,Eg=Sg,Mg=function(){return typeof Fc!="function"||typeof Symbol!="function"||typeof Fc("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:Eg()},Wc={foo:{}},xg=Object,Cg=function(){return{__proto__:Wc}.foo===Wc.foo&&!({__proto__:null}instanceof xg)},Rg="Function.prototype.bind called on incompatible ",Ig=Object.prototype.toString,Ag=Math.max,Tg="[object Function]",Hc=function(e,r){for(var n=[],i=0;i"u"||!at?ce:at(Uint8Array),un={"%AggregateError%":typeof AggregateError>"u"?ce:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?ce:ArrayBuffer,"%ArrayIteratorPrototype%":Pn&&at?at([][Symbol.iterator]()):ce,"%AsyncFromSyncIteratorPrototype%":ce,"%AsyncFunction%":Hn,"%AsyncGenerator%":Hn,"%AsyncGeneratorFunction%":Hn,"%AsyncIteratorPrototype%":Hn,"%Atomics%":typeof Atomics>"u"?ce:Atomics,"%BigInt%":typeof BigInt>"u"?ce:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?ce:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?ce:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?ce:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?ce:Float32Array,"%Float64Array%":typeof Float64Array>"u"?ce:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?ce:FinalizationRegistry,"%Function%":gh,"%GeneratorFunction%":Hn,"%Int8Array%":typeof Int8Array>"u"?ce:Int8Array,"%Int16Array%":typeof Int16Array>"u"?ce:Int16Array,"%Int32Array%":typeof Int32Array>"u"?ce:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Pn&&at?at(at([][Symbol.iterator]())):ce,"%JSON%":typeof JSON=="object"?JSON:ce,"%Map%":typeof Map>"u"?ce:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Pn||!at?ce:at(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?ce:Promise,"%Proxy%":typeof Proxy>"u"?ce:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?ce:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?ce:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Pn||!at?ce:at(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?ce:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Pn&&at?at(""[Symbol.iterator]()):ce,"%Symbol%":Pn?Symbol:ce,"%SyntaxError%":Xn,"%ThrowTypeError%":jg,"%TypedArray%":Wg,"%TypeError%":Gn,"%Uint8Array%":typeof Uint8Array>"u"?ce:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?ce:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?ce:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?ce:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?ce:WeakMap,"%WeakRef%":typeof WeakRef>"u"?ce:WeakRef,"%WeakSet%":typeof WeakSet>"u"?ce:WeakSet};if(at)try{null.error}catch(t){var Hg=at(at(t));un["%Error.prototype%"]=Hg}var Vg=function t(e){var r;if(e==="%AsyncFunction%")r=ca("async function () {}");else if(e==="%GeneratorFunction%")r=ca("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=ca("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&at&&(r=at(i.prototype))}return un[e]=r,r},Vc={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Xi=Iu,Fs=Bg,Ug=Xi.call(Function.call,Array.prototype.concat),zg=Xi.call(Function.apply,Array.prototype.splice),Uc=Xi.call(Function.call,String.prototype.replace),Ws=Xi.call(Function.call,String.prototype.slice),qg=Xi.call(Function.call,RegExp.prototype.exec),Gg=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Jg=/\\(\\)?/g,Zg=function(e){var r=Ws(e,0,1),n=Ws(e,-1);if(r==="%"&&n!=="%")throw new Xn("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Xn("invalid intrinsic syntax, expected opening `%`");var i=[];return Uc(e,Gg,function(s,o,a,c){i[i.length]=a?Uc(c,Jg,"$1"):o||s}),i},Qg=function(e,r){var n=e,i;if(Fs(Vc,n)&&(i=Vc[n],n="%"+i[0]+"%"),Fs(un,n)){var s=un[n];if(s===Hn&&(s=Vg(n)),typeof s>"u"&&!r)throw new Gn("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:s}}throw new Xn("intrinsic "+e+" does not exist!")},yn=function(e,r){if(typeof e!="string"||e.length===0)throw new Gn("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Gn('"allowMissing" argument must be a boolean');if(qg(/^%?[^%]*%?$/,e)===null)throw new Xn("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=Zg(e),i=n.length>0?n[0]:"",s=Qg("%"+i+"%",r),o=s.name,a=s.value,c=!1,l=s.alias;l&&(i=l[0],zg(n,Ug([0,1],l)));for(var d=1,g=!0;d=n.length){var P=an(a,b);g=!!P,g&&"get"in P&&!("originalValue"in P.get)?a=P.get:a=a[b]}else g=Fs(a,b),a=a[b];g&&!c&&(un[o]=a)}}return a},bh={exports:{}},Yg=yn,tu=Yg("%Object.defineProperty%",!0),ru=function(){if(tu)try{return tu({},"a",{value:1}),!0}catch{return!1}return!1};ru.hasArrayLengthDefineBug=function(){if(!ru())return null;try{return tu([],"length",{value:1}).length!==1}catch{return!0}};var vh=ru,Kg=yn,Ls=Kg("%Object.getOwnPropertyDescriptor%",!0);if(Ls)try{Ls([],"length")}catch{Ls=null}var yh=Ls,Xg=vh(),Au=yn,Ni=Xg&&Au("%Object.defineProperty%",!0);if(Ni)try{Ni({},"a",{value:1})}catch{Ni=!1}var eb=Au("%SyntaxError%"),$n=Au("%TypeError%"),zc=yh,tb=function(e,r,n){if(!e||typeof e!="object"&&typeof e!="function")throw new $n("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new $n("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new $n("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new $n("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new $n("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new $n("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,s=arguments.length>4?arguments[4]:null,o=arguments.length>5?arguments[5]:null,a=arguments.length>6?arguments[6]:!1,c=!!zc&&zc(e,r);if(Ni)Ni(e,r,{configurable:o===null&&c?c.configurable:!o,enumerable:i===null&&c?c.enumerable:!i,value:n,writable:s===null&&c?c.writable:!s});else if(a||!i&&!s&&!o)e[r]=n;else throw new eb("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},mh=yn,qc=tb,rb=vh(),Gc=yh,Jc=mh("%TypeError%"),nb=mh("%Math.floor%"),ib=function(e,r){if(typeof e!="function")throw new Jc("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||nb(r)!==r)throw new Jc("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],i=!0,s=!0;if("length"in e&&Gc){var o=Gc(e,"length");o&&!o.configurable&&(i=!1),o&&!o.writable&&(s=!1)}return(i||s||!n)&&(rb?qc(e,"length",r,!0,!0):qc(e,"length",r)),e};(function(t){var e=Iu,r=yn,n=ib,i=r("%TypeError%"),s=r("%Function.prototype.apply%"),o=r("%Function.prototype.call%"),a=r("%Reflect.apply%",!0)||e.call(o,s),c=r("%Object.defineProperty%",!0),l=r("%Math.max%");if(c)try{c({},"a",{value:1})}catch{c=null}t.exports=function(b){if(typeof b!="function")throw new i("a function is required");var C=a(e,o,arguments);return n(C,1+l(0,b.length-(arguments.length-1)),!0)};var d=function(){return a(e,s,arguments)};c?c(t.exports,"apply",{value:d}):t.exports.apply=d})(bh);var sb=bh.exports,wh=yn,_h=sb,ob=_h(wh("String.prototype.indexOf")),ab=function(e,r){var n=wh(e,!!r);return typeof n=="function"&&ob(e,".prototype.")>-1?_h(n):n},Tu=typeof Map=="function"&&Map.prototype,fa=Object.getOwnPropertyDescriptor&&Tu?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Hs=Tu&&fa&&typeof fa.get=="function"?fa.get:null,Zc=Tu&&Map.prototype.forEach,ku=typeof Set=="function"&&Set.prototype,ha=Object.getOwnPropertyDescriptor&&ku?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Vs=ku&&ha&&typeof ha.get=="function"?ha.get:null,Qc=ku&&Set.prototype.forEach,ub=typeof WeakMap=="function"&&WeakMap.prototype,Li=ub?WeakMap.prototype.has:null,cb=typeof WeakSet=="function"&&WeakSet.prototype,Pi=cb?WeakSet.prototype.has:null,lb=typeof WeakRef=="function"&&WeakRef.prototype,Yc=lb?WeakRef.prototype.deref:null,fb=Boolean.prototype.valueOf,hb=Object.prototype.toString,db=Function.prototype.toString,pb=String.prototype.match,Ou=String.prototype.slice,Cr=String.prototype.replace,gb=String.prototype.toUpperCase,Kc=String.prototype.toLowerCase,Sh=RegExp.prototype.test,Xc=Array.prototype.concat,nr=Array.prototype.join,bb=Array.prototype.slice,el=Math.floor,nu=typeof BigInt=="function"?BigInt.prototype.valueOf:null,da=Object.getOwnPropertySymbols,iu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,ei=typeof Symbol=="function"&&typeof Symbol.iterator=="object",vt=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===ei||"symbol")?Symbol.toStringTag:null,Eh=Object.prototype.propertyIsEnumerable,tl=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function rl(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||Sh.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-el(-t):el(t);if(n!==t){var i=String(n),s=Ou.call(e,i.length+1);return Cr.call(i,r,"$&_")+"."+Cr.call(Cr.call(s,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Cr.call(e,r,"$&_")}var su=Ks,nl=su.custom,il=xh(nl)?nl:null,vb=function t(e,r,n,i){var s=r||{};if(Er(s,"quoteStyle")&&s.quoteStyle!=="single"&&s.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Er(s,"maxStringLength")&&(typeof s.maxStringLength=="number"?s.maxStringLength<0&&s.maxStringLength!==1/0:s.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var o=Er(s,"customInspect")?s.customInspect:!0;if(typeof o!="boolean"&&o!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Er(s,"indent")&&s.indent!==null&&s.indent!==" "&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Er(s,"numericSeparator")&&typeof s.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var a=s.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return Rh(e,s);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return a?rl(e,c):c}if(typeof e=="bigint"){var l=String(e)+"n";return a?rl(e,l):l}var d=typeof s.depth>"u"?5:s.depth;if(typeof n>"u"&&(n=0),n>=d&&d>0&&typeof e=="object")return ou(e)?"[Array]":"[Object]";var g=Pb(s,n);if(typeof i>"u")i=[];else if(Ch(i,e)>=0)return"[Circular]";function b(v,u,h){if(u&&(i=bb.call(i),i.push(u)),h){var p={depth:s.depth};return Er(s,"quoteStyle")&&(p.quoteStyle=s.quoteStyle),t(v,p,n+1,i)}return t(v,s,n+1,i)}if(typeof e=="function"&&!sl(e)){var C=Cb(e),A=ys(e,b);return"[Function"+(C?": "+C:" (anonymous)")+"]"+(A.length>0?" { "+nr.call(A,", ")+" }":"")}if(xh(e)){var P=ei?Cr.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):iu.call(e);return typeof e=="object"&&!ei?Ci(P):P}if(Ob(e)){for(var N="<"+Kc.call(String(e.nodeName)),M=e.attributes||[],R=0;R",N}if(ou(e)){if(e.length===0)return"[]";var O=ys(e,b);return g&&!Lb(O)?"["+au(O,g)+"]":"[ "+nr.call(O,", ")+" ]"}if(wb(e)){var $=ys(e,b);return!("cause"in Error.prototype)&&"cause"in e&&!Eh.call(e,"cause")?"{ ["+String(e)+"] "+nr.call(Xc.call("[cause]: "+b(e.cause),$),", ")+" }":$.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+nr.call($,", ")+" }"}if(typeof e=="object"&&o){if(il&&typeof e[il]=="function"&&su)return su(e,{depth:d-n});if(o!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(Rb(e)){var L=[];return Zc&&Zc.call(e,function(v,u){L.push(b(u,e,!0)+" => "+b(v,e))}),ol("Map",Hs.call(e),L,g)}if(Tb(e)){var B=[];return Qc&&Qc.call(e,function(v){B.push(b(v,e))}),ol("Set",Vs.call(e),B,g)}if(Ib(e))return pa("WeakMap");if(kb(e))return pa("WeakSet");if(Ab(e))return pa("WeakRef");if(Sb(e))return Ci(b(Number(e)));if(Mb(e))return Ci(b(nu.call(e)));if(Eb(e))return Ci(fb.call(e));if(_b(e))return Ci(b(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(e===globalThis)return"{ [object globalThis] }";if(!mb(e)&&!sl(e)){var G=ys(e,b),z=tl?tl(e)===Object.prototype:e instanceof Object||e.constructor===Object,W=e instanceof Object?"":"null prototype",K=!z&&vt&&Object(e)===e&&vt in e?Ou.call(Pr(e),8,-1):W?"Object":"",Y=z||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",X=Y+(K||W?"["+nr.call(Xc.call([],K||[],W||[]),": ")+"] ":"");return G.length===0?X+"{}":g?X+"{"+au(G,g)+"}":X+"{ "+nr.call(G,", ")+" }"}return String(e)};function Mh(t,e,r){var n=(r.quoteStyle||e)==="double"?'"':"'";return n+t+n}function yb(t){return Cr.call(String(t),/"/g,""")}function ou(t){return Pr(t)==="[object Array]"&&(!vt||!(typeof t=="object"&&vt in t))}function mb(t){return Pr(t)==="[object Date]"&&(!vt||!(typeof t=="object"&&vt in t))}function sl(t){return Pr(t)==="[object RegExp]"&&(!vt||!(typeof t=="object"&&vt in t))}function wb(t){return Pr(t)==="[object Error]"&&(!vt||!(typeof t=="object"&&vt in t))}function _b(t){return Pr(t)==="[object String]"&&(!vt||!(typeof t=="object"&&vt in t))}function Sb(t){return Pr(t)==="[object Number]"&&(!vt||!(typeof t=="object"&&vt in t))}function Eb(t){return Pr(t)==="[object Boolean]"&&(!vt||!(typeof t=="object"&&vt in t))}function xh(t){if(ei)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!iu)return!1;try{return iu.call(t),!0}catch{}return!1}function Mb(t){if(!t||typeof t!="object"||!nu)return!1;try{return nu.call(t),!0}catch{}return!1}var xb=Object.prototype.hasOwnProperty||function(t){return t in this};function Er(t,e){return xb.call(t,e)}function Pr(t){return hb.call(t)}function Cb(t){if(t.name)return t.name;var e=pb.call(db.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function Ch(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return Rh(Ou.call(t,0,e.maxStringLength),e)+n}var i=Cr.call(Cr.call(t,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Nb);return Mh(i,"single",e)}function Nb(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+gb.call(e.toString(16))}function Ci(t){return"Object("+t+")"}function pa(t){return t+" { ? }"}function ol(t,e,r,n){var i=n?au(r,n):nr.call(r,", ");return t+" ("+e+") {"+i+"}"}function Lb(t){for(var e=0;e=0)return!1;return!0}function Pb(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=nr.call(Array(t.indent+1)," ");else return null;return{base:r,prev:nr.call(Array(e+1),r)}}function au(t,e){if(t.length===0)return"";var r=` `+e.prev+e.base;return r+nr.call(t,","+r)+` `+e.prev}function ys(t,e){var r=ou(t),n=[];if(r){n.length=t.length;for(var i=0;i1;){var r=e.pop(),n=r.obj[r.prop];if(Xr(n)){for(var i=[],s=0;s=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||s===Qb.RFC1738&&(l===40||l===41)){a+=o.charAt(c);continue}if(l<128){a=a+Yt[l];continue}if(l<2048){a=a+(Yt[192|l>>6]+Yt[128|l&63]);continue}if(l<55296||l>=57344){a=a+(Yt[224|l>>12]+Yt[128|l>>6&63]+Yt[128|l&63]);continue}c+=1,l=65536+((l&1023)<<10|o.charCodeAt(c)&1023),a+=Yt[240|l>>18]+Yt[128|l>>12&63]+Yt[128|l>>6&63]+Yt[128|l&63]}return a},rv=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],i=0;i"u"&&(O=0)}if(typeof c=="function"?M=c(r,M):M instanceof Date?M=g(M):n==="comma"&&dr(M)&&(M=Ps.maybeMap(M,function(p){return p instanceof Date?g(p):p})),M===null){if(s)return a&&!A?a(r,bt.encoder,P,"key",b):r;M=""}if(lv(M)||Ps.isBuffer(M)){if(a){var B=A?r:a(r,bt.encoder,P,"key",b);return[C(B)+"="+C(a(M,bt.encoder,P,"value",b))]}return[C(r)+"="+C(String(M))]}var G=[];if(typeof M>"u")return G;var z;if(n==="comma"&&dr(M))A&&a&&(M=Ps.maybeMap(M,a)),z=[{value:M.length>0?M.join(",")||null:void 0}];else if(dr(c))z=c;else{var W=Object.keys(M);z=l?W.sort(l):W}for(var K=i&&dr(M)&&M.length===1?r+"[]":r,Y=0;Y"u"?bt.allowDots:!!e.allowDots,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:bt.charsetSentinel,delimiter:typeof e.delimiter>"u"?bt.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:bt.encode,encoder:typeof e.encoder=="function"?e.encoder:bt.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:bt.encodeValuesOnly,filter:s,format:n,formatter:i,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:bt.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:bt.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:bt.strictNullHandling}},dv=function(t,e){var r=t,n=hv(e),i,s;typeof n.filter=="function"?(s=n.filter,r=s("",r)):dr(n.filter)&&(s=n.filter,i=s);var o=[];if(typeof r!="object"||r===null)return"";var a;e&&e.arrayFormat in al?a=e.arrayFormat:e&&"indices"in e?a=e.indices?"indices":"repeat":a="indices";var c=al[a];if(e&&"commaRoundTrip"in e&&typeof e.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var l=c==="comma"&&e&&e.commaRoundTrip;i||(i=Object.keys(r)),n.sort&&i.sort(n.sort);for(var d=Th(),g=0;g0?A+C:""},ti=Ah,uu=Object.prototype.hasOwnProperty,pv=Array.isArray,st={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:ti.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},gv=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},Oh=function(t,e){return t&&typeof t=="string"&&e.comma&&t.indexOf(",")>-1?t.split(","):t},bv="utf8=%26%2310003%3B",vv="utf8=%E2%9C%93",yv=function(e,r){var n={__proto__:null},i=r.ignoreQueryPrefix?e.replace(/^\?/,""):e,s=r.parameterLimit===1/0?void 0:r.parameterLimit,o=i.split(r.delimiter,s),a=-1,c,l=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(A=pv(A)?[A]:A),uu.call(n,C)?n[C]=ti.combine(n[C],A):n[C]=A}return n},mv=function(t,e,r,n){for(var i=n?e:Oh(e,r),s=t.length-1;s>=0;--s){var o,a=t[s];if(a==="[]"&&r.parseArrays)o=[].concat(i);else{o=r.plainObjects?Object.create(null):{};var c=a.charAt(0)==="["&&a.charAt(a.length-1)==="]"?a.slice(1,-1):a,l=parseInt(c,10);!r.parseArrays&&c===""?o={0:i}:!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(o=[],o[l]=i):c!=="__proto__"&&(o[c]=i)}i=o}return i},wv=function(e,r,n,i){if(e){var s=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/,a=/(\[[^[\]]*])/g,c=n.depth>0&&o.exec(s),l=c?s.slice(0,c.index):s,d=[];if(l){if(!n.plainObjects&&uu.call(Object.prototype,l)&&!n.allowPrototypes)return;d.push(l)}for(var g=0;n.depth>0&&(c=a.exec(s))!==null&&g"u"?st.charset:e.charset;return{allowDots:typeof e.allowDots>"u"?st.allowDots:!!e.allowDots,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:st.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:st.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:st.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:st.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:st.comma,decoder:typeof e.decoder=="function"?e.decoder:st.decoder,delimiter:typeof e.delimiter=="string"||ti.isRegExp(e.delimiter)?e.delimiter:st.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:st.depth,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:st.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:st.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:st.plainObjects,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:st.strictNullHandling}},Sv=function(t,e){var r=_v(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?Object.create(null):{};for(var n=typeof t=="string"?yv(t,r):t,i=r.plainObjects?Object.create(null):{},s=Object.keys(n),o=0;on}t.OpaqueType=e,t.HexString=e(),t.AddressString=e(),t.BigIntString=e();function r(n){return Math.floor(n)}t.IntNumber=r,t.RegExpString=e(),function(n){n.CoinbaseWallet="CoinbaseWallet",n.MetaMask="MetaMask",n.Unselected=""}(t.ProviderType||(t.ProviderType={}))})(es);var Rv=Z&&Z.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(J,"__esModule",{value:!0});J.isInIFrame=J.createQrUrl=J.getFavicon=J.range=J.isBigNumber=J.ensureParsedJSONObject=J.ensureBN=J.ensureRegExpString=J.ensureIntNumber=J.ensureBuffer=J.ensureAddressString=J.ensureEvenLengthHexString=J.ensureHexString=J.isHexString=J.prepend0x=J.strip0x=J.has0xPrefix=J.hexStringFromIntNumber=J.intNumberFromHexString=J.bigIntStringFromBN=J.hexStringFromBuffer=J.hexStringToUint8Array=J.uint8ArrayToHex=J.randomBytesHex=void 0;const Mr=Rv(ro),Iv=Cv,mn=Ji,Dt=es,Nh=/^[0-9]*$/,Lh=/^[a-f0-9]*$/;function Av(t){return Ph(crypto.getRandomValues(new Uint8Array(t)))}J.randomBytesHex=Av;function Ph(t){return[...t].map(e=>e.toString(16).padStart(2,"0")).join("")}J.uint8ArrayToHex=Ph;function Tv(t){return new Uint8Array(t.match(/.{1,2}/g).map(e=>parseInt(e,16)))}J.hexStringToUint8Array=Tv;function kv(t,e=!1){const r=t.toString("hex");return(0,Dt.HexString)(e?"0x"+r:r)}J.hexStringFromBuffer=kv;function Ov(t){return(0,Dt.BigIntString)(t.toString(10))}J.bigIntStringFromBN=Ov;function Nv(t){return(0,Dt.IntNumber)(new Mr.default(rs(t,!1),16).toNumber())}J.intNumberFromHexString=Nv;function Lv(t){return(0,Dt.HexString)("0x"+new Mr.default(t).toString(16))}J.hexStringFromIntNumber=Lv;function $u(t){return t.startsWith("0x")||t.startsWith("0X")}J.has0xPrefix=$u;function uo(t){return $u(t)?t.slice(2):t}J.strip0x=uo;function $h(t){return $u(t)?"0x"+t.slice(2):"0x"+t}J.prepend0x=$h;function ts(t){if(typeof t!="string")return!1;const e=uo(t).toLowerCase();return Lh.test(e)}J.isHexString=ts;function Dh(t,e=!1){if(typeof t=="string"){const r=uo(t).toLowerCase();if(Lh.test(r))return(0,Dt.HexString)(e?"0x"+r:r)}throw mn.standardErrors.rpc.invalidParams(`"${String(t)}" is not a hexadecimal string`)}J.ensureHexString=Dh;function rs(t,e=!1){let r=Dh(t,!1);return r.length%2===1&&(r=(0,Dt.HexString)("0"+r)),e?(0,Dt.HexString)("0x"+r):r}J.ensureEvenLengthHexString=rs;function Pv(t){if(typeof t=="string"){const e=uo(t).toLowerCase();if(ts(e)&&e.length===40)return(0,Dt.AddressString)($h(e))}throw mn.standardErrors.rpc.invalidParams(`Invalid Ethereum address: ${String(t)}`)}J.ensureAddressString=Pv;function $v(t){if(Buffer.isBuffer(t))return t;if(typeof t=="string")if(ts(t)){const e=rs(t,!1);return Buffer.from(e,"hex")}else return Buffer.from(t,"utf8");throw mn.standardErrors.rpc.invalidParams(`Not binary data: ${String(t)}`)}J.ensureBuffer=$v;function Bh(t){if(typeof t=="number"&&Number.isInteger(t))return(0,Dt.IntNumber)(t);if(typeof t=="string"){if(Nh.test(t))return(0,Dt.IntNumber)(Number(t));if(ts(t))return(0,Dt.IntNumber)(new Mr.default(rs(t,!1),16).toNumber())}throw mn.standardErrors.rpc.invalidParams(`Not an integer: ${String(t)}`)}J.ensureIntNumber=Bh;function Dv(t){if(t instanceof RegExp)return(0,Dt.RegExpString)(t.toString());throw mn.standardErrors.rpc.invalidParams(`Not a RegExp: ${String(t)}`)}J.ensureRegExpString=Dv;function Bv(t){if(t!==null&&(Mr.default.isBN(t)||jh(t)))return new Mr.default(t.toString(10),10);if(typeof t=="number")return new Mr.default(Bh(t));if(typeof t=="string"){if(Nh.test(t))return new Mr.default(t,10);if(ts(t))return new Mr.default(rs(t,!1),16)}throw mn.standardErrors.rpc.invalidParams(`Not an integer: ${String(t)}`)}J.ensureBN=Bv;function jv(t){if(typeof t=="string")return JSON.parse(t);if(typeof t=="object")return t;throw mn.standardErrors.rpc.invalidParams(`Not a JSON string or an object: ${String(t)}`)}J.ensureParsedJSONObject=jv;function jh(t){if(t==null||typeof t.constructor!="function")return!1;const{constructor:e}=t;return typeof e.config=="function"&&typeof e.EUCLID=="number"}J.isBigNumber=jh;function Fv(t,e){return Array.from({length:e-t},(r,n)=>t+n)}J.range=Fv;function Wv(){const t=document.querySelector('link[sizes="192x192"]')||document.querySelector('link[sizes="180x180"]')||document.querySelector('link[rel="icon"]')||document.querySelector('link[rel="shortcut icon"]'),{protocol:e,host:r}=document.location,n=t?t.getAttribute("href"):null;return!n||n.startsWith("javascript:")?null:n.startsWith("http://")||n.startsWith("https://")||n.startsWith("data:")?n:n.startsWith("//")?e+n:`${e}//${r}${n}`}J.getFavicon=Wv;function Hv(t,e,r,n,i,s){const o=n?"parent-id":"id",a=(0,Iv.stringify)({[o]:t,secret:e,server:r,v:i,chainId:s});return`${r}/#/link?${a}`}J.createQrUrl=Hv;function Vv(){try{return window.frameElement!==null}catch{return!1}}J.isInIFrame=Vv;Object.defineProperty(pi,"__esModule",{value:!0});pi.Session=void 0;const cl=_g,ll=J,fl="session:id",hl="session:secret",dl="session:linked";class Du{constructor(e,r,n,i){this._storage=e,this._id=r||(0,ll.randomBytesHex)(16),this._secret=n||(0,ll.randomBytesHex)(32),this._key=new cl.sha256().update(`${this._id}, ${this._secret} WalletLink`).digest("hex"),this._linked=!!i}static load(e){const r=e.getItem(fl),n=e.getItem(dl),i=e.getItem(hl);return r&&i?new Du(e,r,i,n==="1"):null}static hash(e){return new cl.sha256().update(e).digest("hex")}get id(){return this._id}get secret(){return this._secret}get key(){return this._key}get linked(){return this._linked}set linked(e){this._linked=e,this.persistLinked()}save(){return this._storage.setItem(fl,this._id),this._storage.setItem(hl,this._secret),this.persistLinked(),this}persistLinked(){this._storage.setItem(dl,this._linked?"1":"0")}}pi.Session=Du;var qt={};Object.defineProperty(qt,"__esModule",{value:!0});qt.WalletSDKRelayAbstract=qt.APP_VERSION_KEY=qt.LOCAL_STORAGE_ADDRESSES_KEY=qt.WALLET_USER_NAME_KEY=void 0;const pl=Ji;qt.WALLET_USER_NAME_KEY="walletUsername";qt.LOCAL_STORAGE_ADDRESSES_KEY="Addresses";qt.APP_VERSION_KEY="AppVersion";class Uv{async makeEthereumJSONRPCRequest(e,r){if(!r)throw new Error("Error: No jsonRpcUrl provided");return window.fetch(r,{method:"POST",body:JSON.stringify(e),mode:"cors",headers:{"Content-Type":"application/json"}}).then(n=>n.json()).then(n=>{if(!n)throw pl.standardErrors.rpc.parse({});const i=n,{error:s}=i;if(s)throw(0,pl.serializeError)(s,e.method);return i})}}qt.WalletSDKRelayAbstract=Uv;var cu={exports:{}},Fh=Eu.EventEmitter,ya,gl;function zv(){if(gl)return ya;gl=1;function t(A,P){var N=Object.keys(A);if(Object.getOwnPropertySymbols){var M=Object.getOwnPropertySymbols(A);P&&(M=M.filter(function(R){return Object.getOwnPropertyDescriptor(A,R).enumerable})),N.push.apply(N,M)}return N}function e(A){for(var P=1;P0?this.tail.next=M:this.head=M,this.tail=M,++this.length}},{key:"unshift",value:function(N){var M={data:N,next:this.head};this.length===0&&(this.tail=M),this.head=M,++this.length}},{key:"shift",value:function(){if(this.length!==0){var N=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,N}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(N){if(this.length===0)return"";for(var M=this.head,R=""+M.data;M=M.next;)R+=N+M.data;return R}},{key:"concat",value:function(N){if(this.length===0)return l.alloc(0);for(var M=l.allocUnsafe(N>>>0),R=this.head,O=0;R;)C(R.data,M,O),O+=R.data.length,R=R.next;return M}},{key:"consume",value:function(N,M){var R;return N$.length?$.length:N;if(L===$.length?O+=$:O+=$.slice(0,N),N-=L,N===0){L===$.length?(++R,M.next?this.head=M.next:this.head=this.tail=null):(this.head=M,M.data=$.slice(L));break}++R}return this.length-=R,O}},{key:"_getBuffer",value:function(N){var M=l.allocUnsafe(N),R=this.head,O=1;for(R.data.copy(M),N-=R.data.length;R=R.next;){var $=R.data,L=N>$.length?$.length:N;if($.copy(M,M.length-N,0,L),N-=L,N===0){L===$.length?(++O,R.next?this.head=R.next:this.head=this.tail=null):(this.head=R,R.data=$.slice(L));break}++O}return this.length-=O,M}},{key:b,value:function(N,M){return g(this,e(e({},M),{},{depth:0,customInspect:!1}))}}]),A}(),ya}function qv(t,e){var r=this,n=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return n||i?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(lu,this,t)):process.nextTick(lu,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(s){!e&&s?r._writableState?r._writableState.errorEmitted?process.nextTick($s,r):(r._writableState.errorEmitted=!0,process.nextTick(bl,r,s)):process.nextTick(bl,r,s):e?(process.nextTick($s,r),e(s)):process.nextTick($s,r)}),this)}function bl(t,e){lu(t,e),$s(t)}function $s(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function Gv(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function lu(t,e){t.emit("error",e)}function Jv(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}var Wh={destroy:qv,undestroy:Gv,errorOrDestroy:Jv},wn={};function Zv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var Hh={};function jt(t,e,r){r||(r=Error);function n(s,o,a){return typeof e=="string"?e:e(s,o,a)}var i=function(s){Zv(o,s);function o(a,c,l){return s.call(this,n(a,c,l))||this}return o}(r);i.prototype.name=r.name,i.prototype.code=t,Hh[t]=i}function vl(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map(function(n){return String(n)}),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:r===2?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}else return"of ".concat(e," ").concat(String(t))}function Qv(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function Yv(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function Kv(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}jt("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);jt("ERR_INVALID_ARG_TYPE",function(t,e,r){var n;typeof e=="string"&&Qv(e,"not ")?(n="must not be",e=e.replace(/^not /,"")):n="must be";var i;if(Yv(t," argument"))i="The ".concat(t," ").concat(n," ").concat(vl(e,"type"));else{var s=Kv(t,".")?"property":"argument";i='The "'.concat(t,'" ').concat(s," ").concat(n," ").concat(vl(e,"type"))}return i+=". Received type ".concat(typeof r),i},TypeError);jt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");jt("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});jt("ERR_STREAM_PREMATURE_CLOSE","Premature close");jt("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});jt("ERR_MULTIPLE_CALLBACK","Callback called multiple times");jt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");jt("ERR_STREAM_WRITE_AFTER_END","write after end");jt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);jt("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);jt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");wn.codes=Hh;var Xv=wn.codes.ERR_INVALID_OPT_VALUE;function ey(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function ty(t,e,r,n){var i=ey(e,n,r);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=n?r:"highWaterMark";throw new Xv(s,i)}return Math.floor(i)}return t.objectMode?16:16*1024}var Vh={getHighWaterMark:ty},ry=ny;function ny(t,e){if(ma("noDeprecation"))return t;var r=!1;function n(){if(!r){if(ma("throwDeprecation"))throw new Error(e);ma("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}return n}function ma(t){try{if(!globalThis.localStorage)return!1}catch{return!1}var e=globalThis.localStorage[t];return e==null?!1:String(e).toLowerCase()==="true"}var wa,yl;function Uh(){if(yl)return wa;yl=1,wa=z;function t(I){var k=this;this.next=null,this.entry=null,this.finish=function(){q(k,I)}}var e;z.WritableState=B;var r={deprecate:ry},n=Fh,i=Gi.Buffer,s=(typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(I){return i.from(I)}function a(I){return i.isBuffer(I)||I instanceof s}var c=Wh,l=Vh,d=l.getHighWaterMark,g=wn.codes,b=g.ERR_INVALID_ARG_TYPE,C=g.ERR_METHOD_NOT_IMPLEMENTED,A=g.ERR_MULTIPLE_CALLBACK,P=g.ERR_STREAM_CANNOT_PIPE,N=g.ERR_STREAM_DESTROYED,M=g.ERR_STREAM_NULL_VALUES,R=g.ERR_STREAM_WRITE_AFTER_END,O=g.ERR_UNKNOWN_ENCODING,$=c.errorOrDestroy;Gt(z,n);function L(){}function B(I,k,D){e=e||ri(),I=I||{},typeof D!="boolean"&&(D=k instanceof e),this.objectMode=!!I.objectMode,D&&(this.objectMode=this.objectMode||!!I.writableObjectMode),this.highWaterMark=d(this,I,"writableHighWaterMark",D),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var V=I.decodeStrings===!1;this.decodeStrings=!V,this.defaultEncoding=I.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(se){p(k,se)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=I.emitClose!==!1,this.autoDestroy=!!I.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new t(this)}B.prototype.getBuffer=function(){for(var k=this.bufferedRequest,D=[];k;)D.push(k),k=k.next;return D},function(){try{Object.defineProperty(B.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var G;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(G=Function.prototype[Symbol.hasInstance],Object.defineProperty(z,Symbol.hasInstance,{value:function(k){return G.call(this,k)?!0:this!==z?!1:k&&k._writableState instanceof B}})):G=function(k){return k instanceof this};function z(I){e=e||ri();var k=this instanceof e;if(!k&&!G.call(z,this))return new z(I);this._writableState=new B(I,this,k),this.writable=!0,I&&(typeof I.write=="function"&&(this._write=I.write),typeof I.writev=="function"&&(this._writev=I.writev),typeof I.destroy=="function"&&(this._destroy=I.destroy),typeof I.final=="function"&&(this._final=I.final)),n.call(this)}z.prototype.pipe=function(){$(this,new P)};function W(I,k){var D=new R;$(I,D),process.nextTick(k,D)}function K(I,k,D,V){var se;return D===null?se=new M:typeof D!="string"&&!k.objectMode&&(se=new b("chunk",["string","Buffer"],D)),se?($(I,se),process.nextTick(V,se),!1):!0}z.prototype.write=function(I,k,D){var V=this._writableState,se=!1,_=!V.objectMode&&a(I);return _&&!i.isBuffer(I)&&(I=o(I)),typeof k=="function"&&(D=k,k=null),_?k="buffer":k||(k=V.defaultEncoding),typeof D!="function"&&(D=L),V.ending?W(this,D):(_||K(this,V,I,D))&&(V.pendingcb++,se=X(this,V,_,I,k,D)),se},z.prototype.cork=function(){this._writableState.corked++},z.prototype.uncork=function(){var I=this._writableState;I.corked&&(I.corked--,!I.writing&&!I.corked&&!I.bufferProcessing&&I.bufferedRequest&&x(this,I))},z.prototype.setDefaultEncoding=function(k){if(typeof k=="string"&&(k=k.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((k+"").toLowerCase())>-1))throw new O(k);return this._writableState.defaultEncoding=k,this},Object.defineProperty(z.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Y(I,k,D){return!I.objectMode&&I.decodeStrings!==!1&&typeof k=="string"&&(k=i.from(k,D)),k}Object.defineProperty(z.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function X(I,k,D,V,se,_){if(!D){var S=Y(k,V,se);V!==S&&(D=!0,se="buffer",V=S)}var F=k.objectMode?1:V.length;k.length+=F;var H=k.length */var wl;function iy(){return wl||(wl=1,function(t,e){var r=Gi,n=r.Buffer;function i(o,a){for(var c in o)a[c]=o[c]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=r:(i(r,e),e.Buffer=s);function s(o,a,c){return n(o,a,c)}s.prototype=Object.create(n.prototype),i(n,s),s.from=function(o,a,c){if(typeof o=="number")throw new TypeError("Argument must not be a number");return n(o,a,c)},s.alloc=function(o,a,c){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=n(o);return a!==void 0?typeof c=="string"?l.fill(a,c):l.fill(a):l.fill(0),l},s.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n(o)},s.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(o)}}(_s,_s.exports)),_s.exports}var _l;function Sl(){if(_l)return Sa;_l=1;var t=iy().Buffer,e=t.isEncoding||function(M){switch(M=""+M,M&&M.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r(M){if(!M)return"utf8";for(var R;;)switch(M){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return M;default:if(R)return;M=(""+M).toLowerCase(),R=!0}}function n(M){var R=r(M);if(typeof R!="string"&&(t.isEncoding===e||!e(M)))throw new Error("Unknown encoding: "+M);return R||M}Sa.StringDecoder=i;function i(M){this.encoding=n(M);var R;switch(this.encoding){case"utf16le":this.text=g,this.end=b,R=4;break;case"utf8":this.fillLast=c,R=4;break;case"base64":this.text=C,this.end=A,R=3;break;default:this.write=P,this.end=N;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=t.allocUnsafe(R)}i.prototype.write=function(M){if(M.length===0)return"";var R,O;if(this.lastNeed){if(R=this.fillLast(M),R===void 0)return"";O=this.lastNeed,this.lastNeed=0}else O=0;return O>5===6?2:M>>4===14?3:M>>3===30?4:M>>6===2?-1:-2}function o(M,R,O){var $=R.length-1;if($=0?(L>0&&(M.lastNeed=L-1),L):--$=0?(L>0&&(M.lastNeed=L-2),L):--$=0?(L>0&&(L===2?L=0:M.lastNeed=L-3),L):0))}function a(M,R,O){if((R[0]&192)!==128)return M.lastNeed=0,"�";if(M.lastNeed>1&&R.length>1){if((R[1]&192)!==128)return M.lastNeed=1,"�";if(M.lastNeed>2&&R.length>2&&(R[2]&192)!==128)return M.lastNeed=2,"�"}}function c(M){var R=this.lastTotal-this.lastNeed,O=a(this,M);if(O!==void 0)return O;if(this.lastNeed<=M.length)return M.copy(this.lastChar,R,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);M.copy(this.lastChar,R,0,M.length),this.lastNeed-=M.length}function l(M,R){var O=o(this,M,R);if(!this.lastNeed)return M.toString("utf8",R);this.lastTotal=O;var $=M.length-(O-this.lastNeed);return M.copy(this.lastChar,0,$),M.toString("utf8",R,$)}function d(M){var R=M&&M.length?this.write(M):"";return this.lastNeed?R+"�":R}function g(M,R){if((M.length-R)%2===0){var O=M.toString("utf16le",R);if(O){var $=O.charCodeAt(O.length-1);if($>=55296&&$<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=M[M.length-2],this.lastChar[1]=M[M.length-1],O.slice(0,-1)}return O}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=M[M.length-1],M.toString("utf16le",R,M.length-1)}function b(M){var R=M&&M.length?this.write(M):"";if(this.lastNeed){var O=this.lastTotal-this.lastNeed;return R+this.lastChar.toString("utf16le",0,O)}return R}function C(M,R){var O=(M.length-R)%3;return O===0?M.toString("base64",R):(this.lastNeed=3-O,this.lastTotal=3,O===1?this.lastChar[0]=M[M.length-1]:(this.lastChar[0]=M[M.length-2],this.lastChar[1]=M[M.length-1]),M.toString("base64",R,M.length-O))}function A(M){var R=M&&M.length?this.write(M):"";return this.lastNeed?R+this.lastChar.toString("base64",0,3-this.lastNeed):R}function P(M){return M.toString(this.encoding)}function N(M){return M&&M.length?this.write(M):""}return Sa}var El=wn.codes.ERR_STREAM_PREMATURE_CLOSE;function sy(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,n=new Array(r),i=0;i0)if(typeof S!="string"&&!ie.objectMode&&Object.getPrototypeOf(S)!==n.prototype&&(S=s(S)),H)ie.endEmitted?L(_,new M):Y(_,ie,S,!0);else if(ie.ended)L(_,new P);else{if(ie.destroyed)return!1;ie.reading=!1,ie.decoder&&!F?(S=ie.decoder.write(S),ie.objectMode||S.length!==0?Y(_,ie,S,!1):x(_,ie)):Y(_,ie,S,!1)}else H||(ie.reading=!1,x(_,ie))}return!ie.ended&&(ie.length=v?_=v:(_--,_|=_>>>1,_|=_>>>2,_|=_>>>4,_|=_>>>8,_|=_>>>16,_++),_}function h(_,S){return _<=0||S.length===0&&S.ended?0:S.objectMode?1:_!==_?S.flowing&&S.length?S.buffer.head.data.length:S.length:(_>S.highWaterMark&&(S.highWaterMark=u(_)),_<=S.length?_:S.ended?S.length:(S.needReadable=!0,0))}W.prototype.read=function(_){c("read",_),_=parseInt(_,10);var S=this._readableState,F=_;if(_!==0&&(S.emittedReadable=!1),_===0&&S.needReadable&&((S.highWaterMark!==0?S.length>=S.highWaterMark:S.length>0)||S.ended))return c("read: emitReadable",S.length,S.ended),S.length===0&&S.ended?D(this):y(this),null;if(_=h(_,S),_===0&&S.ended)return S.length===0&&D(this),null;var H=S.needReadable;c("need readable",H),(S.length===0||S.length-_0?re=k(_,S):re=null,re===null?(S.needReadable=S.length<=S.highWaterMark,_=0):(S.length-=_,S.awaitDrain=0),S.length===0&&(S.ended||(S.needReadable=!0),F!==_&&S.ended&&D(this)),re!==null&&this.emit("data",re),re};function p(_,S){if(c("onEofChunk"),!S.ended){if(S.decoder){var F=S.decoder.end();F&&F.length&&(S.buffer.push(F),S.length+=S.objectMode?1:F.length)}S.ended=!0,S.sync?y(_):(S.needReadable=!1,S.emittedReadable||(S.emittedReadable=!0,w(_)))}}function y(_){var S=_._readableState;c("emitReadable",S.needReadable,S.emittedReadable),S.needReadable=!1,S.emittedReadable||(c("emitReadable",S.flowing),S.emittedReadable=!0,process.nextTick(w,_))}function w(_){var S=_._readableState;c("emitReadable_",S.destroyed,S.length,S.ended),!S.destroyed&&(S.length||S.ended)&&(_.emit("readable"),S.emittedReadable=!1),S.needReadable=!S.flowing&&!S.ended&&S.length<=S.highWaterMark,I(_)}function x(_,S){S.readingMore||(S.readingMore=!0,process.nextTick(T,_,S))}function T(_,S){for(;!S.reading&&!S.ended&&(S.length1&&se(H.pipes,_)!==-1)&&!we&&(c("false write response, pause",H.awaitDrain),H.awaitDrain++),F.pause())}function ve(pe){c("onerror",pe),be(),_.removeListener("error",ve),e(_,"error")===0&&L(_,pe)}G(_,"error",ve);function ye(){_.removeListener("finish",lr),be()}_.once("close",ye);function lr(){c("onfinish"),_.removeListener("close",ye),be()}_.once("finish",lr);function be(){c("unpipe"),F.unpipe(_)}return _.emit("pipe",F),H.flowing||(c("pipe resume"),F.resume()),_};function m(_){return function(){var F=_._readableState;c("pipeOnDrain",F.awaitDrain),F.awaitDrain&&F.awaitDrain--,F.awaitDrain===0&&e(_,"data")&&(F.flowing=!0,I(_))}}W.prototype.unpipe=function(_){var S=this._readableState,F={hasUnpiped:!1};if(S.pipesCount===0)return this;if(S.pipesCount===1)return _&&_!==S.pipes?this:(_||(_=S.pipes),S.pipes=null,S.pipesCount=0,S.flowing=!1,_&&_.emit("unpipe",this,F),this);if(!_){var H=S.pipes,re=S.pipesCount;S.pipes=null,S.pipesCount=0,S.flowing=!1;for(var ie=0;ie0,H.flowing!==!1&&this.resume()):_==="readable"&&!H.endEmitted&&!H.readableListening&&(H.readableListening=H.needReadable=!0,H.flowing=!1,H.emittedReadable=!1,c("on readable",H.length,H.reading),H.length?y(this):H.reading||process.nextTick(E,this)),F},W.prototype.addListener=W.prototype.on,W.prototype.removeListener=function(_,S){var F=r.prototype.removeListener.call(this,_,S);return _==="readable"&&process.nextTick(f,this),F},W.prototype.removeAllListeners=function(_){var S=r.prototype.removeAllListeners.apply(this,arguments);return(_==="readable"||_===void 0)&&process.nextTick(f,this),S};function f(_){var S=_._readableState;S.readableListening=_.listenerCount("readable")>0,S.resumeScheduled&&!S.paused?S.flowing=!0:_.listenerCount("data")>0&&_.resume()}function E(_){c("readable nexttick read 0"),_.read(0)}W.prototype.resume=function(){var _=this._readableState;return _.flowing||(c("resume"),_.flowing=!_.readableListening,U(this,_)),_.paused=!1,this};function U(_,S){S.resumeScheduled||(S.resumeScheduled=!0,process.nextTick(q,_,S))}function q(_,S){c("resume",S.reading),S.reading||_.read(0),S.resumeScheduled=!1,_.emit("resume"),I(_),S.flowing&&!S.reading&&_.read(0)}W.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(c("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function I(_){var S=_._readableState;for(c("flow",S.flowing);S.flowing&&_.read()!==null;);}W.prototype.wrap=function(_){var S=this,F=this._readableState,H=!1;_.on("end",function(){if(c("wrapped end"),F.decoder&&!F.ended){var ee=F.decoder.end();ee&&ee.length&&S.push(ee)}S.push(null)}),_.on("data",function(ee){if(c("wrapped data"),F.decoder&&(ee=F.decoder.write(ee)),!(F.objectMode&&ee==null)&&!(!F.objectMode&&(!ee||!ee.length))){var de=S.push(ee);de||(H=!0,_.pause())}});for(var re in _)this[re]===void 0&&typeof _[re]=="function"&&(this[re]=function(de){return function(){return _[de].apply(_,arguments)}}(re));for(var ie=0;ie=S.length?(S.decoder?F=S.buffer.join(""):S.buffer.length===1?F=S.buffer.first():F=S.buffer.concat(S.length),S.buffer.clear()):F=S.buffer.consume(_,S.decoder),F}function D(_){var S=_._readableState;c("endReadable",S.endEmitted),S.endEmitted||(S.ended=!0,process.nextTick(V,S,_))}function V(_,S){if(c("endReadableNT",_.endEmitted,_.length),!_.endEmitted&&_.length===0&&(_.endEmitted=!0,S.readable=!1,S.emit("end"),_.autoDestroy)){var F=S._writableState;(!F||F.autoDestroy&&F.finished)&&S.destroy()}}typeof Symbol=="function"&&(W.from=function(_,S){return $===void 0&&($=cy()),$(W,_,S)});function se(_,S){for(var F=0,H=_.length;F0;return _y(o,c,l,function(d){i||(i=d),d&&s.forEach(Al),!c&&(s.forEach(Al),n(i))})});return e.reduce(Sy)}var xy=My;(function(t,e){e=t.exports=qh(),e.Stream=e,e.Readable=e,e.Writable=Uh(),e.Duplex=ri(),e.Transform=Gh,e.PassThrough=by,e.finished=Bu,e.pipeline=xy})(cu,cu.exports);var Qh=cu.exports;const{Transform:Cy}=Qh;var Ry=t=>class Yh extends Cy{constructor(r,n,i,s,o){super(o),this._rate=r,this._capacity=n,this._delimitedSuffix=i,this._hashBitLength=s,this._options=o,this._state=new t,this._state.initialize(r,n),this._finalized=!1}_transform(r,n,i){let s=null;try{this.update(r,n)}catch(o){s=o}i(s)}_flush(r){let n=null;try{this.push(this.digest())}catch(i){n=i}r(n)}update(r,n){if(!Buffer.isBuffer(r)&&typeof r!="string")throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Digest already called");return Buffer.isBuffer(r)||(r=Buffer.from(r,n)),this._state.absorb(r),this}digest(r){if(this._finalized)throw new Error("Digest already called");this._finalized=!0,this._delimitedSuffix&&this._state.absorbLastFewBits(this._delimitedSuffix);let n=this._state.squeeze(this._hashBitLength/8);return r!==void 0&&(n=n.toString(r)),this._resetState(),n}_resetState(){return this._state.initialize(this._rate,this._capacity),this}_clone(){const r=new Yh(this._rate,this._capacity,this._delimitedSuffix,this._hashBitLength,this._options);return this._state.copy(r._state),r._finalized=this._finalized,r}};const{Transform:Iy}=Qh;var Ay=t=>class Kh extends Iy{constructor(r,n,i,s){super(s),this._rate=r,this._capacity=n,this._delimitedSuffix=i,this._options=s,this._state=new t,this._state.initialize(r,n),this._finalized=!1}_transform(r,n,i){let s=null;try{this.update(r,n)}catch(o){s=o}i(s)}_flush(){}_read(r){this.push(this.squeeze(r))}update(r,n){if(!Buffer.isBuffer(r)&&typeof r!="string")throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Squeeze already called");return Buffer.isBuffer(r)||(r=Buffer.from(r,n)),this._state.absorb(r),this}squeeze(r,n){this._finalized||(this._finalized=!0,this._state.absorbLastFewBits(this._delimitedSuffix));let i=this._state.squeeze(r);return n!==void 0&&(i=i.toString(n)),i}_resetState(){return this._state.initialize(this._rate,this._capacity),this}_clone(){const r=new Kh(this._rate,this._capacity,this._delimitedSuffix,this._options);return this._state.copy(r._state),r._finalized=this._finalized,r}};const Ty=Ry,ky=Ay;var Oy=function(t){const e=Ty(t),r=ky(t);return function(n,i){switch(typeof n=="string"?n.toLowerCase():n){case"keccak224":return new e(1152,448,null,224,i);case"keccak256":return new e(1088,512,null,256,i);case"keccak384":return new e(832,768,null,384,i);case"keccak512":return new e(576,1024,null,512,i);case"sha3-224":return new e(1152,448,6,224,i);case"sha3-256":return new e(1088,512,6,256,i);case"sha3-384":return new e(832,768,6,384,i);case"sha3-512":return new e(576,1024,6,512,i);case"shake128":return new r(1344,256,31,i);case"shake256":return new r(1088,512,31,i);default:throw new Error("Invald algorithm: "+n)}}},Xh={};const Tl=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648];Xh.p1600=function(t){for(let e=0;e<24;++e){const r=t[0]^t[10]^t[20]^t[30]^t[40],n=t[1]^t[11]^t[21]^t[31]^t[41],i=t[2]^t[12]^t[22]^t[32]^t[42],s=t[3]^t[13]^t[23]^t[33]^t[43],o=t[4]^t[14]^t[24]^t[34]^t[44],a=t[5]^t[15]^t[25]^t[35]^t[45],c=t[6]^t[16]^t[26]^t[36]^t[46],l=t[7]^t[17]^t[27]^t[37]^t[47],d=t[8]^t[18]^t[28]^t[38]^t[48],g=t[9]^t[19]^t[29]^t[39]^t[49];let b=d^(i<<1|s>>>31),C=g^(s<<1|i>>>31);const A=t[0]^b,P=t[1]^C,N=t[10]^b,M=t[11]^C,R=t[20]^b,O=t[21]^C,$=t[30]^b,L=t[31]^C,B=t[40]^b,G=t[41]^C;b=r^(o<<1|a>>>31),C=n^(a<<1|o>>>31);const z=t[2]^b,W=t[3]^C,K=t[12]^b,Y=t[13]^C,X=t[22]^b,v=t[23]^C,u=t[32]^b,h=t[33]^C,p=t[42]^b,y=t[43]^C;b=i^(c<<1|l>>>31),C=s^(l<<1|c>>>31);const w=t[4]^b,x=t[5]^C,T=t[14]^b,m=t[15]^C,f=t[24]^b,E=t[25]^C,U=t[34]^b,q=t[35]^C,I=t[44]^b,k=t[45]^C;b=o^(d<<1|g>>>31),C=a^(g<<1|d>>>31);const D=t[6]^b,V=t[7]^C,se=t[16]^b,_=t[17]^C,S=t[26]^b,F=t[27]^C,H=t[36]^b,re=t[37]^C,ie=t[46]^b,ee=t[47]^C;b=c^(r<<1|n>>>31),C=l^(n<<1|r>>>31);const de=t[8]^b,Qt=t[9]^C,we=t[18]^b,Se=t[19]^C,mr=t[28]^b,ve=t[29]^C,ye=t[38]^b,lr=t[39]^C,be=t[48]^b,pe=t[49]^C,xt=A,Ee=P,Me=M<<4|N>>>28,Mn=N<<4|M>>>28,xe=R<<3|O>>>29,Ce=O<<3|R>>>29,xn=L<<9|$>>>23,Re=$<<9|L>>>23,Ie=B<<18|G>>>14,Cn=G<<18|B>>>14,Ae=z<<1|W>>>31,Te=W<<1|z>>>31,Rn=Y<<12|K>>>20,ke=K<<12|Y>>>20,Oe=X<<10|v>>>22,In=v<<10|X>>>22,Ne=h<<13|u>>>19,Le=u<<13|h>>>19,An=p<<2|y>>>30,Pe=y<<2|p>>>30,$e=x<<30|w>>>2,Tn=w<<30|x>>>2,De=T<<6|m>>>26,Be=m<<6|T>>>26,kn=E<<11|f>>>21,je=f<<11|E>>>21,Fe=U<<15|q>>>17,On=q<<15|U>>>17,We=k<<29|I>>>3,He=I<<29|k>>>3,Nn=D<<28|V>>>4,Ve=V<<28|D>>>4,Ue=_<<23|se>>>9,Ln=se<<23|_>>>9,ze=S<<25|F>>>7,qe=F<<25|S>>>7,$r=H<<21|re>>>11,Dr=re<<21|H>>>11,Br=ee<<24|ie>>>8,jr=ie<<24|ee>>>8,Fr=de<<27|Qt>>>5,Wr=Qt<<27|de>>>5,Hr=we<<20|Se>>>12,Vr=Se<<20|we>>>12,Ur=ve<<7|mr>>>25,zr=mr<<7|ve>>>25,qr=ye<<8|lr>>>24,Gr=lr<<8|ye>>>24,Jr=be<<14|pe>>>18,Zr=pe<<14|be>>>18;t[0]=xt^~Rn&kn,t[1]=Ee^~ke&je,t[10]=Nn^~Hr&xe,t[11]=Ve^~Vr&Ce,t[20]=Ae^~De&ze,t[21]=Te^~Be&qe,t[30]=Fr^~Me&Oe,t[31]=Wr^~Mn&In,t[40]=$e^~Ue&Ur,t[41]=Tn^~Ln&zr,t[2]=Rn^~kn&$r,t[3]=ke^~je&Dr,t[12]=Hr^~xe&Ne,t[13]=Vr^~Ce&Le,t[22]=De^~ze&qr,t[23]=Be^~qe&Gr,t[32]=Me^~Oe&Fe,t[33]=Mn^~In&On,t[42]=Ue^~Ur&xn,t[43]=Ln^~zr&Re,t[4]=kn^~$r&Jr,t[5]=je^~Dr&Zr,t[14]=xe^~Ne&We,t[15]=Ce^~Le&He,t[24]=ze^~qr&Ie,t[25]=qe^~Gr&Cn,t[34]=Oe^~Fe&Br,t[35]=In^~On&jr,t[44]=Ur^~xn&An,t[45]=zr^~Re&Pe,t[6]=$r^~Jr&xt,t[7]=Dr^~Zr&Ee,t[16]=Ne^~We&Nn,t[17]=Le^~He&Ve,t[26]=qr^~Ie&Ae,t[27]=Gr^~Cn&Te,t[36]=Fe^~Br&Fr,t[37]=On^~jr&Wr,t[46]=xn^~An&$e,t[47]=Re^~Pe&Tn,t[8]=Jr^~xt&Rn,t[9]=Zr^~Ee&ke,t[18]=We^~Nn&Hr,t[19]=He^~Ve&Vr,t[28]=Ie^~Ae&De,t[29]=Cn^~Te&Be,t[38]=Br^~Fr&Me,t[39]=jr^~Wr&Mn,t[48]=An^~$e&Ue,t[49]=Pe^~Tn&Ln,t[0]^=Tl[e*2],t[1]^=Tl[e*2+1]}};const Us=Xh;function vi(){this.state=[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],this.blockSize=null,this.count=0,this.squeezing=!1}vi.prototype.initialize=function(t,e){for(let r=0;r<50;++r)this.state[r]=0;this.blockSize=t/8,this.count=0,this.squeezing=!1};vi.prototype.absorb=function(t){for(let e=0;e>>8*(this.count%4)&255,this.count+=1,this.count===this.blockSize&&(Us.p1600(this.state),this.count=0);return e};vi.prototype.copy=function(t){for(let e=0;e<50;++e)t.state[e]=this.state[e];t.blockSize=this.blockSize,t.count=this.count,t.squeezing=this.squeezing};var Ny=vi,Ly=Oy(Ny);const Py=Ly,$y=ro;function ed(t){return Buffer.allocUnsafe(t).fill(0)}function td(t,e,r){const n=ed(e);return t=fo(t),r?t.length"u")throw new Error("Not an array?");if(r=od(t),r!=="dynamic"&&r!==0&&e.length>r)throw new Error("Elements exceed array size: "+r);i=[],t=t.slice(0,t.lastIndexOf("[")),typeof e=="string"&&(e=JSON.parse(e));for(s in e)i.push(tr(t,e[s]));if(r==="dynamic"){var o=tr("uint256",e.length);i.unshift(o)}return Buffer.concat(i)}else{if(t==="bytes")return e=new Buffer(e),i=Buffer.concat([tr("uint256",e.length),e]),e.length%32!==0&&(i=Buffer.concat([i,ln.zeros(32-e.length%32)])),i;if(t.startsWith("bytes")){if(r=Jn(t),r<1||r>32)throw new Error("Invalid bytes width: "+r);return ln.setLengthRight(e,32)}else if(t.startsWith("uint")){if(r=Jn(t),r%8||r<8||r>256)throw new Error("Invalid uint width: "+r);if(n=en(e),n.bitLength()>r)throw new Error("Supplied uint exceeds width: "+r+" vs "+n.bitLength());if(n<0)throw new Error("Supplied uint is negative");return n.toArrayLike(Buffer,"be",32)}else if(t.startsWith("int")){if(r=Jn(t),r%8||r<8||r>256)throw new Error("Invalid int width: "+r);if(n=en(e),n.bitLength()>r)throw new Error("Supplied int exceeds width: "+r+" vs "+n.bitLength());return n.toTwos(256).toArrayLike(Buffer,"be",32)}else if(t.startsWith("ufixed")){if(r=kl(t),n=en(e),n<0)throw new Error("Supplied ufixed is negative");return tr("uint256",n.mul(new sn(2).pow(new sn(r[1]))))}else if(t.startsWith("fixed"))return r=kl(t),tr("int256",en(e).mul(new sn(2).pow(new sn(r[1]))))}throw new Error("Unsupported or invalid type: "+t)}function Wy(t){return t==="string"||t==="bytes"||od(t)==="dynamic"}function Hy(t){return t.lastIndexOf("]")===t.length-1}function Vy(t,e){var r=[],n=[],i=32*t.length;for(var s in t){var o=sd(t[s]),a=e[s],c=tr(o,a);Wy(o)?(r.push(tr("uint256",i)),n.push(c),i+=c.length):r.push(c)}return Buffer.concat(r.concat(n))}function ad(t,e){if(t.length!==e.length)throw new Error("Number of types are not matching the values");for(var r,n,i=[],s=0;s32)throw new Error("Invalid bytes width: "+r);i.push(ln.setLengthRight(a,r))}else if(o.startsWith("uint")){if(r=Jn(o),r%8||r<8||r>256)throw new Error("Invalid uint width: "+r);if(n=en(a),n.bitLength()>r)throw new Error("Supplied uint exceeds width: "+r+" vs "+n.bitLength());i.push(n.toArrayLike(Buffer,"be",r/8))}else if(o.startsWith("int")){if(r=Jn(o),r%8||r<8||r>256)throw new Error("Invalid int width: "+r);if(n=en(a),n.bitLength()>r)throw new Error("Supplied int exceeds width: "+r+" vs "+n.bitLength());i.push(n.toTwos(r).toArrayLike(Buffer,"be",r/8))}else throw new Error("Unsupported or invalid type: "+o)}return Buffer.concat(i)}function Uy(t,e){return ln.keccak(ad(t,e))}var zy={rawEncode:Vy,solidityPack:ad,soliditySHA3:Uy};const Vt=id,Di=zy,ud={type:"object",properties:{types:{type:"object",additionalProperties:{type:"array",items:{type:"object",properties:{name:{type:"string"},type:{type:"string"}},required:["name","type"]}}},primaryType:{type:"string"},domain:{type:"object"},message:{type:"object"}},required:["types","primaryType","domain","message"]},Ra={encodeData(t,e,r,n=!0){const i=["bytes32"],s=[this.hashType(t,r)];if(n){const o=(a,c,l)=>{if(r[c]!==void 0)return["bytes32",l==null?"0x0000000000000000000000000000000000000000000000000000000000000000":Vt.keccak(this.encodeData(c,l,r,n))];if(l===void 0)throw new Error(`missing value for field ${a} of type ${c}`);if(c==="bytes")return["bytes32",Vt.keccak(l)];if(c==="string")return typeof l=="string"&&(l=Buffer.from(l,"utf8")),["bytes32",Vt.keccak(l)];if(c.lastIndexOf("]")===c.length-1){const d=c.slice(0,c.lastIndexOf("[")),g=l.map(b=>o(a,d,b));return["bytes32",Vt.keccak(Di.rawEncode(g.map(([b])=>b),g.map(([,b])=>b)))]}return[c,l]};for(const a of r[t]){const[c,l]=o(a.name,a.type,e[a.name]);i.push(c),s.push(l)}}else for(const o of r[t]){let a=e[o.name];if(a!==void 0)if(o.type==="bytes")i.push("bytes32"),a=Vt.keccak(a),s.push(a);else if(o.type==="string")i.push("bytes32"),typeof a=="string"&&(a=Buffer.from(a,"utf8")),a=Vt.keccak(a),s.push(a);else if(r[o.type]!==void 0)i.push("bytes32"),a=Vt.keccak(this.encodeData(o.type,a,r,n)),s.push(a);else{if(o.type.lastIndexOf("]")===o.type.length-1)throw new Error("Arrays currently unimplemented in encodeData");i.push(o.type),s.push(a)}}return Di.rawEncode(i,s)},encodeType(t,e){let r="",n=this.findTypeDependencies(t,e).filter(i=>i!==t);n=[t].concat(n.sort());for(const i of n){if(!e[i])throw new Error("No type definition specified: "+i);r+=i+"("+e[i].map(({name:o,type:a})=>a+" "+o).join(",")+")"}return r},findTypeDependencies(t,e,r=[]){if(t=t.match(/^\w*/)[0],r.includes(t)||e[t]===void 0)return r;r.push(t);for(const n of e[t])for(const i of this.findTypeDependencies(n.type,e,r))!r.includes(i)&&r.push(i);return r},hashStruct(t,e,r,n=!0){return Vt.keccak(this.encodeData(t,e,r,n))},hashType(t,e){return Vt.keccak(this.encodeType(t,e))},sanitizeData(t){const e={};for(const r in ud.properties)t[r]&&(e[r]=t[r]);return e.types&&(e.types=Object.assign({EIP712Domain:[]},e.types)),e},hash(t,e=!0){const r=this.sanitizeData(t),n=[Buffer.from("1901","hex")];return n.push(this.hashStruct("EIP712Domain",r.domain,r.types,e)),r.primaryType!=="EIP712Domain"&&n.push(this.hashStruct(r.primaryType,r.message,r.types,e)),Vt.keccak(Buffer.concat(n))}};var qy={TYPED_MESSAGE_SCHEMA:ud,TypedDataUtils:Ra,hashForSignTypedDataLegacy:function(t){return Gy(t.data)},hashForSignTypedData_v3:function(t){return Ra.hash(t.data,!1)},hashForSignTypedData_v4:function(t){return Ra.hash(t.data)}};function Gy(t){const e=new Error("Expect argument to be non-empty array");if(typeof t!="object"||!t.length)throw e;const r=t.map(function(s){return s.type==="bytes"?Vt.toBuffer(s.value):s.value}),n=t.map(function(s){return s.type}),i=t.map(function(s){if(!s.name)throw e;return s.type+" "+s.name});return Di.soliditySHA3(["bytes32","bytes32"],[Di.soliditySHA3(new Array(t.length).fill("string"),i),Di.soliditySHA3(n,r)])}var ni={};Object.defineProperty(ni,"__esModule",{value:!0});ni.filterFromParam=ni.FilterPolyfill=void 0;const Vn=es,yt=J,Jy=5*60*1e3,tn={jsonrpc:"2.0",id:0};class Zy{constructor(e){this.logFilters=new Map,this.blockFilters=new Set,this.pendingTransactionFilters=new Set,this.cursors=new Map,this.timeouts=new Map,this.nextFilterId=(0,Vn.IntNumber)(1),this.provider=e}async newFilter(e){const r=cd(e),n=this.makeFilterId(),i=await this.setInitialCursorPosition(n,r.fromBlock);return console.log(`Installing new log filter(${n}):`,r,"initial cursor position:",i),this.logFilters.set(n,r),this.setFilterTimeout(n),(0,yt.hexStringFromIntNumber)(n)}async newBlockFilter(){const e=this.makeFilterId(),r=await this.setInitialCursorPosition(e,"latest");return console.log(`Installing new block filter (${e}) with initial cursor position:`,r),this.blockFilters.add(e),this.setFilterTimeout(e),(0,yt.hexStringFromIntNumber)(e)}async newPendingTransactionFilter(){const e=this.makeFilterId(),r=await this.setInitialCursorPosition(e,"latest");return console.log(`Installing new block filter (${e}) with initial cursor position:`,r),this.pendingTransactionFilters.add(e),this.setFilterTimeout(e),(0,yt.hexStringFromIntNumber)(e)}uninstallFilter(e){const r=(0,yt.intNumberFromHexString)(e);return console.log(`Uninstalling filter (${r})`),this.deleteFilter(r),!0}getFilterChanges(e){const r=(0,yt.intNumberFromHexString)(e);return this.timeouts.has(r)&&this.setFilterTimeout(r),this.logFilters.has(r)?this.getLogFilterChanges(r):this.blockFilters.has(r)?this.getBlockFilterChanges(r):this.pendingTransactionFilters.has(r)?this.getPendingTransactionFilterChanges(r):Promise.resolve(Ss())}async getFilterLogs(e){const r=(0,yt.intNumberFromHexString)(e),n=this.logFilters.get(r);return n?this.sendAsyncPromise(Object.assign(Object.assign({},tn),{method:"eth_getLogs",params:[Ol(n)]})):Ss()}makeFilterId(){return(0,Vn.IntNumber)(++this.nextFilterId)}sendAsyncPromise(e){return new Promise((r,n)=>{this.provider.sendAsync(e,(i,s)=>{if(i)return n(i);if(Array.isArray(s)||s==null)return n(new Error(`unexpected response received: ${JSON.stringify(s)}`));r(s)})})}deleteFilter(e){console.log(`Deleting filter (${e})`),this.logFilters.delete(e),this.blockFilters.delete(e),this.pendingTransactionFilters.delete(e),this.cursors.delete(e),this.timeouts.delete(e)}async getLogFilterChanges(e){const r=this.logFilters.get(e),n=this.cursors.get(e);if(!n||!r)return Ss();const i=await this.getCurrentBlockHeight(),s=r.toBlock==="latest"?i:r.toBlock;if(n>i||n>r.toBlock)return Es();console.log(`Fetching logs from ${n} to ${s} for filter ${e}`);const o=await this.sendAsyncPromise(Object.assign(Object.assign({},tn),{method:"eth_getLogs",params:[Ol(Object.assign(Object.assign({},r),{fromBlock:n,toBlock:s}))]}));if(Array.isArray(o.result)){const a=o.result.map(l=>(0,yt.intNumberFromHexString)(l.blockNumber||"0x0")),c=Math.max(...a);if(c&&c>n){const l=(0,Vn.IntNumber)(c+1);console.log(`Moving cursor position for filter (${e}) from ${n} to ${l}`),this.cursors.set(e,l)}}return o}async getBlockFilterChanges(e){const r=this.cursors.get(e);if(!r)return Ss();const n=await this.getCurrentBlockHeight();if(r>n)return Es();console.log(`Fetching blocks from ${r} to ${n} for filter (${e})`);const i=(await Promise.all((0,yt.range)(r,n+1).map(o=>this.getBlockHashByNumber((0,Vn.IntNumber)(o))))).filter(o=>!!o),s=(0,Vn.IntNumber)(r+i.length);return console.log(`Moving cursor position for filter (${e}) from ${r} to ${s}`),this.cursors.set(e,s),Object.assign(Object.assign({},tn),{result:i})}async getPendingTransactionFilterChanges(e){return Promise.resolve(Es())}async setInitialCursorPosition(e,r){const n=await this.getCurrentBlockHeight(),i=typeof r=="number"&&r>n?r:n;return this.cursors.set(e,i),i}setFilterTimeout(e){const r=this.timeouts.get(e);r&&window.clearTimeout(r);const n=window.setTimeout(()=>{console.log(`Filter (${e}) timed out`),this.deleteFilter(e)},Jy);this.timeouts.set(e,n)}async getCurrentBlockHeight(){const{result:e}=await this.sendAsyncPromise(Object.assign(Object.assign({},tn),{method:"eth_blockNumber",params:[]}));return(0,yt.intNumberFromHexString)((0,yt.ensureHexString)(e))}async getBlockHashByNumber(e){const r=await this.sendAsyncPromise(Object.assign(Object.assign({},tn),{method:"eth_getBlockByNumber",params:[(0,yt.hexStringFromIntNumber)(e),!1]}));return r.result&&typeof r.result.hash=="string"?(0,yt.ensureHexString)(r.result.hash):null}}ni.FilterPolyfill=Zy;function cd(t){return{fromBlock:Nl(t.fromBlock),toBlock:Nl(t.toBlock),addresses:t.address===void 0?null:Array.isArray(t.address)?t.address:[t.address],topics:t.topics||[]}}ni.filterFromParam=cd;function Ol(t){const e={fromBlock:Ll(t.fromBlock),toBlock:Ll(t.toBlock),topics:t.topics};return t.addresses!==null&&(e.address=t.addresses),e}function Nl(t){if(t===void 0||t==="latest"||t==="pending")return"latest";if(t==="earliest")return(0,Vn.IntNumber)(0);if((0,yt.isHexString)(t))return(0,yt.intNumberFromHexString)(t);throw new Error(`Invalid block option: ${String(t)}`)}function Ll(t){return t==="latest"?t:(0,yt.hexStringFromIntNumber)(t)}function Ss(){return Object.assign(Object.assign({},tn),{error:{code:-32e3,message:"filter not found"}})}function Es(){return Object.assign(Object.assign({},tn),{result:[]})}var ld={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.JSONRPCMethod=void 0,function(e){e.eth_accounts="eth_accounts",e.eth_coinbase="eth_coinbase",e.net_version="net_version",e.eth_chainId="eth_chainId",e.eth_uninstallFilter="eth_uninstallFilter",e.eth_requestAccounts="eth_requestAccounts",e.eth_sign="eth_sign",e.eth_ecRecover="eth_ecRecover",e.personal_sign="personal_sign",e.personal_ecRecover="personal_ecRecover",e.eth_signTransaction="eth_signTransaction",e.eth_sendRawTransaction="eth_sendRawTransaction",e.eth_sendTransaction="eth_sendTransaction",e.eth_signTypedData_v1="eth_signTypedData_v1",e.eth_signTypedData_v2="eth_signTypedData_v2",e.eth_signTypedData_v3="eth_signTypedData_v3",e.eth_signTypedData_v4="eth_signTypedData_v4",e.eth_signTypedData="eth_signTypedData",e.cbWallet_arbitrary="walletlink_arbitrary",e.wallet_addEthereumChain="wallet_addEthereumChain",e.wallet_switchEthereumChain="wallet_switchEthereumChain",e.wallet_watchAsset="wallet_watchAsset",e.eth_subscribe="eth_subscribe",e.eth_unsubscribe="eth_unsubscribe",e.eth_newFilter="eth_newFilter",e.eth_newBlockFilter="eth_newBlockFilter",e.eth_newPendingTransactionFilter="eth_newPendingTransactionFilter",e.eth_getFilterChanges="eth_getFilterChanges",e.eth_getFilterLogs="eth_getFilterLogs"}(t.JSONRPCMethod||(t.JSONRPCMethod={}))})(ld);var ho={},fd={},po={},ju=Qy;function Qy(t){t=t||{};var e=t.max||Number.MAX_SAFE_INTEGER,r=typeof t.start<"u"?t.start:Math.floor(Math.random()*e);return function(){return r=r%e,r++}}const Pl=(t,e)=>function(){const r=e.promiseModule,n=new Array(arguments.length);for(let i=0;i{e.errorFirst?n.push(function(o,a){if(e.multiArgs){const c=new Array(arguments.length-1);for(let l=1;l{e=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},e);const r=i=>{const s=o=>typeof o=="string"?i===o:o.test(i);return e.include?e.include.some(s):!e.exclude.some(s)};let n;typeof t=="function"?n=function(){return e.excludeMain?t.apply(this,arguments):Pl(t,e).apply(this,arguments)}:n=Object.create(Object.getPrototypeOf(t));for(const i in t){const s=t[i];n[i]=typeof s=="function"&&r(i)?Pl(s,e):s}return n},ns={},Ky=Z&&Z.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ns,"__esModule",{value:!0});ns.BaseBlockTracker=void 0;const Xy=Ky(gn),em=1e3,tm=(t,e)=>t+e,$l=["sync","latest"];class rm extends Xy.default{constructor(e){super(),this._blockResetDuration=e.blockResetDuration||20*em,this._currentBlock=null,this._isRunning=!1,this._onNewListener=this._onNewListener.bind(this),this._onRemoveListener=this._onRemoveListener.bind(this),this._resetCurrentBlock=this._resetCurrentBlock.bind(this),this._setupInternalEvents()}async destroy(){this._cancelBlockResetTimeout(),await this._maybeEnd(),super.removeAllListeners()}isRunning(){return this._isRunning}getCurrentBlock(){return this._currentBlock}async getLatestBlock(){return this._currentBlock?this._currentBlock:await new Promise(r=>this.once("latest",r))}removeAllListeners(e){return e?super.removeAllListeners(e):super.removeAllListeners(),this._setupInternalEvents(),this._onRemoveListener(),this}_setupInternalEvents(){this.removeListener("newListener",this._onNewListener),this.removeListener("removeListener",this._onRemoveListener),this.on("newListener",this._onNewListener),this.on("removeListener",this._onRemoveListener)}_onNewListener(e){$l.includes(e)&&this._maybeStart()}_onRemoveListener(){this._getBlockTrackerEventCount()>0||this._maybeEnd()}async _maybeStart(){this._isRunning||(this._isRunning=!0,this._cancelBlockResetTimeout(),await this._start(),this.emit("_started"))}async _maybeEnd(){this._isRunning&&(this._isRunning=!1,this._setupBlockResetTimeout(),await this._end(),this.emit("_ended"))}_getBlockTrackerEventCount(){return $l.map(e=>this.listenerCount(e)).reduce(tm)}_newPotentialLatest(e){const r=this._currentBlock;r&&Dl(e)<=Dl(r)||this._setCurrentBlock(e)}_setCurrentBlock(e){const r=this._currentBlock;this._currentBlock=e,this.emit("latest",e),this.emit("sync",{oldBlock:r,newBlock:e})}_setupBlockResetTimeout(){this._cancelBlockResetTimeout(),this._blockResetTimeout=setTimeout(this._resetCurrentBlock,this._blockResetDuration),this._blockResetTimeout.unref&&this._blockResetTimeout.unref()}_cancelBlockResetTimeout(){this._blockResetTimeout&&clearTimeout(this._blockResetTimeout)}_resetCurrentBlock(){this._currentBlock=null}}ns.BaseBlockTracker=rm;function Dl(t){return Number.parseInt(t,16)}var hd={},dd={},ht={};class pd extends TypeError{constructor(e,r){let n;const{message:i,explanation:s,...o}=e,{path:a}=e,c=a.length===0?i:`At path: ${a.join(".")} -- ${i}`;super(s??c),s!=null&&(this.cause=c),Object.assign(this,o),this.name=this.constructor.name,this.failures=()=>n??(n=[e,...r()])}}function nm(t){return Bt(t)&&typeof t[Symbol.iterator]=="function"}function Bt(t){return typeof t=="object"&&t!=null}function Bl(t){if(Object.prototype.toString.call(t)!=="[object Object]")return!1;const e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}function nt(t){return typeof t=="symbol"?t.toString():typeof t=="string"?JSON.stringify(t):`${t}`}function im(t){const{done:e,value:r}=t.next();return e?void 0:r}function sm(t,e,r,n){if(t===!0)return;t===!1?t={}:typeof t=="string"&&(t={message:t});const{path:i,branch:s}=e,{type:o}=r,{refinement:a,message:c=`Expected a value of type \`${o}\`${a?` with refinement \`${a}\``:""}, but received: \`${nt(n)}\``}=t;return{value:n,type:o,refinement:a,key:i[i.length-1],path:i,branch:s,...t,message:c}}function*fu(t,e,r,n){nm(t)||(t=[t]);for(const i of t){const s=sm(i,e,r,n);s&&(yield s)}}function*Fu(t,e,r={}){const{path:n=[],branch:i=[t],coerce:s=!1,mask:o=!1}=r,a={path:n,branch:i};if(s&&(t=e.coercer(t,a),o&&e.type!=="type"&&Bt(e.schema)&&Bt(t)&&!Array.isArray(t)))for(const l in t)e.schema[l]===void 0&&delete t[l];let c="valid";for(const l of e.validator(t,a))l.explanation=r.message,c="not_valid",yield[l,void 0];for(let[l,d,g]of e.entries(t,a)){const b=Fu(d,g,{path:l===void 0?n:[...n,l],branch:l===void 0?i:[...i,d],coerce:s,mask:o,message:r.message});for(const C of b)C[0]?(c=C[0].refinement!=null?"not_refined":"not_valid",yield[C[0],void 0]):s&&(d=C[1],l===void 0?t=d:t instanceof Map?t.set(l,d):t instanceof Set?t.add(d):Bt(t)&&(d!==void 0||l in t)&&(t[l]=d))}if(c!=="not_valid")for(const l of e.refiner(t,a))l.explanation=r.message,c="not_refined",yield[l,void 0];c==="valid"&&(yield[void 0,t])}class et{constructor(e){const{type:r,schema:n,validator:i,refiner:s,coercer:o=c=>c,entries:a=function*(){}}=e;this.type=r,this.schema=n,this.entries=a,this.coercer=o,i?this.validator=(c,l)=>{const d=i(c,l);return fu(d,l,this,c)}:this.validator=()=>[],s?this.refiner=(c,l)=>{const d=s(c,l);return fu(d,l,this,c)}:this.refiner=()=>[]}assert(e,r){return gd(e,this,r)}create(e,r){return bd(e,this,r)}is(e){return Wu(e,this)}mask(e,r){return vd(e,this,r)}validate(e,r={}){return yi(e,this,r)}}function gd(t,e,r){const n=yi(t,e,{message:r});if(n[0])throw n[0]}function bd(t,e,r){const n=yi(t,e,{coerce:!0,message:r});if(n[0])throw n[0];return n[1]}function vd(t,e,r){const n=yi(t,e,{coerce:!0,mask:!0,message:r});if(n[0])throw n[0];return n[1]}function Wu(t,e){return!yi(t,e)[0]}function yi(t,e,r={}){const n=Fu(t,e,r),i=im(n);return i[0]?[new pd(i[0],function*(){for(const o of n)o[0]&&(yield o[0])}),void 0]:[void 0,i[1]]}function om(...t){const e=t[0].type==="type",r=t.map(i=>i.schema),n=Object.assign({},...r);return e?Vu(n):is(n)}function Mt(t,e){return new et({type:t,schema:null,validator:e})}function am(t,e){return new et({...t,refiner:(r,n)=>r===void 0||t.refiner(r,n),validator(r,n){return r===void 0?!0:(e(r,n),t.validator(r,n))}})}function um(t){return new et({type:"dynamic",schema:null,*entries(e,r){yield*t(e,r).entries(e,r)},validator(e,r){return t(e,r).validator(e,r)},coercer(e,r){return t(e,r).coercer(e,r)},refiner(e,r){return t(e,r).refiner(e,r)}})}function cm(t){let e;return new et({type:"lazy",schema:null,*entries(r,n){e??(e=t()),yield*e.entries(r,n)},validator(r,n){return e??(e=t()),e.validator(r,n)},coercer(r,n){return e??(e=t()),e.coercer(r,n)},refiner(r,n){return e??(e=t()),e.refiner(r,n)}})}function lm(t,e){const{schema:r}=t,n={...r};for(const i of e)delete n[i];switch(t.type){case"type":return Vu(n);default:return is(n)}}function fm(t){const e=t instanceof et?{...t.schema}:{...t};for(const r in e)e[r]=yd(e[r]);return is(e)}function hm(t,e){const{schema:r}=t,n={};for(const i of e)n[i]=r[i];return is(n)}function dm(t,e){return console.warn("superstruct@0.11 - The `struct` helper has been renamed to `define`."),Mt(t,e)}function pm(){return Mt("any",()=>!0)}function gm(t){return new et({type:"array",schema:t,*entries(e){if(t&&Array.isArray(e))for(const[r,n]of e.entries())yield[r,n,t]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${nt(e)}`}})}function bm(){return Mt("bigint",t=>typeof t=="bigint")}function vm(){return Mt("boolean",t=>typeof t=="boolean")}function ym(){return Mt("date",t=>t instanceof Date&&!isNaN(t.getTime())||`Expected a valid \`Date\` object, but received: ${nt(t)}`)}function mm(t){const e={},r=t.map(n=>nt(n)).join();for(const n of t)e[n]=n;return new et({type:"enums",schema:e,validator(n){return t.includes(n)||`Expected one of \`${r}\`, but received: ${nt(n)}`}})}function wm(){return Mt("func",t=>typeof t=="function"||`Expected a function, but received: ${nt(t)}`)}function _m(t){return Mt("instance",e=>e instanceof t||`Expected a \`${t.name}\` instance, but received: ${nt(e)}`)}function Sm(){return Mt("integer",t=>typeof t=="number"&&!isNaN(t)&&Number.isInteger(t)||`Expected an integer, but received: ${nt(t)}`)}function Em(t){return new et({type:"intersection",schema:null,*entries(e,r){for(const n of t)yield*n.entries(e,r)},*validator(e,r){for(const n of t)yield*n.validator(e,r)},*refiner(e,r){for(const n of t)yield*n.refiner(e,r)}})}function Mm(t){const e=nt(t),r=typeof t;return new et({type:"literal",schema:r==="string"||r==="number"||r==="boolean"?t:null,validator(n){return n===t||`Expected the literal \`${e}\`, but received: ${nt(n)}`}})}function xm(t,e){return new et({type:"map",schema:null,*entries(r){if(t&&e&&r instanceof Map)for(const[n,i]of r.entries())yield[n,n,t],yield[n,i,e]},coercer(r){return r instanceof Map?new Map(r):r},validator(r){return r instanceof Map||`Expected a \`Map\` object, but received: ${nt(r)}`}})}function Hu(){return Mt("never",()=>!1)}function Cm(t){return new et({...t,validator:(e,r)=>e===null||t.validator(e,r),refiner:(e,r)=>e===null||t.refiner(e,r)})}function Rm(){return Mt("number",t=>typeof t=="number"&&!isNaN(t)||`Expected a number, but received: ${nt(t)}`)}function is(t){const e=t?Object.keys(t):[],r=Hu();return new et({type:"object",schema:t||null,*entries(n){if(t&&Bt(n)){const i=new Set(Object.keys(n));for(const s of e)i.delete(s),yield[s,n[s],t[s]];for(const s of i)yield[s,n[s],r]}},validator(n){return Bt(n)||`Expected an object, but received: ${nt(n)}`},coercer(n){return Bt(n)?{...n}:n}})}function yd(t){return new et({...t,validator:(e,r)=>e===void 0||t.validator(e,r),refiner:(e,r)=>e===void 0||t.refiner(e,r)})}function Im(t,e){return new et({type:"record",schema:null,*entries(r){if(Bt(r))for(const n in r){const i=r[n];yield[n,n,t],yield[n,i,e]}},validator(r){return Bt(r)||`Expected an object, but received: ${nt(r)}`}})}function Am(){return Mt("regexp",t=>t instanceof RegExp)}function Tm(t){return new et({type:"set",schema:null,*entries(e){if(t&&e instanceof Set)for(const r of e)yield[r,r,t]},coercer(e){return e instanceof Set?new Set(e):e},validator(e){return e instanceof Set||`Expected a \`Set\` object, but received: ${nt(e)}`}})}function md(){return Mt("string",t=>typeof t=="string"||`Expected a string, but received: ${nt(t)}`)}function km(t){const e=Hu();return new et({type:"tuple",schema:null,*entries(r){if(Array.isArray(r)){const n=Math.max(t.length,r.length);for(let i=0;ir.type).join(" | ");return new et({type:"union",schema:null,coercer(r){for(const n of t){const[i,s]=n.validate(r,{coerce:!0});if(!i)return s}return r},validator(r,n){const i=[];for(const s of t){const[...o]=Fu(r,s,n),[a]=o;if(a[0])for(const[c]of o)c&&i.push(c);else return[]}return[`Expected the value to satisfy a union of \`${e}\`, but received: ${nt(r)}`,...i]}})}function wd(){return Mt("unknown",()=>!0)}function Uu(t,e,r){return new et({...t,coercer:(n,i)=>Wu(n,e)?t.coercer(r(n,i),i):t.coercer(n,i)})}function Nm(t,e,r={}){return Uu(t,wd(),n=>{const i=typeof e=="function"?e():e;if(n===void 0)return i;if(!r.strict&&Bl(n)&&Bl(i)){const s={...n};let o=!1;for(const a in i)s[a]===void 0&&(s[a]=i[a],o=!0);if(o)return s}return n})}function Lm(t){return Uu(t,md(),e=>e.trim())}function Pm(t){return _n(t,"empty",e=>{const r=_d(e);return r===0||`Expected an empty ${t.type} but received one with a size of \`${r}\``})}function _d(t){return t instanceof Map||t instanceof Set?t.size:t.length}function $m(t,e,r={}){const{exclusive:n}=r;return _n(t,"max",i=>n?in?i>e:i>=e||`Expected a ${t.type} greater than ${n?"":"or equal to "}${e} but received \`${i}\``)}function Bm(t){return _n(t,"nonempty",e=>_d(e)>0||`Expected a nonempty ${t.type} but received an empty one`)}function jm(t,e){return _n(t,"pattern",r=>e.test(r)||`Expected a ${t.type} matching \`/${e.source}/\` but received "${r}"`)}function Fm(t,e,r=e){const n=`Expected a ${t.type}`,i=e===r?`of \`${e}\``:`between \`${e}\` and \`${r}\``;return _n(t,"size",s=>{if(typeof s=="number"||s instanceof Date)return e<=s&&s<=r||`${n} ${i} but received \`${s}\``;if(s instanceof Map||s instanceof Set){const{size:o}=s;return e<=o&&o<=r||`${n} with a size ${i} but received one with a size of \`${o}\``}else{const{length:o}=s;return e<=o&&o<=r||`${n} with a length ${i} but received one with a length of \`${o}\``}})}function _n(t,e,r){return new et({...t,*refiner(n,i){yield*t.refiner(n,i);const s=r(n,i),o=fu(s,i,t,n);for(const a of o)yield{...a,refinement:e}}})}const Wm=Object.freeze(Object.defineProperty({__proto__:null,Struct:et,StructError:pd,any:pm,array:gm,assert:gd,assign:om,bigint:bm,boolean:vm,coerce:Uu,create:bd,date:ym,defaulted:Nm,define:Mt,deprecated:am,dynamic:um,empty:Pm,enums:mm,func:wm,instance:_m,integer:Sm,intersection:Em,is:Wu,lazy:cm,literal:Mm,map:xm,mask:vd,max:$m,min:Dm,never:Hu,nonempty:Bm,nullable:Cm,number:Rm,object:is,omit:lm,optional:yd,partial:fm,pattern:jm,pick:hm,record:Im,refine:_n,regexp:Am,set:Tm,size:Fm,string:md,struct:dm,trimmed:Lm,tuple:km,type:Vu,union:Om,unknown:wd,validate:yi},Symbol.toStringTag,{value:"Module"})),Sn=pn(Wm);Object.defineProperty(ht,"__esModule",{value:!0});ht.assertExhaustive=ht.assertStruct=ht.assert=ht.AssertionError=void 0;const Hm=Sn;function Vm(t){return typeof t=="object"&&t!==null&&"message"in t}function Um(t){var e,r;return typeof((r=(e=t==null?void 0:t.prototype)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.name)=="string"}function zm(t){const e=Vm(t)?t.message:String(t);return e.endsWith(".")?e.slice(0,-1):e}function Sd(t,e){return Um(t)?new t({message:e}):t({message:e})}class zu extends Error{constructor(e){super(e.message),this.code="ERR_ASSERTION"}}ht.AssertionError=zu;function qm(t,e="Assertion failed.",r=zu){if(!t)throw e instanceof Error?e:Sd(r,e)}ht.assert=qm;function Gm(t,e,r="Assertion failed",n=zu){try{(0,Hm.assert)(t,e)}catch(i){throw Sd(n,`${r}: ${zm(i)}.`)}}ht.assertStruct=Gm;function Jm(t){throw new Error("Invalid branch reached. Should be detected during compilation.")}ht.assertExhaustive=Jm;var ss={};Object.defineProperty(ss,"__esModule",{value:!0});ss.base64=void 0;const Zm=Sn,Qm=ht,Ym=(t,e={})=>{var r,n;const i=(r=e.paddingRequired)!==null&&r!==void 0?r:!1,s=(n=e.characterSet)!==null&&n!==void 0?n:"base64";let o;s==="base64"?o=String.raw`[A-Za-z0-9+\/]`:((0,Qm.assert)(s==="base64url"),o=String.raw`[-_A-Za-z0-9]`);let a;return i?a=new RegExp(`^(?:${o}{4})*(?:${o}{3}=|${o}{2}==)?$`,"u"):a=new RegExp(`^(?:${o}{4})*(?:${o}{2,3}|${o}{3}=|${o}{2}==)?$`,"u"),(0,Zm.pattern)(t,a)};ss.base64=Ym;var fe={},os={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.remove0x=t.add0x=t.assertIsStrictHexString=t.assertIsHexString=t.isStrictHexString=t.isHexString=t.StrictHexStruct=t.HexStruct=void 0;const e=Sn,r=ht;t.HexStruct=(0,e.pattern)((0,e.string)(),/^(?:0x)?[0-9a-f]+$/iu),t.StrictHexStruct=(0,e.pattern)((0,e.string)(),/^0x[0-9a-f]+$/iu);function n(l){return(0,e.is)(l,t.HexStruct)}t.isHexString=n;function i(l){return(0,e.is)(l,t.StrictHexStruct)}t.isStrictHexString=i;function s(l){(0,r.assert)(n(l),"Value must be a hexadecimal string.")}t.assertIsHexString=s;function o(l){(0,r.assert)(i(l),'Value must be a hexadecimal string, starting with "0x".')}t.assertIsStrictHexString=o;function a(l){return l.startsWith("0x")?l:l.startsWith("0X")?`0x${l.substring(2)}`:`0x${l}`}t.add0x=a;function c(l){return l.startsWith("0x")||l.startsWith("0X")?l.substring(2):l}t.remove0x=c})(os);Object.defineProperty(fe,"__esModule",{value:!0});fe.createDataView=fe.concatBytes=fe.valueToBytes=fe.stringToBytes=fe.numberToBytes=fe.signedBigIntToBytes=fe.bigIntToBytes=fe.hexToBytes=fe.bytesToString=fe.bytesToNumber=fe.bytesToSignedBigInt=fe.bytesToBigInt=fe.bytesToHex=fe.assertIsBytes=fe.isBytes=void 0;const Rt=ht,hu=os,jl=48,Fl=58,Wl=87;function Km(){const t=[];return()=>{if(t.length===0)for(let e=0;e<256;e++)t.push(e.toString(16).padStart(2,"0"));return t}}const Xm=Km();function qu(t){return t instanceof Uint8Array}fe.isBytes=qu;function mi(t){(0,Rt.assert)(qu(t),"Value must be a Uint8Array.")}fe.assertIsBytes=mi;function Ed(t){if(mi(t),t.length===0)return"0x";const e=Xm(),r=new Array(t.length);for(let n=0;n=BigInt(0),"Value must be a non-negative bigint.");const e=t.toString(16);return go(e)}fe.bigIntToBytes=xd;function n1(t,e){(0,Rt.assert)(e>0);const r=t>>BigInt(31);return!((~t&r)+(t&~r)>>BigInt(e*8+-1))}function i1(t,e){(0,Rt.assert)(typeof t=="bigint","Value must be a bigint."),(0,Rt.assert)(typeof e=="number","Byte length must be a number."),(0,Rt.assert)(e>0,"Byte length must be greater than 0."),(0,Rt.assert)(n1(t,e),"Byte length is too small to represent the given value.");let r=t;const n=new Uint8Array(e);for(let i=0;i>=BigInt(8);return n.reverse()}fe.signedBigIntToBytes=i1;function Cd(t){(0,Rt.assert)(typeof t=="number","Value must be a number."),(0,Rt.assert)(t>=0,"Value must be a non-negative number."),(0,Rt.assert)(Number.isSafeInteger(t),"Value is not a safe integer. Use `bigIntToBytes` instead.");const e=t.toString(16);return go(e)}fe.numberToBytes=Cd;function Rd(t){return(0,Rt.assert)(typeof t=="string","Value must be a string."),new TextEncoder().encode(t)}fe.stringToBytes=Rd;function Id(t){if(typeof t=="bigint")return xd(t);if(typeof t=="number")return Cd(t);if(typeof t=="string")return t.startsWith("0x")?go(t):Rd(t);if(qu(t))return t;throw new TypeError(`Unsupported value type: "${typeof t}".`)}fe.valueToBytes=Id;function s1(t){const e=new Array(t.length);let r=0;for(let i=0;ie.call(r,n,i,this))}get(e){return mt(this,Wt,"f").get(e)}has(e){return mt(this,Wt,"f").has(e)}keys(){return mt(this,Wt,"f").keys()}values(){return mt(this,Wt,"f").values()}toString(){return`FrozenMap(${this.size}) {${this.size>0?` ${[...this.entries()].map(([e,r])=>`${String(e)} => ${String(r)}`).join(", ")} `:""}}`}}ii.FrozenMap=Gu;class Ju{constructor(e){Kt.set(this,void 0),kd(this,Kt,new Set(e),"f"),Object.freeze(this)}get size(){return mt(this,Kt,"f").size}[(Kt=new WeakMap,Symbol.iterator)](){return mt(this,Kt,"f")[Symbol.iterator]()}entries(){return mt(this,Kt,"f").entries()}forEach(e,r){return mt(this,Kt,"f").forEach((n,i,s)=>e.call(r,n,i,this))}has(e){return mt(this,Kt,"f").has(e)}keys(){return mt(this,Kt,"f").keys()}values(){return mt(this,Kt,"f").values()}toString(){return`FrozenSet(${this.size}) {${this.size>0?` ${[...this.values()].map(e=>String(e)).join(", ")} `:""}}`}}ii.FrozenSet=Ju;Object.freeze(Gu);Object.freeze(Gu.prototype);Object.freeze(Ju);Object.freeze(Ju.prototype);var Od={},Zu={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.calculateNumberSize=t.calculateStringSize=t.isASCII=t.isPlainObject=t.ESCAPE_CHARACTERS_REGEXP=t.JsonSize=t.hasProperty=t.isObject=t.isNullOrUndefined=t.isNonEmptyArray=void 0;function e(l){return Array.isArray(l)&&l.length>0}t.isNonEmptyArray=e;function r(l){return l==null}t.isNullOrUndefined=r;function n(l){return!!l&&typeof l=="object"&&!Array.isArray(l)}t.isObject=n;const i=(l,d)=>Object.hasOwnProperty.call(l,d);t.hasProperty=i,function(l){l[l.Null=4]="Null",l[l.Comma=1]="Comma",l[l.Wrapper=1]="Wrapper",l[l.True=4]="True",l[l.False=5]="False",l[l.Quote=1]="Quote",l[l.Colon=1]="Colon",l[l.Date=24]="Date"}(t.JsonSize||(t.JsonSize={})),t.ESCAPE_CHARACTERS_REGEXP=/"|\\|\n|\r|\t/gu;function s(l){if(typeof l!="object"||l===null)return!1;try{let d=l;for(;Object.getPrototypeOf(d)!==null;)d=Object.getPrototypeOf(d);return Object.getPrototypeOf(l)===d}catch{return!1}}t.isPlainObject=s;function o(l){return l.charCodeAt(0)<=127}t.isASCII=o;function a(l){var d;return l.split("").reduce((b,C)=>o(C)?b+1:b+2,0)+((d=l.match(t.ESCAPE_CHARACTERS_REGEXP))!==null&&d!==void 0?d:[]).length}t.calculateStringSize=a;function c(l){return l.toString().length}t.calculateNumberSize=c})(Zu);(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.validateJsonAndGetSize=t.getJsonRpcIdValidator=t.assertIsJsonRpcError=t.isJsonRpcError=t.assertIsJsonRpcFailure=t.isJsonRpcFailure=t.assertIsJsonRpcSuccess=t.isJsonRpcSuccess=t.assertIsJsonRpcResponse=t.isJsonRpcResponse=t.assertIsPendingJsonRpcResponse=t.isPendingJsonRpcResponse=t.JsonRpcResponseStruct=t.JsonRpcFailureStruct=t.JsonRpcSuccessStruct=t.PendingJsonRpcResponseStruct=t.assertIsJsonRpcRequest=t.isJsonRpcRequest=t.assertIsJsonRpcNotification=t.isJsonRpcNotification=t.JsonRpcNotificationStruct=t.JsonRpcRequestStruct=t.JsonRpcParamsStruct=t.JsonRpcErrorStruct=t.JsonRpcIdStruct=t.JsonRpcVersionStruct=t.jsonrpc2=t.isValidJson=t.JsonStruct=void 0;const e=Sn,r=ht,n=Zu;t.JsonStruct=(0,e.define)("Json",L=>{const[B]=$(L,!0);return B?!0:"Expected a valid JSON-serializable value"});function i(L){return(0,e.is)(L,t.JsonStruct)}t.isValidJson=i,t.jsonrpc2="2.0",t.JsonRpcVersionStruct=(0,e.literal)(t.jsonrpc2),t.JsonRpcIdStruct=(0,e.nullable)((0,e.union)([(0,e.number)(),(0,e.string)()])),t.JsonRpcErrorStruct=(0,e.object)({code:(0,e.integer)(),message:(0,e.string)(),data:(0,e.optional)(t.JsonStruct),stack:(0,e.optional)((0,e.string)())}),t.JsonRpcParamsStruct=(0,e.optional)((0,e.union)([(0,e.record)((0,e.string)(),t.JsonStruct),(0,e.array)(t.JsonStruct)])),t.JsonRpcRequestStruct=(0,e.object)({id:t.JsonRpcIdStruct,jsonrpc:t.JsonRpcVersionStruct,method:(0,e.string)(),params:t.JsonRpcParamsStruct}),t.JsonRpcNotificationStruct=(0,e.omit)(t.JsonRpcRequestStruct,["id"]);function s(L){return(0,e.is)(L,t.JsonRpcNotificationStruct)}t.isJsonRpcNotification=s;function o(L,B){(0,r.assertStruct)(L,t.JsonRpcNotificationStruct,"Invalid JSON-RPC notification",B)}t.assertIsJsonRpcNotification=o;function a(L){return(0,e.is)(L,t.JsonRpcRequestStruct)}t.isJsonRpcRequest=a;function c(L,B){(0,r.assertStruct)(L,t.JsonRpcRequestStruct,"Invalid JSON-RPC request",B)}t.assertIsJsonRpcRequest=c,t.PendingJsonRpcResponseStruct=(0,e.object)({id:t.JsonRpcIdStruct,jsonrpc:t.JsonRpcVersionStruct,result:(0,e.optional)((0,e.unknown)()),error:(0,e.optional)(t.JsonRpcErrorStruct)}),t.JsonRpcSuccessStruct=(0,e.object)({id:t.JsonRpcIdStruct,jsonrpc:t.JsonRpcVersionStruct,result:t.JsonStruct}),t.JsonRpcFailureStruct=(0,e.object)({id:t.JsonRpcIdStruct,jsonrpc:t.JsonRpcVersionStruct,error:t.JsonRpcErrorStruct}),t.JsonRpcResponseStruct=(0,e.union)([t.JsonRpcSuccessStruct,t.JsonRpcFailureStruct]);function l(L){return(0,e.is)(L,t.PendingJsonRpcResponseStruct)}t.isPendingJsonRpcResponse=l;function d(L,B){(0,r.assertStruct)(L,t.PendingJsonRpcResponseStruct,"Invalid pending JSON-RPC response",B)}t.assertIsPendingJsonRpcResponse=d;function g(L){return(0,e.is)(L,t.JsonRpcResponseStruct)}t.isJsonRpcResponse=g;function b(L,B){(0,r.assertStruct)(L,t.JsonRpcResponseStruct,"Invalid JSON-RPC response",B)}t.assertIsJsonRpcResponse=b;function C(L){return(0,e.is)(L,t.JsonRpcSuccessStruct)}t.isJsonRpcSuccess=C;function A(L,B){(0,r.assertStruct)(L,t.JsonRpcSuccessStruct,"Invalid JSON-RPC success response",B)}t.assertIsJsonRpcSuccess=A;function P(L){return(0,e.is)(L,t.JsonRpcFailureStruct)}t.isJsonRpcFailure=P;function N(L,B){(0,r.assertStruct)(L,t.JsonRpcFailureStruct,"Invalid JSON-RPC failure response",B)}t.assertIsJsonRpcFailure=N;function M(L){return(0,e.is)(L,t.JsonRpcErrorStruct)}t.isJsonRpcError=M;function R(L,B){(0,r.assertStruct)(L,t.JsonRpcErrorStruct,"Invalid JSON-RPC error",B)}t.assertIsJsonRpcError=R;function O(L){const{permitEmptyString:B,permitFractions:G,permitNull:z}=Object.assign({permitEmptyString:!0,permitFractions:!1,permitNull:!0},L);return K=>!!(typeof K=="number"&&(G||Number.isInteger(K))||typeof K=="string"&&(B||K.length>0)||z&&K===null)}t.getJsonRpcIdValidator=O;function $(L,B=!1){const G=new Set;function z(W,K){if(W===void 0)return[!1,0];if(W===null)return[!0,K?0:n.JsonSize.Null];const Y=typeof W;try{if(Y==="function")return[!1,0];if(Y==="string"||W instanceof String)return[!0,K?0:(0,n.calculateStringSize)(W)+n.JsonSize.Quote*2];if(Y==="boolean"||W instanceof Boolean)return K?[!0,0]:[!0,W==!0?n.JsonSize.True:n.JsonSize.False];if(Y==="number"||W instanceof Number)return K?[!0,0]:[!0,(0,n.calculateNumberSize)(W)];if(W instanceof Date)return K?[!0,0]:[!0,isNaN(W.getDate())?n.JsonSize.Null:n.JsonSize.Date+n.JsonSize.Quote*2]}catch{return[!1,0]}if(!(0,n.isPlainObject)(W)&&!Array.isArray(W))return[!1,0];if(G.has(W))return[!1,0];G.add(W);try{return[!0,Object.entries(W).reduce((X,[v,u],h,p)=>{let[y,w]=z(u,K);if(!y)throw new Error("JSON validation did not pass. Validation process stopped.");if(G.delete(W),K)return 0;const x=Array.isArray(W)?0:v.length+n.JsonSize.Comma+n.JsonSize.Colon*2,T=h0)return o(d);if(b==="number"&&isFinite(d))return g.long?c(d):a(d);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(d))};function o(d){if(d=String(d),!(d.length>100)){var g=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(d);if(g){var b=parseFloat(g[1]),C=(g[2]||"ms").toLowerCase();switch(C){case"years":case"year":case"yrs":case"yr":case"y":return b*s;case"weeks":case"week":case"w":return b*i;case"days":case"day":case"d":return b*n;case"hours":case"hour":case"hrs":case"hr":case"h":return b*r;case"minutes":case"minute":case"mins":case"min":case"m":return b*e;case"seconds":case"second":case"secs":case"sec":case"s":return b*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return b;default:return}}}}function a(d){var g=Math.abs(d);return g>=n?Math.round(d/n)+"d":g>=r?Math.round(d/r)+"h":g>=e?Math.round(d/e)+"m":g>=t?Math.round(d/t)+"s":d+"ms"}function c(d){var g=Math.abs(d);return g>=n?l(d,g,n,"day"):g>=r?l(d,g,r,"hour"):g>=e?l(d,g,e,"minute"):g>=t?l(d,g,t,"second"):d+" ms"}function l(d,g,b,C){var A=g>=b*1.5;return Math.round(d/b)+" "+C+(A?"s":"")}return Ia}function y1(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=v1(),r.destroy=l,Object.keys(t).forEach(d=>{r[d]=t[d]}),r.names=[],r.skips=[],r.formatters={};function e(d){let g=0;for(let b=0;b{if(B==="%%")return"%";$++;const z=r.formatters[G];if(typeof z=="function"){const W=N[$];B=z.call(M,W),N.splice($,1),$--}return B}),r.formatArgs.call(M,N),(M.log||r.log).apply(M,N)}return P.namespace=d,P.useColors=r.useColors(),P.color=r.selectColor(d),P.extend=n,P.destroy=r.destroy,Object.defineProperty(P,"enabled",{enumerable:!0,configurable:!1,get:()=>b!==null?b:(C!==r.namespaces&&(C=r.namespaces,A=r.enabled(d)),A),set:N=>{b=N}}),typeof r.init=="function"&&r.init(P),P}function n(d,g){const b=r(this.namespace+(typeof g>"u"?":":g)+d);return b.log=this.log,b}function i(d){r.save(d),r.namespaces=d,r.names=[],r.skips=[];let g;const b=(typeof d=="string"?d:"").split(/[\s,]+/),C=b.length;for(g=0;g"-"+g)].join(",");return r.enable(""),d}function o(d){if(d[d.length-1]==="*")return!0;let g,b;for(g=0,b=r.skips.length;g{let c=!1;return()=>{c||(c=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function n(c){if(c[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+c[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const l="color: "+this.color;c.splice(1,0,l,"color: inherit");let d=0,g=0;c[0].replace(/%[a-zA-Z%]/g,b=>{b!=="%%"&&(d++,b==="%c"&&(g=d))}),c.splice(g,0,l)}e.log=console.debug||console.log||(()=>{});function i(c){try{c?e.storage.setItem("debug",c):e.storage.removeItem("debug")}catch{}}function s(){let c;try{c=e.storage.getItem("debug")}catch{}return!c&&typeof process<"u"&&"env"in process&&(c={}.DEBUG),c}function o(){try{return localStorage}catch{}}t.exports=m1(e);const{formatters:a}=t.exports;a.j=function(c){try{return JSON.stringify(c)}catch(l){return"[UnexpectedJSONParseError]: "+l.message}}})(du,du.exports);var w1=du.exports,_1=Z&&Z.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(si,"__esModule",{value:!0});si.createModuleLogger=si.createProjectLogger=void 0;const S1=_1(w1),E1=(0,S1.default)("metamask");function M1(t){return E1.extend(t)}si.createProjectLogger=M1;function x1(t,e){return t.extend(e)}si.createModuleLogger=x1;var or={};Object.defineProperty(or,"__esModule",{value:!0});or.hexToBigInt=or.hexToNumber=or.bigIntToHex=or.numberToHex=void 0;const Zn=ht,Vi=os,C1=t=>((0,Zn.assert)(typeof t=="number","Value must be a number."),(0,Zn.assert)(t>=0,"Value must be a non-negative number."),(0,Zn.assert)(Number.isSafeInteger(t),"Value is not a safe integer. Use `bigIntToHex` instead."),(0,Vi.add0x)(t.toString(16)));or.numberToHex=C1;const R1=t=>((0,Zn.assert)(typeof t=="bigint","Value must be a bigint."),(0,Zn.assert)(t>=0,"Value must be a non-negative bigint."),(0,Vi.add0x)(t.toString(16)));or.bigIntToHex=R1;const I1=t=>{(0,Vi.assertIsHexString)(t);const e=parseInt(t,16);return(0,Zn.assert)(Number.isSafeInteger(e),"Value is not a safe integer. Use `hexToBigInt` instead."),e};or.hexToNumber=I1;const A1=t=>((0,Vi.assertIsHexString)(t),BigInt((0,Vi.add0x)(t)));or.hexToBigInt=A1;var Nd={};Object.defineProperty(Nd,"__esModule",{value:!0});var Ld={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.timeSince=t.inMilliseconds=t.Duration=void 0,function(s){s[s.Millisecond=1]="Millisecond",s[s.Second=1e3]="Second",s[s.Minute=6e4]="Minute",s[s.Hour=36e5]="Hour",s[s.Day=864e5]="Day",s[s.Week=6048e5]="Week",s[s.Year=31536e6]="Year"}(t.Duration||(t.Duration={}));const e=s=>Number.isInteger(s)&&s>=0,r=(s,o)=>{if(!e(s))throw new Error(`"${o}" must be a non-negative integer. Received: "${s}".`)};function n(s,o){return r(s,"count"),s*o}t.inMilliseconds=n;function i(s){return r(s,"timestamp"),Date.now()-s}t.timeSince=i})(Ld);var Pd={},pu={exports:{}};const T1="2.0.0",$d=256,k1=Number.MAX_SAFE_INTEGER||9007199254740991,O1=16,N1=$d-6,L1=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var yo={MAX_LENGTH:$d,MAX_SAFE_COMPONENT_LENGTH:O1,MAX_SAFE_BUILD_LENGTH:N1,MAX_SAFE_INTEGER:k1,RELEASE_TYPES:L1,SEMVER_SPEC_VERSION:T1,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const P1=typeof process=="object"&&process.env&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};var mo=P1;(function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:r,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:i}=yo,s=mo;e=t.exports={};const o=e.re=[],a=e.safeRe=[],c=e.src=[],l=e.t={};let d=0;const g="[a-zA-Z0-9-]",b=[["\\s",1],["\\d",i],[g,n]],C=P=>{for(const[N,M]of b)P=P.split(`${N}*`).join(`${N}{0,${M}}`).split(`${N}+`).join(`${N}{1,${M}}`);return P},A=(P,N,M)=>{const R=C(N),O=d++;s(P,O,N),l[P]=O,c[O]=N,o[O]=new RegExp(N,M?"g":void 0),a[O]=new RegExp(R,M?"g":void 0)};A("NUMERICIDENTIFIER","0|[1-9]\\d*"),A("NUMERICIDENTIFIERLOOSE","\\d+"),A("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${g}*`),A("MAINVERSION",`(${c[l.NUMERICIDENTIFIER]})\\.(${c[l.NUMERICIDENTIFIER]})\\.(${c[l.NUMERICIDENTIFIER]})`),A("MAINVERSIONLOOSE",`(${c[l.NUMERICIDENTIFIERLOOSE]})\\.(${c[l.NUMERICIDENTIFIERLOOSE]})\\.(${c[l.NUMERICIDENTIFIERLOOSE]})`),A("PRERELEASEIDENTIFIER",`(?:${c[l.NUMERICIDENTIFIER]}|${c[l.NONNUMERICIDENTIFIER]})`),A("PRERELEASEIDENTIFIERLOOSE",`(?:${c[l.NUMERICIDENTIFIERLOOSE]}|${c[l.NONNUMERICIDENTIFIER]})`),A("PRERELEASE",`(?:-(${c[l.PRERELEASEIDENTIFIER]}(?:\\.${c[l.PRERELEASEIDENTIFIER]})*))`),A("PRERELEASELOOSE",`(?:-?(${c[l.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[l.PRERELEASEIDENTIFIERLOOSE]})*))`),A("BUILDIDENTIFIER",`${g}+`),A("BUILD",`(?:\\+(${c[l.BUILDIDENTIFIER]}(?:\\.${c[l.BUILDIDENTIFIER]})*))`),A("FULLPLAIN",`v?${c[l.MAINVERSION]}${c[l.PRERELEASE]}?${c[l.BUILD]}?`),A("FULL",`^${c[l.FULLPLAIN]}$`),A("LOOSEPLAIN",`[v=\\s]*${c[l.MAINVERSIONLOOSE]}${c[l.PRERELEASELOOSE]}?${c[l.BUILD]}?`),A("LOOSE",`^${c[l.LOOSEPLAIN]}$`),A("GTLT","((?:<|>)?=?)"),A("XRANGEIDENTIFIERLOOSE",`${c[l.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),A("XRANGEIDENTIFIER",`${c[l.NUMERICIDENTIFIER]}|x|X|\\*`),A("XRANGEPLAIN",`[v=\\s]*(${c[l.XRANGEIDENTIFIER]})(?:\\.(${c[l.XRANGEIDENTIFIER]})(?:\\.(${c[l.XRANGEIDENTIFIER]})(?:${c[l.PRERELEASE]})?${c[l.BUILD]}?)?)?`),A("XRANGEPLAINLOOSE",`[v=\\s]*(${c[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[l.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[l.XRANGEIDENTIFIERLOOSE]})(?:${c[l.PRERELEASELOOSE]})?${c[l.BUILD]}?)?)?`),A("XRANGE",`^${c[l.GTLT]}\\s*${c[l.XRANGEPLAIN]}$`),A("XRANGELOOSE",`^${c[l.GTLT]}\\s*${c[l.XRANGEPLAINLOOSE]}$`),A("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),A("COERCERTL",c[l.COERCE],!0),A("LONETILDE","(?:~>?)"),A("TILDETRIM",`(\\s*)${c[l.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",A("TILDE",`^${c[l.LONETILDE]}${c[l.XRANGEPLAIN]}$`),A("TILDELOOSE",`^${c[l.LONETILDE]}${c[l.XRANGEPLAINLOOSE]}$`),A("LONECARET","(?:\\^)"),A("CARETTRIM",`(\\s*)${c[l.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",A("CARET",`^${c[l.LONECARET]}${c[l.XRANGEPLAIN]}$`),A("CARETLOOSE",`^${c[l.LONECARET]}${c[l.XRANGEPLAINLOOSE]}$`),A("COMPARATORLOOSE",`^${c[l.GTLT]}\\s*(${c[l.LOOSEPLAIN]})$|^$`),A("COMPARATOR",`^${c[l.GTLT]}\\s*(${c[l.FULLPLAIN]})$|^$`),A("COMPARATORTRIM",`(\\s*)${c[l.GTLT]}\\s*(${c[l.LOOSEPLAIN]}|${c[l.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",A("HYPHENRANGE",`^\\s*(${c[l.XRANGEPLAIN]})\\s+-\\s+(${c[l.XRANGEPLAIN]})\\s*$`),A("HYPHENRANGELOOSE",`^\\s*(${c[l.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[l.XRANGEPLAINLOOSE]})\\s*$`),A("STAR","(<|>)?=?\\s*\\*"),A("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),A("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(pu,pu.exports);var as=pu.exports;const $1=Object.freeze({loose:!0}),D1=Object.freeze({}),B1=t=>t?typeof t!="object"?$1:t:D1;var Qu=B1;const Ul=/^[0-9]+$/,Dd=(t,e)=>{const r=Ul.test(t),n=Ul.test(e);return r&&n&&(t=+t,e=+e),t===e?0:r&&!n?-1:n&&!r?1:tDd(e,t);var Bd={compareIdentifiers:Dd,rcompareIdentifiers:j1};const Ms=mo,{MAX_LENGTH:zl,MAX_SAFE_INTEGER:xs}=yo,{safeRe:ql,t:Gl}=as,F1=Qu,{compareIdentifiers:Dn}=Bd;let W1=class er{constructor(e,r){if(r=F1(r),e instanceof er){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>zl)throw new TypeError(`version is longer than ${zl} characters`);Ms("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;const n=e.trim().match(r.loose?ql[Gl.LOOSE]:ql[Gl.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>xs||this.major<0)throw new TypeError("Invalid major version");if(this.minor>xs||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>xs||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){const s=+i;if(s>=0&&s=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(r){let s=[r,i];n===!1&&(s=[r]),Dn(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var St=W1;const Jl=St,H1=(t,e,r=!1)=>{if(t instanceof Jl)return t;try{return new Jl(t,e)}catch(n){if(!r)return null;throw n}};var wi=H1;const V1=wi,U1=(t,e)=>{const r=V1(t,e);return r?r.version:null};var z1=U1;const q1=wi,G1=(t,e)=>{const r=q1(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};var J1=G1;const Zl=St,Z1=(t,e,r,n,i)=>{typeof r=="string"&&(i=n,n=r,r=void 0);try{return new Zl(t instanceof Zl?t.version:t,r).inc(e,n,i).version}catch{return null}};var Q1=Z1;const Ql=wi,Y1=(t,e)=>{const r=Ql(t,null,!0),n=Ql(e,null,!0),i=r.compare(n);if(i===0)return null;const s=i>0,o=s?r:n,a=s?n:r,c=!!o.prerelease.length;if(!!a.prerelease.length&&!c)return!a.patch&&!a.minor?"major":o.patch?"patch":o.minor?"minor":"major";const d=c?"pre":"";return r.major!==n.major?d+"major":r.minor!==n.minor?d+"minor":r.patch!==n.patch?d+"patch":"prerelease"};var K1=Y1;const X1=St,ew=(t,e)=>new X1(t,e).major;var tw=ew;const rw=St,nw=(t,e)=>new rw(t,e).minor;var iw=nw;const sw=St,ow=(t,e)=>new sw(t,e).patch;var aw=ow;const uw=wi,cw=(t,e)=>{const r=uw(t,e);return r&&r.prerelease.length?r.prerelease:null};var lw=cw;const Yl=St,fw=(t,e,r)=>new Yl(t,r).compare(new Yl(e,r));var Jt=fw;const hw=Jt,dw=(t,e,r)=>hw(e,t,r);var pw=dw;const gw=Jt,bw=(t,e)=>gw(t,e,!0);var vw=bw;const Kl=St,yw=(t,e,r)=>{const n=new Kl(t,r),i=new Kl(e,r);return n.compare(i)||n.compareBuild(i)};var Yu=yw;const mw=Yu,ww=(t,e)=>t.sort((r,n)=>mw(r,n,e));var _w=ww;const Sw=Yu,Ew=(t,e)=>t.sort((r,n)=>Sw(n,r,e));var Mw=Ew;const xw=Jt,Cw=(t,e,r)=>xw(t,e,r)>0;var wo=Cw;const Rw=Jt,Iw=(t,e,r)=>Rw(t,e,r)<0;var Ku=Iw;const Aw=Jt,Tw=(t,e,r)=>Aw(t,e,r)===0;var jd=Tw;const kw=Jt,Ow=(t,e,r)=>kw(t,e,r)!==0;var Fd=Ow;const Nw=Jt,Lw=(t,e,r)=>Nw(t,e,r)>=0;var Xu=Lw;const Pw=Jt,$w=(t,e,r)=>Pw(t,e,r)<=0;var ec=$w;const Dw=jd,Bw=Fd,jw=wo,Fw=Xu,Ww=Ku,Hw=ec,Vw=(t,e,r,n)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return Dw(t,r,n);case"!=":return Bw(t,r,n);case">":return jw(t,r,n);case">=":return Fw(t,r,n);case"<":return Ww(t,r,n);case"<=":return Hw(t,r,n);default:throw new TypeError(`Invalid operator: ${e}`)}};var Wd=Vw;const Uw=St,zw=wi,{safeRe:Cs,t:Rs}=as,qw=(t,e)=>{if(t instanceof Uw)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(Cs[Rs.COERCE]);else{let n;for(;(n=Cs[Rs.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||n.index+n[0].length!==r.index+r[0].length)&&(r=n),Cs[Rs.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;Cs[Rs.COERCERTL].lastIndex=-1}return r===null?null:zw(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,e)};var Gw=qw,Aa,Xl;function Jw(){return Xl||(Xl=1,Aa=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}),Aa}var Zw=he;he.Node=fn;he.create=he;function he(t){var e=this;if(e instanceof he||(e=new he),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(i){e.push(i)});else if(arguments.length>0)for(var r=0,n=arguments.length;r1)r=e;else if(this.head)n=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var i=0;n!==null;i++)r=t(r,n.value,i),n=n.next;return r};he.prototype.reduceReverse=function(t,e){var r,n=this.tail;if(arguments.length>1)r=e;else if(this.tail)n=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var i=this.length-1;n!==null;i--)r=t(r,n.value,i),n=n.prev;return r};he.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};he.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};he.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new he;if(ethis.length&&(e=this.length);for(var n=0,i=this.head;i!==null&&nthis.length&&(e=this.length);for(var n=this.length,i=this.tail;i!==null&&n>e;n--)i=i.prev;for(;i!==null&&n>t;n--,i=i.prev)r.push(i.value);return r};he.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var n=0,i=this.head;i!==null&&n1;class e_{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");this[rn]=e.max||1/0;const r=e.length||Ta;if(this[Bn]=typeof r!="function"?Ta:r,this[Bi]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[on]=e.maxAge||0,this[fr]=e.dispose,this[ef]=e.noDisposeOnSet||!1,this[Hd]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[rn]=e||1/0,Ri(this)}get max(){return this[rn]}set allowStale(e){this[Bi]=!!e}get allowStale(){return this[Bi]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[on]=e,Ri(this)}get maxAge(){return this[on]}set lengthCalculator(e){typeof e!="function"&&(e=Ta),e!==this[Bn]&&(this[Bn]=e,this[pr]=0,this[ot].forEach(r=>{r.length=this[Bn](r.value,r.key),this[pr]+=r.length})),Ri(this)}get lengthCalculator(){return this[Bn]}get length(){return this[pr]}get itemCount(){return this[ot].length}rforEach(e,r){r=r||this;for(let n=this[ot].tail;n!==null;){const i=n.prev;tf(this,e,n,r),n=i}}forEach(e,r){r=r||this;for(let n=this[ot].head;n!==null;){const i=n.next;tf(this,e,n,r),n=i}}keys(){return this[ot].toArray().map(e=>e.key)}values(){return this[ot].toArray().map(e=>e.value)}reset(){this[fr]&&this[ot]&&this[ot].length&&this[ot].forEach(e=>this[fr](e.key,e.value)),this[Ut]=new Map,this[ot]=new Xw,this[pr]=0}dump(){return this[ot].map(e=>zs(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[ot]}set(e,r,n){if(n=n||this[on],n&&typeof n!="number")throw new TypeError("maxAge must be a number");const i=n?Date.now():0,s=this[Bn](r,e);if(this[Ut].has(e)){if(s>this[rn])return Qn(this,this[Ut].get(e)),!1;const c=this[Ut].get(e).value;return this[fr]&&(this[ef]||this[fr](e,c.value)),c.now=i,c.maxAge=n,c.value=r,this[pr]+=s-c.length,c.length=s,this.get(e),Ri(this),!0}const o=new t_(e,r,s,i,n);return o.length>this[rn]?(this[fr]&&this[fr](e,r),!1):(this[pr]+=o.length,this[ot].unshift(o),this[Ut].set(e,this[ot].head),Ri(this),!0)}has(e){if(!this[Ut].has(e))return!1;const r=this[Ut].get(e).value;return!zs(this,r)}get(e){return ka(this,e,!0)}peek(e){return ka(this,e,!1)}pop(){const e=this[ot].tail;return e?(Qn(this,e),e.value):null}del(e){Qn(this,this[Ut].get(e))}load(e){this.reset();const r=Date.now();for(let n=e.length-1;n>=0;n--){const i=e[n],s=i.e||0;if(s===0)this.set(i.k,i.v);else{const o=s-r;o>0&&this.set(i.k,i.v,o)}}}prune(){this[Ut].forEach((e,r)=>ka(this,r,!1))}}const ka=(t,e,r)=>{const n=t[Ut].get(e);if(n){const i=n.value;if(zs(t,i)){if(Qn(t,n),!t[Bi])return}else r&&(t[Hd]&&(n.value.now=Date.now()),t[ot].unshiftNode(n));return i.value}},zs=(t,e)=>{if(!e||!e.maxAge&&!t[on])return!1;const r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[on]&&r>t[on]},Ri=t=>{if(t[pr]>t[rn])for(let e=t[ot].tail;t[pr]>t[rn]&&e!==null;){const r=e.prev;Qn(t,e),e=r}},Qn=(t,e)=>{if(e){const r=e.value;t[fr]&&t[fr](r.key,r.value),t[pr]-=r.length,t[Ut].delete(r.key),t[ot].removeNode(e)}};class t_{constructor(e,r,n,i,s){this.key=e,this.value=r,this.length=n,this.now=i,this.maxAge=s||0}}const tf=(t,e,r,n)=>{let i=r.value;zs(t,i)&&(Qn(t,r),t[Bi]||(i=void 0)),i&&e.call(n,i.value,i.key,t)};var r_=e_,Oa,rf;function Zt(){if(rf)return Oa;rf=1;class t{constructor(u,h){if(h=n(h),u instanceof t)return u.loose===!!h.loose&&u.includePrerelease===!!h.includePrerelease?u:new t(u.raw,h);if(u instanceof i)return this.raw=u.value,this.set=[[u]],this.format(),this;if(this.options=h,this.loose=!!h.loose,this.includePrerelease=!!h.includePrerelease,this.raw=u.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(p=>this.parseRange(p.trim())).filter(p=>p.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const p=this.set[0];if(this.set=this.set.filter(y=>!A(y[0])),this.set.length===0)this.set=[p];else if(this.set.length>1){for(const y of this.set)if(y.length===1&&P(y[0])){this.set=[y];break}}}this.format()}format(){return this.range=this.set.map(u=>u.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(u){const p=((this.options.includePrerelease&&b)|(this.options.loose&&C))+":"+u,y=r.get(p);if(y)return y;const w=this.options.loose,x=w?a[c.HYPHENRANGELOOSE]:a[c.HYPHENRANGE];u=u.replace(x,Y(this.options.includePrerelease)),s("hyphen replace",u),u=u.replace(a[c.COMPARATORTRIM],l),s("comparator trim",u),u=u.replace(a[c.TILDETRIM],d),s("tilde trim",u),u=u.replace(a[c.CARETTRIM],g),s("caret trim",u);let T=u.split(" ").map(U=>M(U,this.options)).join(" ").split(/\s+/).map(U=>K(U,this.options));w&&(T=T.filter(U=>(s("loose invalid filter",U,this.options),!!U.match(a[c.COMPARATORLOOSE])))),s("range list",T);const m=new Map,f=T.map(U=>new i(U,this.options));for(const U of f){if(A(U))return[U];m.set(U.value,U)}m.size>1&&m.has("")&&m.delete("");const E=[...m.values()];return r.set(p,E),E}intersects(u,h){if(!(u instanceof t))throw new TypeError("a Range is required");return this.set.some(p=>N(p,h)&&u.set.some(y=>N(y,h)&&p.every(w=>y.every(x=>w.intersects(x,h)))))}test(u){if(!u)return!1;if(typeof u=="string")try{u=new o(u,this.options)}catch{return!1}for(let h=0;hv.value==="<0.0.0-0",P=v=>v.value==="",N=(v,u)=>{let h=!0;const p=v.slice();let y=p.pop();for(;h&&p.length;)h=p.every(w=>y.intersects(w,u)),y=p.pop();return h},M=(v,u)=>(s("comp",v,u),v=L(v,u),s("caret",v),v=O(v,u),s("tildes",v),v=G(v,u),s("xrange",v),v=W(v,u),s("stars",v),v),R=v=>!v||v.toLowerCase()==="x"||v==="*",O=(v,u)=>v.trim().split(/\s+/).map(h=>$(h,u)).join(" "),$=(v,u)=>{const h=u.loose?a[c.TILDELOOSE]:a[c.TILDE];return v.replace(h,(p,y,w,x,T)=>{s("tilde",v,p,y,w,x,T);let m;return R(y)?m="":R(w)?m=`>=${y}.0.0 <${+y+1}.0.0-0`:R(x)?m=`>=${y}.${w}.0 <${y}.${+w+1}.0-0`:T?(s("replaceTilde pr",T),m=`>=${y}.${w}.${x}-${T} <${y}.${+w+1}.0-0`):m=`>=${y}.${w}.${x} <${y}.${+w+1}.0-0`,s("tilde return",m),m})},L=(v,u)=>v.trim().split(/\s+/).map(h=>B(h,u)).join(" "),B=(v,u)=>{s("caret",v,u);const h=u.loose?a[c.CARETLOOSE]:a[c.CARET],p=u.includePrerelease?"-0":"";return v.replace(h,(y,w,x,T,m)=>{s("caret",v,y,w,x,T,m);let f;return R(w)?f="":R(x)?f=`>=${w}.0.0${p} <${+w+1}.0.0-0`:R(T)?w==="0"?f=`>=${w}.${x}.0${p} <${w}.${+x+1}.0-0`:f=`>=${w}.${x}.0${p} <${+w+1}.0.0-0`:m?(s("replaceCaret pr",m),w==="0"?x==="0"?f=`>=${w}.${x}.${T}-${m} <${w}.${x}.${+T+1}-0`:f=`>=${w}.${x}.${T}-${m} <${w}.${+x+1}.0-0`:f=`>=${w}.${x}.${T}-${m} <${+w+1}.0.0-0`):(s("no pr"),w==="0"?x==="0"?f=`>=${w}.${x}.${T}${p} <${w}.${x}.${+T+1}-0`:f=`>=${w}.${x}.${T}${p} <${w}.${+x+1}.0-0`:f=`>=${w}.${x}.${T} <${+w+1}.0.0-0`),s("caret return",f),f})},G=(v,u)=>(s("replaceXRanges",v,u),v.split(/\s+/).map(h=>z(h,u)).join(" ")),z=(v,u)=>{v=v.trim();const h=u.loose?a[c.XRANGELOOSE]:a[c.XRANGE];return v.replace(h,(p,y,w,x,T,m)=>{s("xRange",v,p,y,w,x,T,m);const f=R(w),E=f||R(x),U=E||R(T),q=U;return y==="="&&q&&(y=""),m=u.includePrerelease?"-0":"",f?y===">"||y==="<"?p="<0.0.0-0":p="*":y&&q?(E&&(x=0),T=0,y===">"?(y=">=",E?(w=+w+1,x=0,T=0):(x=+x+1,T=0)):y==="<="&&(y="<",E?w=+w+1:x=+x+1),y==="<"&&(m="-0"),p=`${y+w}.${x}.${T}${m}`):E?p=`>=${w}.0.0${m} <${+w+1}.0.0-0`:U&&(p=`>=${w}.${x}.0${m} <${w}.${+x+1}.0-0`),s("xRange return",p),p})},W=(v,u)=>(s("replaceStars",v,u),v.trim().replace(a[c.STAR],"")),K=(v,u)=>(s("replaceGTE0",v,u),v.trim().replace(a[u.includePrerelease?c.GTE0PRE:c.GTE0],"")),Y=v=>(u,h,p,y,w,x,T,m,f,E,U,q,I)=>(R(p)?h="":R(y)?h=`>=${p}.0.0${v?"-0":""}`:R(w)?h=`>=${p}.${y}.0${v?"-0":""}`:x?h=`>=${h}`:h=`>=${h}${v?"-0":""}`,R(f)?m="":R(E)?m=`<${+f+1}.0.0-0`:R(U)?m=`<${f}.${+E+1}.0-0`:q?m=`<=${f}.${E}.${U}-${q}`:v?m=`<${f}.${E}.${+U+1}-0`:m=`<=${m}`,`${h} ${m}`.trim()),X=(v,u,h)=>{for(let p=0;p0){const y=v[p].semver;if(y.major===u.major&&y.minor===u.minor&&y.patch===u.patch)return!0}return!1}return!0};return Oa}var Na,nf;function _o(){if(nf)return Na;nf=1;const t=Symbol("SemVer ANY");class e{static get ANY(){return t}constructor(d,g){if(g=r(g),d instanceof e){if(d.loose===!!g.loose)return d;d=d.value}d=d.trim().split(/\s+/).join(" "),o("comparator",d,g),this.options=g,this.loose=!!g.loose,this.parse(d),this.semver===t?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}parse(d){const g=this.options.loose?n[i.COMPARATORLOOSE]:n[i.COMPARATOR],b=d.match(g);if(!b)throw new TypeError(`Invalid comparator: ${d}`);this.operator=b[1]!==void 0?b[1]:"",this.operator==="="&&(this.operator=""),b[2]?this.semver=new a(b[2],this.options.loose):this.semver=t}toString(){return this.value}test(d){if(o("Comparator.test",d,this.options.loose),this.semver===t||d===t)return!0;if(typeof d=="string")try{d=new a(d,this.options)}catch{return!1}return s(d,this.operator,this.semver,this.options)}intersects(d,g){if(!(d instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new c(d.value,g).test(this.value):d.operator===""?d.value===""?!0:new c(this.value,g).test(d.semver):(g=r(g),g.includePrerelease&&(this.value==="<0.0.0-0"||d.value==="<0.0.0-0")||!g.includePrerelease&&(this.value.startsWith("<0.0.0")||d.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&d.operator.startsWith(">")||this.operator.startsWith("<")&&d.operator.startsWith("<")||this.semver.version===d.semver.version&&this.operator.includes("=")&&d.operator.includes("=")||s(this.semver,"<",d.semver,g)&&this.operator.startsWith(">")&&d.operator.startsWith("<")||s(this.semver,">",d.semver,g)&&this.operator.startsWith("<")&&d.operator.startsWith(">")))}}Na=e;const r=Qu,{safeRe:n,t:i}=as,s=Wd,o=mo,a=St,c=Zt();return Na}const n_=Zt(),i_=(t,e,r)=>{try{e=new n_(e,r)}catch{return!1}return e.test(t)};var So=i_;const s_=Zt(),o_=(t,e)=>new s_(t,e).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));var a_=o_;const u_=St,c_=Zt(),l_=(t,e,r)=>{let n=null,i=null,s=null;try{s=new c_(e,r)}catch{return null}return t.forEach(o=>{s.test(o)&&(!n||i.compare(o)===-1)&&(n=o,i=new u_(n,r))}),n};var f_=l_;const h_=St,d_=Zt(),p_=(t,e,r)=>{let n=null,i=null,s=null;try{s=new d_(e,r)}catch{return null}return t.forEach(o=>{s.test(o)&&(!n||i.compare(o)===1)&&(n=o,i=new h_(n,r))}),n};var g_=p_;const La=St,b_=Zt(),sf=wo,v_=(t,e)=>{t=new b_(t,e);let r=new La("0.0.0");if(t.test(r)||(r=new La("0.0.0-0"),t.test(r)))return r;r=null;for(let n=0;n{const a=new La(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||sf(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!r||sf(r,s))&&(r=s)}return r&&t.test(r)?r:null};var y_=v_;const m_=Zt(),w_=(t,e)=>{try{return new m_(t,e).range||"*"}catch{return null}};var __=w_;const S_=St,Vd=_o(),{ANY:E_}=Vd,M_=Zt(),x_=So,of=wo,af=Ku,C_=ec,R_=Xu,I_=(t,e,r,n)=>{t=new S_(t,n),e=new M_(e,n);let i,s,o,a,c;switch(r){case">":i=of,s=C_,o=af,a=">",c=">=";break;case"<":i=af,s=R_,o=of,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(x_(t,e,n))return!1;for(let l=0;l{C.semver===E_&&(C=new Vd(">=0.0.0")),g=g||C,b=b||C,i(C.semver,g.semver,n)?g=C:o(C.semver,b.semver,n)&&(b=C)}),g.operator===a||g.operator===c||(!b.operator||b.operator===a)&&s(t,b.semver))return!1;if(b.operator===c&&o(t,b.semver))return!1}return!0};var tc=I_;const A_=tc,T_=(t,e,r)=>A_(t,e,">",r);var k_=T_;const O_=tc,N_=(t,e,r)=>O_(t,e,"<",r);var L_=N_;const uf=Zt(),P_=(t,e,r)=>(t=new uf(t,r),e=new uf(e,r),t.intersects(e,r));var $_=P_;const D_=So,B_=Jt;var j_=(t,e,r)=>{const n=[];let i=null,s=null;const o=t.sort((d,g)=>B_(d,g,r));for(const d of o)D_(d,e,r)?(s=d,i||(i=d)):(s&&n.push([i,s]),s=null,i=null);i&&n.push([i,null]);const a=[];for(const[d,g]of n)d===g?a.push(d):!g&&d===o[0]?a.push("*"):g?d===o[0]?a.push(`<=${g}`):a.push(`${d} - ${g}`):a.push(`>=${d}`);const c=a.join(" || "),l=typeof e.raw=="string"?e.raw:String(e);return c.length{if(t===e)return!0;t=new cf(t,r),e=new cf(e,r);let n=!1;e:for(const i of t.set){for(const s of e.set){const o=H_(i,s,r);if(n=n||o!==null,o)continue e}if(n)return!1}return!0},W_=[new rc(">=0.0.0-0")],lf=[new rc(">=0.0.0")],H_=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===Pa){if(e.length===1&&e[0].semver===Pa)return!0;r.includePrerelease?t=W_:t=lf}if(e.length===1&&e[0].semver===Pa){if(r.includePrerelease)return!0;e=lf}const n=new Set;let i,s;for(const C of t)C.operator===">"||C.operator===">="?i=ff(i,C,r):C.operator==="<"||C.operator==="<="?s=hf(s,C,r):n.add(C.semver);if(n.size>1)return null;let o;if(i&&s){if(o=nc(i.semver,s.semver,r),o>0)return null;if(o===0&&(i.operator!==">="||s.operator!=="<="))return null}for(const C of n){if(i&&!Ii(C,String(i),r)||s&&!Ii(C,String(s),r))return null;for(const A of e)if(!Ii(C,String(A),r))return!1;return!0}let a,c,l,d,g=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1,b=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(const C of e){if(d=d||C.operator===">"||C.operator===">=",l=l||C.operator==="<"||C.operator==="<=",i){if(b&&C.semver.prerelease&&C.semver.prerelease.length&&C.semver.major===b.major&&C.semver.minor===b.minor&&C.semver.patch===b.patch&&(b=!1),C.operator===">"||C.operator===">="){if(a=ff(i,C,r),a===C&&a!==i)return!1}else if(i.operator===">="&&!Ii(i.semver,String(C),r))return!1}if(s){if(g&&C.semver.prerelease&&C.semver.prerelease.length&&C.semver.major===g.major&&C.semver.minor===g.minor&&C.semver.patch===g.patch&&(g=!1),C.operator==="<"||C.operator==="<="){if(c=hf(s,C,r),c===C&&c!==s)return!1}else if(s.operator==="<="&&!Ii(s.semver,String(C),r))return!1}if(!C.operator&&(s||i)&&o!==0)return!1}return!(i&&l&&!s&&o!==0||s&&d&&!i&&o!==0||b||g)},ff=(t,e,r)=>{if(!t)return e;const n=nc(t.semver,e.semver,r);return n>0?t:n<0||e.operator===">"&&t.operator===">="?e:t},hf=(t,e,r)=>{if(!t)return e;const n=nc(t.semver,e.semver,r);return n<0?t:n>0||e.operator==="<"&&t.operator==="<="?e:t};var V_=F_;const $a=as,df=yo,U_=St,pf=Bd,z_=wi,q_=z1,G_=J1,J_=Q1,Z_=K1,Q_=tw,Y_=iw,K_=aw,X_=lw,e2=Jt,t2=pw,r2=vw,n2=Yu,i2=_w,s2=Mw,o2=wo,a2=Ku,u2=jd,c2=Fd,l2=Xu,f2=ec,h2=Wd,d2=Gw,p2=_o(),g2=Zt(),b2=So,v2=a_,y2=f_,m2=g_,w2=y_,_2=__,S2=tc,E2=k_,M2=L_,x2=$_,C2=j_,R2=V_;var I2={parse:z_,valid:q_,clean:G_,inc:J_,diff:Z_,major:Q_,minor:Y_,patch:K_,prerelease:X_,compare:e2,rcompare:t2,compareLoose:r2,compareBuild:n2,sort:i2,rsort:s2,gt:o2,lt:a2,eq:u2,neq:c2,gte:l2,lte:f2,cmp:h2,coerce:d2,Comparator:p2,Range:g2,satisfies:b2,toComparators:v2,maxSatisfying:y2,minSatisfying:m2,minVersion:w2,validRange:_2,outside:S2,gtr:E2,ltr:M2,intersects:x2,simplifyRange:C2,subset:R2,SemVer:U_,re:$a.re,src:$a.src,tokens:$a.t,SEMVER_SPEC_VERSION:df.SEMVER_SPEC_VERSION,RELEASE_TYPES:df.RELEASE_TYPES,compareIdentifiers:pf.compareIdentifiers,rcompareIdentifiers:pf.rcompareIdentifiers};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.satisfiesVersionRange=t.gtRange=t.gtVersion=t.assertIsSemVerRange=t.assertIsSemVerVersion=t.isValidSemVerRange=t.isValidSemVerVersion=t.VersionRangeStruct=t.VersionStruct=void 0;const e=I2,r=Sn,n=ht;t.VersionStruct=(0,r.refine)((0,r.string)(),"Version",g=>(0,e.valid)(g)===null?`Expected SemVer version, got "${g}"`:!0),t.VersionRangeStruct=(0,r.refine)((0,r.string)(),"Version range",g=>(0,e.validRange)(g)===null?`Expected SemVer range, got "${g}"`:!0);function i(g){return(0,r.is)(g,t.VersionStruct)}t.isValidSemVerVersion=i;function s(g){return(0,r.is)(g,t.VersionRangeStruct)}t.isValidSemVerRange=s;function o(g){(0,n.assertStruct)(g,t.VersionStruct)}t.assertIsSemVerVersion=o;function a(g){(0,n.assertStruct)(g,t.VersionRangeStruct)}t.assertIsSemVerRange=a;function c(g,b){return(0,e.gt)(g,b)}t.gtVersion=c;function l(g,b){return(0,e.gtr)(g,b)}t.gtRange=l;function d(g,b){return(0,e.satisfies)(g,b,{includePrerelease:!0})}t.satisfiesVersionRange=d})(Pd);(function(t){var e=Z&&Z.__createBinding||(Object.create?function(n,i,s,o){o===void 0&&(o=s);var a=Object.getOwnPropertyDescriptor(i,s);(!a||("get"in a?!i.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(n,o,a)}:function(n,i,s,o){o===void 0&&(o=s),n[o]=i[s]}),r=Z&&Z.__exportStar||function(n,i){for(var s in n)s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s)&&e(i,n,s)};Object.defineProperty(t,"__esModule",{value:!0}),r(ht,t),r(ss,t),r(fe,t),r(bo,t),r(sr,t),r(ii,t),r(os,t),r(Od,t),r(si,t),r(Zu,t),r(or,t),r(Nd,t),r(Ld,t),r(Pd,t)})(dd);(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.createModuleLogger=t.projectLogger=void 0;const e=dd;Object.defineProperty(t,"createModuleLogger",{enumerable:!0,get:function(){return e.createModuleLogger}}),t.projectLogger=(0,e.createProjectLogger)("eth-block-tracker")})(hd);var Ud=Z&&Z.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(po,"__esModule",{value:!0});po.PollingBlockTracker=void 0;const A2=Ud(ju),T2=Ud(Yy),k2=ns,gf=hd,bf=(0,gf.createModuleLogger)(gf.projectLogger,"polling-block-tracker"),O2=(0,A2.default)(),N2=1e3;class L2 extends k2.BaseBlockTracker{constructor(e={}){var r;if(!e.provider)throw new Error("PollingBlockTracker - no provider specified.");super({blockResetDuration:(r=e.blockResetDuration)!==null&&r!==void 0?r:e.pollingInterval}),this._provider=e.provider,this._pollingInterval=e.pollingInterval||20*N2,this._retryTimeout=e.retryTimeout||this._pollingInterval/10,this._keepEventLoopActive=e.keepEventLoopActive===void 0?!0:e.keepEventLoopActive,this._setSkipCacheFlag=e.setSkipCacheFlag||!1}async checkForLatestBlock(){return await this._updateLatestBlock(),await this.getLatestBlock()}async _start(){this._synchronize()}async _end(){}async _synchronize(){for(var e;this._isRunning;)try{await this._updateLatestBlock();const r=vf(this._pollingInterval,!this._keepEventLoopActive);this.emit("_waitingForNextIteration"),await r}catch(r){const n=new Error(`PollingBlockTracker - encountered an error while attempting to update latest block: diff --git a/examples/vite/dist/assets/index-3b7ee9e6.js b/examples/vite/dist/assets/index-8bf9f197.js similarity index 99% rename from examples/vite/dist/assets/index-3b7ee9e6.js rename to examples/vite/dist/assets/index-8bf9f197.js index 41fd95a815..a1ef965820 100644 --- a/examples/vite/dist/assets/index-3b7ee9e6.js +++ b/examples/vite/dist/assets/index-8bf9f197.js @@ -1 +1 @@ -import{g as Be,a as Qe,b as Ee,c as ae,d as he,l as ue,n as Me}from"./index-c43d377d.js";import"@safe-globalThis/safe-apps-provider";import"@safe-globalThis/safe-apps-sdk";function IA(A){let e=0;function t(){return A[e++]<<8|A[e++]}let l=t(),C=1,o=[0,1];for(let Q=1;Q>--r&1}const I=31,f=2**I,i=f>>>1,d=i>>1,E=f-1;let w=0;for(let Q=0;Q1;){let H=u+T>>>1;Q>>1|s(),a=a<<1^i,M=(M^i)<<1|i|1;O=a,k=1+M-a}let V=l-4;return j.map(Q=>{switch(Q-V){case 3:return V+65792+(A[g++]<<16|A[g++]<<8|A[g++]);case 2:return V+256+(A[g++]<<8|A[g++]);case 1:return V+A[g++];default:return Q-1}})}function DA(A){let e=0;return()=>A[e++]}function eA(A){return DA(IA(pA(A)))}function pA(A){let e=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((C,o)=>e[C.charCodeAt(0)]=o);let t=A.length,l=new Uint8Array(6*t>>3);for(let C=0,o=0,n=0,g=0;C=8&&(l[o++]=g>>(n-=8));return l}function UA(A){return A&1?~A>>1:A>>1}function dA(A,e){let t=Array(A);for(let l=0,C=0;l{let e=h(A);if(e.length)return e})}function CA(A){let e=[];for(;;){let t=A();if(t==0)break;e.push(NA(t,A))}for(;;){let t=A()-1;if(t<0)break;e.push(RA(t,A))}return e.flat()}function m(A){let e=[];for(;;){let t=A(e.length);if(!t)break;e.push(t)}return e}function oA(A,e,t){let l=Array(A).fill().map(()=>[]);for(let C=0;Cl[n].push(o));return l}function NA(A,e){let t=1+e(),l=e(),C=m(e);return oA(C.length,1+A,e).flatMap((n,g)=>{let[r,...c]=n;return Array(C[g]).fill().map((s,I)=>{let f=I*l;return[r+I*t,c.map(i=>i+f)]})})}function RA(A,e){let t=1+e();return oA(t,1+A,e).map(C=>[C[0],C.slice(1)])}function mA(A){let e=[],t=h(A);return C(l([]),[]),e;function l(o){let n=A(),g=m(()=>{let r=h(A).map(c=>t[c]);if(r.length)return l(r)});return{S:n,B:g,Q:o}}function C({S:o,B:n},g,r){if(!(o&4&&r===g[g.length-1])){o&2&&(r=g[g.length-1]),o&1&&e.push(g);for(let c of n)for(let s of c.Q)C(c,[...g,s],r)}}}var B=eA("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");const Z=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),W=4;function LA(A){return A.toString(16).toUpperCase().padStart(2,"0")}function lA(A){return`{${LA(A)}}`}function SA(A){let e=[];for(let t=0,l=A.length;t>24&255}function nA(A){return A&16777215}const FA=new Map(tA(X).flatMap((A,e)=>A.map(t=>[t,e+1<<24]))),OA=new Set(h(X)),gA=new Map,x=new Map;for(let[A,e]of CA(X)){if(!OA.has(A)&&e.length==2){let[t,l]=e,C=x.get(t);C||(C=new Map,x.set(t,C)),C.set(l,A)}gA.set(A,e.reverse())}const L=44032,b=4352,J=4449,G=4519,rA=19,cA=21,p=28,Y=cA*p,kA=rA*Y,VA=L+kA,bA=b+rA,JA=J+cA,GA=G+p;function iA(A){return A>=L&&A=b&&A=J&&eG&&e0&&C(G+c)}else{let n=gA.get(o);n?t.push(...n):C(o)}if(!t.length)break;o=t.pop()}if(l&&e.length>1){let o=N(e[0]);for(let n=1;n0&&C>=n)n==0?(e.push(l,...t),t.length=0,l=g):t.push(g),C=n;else{let r=YA(l,g);r>=0?l=r:C==0&&n==0?(e.push(l),l=g):(t.push(g),C=n)}}return l>=0&&e.push(l,...t),e}function sA(A){return wA(A).map(nA)}function zA(A){return KA(wA(A))}const fA=65039,BA=".",QA=1,v=45;function U(){return new Set(h(B))}const TA=new Map(CA(B)),HA=U(),K=U(),_=new Set(h(B).map(function(A){return this[A]},[...K])),xA=U();U();const XA=tA(B);function $(){return new Set([h(B).map(A=>XA[A]),h(B)].flat(2))}const qA=B(),S=m(A=>{let e=m(B).map(t=>t+96);if(e.length){let t=A>=qA;e[0]-=32,e=D(e),t&&(e=`Restricted[${e}]`);let l=$(),C=$(),o=[...l,...C].sort((g,r)=>g-r),n=!B();return{N:e,P:l,M:n,R:t,V:new Set(o)}}}),AA=U(),P=new Map;[...AA,...U()].sort((A,e)=>A-e).map((A,e,t)=>{let l=B(),C=t[e]=l?t[e-l]:{V:[],M:new Map};C.V.push(A),AA.has(A)||P.set(A,C)});for(let{V:A,M:e}of new Set(P.values())){let t=[];for(let C of A){let o=S.filter(g=>g.V.has(C)),n=t.find(({G:g})=>o.some(r=>g.has(r)));n||(n={G:new Set,V:[]},t.push(n)),n.V.push(C),o.forEach(g=>n.G.add(g))}let l=t.flatMap(({G:C})=>[...C]);for(let{G:C,V:o}of t){let n=new Set(l.filter(g=>!C.has(g)));for(let g of o)e.set(g,n)}}let F=new Set,EA=new Set;for(let A of S)for(let e of A.V)(F.has(e)?EA:F).add(e);for(let A of F)!P.has(A)&&!EA.has(A)&&P.set(A,QA);const yA=new Set([...F,...sA(F)]);class jA extends Array{get is_emoji(){return!0}}const ZA=mA(B).map(A=>jA.from(A)).sort(PA),aA=new Map;for(let A of ZA){let e=[aA];for(let t of A){let l=e.map(C=>{let o=C.get(t);return o||(o=new Map,C.set(t,o)),o});t===fA?e.push(...l):e=l}for(let t of e)t.V=A}function z(A,e=lA){let t=[];$A(A[0])&&t.push("◌");let l=0,C=A.length;for(let o=0;o=4&&A[2]==v&&A[3]==v)throw new Error(`invalid label extension: "${D(A.slice(0,4))}"`)}function vA(A){for(let t=A.lastIndexOf(95);t>0;)if(A[--t]!==95)throw new Error("underscore allowed only at start")}function _A(A){let e=A[0],t=Z.get(e);if(t)throw R(`leading ${t}`);let l=A.length,C=-1;for(let o=1;o{let o=SA(C),n={input:o,offset:l};l+=o.length+1;let g;try{let r=n.tokens=ne(o,e,t),c=r.length,s;if(c)if(g=r.flat(),vA(g),!(n.emoji=c>1||r[0].is_emoji)&&g.every(f=>f<128))WA(g),s="ASCII";else{let f=r.flatMap(i=>i.is_emoji?[]:i);if(!f.length)s="Emoji";else{if(K.has(g[0]))throw R("leading combining mark");for(let E=1;En.has(g)):[...n],!t.length)return}else l.push(C)}if(t){for(let C of t)if(l.every(o=>C.V.has(o)))throw new Error(`whole-script confusable: ${A.N}/${C.N}`)}}function Ce(A){let e=S;for(let t of A){let l=e.filter(C=>C.V.has(t));if(!l.length)throw S.some(C=>C.V.has(t))?MA(e[0],t):uA(t);if(e=l,l.length==1)break}return e}function oe(A){return A.map(({input:e,error:t,output:l})=>{if(t){let C=t.message;throw new Error(A.length==1?C:`Invalid label ${y(z(e))}: ${C}`)}return D(l)}).join(BA)}function uA(A){return new Error(`disallowed character: ${q(A)}`)}function MA(A,e){let t=q(e),l=S.find(C=>C.P.has(e));return l&&(t=`${l.N} ${t}`),new Error(`illegal mixture: ${A.N} + ${t}`)}function R(A){return new Error(`illegal placement: ${A}`)}function le(A,e){let{V:t,M:l}=A;for(let C of e)if(!t.has(C))throw MA(A,C);if(l){let C=sA(e);for(let o=1,n=C.length;oW)throw new Error(`excessive non-spacing marks: ${y(z(C.slice(o-1,g)))} (${g-o}/${W})`);o=g}}}function ne(A,e,t){let l=[],C=[];for(A=A.slice().reverse();A.length;){let o=re(A);if(o)C.length&&(l.push(e(C)),C=[]),l.push(t(o));else{let n=A.pop();if(yA.has(n))C.push(n);else{let g=TA.get(n);if(g)C.push(...g);else if(!HA.has(n))throw uA(n)}}}return C.length&&l.push(e(C)),l}function ge(A){return A.filter(e=>e!=fA)}function re(A,e){let t=aA,l,C=A.length;for(;C&&(t=t.get(A[--C]),!!t);){let{V:o}=t;o&&(l=o,e&&e.push(...A.slice(C).reverse()),A.length=C)}return l}function we(A){return Ae(A)}export{Be as getEnsAddress,Qe as getEnsAvatar,Ee as getEnsName,ae as getEnsResolver,he as getEnsText,ue as labelhash,Me as namehash,we as normalize}; +import{g as Be,a as Qe,b as Ee,c as ae,d as he,l as ue,n as Me}from"./index-90f155ac.js";import"@safe-globalThis/safe-apps-provider";import"@safe-globalThis/safe-apps-sdk";function IA(A){let e=0;function t(){return A[e++]<<8|A[e++]}let l=t(),C=1,o=[0,1];for(let Q=1;Q>--r&1}const I=31,f=2**I,i=f>>>1,d=i>>1,E=f-1;let w=0;for(let Q=0;Q1;){let H=u+T>>>1;Q>>1|s(),a=a<<1^i,M=(M^i)<<1|i|1;O=a,k=1+M-a}let V=l-4;return j.map(Q=>{switch(Q-V){case 3:return V+65792+(A[g++]<<16|A[g++]<<8|A[g++]);case 2:return V+256+(A[g++]<<8|A[g++]);case 1:return V+A[g++];default:return Q-1}})}function DA(A){let e=0;return()=>A[e++]}function eA(A){return DA(IA(pA(A)))}function pA(A){let e=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((C,o)=>e[C.charCodeAt(0)]=o);let t=A.length,l=new Uint8Array(6*t>>3);for(let C=0,o=0,n=0,g=0;C=8&&(l[o++]=g>>(n-=8));return l}function UA(A){return A&1?~A>>1:A>>1}function dA(A,e){let t=Array(A);for(let l=0,C=0;l{let e=h(A);if(e.length)return e})}function CA(A){let e=[];for(;;){let t=A();if(t==0)break;e.push(NA(t,A))}for(;;){let t=A()-1;if(t<0)break;e.push(RA(t,A))}return e.flat()}function m(A){let e=[];for(;;){let t=A(e.length);if(!t)break;e.push(t)}return e}function oA(A,e,t){let l=Array(A).fill().map(()=>[]);for(let C=0;Cl[n].push(o));return l}function NA(A,e){let t=1+e(),l=e(),C=m(e);return oA(C.length,1+A,e).flatMap((n,g)=>{let[r,...c]=n;return Array(C[g]).fill().map((s,I)=>{let f=I*l;return[r+I*t,c.map(i=>i+f)]})})}function RA(A,e){let t=1+e();return oA(t,1+A,e).map(C=>[C[0],C.slice(1)])}function mA(A){let e=[],t=h(A);return C(l([]),[]),e;function l(o){let n=A(),g=m(()=>{let r=h(A).map(c=>t[c]);if(r.length)return l(r)});return{S:n,B:g,Q:o}}function C({S:o,B:n},g,r){if(!(o&4&&r===g[g.length-1])){o&2&&(r=g[g.length-1]),o&1&&e.push(g);for(let c of n)for(let s of c.Q)C(c,[...g,s],r)}}}var B=eA("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");const Z=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),W=4;function LA(A){return A.toString(16).toUpperCase().padStart(2,"0")}function lA(A){return`{${LA(A)}}`}function SA(A){let e=[];for(let t=0,l=A.length;t>24&255}function nA(A){return A&16777215}const FA=new Map(tA(X).flatMap((A,e)=>A.map(t=>[t,e+1<<24]))),OA=new Set(h(X)),gA=new Map,x=new Map;for(let[A,e]of CA(X)){if(!OA.has(A)&&e.length==2){let[t,l]=e,C=x.get(t);C||(C=new Map,x.set(t,C)),C.set(l,A)}gA.set(A,e.reverse())}const L=44032,b=4352,J=4449,G=4519,rA=19,cA=21,p=28,Y=cA*p,kA=rA*Y,VA=L+kA,bA=b+rA,JA=J+cA,GA=G+p;function iA(A){return A>=L&&A=b&&A=J&&eG&&e0&&C(G+c)}else{let n=gA.get(o);n?t.push(...n):C(o)}if(!t.length)break;o=t.pop()}if(l&&e.length>1){let o=N(e[0]);for(let n=1;n0&&C>=n)n==0?(e.push(l,...t),t.length=0,l=g):t.push(g),C=n;else{let r=YA(l,g);r>=0?l=r:C==0&&n==0?(e.push(l),l=g):(t.push(g),C=n)}}return l>=0&&e.push(l,...t),e}function sA(A){return wA(A).map(nA)}function zA(A){return KA(wA(A))}const fA=65039,BA=".",QA=1,v=45;function U(){return new Set(h(B))}const TA=new Map(CA(B)),HA=U(),K=U(),_=new Set(h(B).map(function(A){return this[A]},[...K])),xA=U();U();const XA=tA(B);function $(){return new Set([h(B).map(A=>XA[A]),h(B)].flat(2))}const qA=B(),S=m(A=>{let e=m(B).map(t=>t+96);if(e.length){let t=A>=qA;e[0]-=32,e=D(e),t&&(e=`Restricted[${e}]`);let l=$(),C=$(),o=[...l,...C].sort((g,r)=>g-r),n=!B();return{N:e,P:l,M:n,R:t,V:new Set(o)}}}),AA=U(),P=new Map;[...AA,...U()].sort((A,e)=>A-e).map((A,e,t)=>{let l=B(),C=t[e]=l?t[e-l]:{V:[],M:new Map};C.V.push(A),AA.has(A)||P.set(A,C)});for(let{V:A,M:e}of new Set(P.values())){let t=[];for(let C of A){let o=S.filter(g=>g.V.has(C)),n=t.find(({G:g})=>o.some(r=>g.has(r)));n||(n={G:new Set,V:[]},t.push(n)),n.V.push(C),o.forEach(g=>n.G.add(g))}let l=t.flatMap(({G:C})=>[...C]);for(let{G:C,V:o}of t){let n=new Set(l.filter(g=>!C.has(g)));for(let g of o)e.set(g,n)}}let F=new Set,EA=new Set;for(let A of S)for(let e of A.V)(F.has(e)?EA:F).add(e);for(let A of F)!P.has(A)&&!EA.has(A)&&P.set(A,QA);const yA=new Set([...F,...sA(F)]);class jA extends Array{get is_emoji(){return!0}}const ZA=mA(B).map(A=>jA.from(A)).sort(PA),aA=new Map;for(let A of ZA){let e=[aA];for(let t of A){let l=e.map(C=>{let o=C.get(t);return o||(o=new Map,C.set(t,o)),o});t===fA?e.push(...l):e=l}for(let t of e)t.V=A}function z(A,e=lA){let t=[];$A(A[0])&&t.push("◌");let l=0,C=A.length;for(let o=0;o=4&&A[2]==v&&A[3]==v)throw new Error(`invalid label extension: "${D(A.slice(0,4))}"`)}function vA(A){for(let t=A.lastIndexOf(95);t>0;)if(A[--t]!==95)throw new Error("underscore allowed only at start")}function _A(A){let e=A[0],t=Z.get(e);if(t)throw R(`leading ${t}`);let l=A.length,C=-1;for(let o=1;o{let o=SA(C),n={input:o,offset:l};l+=o.length+1;let g;try{let r=n.tokens=ne(o,e,t),c=r.length,s;if(c)if(g=r.flat(),vA(g),!(n.emoji=c>1||r[0].is_emoji)&&g.every(f=>f<128))WA(g),s="ASCII";else{let f=r.flatMap(i=>i.is_emoji?[]:i);if(!f.length)s="Emoji";else{if(K.has(g[0]))throw R("leading combining mark");for(let E=1;En.has(g)):[...n],!t.length)return}else l.push(C)}if(t){for(let C of t)if(l.every(o=>C.V.has(o)))throw new Error(`whole-script confusable: ${A.N}/${C.N}`)}}function Ce(A){let e=S;for(let t of A){let l=e.filter(C=>C.V.has(t));if(!l.length)throw S.some(C=>C.V.has(t))?MA(e[0],t):uA(t);if(e=l,l.length==1)break}return e}function oe(A){return A.map(({input:e,error:t,output:l})=>{if(t){let C=t.message;throw new Error(A.length==1?C:`Invalid label ${y(z(e))}: ${C}`)}return D(l)}).join(BA)}function uA(A){return new Error(`disallowed character: ${q(A)}`)}function MA(A,e){let t=q(e),l=S.find(C=>C.P.has(e));return l&&(t=`${l.N} ${t}`),new Error(`illegal mixture: ${A.N} + ${t}`)}function R(A){return new Error(`illegal placement: ${A}`)}function le(A,e){let{V:t,M:l}=A;for(let C of e)if(!t.has(C))throw MA(A,C);if(l){let C=sA(e);for(let o=1,n=C.length;oW)throw new Error(`excessive non-spacing marks: ${y(z(C.slice(o-1,g)))} (${g-o}/${W})`);o=g}}}function ne(A,e,t){let l=[],C=[];for(A=A.slice().reverse();A.length;){let o=re(A);if(o)C.length&&(l.push(e(C)),C=[]),l.push(t(o));else{let n=A.pop();if(yA.has(n))C.push(n);else{let g=TA.get(n);if(g)C.push(...g);else if(!HA.has(n))throw uA(n)}}}return C.length&&l.push(e(C)),l}function ge(A){return A.filter(e=>e!=fA)}function re(A,e){let t=aA,l,C=A.length;for(;C&&(t=t.get(A[--C]),!!t);){let{V:o}=t;o&&(l=o,e&&e.push(...A.slice(C).reverse()),A.length=C)}return l}function we(A){return Ae(A)}export{Be as getEnsAddress,Qe as getEnsAvatar,Ee as getEnsName,ae as getEnsResolver,he as getEnsText,ue as labelhash,Me as namehash,we as normalize}; diff --git a/examples/vite/dist/assets/index-c43d377d.js b/examples/vite/dist/assets/index-90f155ac.js similarity index 54% rename from examples/vite/dist/assets/index-c43d377d.js rename to examples/vite/dist/assets/index-90f155ac.js index 85dc4bd973..24fbab73b8 100644 --- a/examples/vite/dist/assets/index-c43d377d.js +++ b/examples/vite/dist/assets/index-90f155ac.js @@ -1,9 +1,9 @@ -var h_=Object.defineProperty;var C_=(u,e,t)=>e in u?h_(u,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[e]=t;var X=(u,e,t)=>(C_(u,typeof e!="symbol"?e+"":e,t),t),f9=(u,e,t)=>{if(!e.has(u))throw TypeError("Cannot "+t)};var _=(u,e,t)=>(f9(u,e,"read from private field"),t?t.call(u):e.get(u)),tu=(u,e,t)=>{if(e.has(u))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(u):e.set(u,t)},R=(u,e,t,n)=>(f9(u,e,"write to private field"),n?n.call(u,t):e.set(u,t),t);var i4=(u,e,t,n)=>({set _(r){R(u,e,r,t)},get _(){return _(u,e,n)}}),yu=(u,e,t)=>(f9(u,e,"access private method"),t);import{SafeAppProvider as m_}from"@safe-globalThis/safe-apps-provider";import Zl from"@safe-globalThis/safe-apps-sdk";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function t(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=t(r);fetch(r.href,i)}})();var Ju=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function Fp(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}function Dp(u){if(u.__esModule)return u;var e=u.default;if(typeof e=="function"){var t=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(u).forEach(function(n){var r=Object.getOwnPropertyDescriptor(u,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return u[n]}})}),t}var ty={},_2={};_2.byteLength=y_;_2.toByteArray=v_;_2.fromByteArray=b_;var tn=[],Z0=[],g_=typeof Uint8Array<"u"?Uint8Array:Array,p9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Da=0,A_=p9.length;Da0)throw new Error("Invalid string. Length must be a multiple of 4");var t=u.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}function y_(u){var e=ny(u),t=e[0],n=e[1];return(t+n)*3/4-n}function B_(u,e,t){return(e+t)*3/4-t}function v_(u){var e,t=ny(u),n=t[0],r=t[1],i=new g_(B_(u,n,r)),a=0,o=r>0?n-4:n,s;for(s=0;s>16&255,i[a++]=e>>8&255,i[a++]=e&255;return r===2&&(e=Z0[u.charCodeAt(s)]<<2|Z0[u.charCodeAt(s+1)]>>4,i[a++]=e&255),r===1&&(e=Z0[u.charCodeAt(s)]<<10|Z0[u.charCodeAt(s+1)]<<4|Z0[u.charCodeAt(s+2)]>>2,i[a++]=e>>8&255,i[a++]=e&255),i}function F_(u){return tn[u>>18&63]+tn[u>>12&63]+tn[u>>6&63]+tn[u&63]}function D_(u,e,t){for(var n,r=[],i=e;io?o:a+i));return n===1?(e=u[t-1],r.push(tn[e>>2]+tn[e<<4&63]+"==")):n===2&&(e=(u[t-2]<<8)+u[t-1],r.push(tn[e>>10]+tn[e>>4&63]+tn[e<<2&63]+"=")),r.join("")}var bp={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */bp.read=function(u,e,t,n,r){var i,a,o=r*8-n-1,s=(1<>1,c=-7,E=t?r-1:0,d=t?-1:1,f=u[e+E];for(E+=d,i=f&(1<<-c)-1,f>>=-c,c+=o;c>0;i=i*256+u[e+E],E+=d,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=n;c>0;a=a*256+u[e+E],E+=d,c-=8);if(i===0)i=1-l;else{if(i===s)return a?NaN:(f?-1:1)*(1/0);a=a+Math.pow(2,n),i=i-l}return(f?-1:1)*a*Math.pow(2,i-n)};bp.write=function(u,e,t,n,r,i){var a,o,s,l=i*8-r-1,c=(1<>1,d=r===23?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:i-1,C=n?1:-1,h=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-a))<1&&(a--,s*=2),a+E>=1?e+=d/s:e+=d*Math.pow(2,1-E),e*s>=2&&(a++,s/=2),a+E>=c?(o=0,a=c):a+E>=1?(o=(e*s-1)*Math.pow(2,r),a=a+E):(o=e*Math.pow(2,E-1)*Math.pow(2,r),a=0));r>=8;u[t+f]=o&255,f+=C,o/=256,r-=8);for(a=a<0;u[t+f]=a&255,f+=C,a/=256,l-=8);u[t+f-C]|=h*128};/*! +var C_=Object.defineProperty;var m_=(u,e,t)=>e in u?C_(u,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[e]=t;var X=(u,e,t)=>(m_(u,typeof e!="symbol"?e+"":e,t),t),p9=(u,e,t)=>{if(!e.has(u))throw TypeError("Cannot "+t)};var _=(u,e,t)=>(p9(u,e,"read from private field"),t?t.call(u):e.get(u)),tu=(u,e,t)=>{if(e.has(u))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(u):e.set(u,t)},R=(u,e,t,n)=>(p9(u,e,"write to private field"),n?n.call(u,t):e.set(u,t),t);var a4=(u,e,t,n)=>({set _(r){R(u,e,r,t)},get _(){return _(u,e,n)}}),yu=(u,e,t)=>(p9(u,e,"access private method"),t);import{SafeAppProvider as g_}from"@safe-globalThis/safe-apps-provider";import uc from"@safe-globalThis/safe-apps-sdk";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function t(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=t(r);fetch(r.href,i)}})();var Yu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};function Dp(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}function bp(u){if(u.__esModule)return u;var e=u.default;if(typeof e=="function"){var t=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(u).forEach(function(n){var r=Object.getOwnPropertyDescriptor(u,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return u[n]}})}),t}var ny={},S2={};S2.byteLength=B_;S2.toByteArray=F_;S2.fromByteArray=w_;var nn=[],ut=[],A_=typeof Uint8Array<"u"?Uint8Array:Array,h9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var ba=0,y_=h9.length;ba0)throw new Error("Invalid string. Length must be a multiple of 4");var t=u.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}function B_(u){var e=ry(u),t=e[0],n=e[1];return(t+n)*3/4-n}function v_(u,e,t){return(e+t)*3/4-t}function F_(u){var e,t=ry(u),n=t[0],r=t[1],i=new A_(v_(u,n,r)),a=0,o=r>0?n-4:n,s;for(s=0;s>16&255,i[a++]=e>>8&255,i[a++]=e&255;return r===2&&(e=ut[u.charCodeAt(s)]<<2|ut[u.charCodeAt(s+1)]>>4,i[a++]=e&255),r===1&&(e=ut[u.charCodeAt(s)]<<10|ut[u.charCodeAt(s+1)]<<4|ut[u.charCodeAt(s+2)]>>2,i[a++]=e>>8&255,i[a++]=e&255),i}function D_(u){return nn[u>>18&63]+nn[u>>12&63]+nn[u>>6&63]+nn[u&63]}function b_(u,e,t){for(var n,r=[],i=e;io?o:a+i));return n===1?(e=u[t-1],r.push(nn[e>>2]+nn[e<<4&63]+"==")):n===2&&(e=(u[t-2]<<8)+u[t-1],r.push(nn[e>>10]+nn[e>>4&63]+nn[e<<2&63]+"=")),r.join("")}var wp={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */wp.read=function(u,e,t,n,r){var i,a,o=r*8-n-1,s=(1<>1,c=-7,E=t?r-1:0,d=t?-1:1,f=u[e+E];for(E+=d,i=f&(1<<-c)-1,f>>=-c,c+=o;c>0;i=i*256+u[e+E],E+=d,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=n;c>0;a=a*256+u[e+E],E+=d,c-=8);if(i===0)i=1-l;else{if(i===s)return a?NaN:(f?-1:1)*(1/0);a=a+Math.pow(2,n),i=i-l}return(f?-1:1)*a*Math.pow(2,i-n)};wp.write=function(u,e,t,n,r,i){var a,o,s,l=i*8-r-1,c=(1<>1,d=r===23?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:i-1,C=n?1:-1,h=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-a))<1&&(a--,s*=2),a+E>=1?e+=d/s:e+=d*Math.pow(2,1-E),e*s>=2&&(a++,s/=2),a+E>=c?(o=0,a=c):a+E>=1?(o=(e*s-1)*Math.pow(2,r),a=a+E):(o=e*Math.pow(2,E-1)*Math.pow(2,r),a=0));r>=8;u[t+f]=o&255,f+=C,o/=256,r-=8);for(a=a<0;u[t+f]=a&255,f+=C,a/=256,l-=8);u[t+f-C]|=h*128};/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */(function(u){const e=_2,t=bp,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;u.Buffer=o,u.SlowBuffer=m,u.INSPECT_MAX_BYTES=50;const r=2147483647;u.kMaxLength=r,o.TYPED_ARRAY_SUPPORT=i(),!o.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function i(){try{const k=new Uint8Array(1),A={foo:function(){return 42}};return Object.setPrototypeOf(A,Uint8Array.prototype),Object.setPrototypeOf(k,A),k.foo()===42}catch{return!1}}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}});function a(k){if(k>r)throw new RangeError('The value "'+k+'" is invalid for option "size"');const A=new Uint8Array(k);return Object.setPrototypeOf(A,o.prototype),A}function o(k,A,F){if(typeof k=="number"){if(typeof A=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return E(k)}return s(k,A,F)}o.poolSize=8192;function s(k,A,F){if(typeof k=="string")return d(k,A);if(ArrayBuffer.isView(k))return C(k);if(k==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof k);if(Cu(k,ArrayBuffer)||k&&Cu(k.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Cu(k,SharedArrayBuffer)||k&&Cu(k.buffer,SharedArrayBuffer)))return h(k,A,F);if(typeof k=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const P=k.valueOf&&k.valueOf();if(P!=null&&P!==k)return o.from(P,A,F);const z=B(k);if(z)return z;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof k[Symbol.toPrimitive]=="function")return o.from(k[Symbol.toPrimitive]("string"),A,F);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof k)}o.from=function(k,A,F){return s(k,A,F)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function l(k){if(typeof k!="number")throw new TypeError('"size" argument must be of type number');if(k<0)throw new RangeError('The value "'+k+'" is invalid for option "size"')}function c(k,A,F){return l(k),k<=0?a(k):A!==void 0?typeof F=="string"?a(k).fill(A,F):a(k).fill(A):a(k)}o.alloc=function(k,A,F){return c(k,A,F)};function E(k){return l(k),a(k<0?0:g(k)|0)}o.allocUnsafe=function(k){return E(k)},o.allocUnsafeSlow=function(k){return E(k)};function d(k,A){if((typeof A!="string"||A==="")&&(A="utf8"),!o.isEncoding(A))throw new TypeError("Unknown encoding: "+A);const F=y(k,A)|0;let P=a(F);const z=P.write(k,A);return z!==F&&(P=P.slice(0,z)),P}function f(k){const A=k.length<0?0:g(k.length)|0,F=a(A);for(let P=0;P=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return k|0}function m(k){return+k!=k&&(k=0),o.alloc(+k)}o.isBuffer=function(A){return A!=null&&A._isBuffer===!0&&A!==o.prototype},o.compare=function(A,F){if(Cu(A,Uint8Array)&&(A=o.from(A,A.offset,A.byteLength)),Cu(F,Uint8Array)&&(F=o.from(F,F.offset,F.byteLength)),!o.isBuffer(A)||!o.isBuffer(F))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(A===F)return 0;let P=A.length,z=F.length;for(let K=0,Z=Math.min(P,z);Kz.length?(o.isBuffer(Z)||(Z=o.from(Z)),Z.copy(z,K)):Uint8Array.prototype.set.call(z,Z,K);else if(o.isBuffer(Z))Z.copy(z,K);else throw new TypeError('"list" argument must be an Array of Buffers');K+=Z.length}return z};function y(k,A){if(o.isBuffer(k))return k.length;if(ArrayBuffer.isView(k)||Cu(k,ArrayBuffer))return k.byteLength;if(typeof k!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof k);const F=k.length,P=arguments.length>2&&arguments[2]===!0;if(!P&&F===0)return 0;let z=!1;for(;;)switch(A){case"ascii":case"latin1":case"binary":return F;case"utf8":case"utf-8":return $(k).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F*2;case"hex":return F>>>1;case"base64":return G(k).length;default:if(z)return P?-1:$(k).length;A=(""+A).toLowerCase(),z=!0}}o.byteLength=y;function v(k,A,F){let P=!1;if((A===void 0||A<0)&&(A=0),A>this.length||((F===void 0||F>this.length)&&(F=this.length),F<=0)||(F>>>=0,A>>>=0,F<=A))return"";for(k||(k="utf8");;)switch(k){case"hex":return iu(this,A,F);case"utf8":case"utf-8":return hu(this,A,F);case"ascii":return nu(this,A,F);case"latin1":case"binary":return W(this,A,F);case"base64":return su(this,A,F);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return lu(this,A,F);default:if(P)throw new TypeError("Unknown encoding: "+k);k=(k+"").toLowerCase(),P=!0}}o.prototype._isBuffer=!0;function w(k,A,F){const P=k[A];k[A]=k[F],k[F]=P}o.prototype.swap16=function(){const A=this.length;if(A%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let F=0;FF&&(A+=" ... "),""},n&&(o.prototype[n]=o.prototype.inspect),o.prototype.compare=function(A,F,P,z,K){if(Cu(A,Uint8Array)&&(A=o.from(A,A.offset,A.byteLength)),!o.isBuffer(A))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof A);if(F===void 0&&(F=0),P===void 0&&(P=A?A.length:0),z===void 0&&(z=0),K===void 0&&(K=this.length),F<0||P>A.length||z<0||K>this.length)throw new RangeError("out of range index");if(z>=K&&F>=P)return 0;if(z>=K)return-1;if(F>=P)return 1;if(F>>>=0,P>>>=0,z>>>=0,K>>>=0,this===A)return 0;let Z=K-z,Fu=P-F;const Pu=Math.min(Z,Fu),Uu=this.slice(z,K),Ru=A.slice(F,P);for(let ee=0;ee2147483647?F=2147483647:F<-2147483648&&(F=-2147483648),F=+F,Au(F)&&(F=z?0:k.length-1),F<0&&(F=k.length+F),F>=k.length){if(z)return-1;F=k.length-1}else if(F<0)if(z)F=0;else return-1;if(typeof A=="string"&&(A=o.from(A,P)),o.isBuffer(A))return A.length===0?-1:p(k,A,F,P,z);if(typeof A=="number")return A=A&255,typeof Uint8Array.prototype.indexOf=="function"?z?Uint8Array.prototype.indexOf.call(k,A,F):Uint8Array.prototype.lastIndexOf.call(k,A,F):p(k,[A],F,P,z);throw new TypeError("val must be string, number or Buffer")}function p(k,A,F,P,z){let K=1,Z=k.length,Fu=A.length;if(P!==void 0&&(P=String(P).toLowerCase(),P==="ucs2"||P==="ucs-2"||P==="utf16le"||P==="utf-16le")){if(k.length<2||A.length<2)return-1;K=2,Z/=2,Fu/=2,F/=2}function Pu(Ru,ee){return K===1?Ru[ee]:Ru.readUInt16BE(ee*K)}let Uu;if(z){let Ru=-1;for(Uu=F;UuZ&&(F=Z-Fu),Uu=F;Uu>=0;Uu--){let Ru=!0;for(let ee=0;eez&&(P=z)):P=z;const K=A.length;P>K/2&&(P=K/2);let Z;for(Z=0;Z>>0,isFinite(P)?(P=P>>>0,z===void 0&&(z="utf8")):(z=P,P=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const K=this.length-F;if((P===void 0||P>K)&&(P=K),A.length>0&&(P<0||F<0)||F>this.length)throw new RangeError("Attempt to write outside buffer bounds");z||(z="utf8");let Z=!1;for(;;)switch(z){case"hex":return x(this,A,F,P);case"utf8":case"utf-8":return j(this,A,F,P);case"ascii":case"latin1":case"binary":return O(this,A,F,P);case"base64":return uu(this,A,F,P);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ou(this,A,F,P);default:if(Z)throw new TypeError("Unknown encoding: "+z);z=(""+z).toLowerCase(),Z=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function su(k,A,F){return A===0&&F===k.length?e.fromByteArray(k):e.fromByteArray(k.slice(A,F))}function hu(k,A,F){F=Math.min(k.length,F);const P=[];let z=A;for(;z239?4:K>223?3:K>191?2:1;if(z+Fu<=F){let Pu,Uu,Ru,ee;switch(Fu){case 1:K<128&&(Z=K);break;case 2:Pu=k[z+1],(Pu&192)===128&&(ee=(K&31)<<6|Pu&63,ee>127&&(Z=ee));break;case 3:Pu=k[z+1],Uu=k[z+2],(Pu&192)===128&&(Uu&192)===128&&(ee=(K&15)<<12|(Pu&63)<<6|Uu&63,ee>2047&&(ee<55296||ee>57343)&&(Z=ee));break;case 4:Pu=k[z+1],Uu=k[z+2],Ru=k[z+3],(Pu&192)===128&&(Uu&192)===128&&(Ru&192)===128&&(ee=(K&15)<<18|(Pu&63)<<12|(Uu&63)<<6|Ru&63,ee>65535&&ee<1114112&&(Z=ee))}}Z===null?(Z=65533,Fu=1):Z>65535&&(Z-=65536,P.push(Z>>>10&1023|55296),Z=56320|Z&1023),P.push(Z),z+=Fu}return au(P)}const eu=4096;function au(k){const A=k.length;if(A<=eu)return String.fromCharCode.apply(String,k);let F="",P=0;for(;PP)&&(F=P);let z="";for(let K=A;KP&&(A=P),F<0?(F+=P,F<0&&(F=0)):F>P&&(F=P),FF)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(A,F,P){A=A>>>0,F=F>>>0,P||cu(A,F,this.length);let z=this[A],K=1,Z=0;for(;++Z>>0,F=F>>>0,P||cu(A,F,this.length);let z=this[A+--F],K=1;for(;F>0&&(K*=256);)z+=this[A+--F]*K;return z},o.prototype.readUint8=o.prototype.readUInt8=function(A,F){return A=A>>>0,F||cu(A,1,this.length),this[A]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(A,F){return A=A>>>0,F||cu(A,2,this.length),this[A]|this[A+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(A,F){return A=A>>>0,F||cu(A,2,this.length),this[A]<<8|this[A+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),(this[A]|this[A+1]<<8|this[A+2]<<16)+this[A+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),this[A]*16777216+(this[A+1]<<16|this[A+2]<<8|this[A+3])},o.prototype.readBigUInt64LE=Nu(function(A){A=A>>>0,L(A,"offset");const F=this[A],P=this[A+7];(F===void 0||P===void 0)&&U(A,this.length-8);const z=F+this[++A]*2**8+this[++A]*2**16+this[++A]*2**24,K=this[++A]+this[++A]*2**8+this[++A]*2**16+P*2**24;return BigInt(z)+(BigInt(K)<>>0,L(A,"offset");const F=this[A],P=this[A+7];(F===void 0||P===void 0)&&U(A,this.length-8);const z=F*2**24+this[++A]*2**16+this[++A]*2**8+this[++A],K=this[++A]*2**24+this[++A]*2**16+this[++A]*2**8+P;return(BigInt(z)<>>0,F=F>>>0,P||cu(A,F,this.length);let z=this[A],K=1,Z=0;for(;++Z=K&&(z-=Math.pow(2,8*F)),z},o.prototype.readIntBE=function(A,F,P){A=A>>>0,F=F>>>0,P||cu(A,F,this.length);let z=F,K=1,Z=this[A+--z];for(;z>0&&(K*=256);)Z+=this[A+--z]*K;return K*=128,Z>=K&&(Z-=Math.pow(2,8*F)),Z},o.prototype.readInt8=function(A,F){return A=A>>>0,F||cu(A,1,this.length),this[A]&128?(255-this[A]+1)*-1:this[A]},o.prototype.readInt16LE=function(A,F){A=A>>>0,F||cu(A,2,this.length);const P=this[A]|this[A+1]<<8;return P&32768?P|4294901760:P},o.prototype.readInt16BE=function(A,F){A=A>>>0,F||cu(A,2,this.length);const P=this[A+1]|this[A]<<8;return P&32768?P|4294901760:P},o.prototype.readInt32LE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),this[A]|this[A+1]<<8|this[A+2]<<16|this[A+3]<<24},o.prototype.readInt32BE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),this[A]<<24|this[A+1]<<16|this[A+2]<<8|this[A+3]},o.prototype.readBigInt64LE=Nu(function(A){A=A>>>0,L(A,"offset");const F=this[A],P=this[A+7];(F===void 0||P===void 0)&&U(A,this.length-8);const z=this[A+4]+this[A+5]*2**8+this[A+6]*2**16+(P<<24);return(BigInt(z)<>>0,L(A,"offset");const F=this[A],P=this[A+7];(F===void 0||P===void 0)&&U(A,this.length-8);const z=(F<<24)+this[++A]*2**16+this[++A]*2**8+this[++A];return(BigInt(z)<>>0,F||cu(A,4,this.length),t.read(this,A,!0,23,4)},o.prototype.readFloatBE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),t.read(this,A,!1,23,4)},o.prototype.readDoubleLE=function(A,F){return A=A>>>0,F||cu(A,8,this.length),t.read(this,A,!0,52,8)},o.prototype.readDoubleBE=function(A,F){return A=A>>>0,F||cu(A,8,this.length),t.read(this,A,!1,52,8)};function pu(k,A,F,P,z,K){if(!o.isBuffer(k))throw new TypeError('"buffer" argument must be a Buffer instance');if(A>z||Ak.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(A,F,P,z){if(A=+A,F=F>>>0,P=P>>>0,!z){const Fu=Math.pow(2,8*P)-1;pu(this,A,F,P,Fu,0)}let K=1,Z=0;for(this[F]=A&255;++Z>>0,P=P>>>0,!z){const Fu=Math.pow(2,8*P)-1;pu(this,A,F,P,Fu,0)}let K=P-1,Z=1;for(this[F+K]=A&255;--K>=0&&(Z*=256);)this[F+K]=A/Z&255;return F+P},o.prototype.writeUint8=o.prototype.writeUInt8=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,1,255,0),this[F]=A&255,F+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,2,65535,0),this[F]=A&255,this[F+1]=A>>>8,F+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,2,65535,0),this[F]=A>>>8,this[F+1]=A&255,F+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,4,4294967295,0),this[F+3]=A>>>24,this[F+2]=A>>>16,this[F+1]=A>>>8,this[F]=A&255,F+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,4,4294967295,0),this[F]=A>>>24,this[F+1]=A>>>16,this[F+2]=A>>>8,this[F+3]=A&255,F+4};function fu(k,A,F,P,z){I(A,P,z,k,F,7);let K=Number(A&BigInt(4294967295));k[F++]=K,K=K>>8,k[F++]=K,K=K>>8,k[F++]=K,K=K>>8,k[F++]=K;let Z=Number(A>>BigInt(32)&BigInt(4294967295));return k[F++]=Z,Z=Z>>8,k[F++]=Z,Z=Z>>8,k[F++]=Z,Z=Z>>8,k[F++]=Z,F}function J(k,A,F,P,z){I(A,P,z,k,F,7);let K=Number(A&BigInt(4294967295));k[F+7]=K,K=K>>8,k[F+6]=K,K=K>>8,k[F+5]=K,K=K>>8,k[F+4]=K;let Z=Number(A>>BigInt(32)&BigInt(4294967295));return k[F+3]=Z,Z=Z>>8,k[F+2]=Z,Z=Z>>8,k[F+1]=Z,Z=Z>>8,k[F]=Z,F+8}o.prototype.writeBigUInt64LE=Nu(function(A,F=0){return fu(this,A,F,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=Nu(function(A,F=0){return J(this,A,F,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(A,F,P,z){if(A=+A,F=F>>>0,!z){const Pu=Math.pow(2,8*P-1);pu(this,A,F,P,Pu-1,-Pu)}let K=0,Z=1,Fu=0;for(this[F]=A&255;++K>0)-Fu&255;return F+P},o.prototype.writeIntBE=function(A,F,P,z){if(A=+A,F=F>>>0,!z){const Pu=Math.pow(2,8*P-1);pu(this,A,F,P,Pu-1,-Pu)}let K=P-1,Z=1,Fu=0;for(this[F+K]=A&255;--K>=0&&(Z*=256);)A<0&&Fu===0&&this[F+K+1]!==0&&(Fu=1),this[F+K]=(A/Z>>0)-Fu&255;return F+P},o.prototype.writeInt8=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,1,127,-128),A<0&&(A=255+A+1),this[F]=A&255,F+1},o.prototype.writeInt16LE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,2,32767,-32768),this[F]=A&255,this[F+1]=A>>>8,F+2},o.prototype.writeInt16BE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,2,32767,-32768),this[F]=A>>>8,this[F+1]=A&255,F+2},o.prototype.writeInt32LE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,4,2147483647,-2147483648),this[F]=A&255,this[F+1]=A>>>8,this[F+2]=A>>>16,this[F+3]=A>>>24,F+4},o.prototype.writeInt32BE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,4,2147483647,-2147483648),A<0&&(A=4294967295+A+1),this[F]=A>>>24,this[F+1]=A>>>16,this[F+2]=A>>>8,this[F+3]=A&255,F+4},o.prototype.writeBigInt64LE=Nu(function(A,F=0){return fu(this,A,F,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=Nu(function(A,F=0){return J(this,A,F,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function _u(k,A,F,P,z,K){if(F+P>k.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("Index out of range")}function Du(k,A,F,P,z){return A=+A,F=F>>>0,z||_u(k,A,F,4),t.write(k,A,F,P,23,4),F+4}o.prototype.writeFloatLE=function(A,F,P){return Du(this,A,F,!0,P)},o.prototype.writeFloatBE=function(A,F,P){return Du(this,A,F,!1,P)};function xu(k,A,F,P,z){return A=+A,F=F>>>0,z||_u(k,A,F,8),t.write(k,A,F,P,52,8),F+8}o.prototype.writeDoubleLE=function(A,F,P){return xu(this,A,F,!0,P)},o.prototype.writeDoubleBE=function(A,F,P){return xu(this,A,F,!1,P)},o.prototype.copy=function(A,F,P,z){if(!o.isBuffer(A))throw new TypeError("argument should be a Buffer");if(P||(P=0),!z&&z!==0&&(z=this.length),F>=A.length&&(F=A.length),F||(F=0),z>0&&z=this.length)throw new RangeError("Index out of range");if(z<0)throw new RangeError("sourceEnd out of bounds");z>this.length&&(z=this.length),A.length-F>>0,P=P===void 0?this.length:P>>>0,A||(A=0);let K;if(typeof A=="number")for(K=F;K2**32?z=S(String(F)):typeof F=="bigint"&&(z=String(F),(F>BigInt(2)**BigInt(32)||F<-(BigInt(2)**BigInt(32)))&&(z=S(z)),z+="n"),P+=` It must be ${A}. Received ${z}`,P},RangeError);function S(k){let A="",F=k.length;const P=k[0]==="-"?1:0;for(;F>=P+4;F-=3)A=`_${k.slice(F-3,F)}${A}`;return`${k.slice(0,F)}${A}`}function T(k,A,F){L(A,"offset"),(k[A]===void 0||k[A+F]===void 0)&&U(A,k.length-(F+1))}function I(k,A,F,P,z,K){if(k>F||k3?A===0||A===BigInt(0)?Fu=`>= 0${Z} and < 2${Z} ** ${(K+1)*8}${Z}`:Fu=`>= -(2${Z} ** ${(K+1)*8-1}${Z}) and < 2 ** ${(K+1)*8-1}${Z}`:Fu=`>= ${A}${Z} and <= ${F}${Z}`,new bu.ERR_OUT_OF_RANGE("value",Fu,k)}T(P,z,K)}function L(k,A){if(typeof k!="number")throw new bu.ERR_INVALID_ARG_TYPE(A,"number",k)}function U(k,A,F){throw Math.floor(k)!==k?(L(k,F),new bu.ERR_OUT_OF_RANGE(F||"offset","an integer",k)):A<0?new bu.ERR_BUFFER_OUT_OF_BOUNDS:new bu.ERR_OUT_OF_RANGE(F||"offset",`>= ${F?1:0} and <= ${A}`,k)}const q=/[^+/0-9A-Za-z-_]/g;function Y(k){if(k=k.split("=")[0],k=k.trim().replace(q,""),k.length<2)return"";for(;k.length%4!==0;)k=k+"=";return k}function $(k,A){A=A||1/0;let F;const P=k.length;let z=null;const K=[];for(let Z=0;Z55295&&F<57344){if(!z){if(F>56319){(A-=3)>-1&&K.push(239,191,189);continue}else if(Z+1===P){(A-=3)>-1&&K.push(239,191,189);continue}z=F;continue}if(F<56320){(A-=3)>-1&&K.push(239,191,189),z=F;continue}F=(z-55296<<10|F-56320)+65536}else z&&(A-=3)>-1&&K.push(239,191,189);if(z=null,F<128){if((A-=1)<0)break;K.push(F)}else if(F<2048){if((A-=2)<0)break;K.push(F>>6|192,F&63|128)}else if(F<65536){if((A-=3)<0)break;K.push(F>>12|224,F>>6&63|128,F&63|128)}else if(F<1114112){if((A-=4)<0)break;K.push(F>>18|240,F>>12&63|128,F>>6&63|128,F&63|128)}else throw new Error("Invalid code point")}return K}function H(k){const A=[];for(let F=0;F>8,z=F%256,K.push(z),K.push(P);return K}function G(k){return e.toByteArray(Y(k))}function ru(k,A,F,P){let z;for(z=0;z=A.length||z>=k.length);++z)A[z+F]=k[z];return z}function Cu(k,A){return k instanceof A||k!=null&&k.constructor!=null&&k.constructor.name!=null&&k.constructor.name===A.name}function Au(k){return k!==k}const Tu=function(){const k="0123456789abcdef",A=new Array(256);for(let F=0;F<16;++F){const P=F*16;for(let z=0;z<16;++z)A[P+z]=k[F]+k[z]}return A}();function Nu(k){return typeof BigInt>"u"?$u:k}function $u(){throw new Error("BigInt not supported")}})(ty);var ry={exports:{}},Be=ry.exports={},Kt,Qt;function q1(){throw new Error("setTimeout has not been defined")}function H1(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Kt=setTimeout:Kt=q1}catch{Kt=q1}try{typeof clearTimeout=="function"?Qt=clearTimeout:Qt=H1}catch{Qt=H1}})();function iy(u){if(Kt===setTimeout)return setTimeout(u,0);if((Kt===q1||!Kt)&&setTimeout)return Kt=setTimeout,setTimeout(u,0);try{return Kt(u,0)}catch{try{return Kt.call(null,u,0)}catch{return Kt.call(this,u,0)}}}function w_(u){if(Qt===clearTimeout)return clearTimeout(u);if((Qt===H1||!Qt)&&clearTimeout)return Qt=clearTimeout,clearTimeout(u);try{return Qt(u)}catch{try{return Qt.call(null,u)}catch{return Qt.call(this,u)}}}var Rn=[],oo=!1,yi,Nc=-1;function x_(){!oo||!yi||(oo=!1,yi.length?Rn=yi.concat(Rn):Nc=-1,Rn.length&&ay())}function ay(){if(!oo){var u=iy(x_);oo=!0;for(var e=Rn.length;e;){for(yi=Rn,Rn=[];++Nc1)for(var t=1;tr)throw new RangeError('The value "'+k+'" is invalid for option "size"');const A=new Uint8Array(k);return Object.setPrototypeOf(A,o.prototype),A}function o(k,A,F){if(typeof k=="number"){if(typeof A=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return E(k)}return s(k,A,F)}o.poolSize=8192;function s(k,A,F){if(typeof k=="string")return d(k,A);if(ArrayBuffer.isView(k))return C(k);if(k==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof k);if(Cu(k,ArrayBuffer)||k&&Cu(k.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Cu(k,SharedArrayBuffer)||k&&Cu(k.buffer,SharedArrayBuffer)))return h(k,A,F);if(typeof k=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const P=k.valueOf&&k.valueOf();if(P!=null&&P!==k)return o.from(P,A,F);const z=B(k);if(z)return z;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof k[Symbol.toPrimitive]=="function")return o.from(k[Symbol.toPrimitive]("string"),A,F);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof k)}o.from=function(k,A,F){return s(k,A,F)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function l(k){if(typeof k!="number")throw new TypeError('"size" argument must be of type number');if(k<0)throw new RangeError('The value "'+k+'" is invalid for option "size"')}function c(k,A,F){return l(k),k<=0?a(k):A!==void 0?typeof F=="string"?a(k).fill(A,F):a(k).fill(A):a(k)}o.alloc=function(k,A,F){return c(k,A,F)};function E(k){return l(k),a(k<0?0:g(k)|0)}o.allocUnsafe=function(k){return E(k)},o.allocUnsafeSlow=function(k){return E(k)};function d(k,A){if((typeof A!="string"||A==="")&&(A="utf8"),!o.isEncoding(A))throw new TypeError("Unknown encoding: "+A);const F=y(k,A)|0;let P=a(F);const z=P.write(k,A);return z!==F&&(P=P.slice(0,z)),P}function f(k){const A=k.length<0?0:g(k.length)|0,F=a(A);for(let P=0;P=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return k|0}function m(k){return+k!=k&&(k=0),o.alloc(+k)}o.isBuffer=function(A){return A!=null&&A._isBuffer===!0&&A!==o.prototype},o.compare=function(A,F){if(Cu(A,Uint8Array)&&(A=o.from(A,A.offset,A.byteLength)),Cu(F,Uint8Array)&&(F=o.from(F,F.offset,F.byteLength)),!o.isBuffer(A)||!o.isBuffer(F))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(A===F)return 0;let P=A.length,z=F.length;for(let K=0,uu=Math.min(P,z);Kz.length?(o.isBuffer(uu)||(uu=o.from(uu)),uu.copy(z,K)):Uint8Array.prototype.set.call(z,uu,K);else if(o.isBuffer(uu))uu.copy(z,K);else throw new TypeError('"list" argument must be an Array of Buffers');K+=uu.length}return z};function y(k,A){if(o.isBuffer(k))return k.length;if(ArrayBuffer.isView(k)||Cu(k,ArrayBuffer))return k.byteLength;if(typeof k!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof k);const F=k.length,P=arguments.length>2&&arguments[2]===!0;if(!P&&F===0)return 0;let z=!1;for(;;)switch(A){case"ascii":case"latin1":case"binary":return F;case"utf8":case"utf-8":return $(k).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F*2;case"hex":return F>>>1;case"base64":return G(k).length;default:if(z)return P?-1:$(k).length;A=(""+A).toLowerCase(),z=!0}}o.byteLength=y;function v(k,A,F){let P=!1;if((A===void 0||A<0)&&(A=0),A>this.length||((F===void 0||F>this.length)&&(F=this.length),F<=0)||(F>>>=0,A>>>=0,F<=A))return"";for(k||(k="utf8");;)switch(k){case"hex":return iu(this,A,F);case"utf8":case"utf-8":return hu(this,A,F);case"ascii":return nu(this,A,F);case"latin1":case"binary":return W(this,A,F);case"base64":return su(this,A,F);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return lu(this,A,F);default:if(P)throw new TypeError("Unknown encoding: "+k);k=(k+"").toLowerCase(),P=!0}}o.prototype._isBuffer=!0;function w(k,A,F){const P=k[A];k[A]=k[F],k[F]=P}o.prototype.swap16=function(){const A=this.length;if(A%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let F=0;FF&&(A+=" ... "),""},n&&(o.prototype[n]=o.prototype.inspect),o.prototype.compare=function(A,F,P,z,K){if(Cu(A,Uint8Array)&&(A=o.from(A,A.offset,A.byteLength)),!o.isBuffer(A))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof A);if(F===void 0&&(F=0),P===void 0&&(P=A?A.length:0),z===void 0&&(z=0),K===void 0&&(K=this.length),F<0||P>A.length||z<0||K>this.length)throw new RangeError("out of range index");if(z>=K&&F>=P)return 0;if(z>=K)return-1;if(F>=P)return 1;if(F>>>=0,P>>>=0,z>>>=0,K>>>=0,this===A)return 0;let uu=K-z,Fu=P-F;const Pu=Math.min(uu,Fu),Lu=this.slice(z,K),ju=A.slice(F,P);for(let te=0;te2147483647?F=2147483647:F<-2147483648&&(F=-2147483648),F=+F,Au(F)&&(F=z?0:k.length-1),F<0&&(F=k.length+F),F>=k.length){if(z)return-1;F=k.length-1}else if(F<0)if(z)F=0;else return-1;if(typeof A=="string"&&(A=o.from(A,P)),o.isBuffer(A))return A.length===0?-1:p(k,A,F,P,z);if(typeof A=="number")return A=A&255,typeof Uint8Array.prototype.indexOf=="function"?z?Uint8Array.prototype.indexOf.call(k,A,F):Uint8Array.prototype.lastIndexOf.call(k,A,F):p(k,[A],F,P,z);throw new TypeError("val must be string, number or Buffer")}function p(k,A,F,P,z){let K=1,uu=k.length,Fu=A.length;if(P!==void 0&&(P=String(P).toLowerCase(),P==="ucs2"||P==="ucs-2"||P==="utf16le"||P==="utf-16le")){if(k.length<2||A.length<2)return-1;K=2,uu/=2,Fu/=2,F/=2}function Pu(ju,te){return K===1?ju[te]:ju.readUInt16BE(te*K)}let Lu;if(z){let ju=-1;for(Lu=F;Luuu&&(F=uu-Fu),Lu=F;Lu>=0;Lu--){let ju=!0;for(let te=0;tez&&(P=z)):P=z;const K=A.length;P>K/2&&(P=K/2);let uu;for(uu=0;uu>>0,isFinite(P)?(P=P>>>0,z===void 0&&(z="utf8")):(z=P,P=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const K=this.length-F;if((P===void 0||P>K)&&(P=K),A.length>0&&(P<0||F<0)||F>this.length)throw new RangeError("Attempt to write outside buffer bounds");z||(z="utf8");let uu=!1;for(;;)switch(z){case"hex":return x(this,A,F,P);case"utf8":case"utf-8":return j(this,A,F,P);case"ascii":case"latin1":case"binary":return O(this,A,F,P);case"base64":return Z(this,A,F,P);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ou(this,A,F,P);default:if(uu)throw new TypeError("Unknown encoding: "+z);z=(""+z).toLowerCase(),uu=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function su(k,A,F){return A===0&&F===k.length?e.fromByteArray(k):e.fromByteArray(k.slice(A,F))}function hu(k,A,F){F=Math.min(k.length,F);const P=[];let z=A;for(;z239?4:K>223?3:K>191?2:1;if(z+Fu<=F){let Pu,Lu,ju,te;switch(Fu){case 1:K<128&&(uu=K);break;case 2:Pu=k[z+1],(Pu&192)===128&&(te=(K&31)<<6|Pu&63,te>127&&(uu=te));break;case 3:Pu=k[z+1],Lu=k[z+2],(Pu&192)===128&&(Lu&192)===128&&(te=(K&15)<<12|(Pu&63)<<6|Lu&63,te>2047&&(te<55296||te>57343)&&(uu=te));break;case 4:Pu=k[z+1],Lu=k[z+2],ju=k[z+3],(Pu&192)===128&&(Lu&192)===128&&(ju&192)===128&&(te=(K&15)<<18|(Pu&63)<<12|(Lu&63)<<6|ju&63,te>65535&&te<1114112&&(uu=te))}}uu===null?(uu=65533,Fu=1):uu>65535&&(uu-=65536,P.push(uu>>>10&1023|55296),uu=56320|uu&1023),P.push(uu),z+=Fu}return au(P)}const eu=4096;function au(k){const A=k.length;if(A<=eu)return String.fromCharCode.apply(String,k);let F="",P=0;for(;PP)&&(F=P);let z="";for(let K=A;KP&&(A=P),F<0?(F+=P,F<0&&(F=0)):F>P&&(F=P),FF)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(A,F,P){A=A>>>0,F=F>>>0,P||cu(A,F,this.length);let z=this[A],K=1,uu=0;for(;++uu>>0,F=F>>>0,P||cu(A,F,this.length);let z=this[A+--F],K=1;for(;F>0&&(K*=256);)z+=this[A+--F]*K;return z},o.prototype.readUint8=o.prototype.readUInt8=function(A,F){return A=A>>>0,F||cu(A,1,this.length),this[A]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(A,F){return A=A>>>0,F||cu(A,2,this.length),this[A]|this[A+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(A,F){return A=A>>>0,F||cu(A,2,this.length),this[A]<<8|this[A+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),(this[A]|this[A+1]<<8|this[A+2]<<16)+this[A+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),this[A]*16777216+(this[A+1]<<16|this[A+2]<<8|this[A+3])},o.prototype.readBigUInt64LE=Nu(function(A){A=A>>>0,L(A,"offset");const F=this[A],P=this[A+7];(F===void 0||P===void 0)&&U(A,this.length-8);const z=F+this[++A]*2**8+this[++A]*2**16+this[++A]*2**24,K=this[++A]+this[++A]*2**8+this[++A]*2**16+P*2**24;return BigInt(z)+(BigInt(K)<>>0,L(A,"offset");const F=this[A],P=this[A+7];(F===void 0||P===void 0)&&U(A,this.length-8);const z=F*2**24+this[++A]*2**16+this[++A]*2**8+this[++A],K=this[++A]*2**24+this[++A]*2**16+this[++A]*2**8+P;return(BigInt(z)<>>0,F=F>>>0,P||cu(A,F,this.length);let z=this[A],K=1,uu=0;for(;++uu=K&&(z-=Math.pow(2,8*F)),z},o.prototype.readIntBE=function(A,F,P){A=A>>>0,F=F>>>0,P||cu(A,F,this.length);let z=F,K=1,uu=this[A+--z];for(;z>0&&(K*=256);)uu+=this[A+--z]*K;return K*=128,uu>=K&&(uu-=Math.pow(2,8*F)),uu},o.prototype.readInt8=function(A,F){return A=A>>>0,F||cu(A,1,this.length),this[A]&128?(255-this[A]+1)*-1:this[A]},o.prototype.readInt16LE=function(A,F){A=A>>>0,F||cu(A,2,this.length);const P=this[A]|this[A+1]<<8;return P&32768?P|4294901760:P},o.prototype.readInt16BE=function(A,F){A=A>>>0,F||cu(A,2,this.length);const P=this[A+1]|this[A]<<8;return P&32768?P|4294901760:P},o.prototype.readInt32LE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),this[A]|this[A+1]<<8|this[A+2]<<16|this[A+3]<<24},o.prototype.readInt32BE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),this[A]<<24|this[A+1]<<16|this[A+2]<<8|this[A+3]},o.prototype.readBigInt64LE=Nu(function(A){A=A>>>0,L(A,"offset");const F=this[A],P=this[A+7];(F===void 0||P===void 0)&&U(A,this.length-8);const z=this[A+4]+this[A+5]*2**8+this[A+6]*2**16+(P<<24);return(BigInt(z)<>>0,L(A,"offset");const F=this[A],P=this[A+7];(F===void 0||P===void 0)&&U(A,this.length-8);const z=(F<<24)+this[++A]*2**16+this[++A]*2**8+this[++A];return(BigInt(z)<>>0,F||cu(A,4,this.length),t.read(this,A,!0,23,4)},o.prototype.readFloatBE=function(A,F){return A=A>>>0,F||cu(A,4,this.length),t.read(this,A,!1,23,4)},o.prototype.readDoubleLE=function(A,F){return A=A>>>0,F||cu(A,8,this.length),t.read(this,A,!0,52,8)},o.prototype.readDoubleBE=function(A,F){return A=A>>>0,F||cu(A,8,this.length),t.read(this,A,!1,52,8)};function pu(k,A,F,P,z,K){if(!o.isBuffer(k))throw new TypeError('"buffer" argument must be a Buffer instance');if(A>z||Ak.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(A,F,P,z){if(A=+A,F=F>>>0,P=P>>>0,!z){const Fu=Math.pow(2,8*P)-1;pu(this,A,F,P,Fu,0)}let K=1,uu=0;for(this[F]=A&255;++uu>>0,P=P>>>0,!z){const Fu=Math.pow(2,8*P)-1;pu(this,A,F,P,Fu,0)}let K=P-1,uu=1;for(this[F+K]=A&255;--K>=0&&(uu*=256);)this[F+K]=A/uu&255;return F+P},o.prototype.writeUint8=o.prototype.writeUInt8=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,1,255,0),this[F]=A&255,F+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,2,65535,0),this[F]=A&255,this[F+1]=A>>>8,F+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,2,65535,0),this[F]=A>>>8,this[F+1]=A&255,F+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,4,4294967295,0),this[F+3]=A>>>24,this[F+2]=A>>>16,this[F+1]=A>>>8,this[F]=A&255,F+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,4,4294967295,0),this[F]=A>>>24,this[F+1]=A>>>16,this[F+2]=A>>>8,this[F+3]=A&255,F+4};function fu(k,A,F,P,z){I(A,P,z,k,F,7);let K=Number(A&BigInt(4294967295));k[F++]=K,K=K>>8,k[F++]=K,K=K>>8,k[F++]=K,K=K>>8,k[F++]=K;let uu=Number(A>>BigInt(32)&BigInt(4294967295));return k[F++]=uu,uu=uu>>8,k[F++]=uu,uu=uu>>8,k[F++]=uu,uu=uu>>8,k[F++]=uu,F}function J(k,A,F,P,z){I(A,P,z,k,F,7);let K=Number(A&BigInt(4294967295));k[F+7]=K,K=K>>8,k[F+6]=K,K=K>>8,k[F+5]=K,K=K>>8,k[F+4]=K;let uu=Number(A>>BigInt(32)&BigInt(4294967295));return k[F+3]=uu,uu=uu>>8,k[F+2]=uu,uu=uu>>8,k[F+1]=uu,uu=uu>>8,k[F]=uu,F+8}o.prototype.writeBigUInt64LE=Nu(function(A,F=0){return fu(this,A,F,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=Nu(function(A,F=0){return J(this,A,F,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(A,F,P,z){if(A=+A,F=F>>>0,!z){const Pu=Math.pow(2,8*P-1);pu(this,A,F,P,Pu-1,-Pu)}let K=0,uu=1,Fu=0;for(this[F]=A&255;++K>0)-Fu&255;return F+P},o.prototype.writeIntBE=function(A,F,P,z){if(A=+A,F=F>>>0,!z){const Pu=Math.pow(2,8*P-1);pu(this,A,F,P,Pu-1,-Pu)}let K=P-1,uu=1,Fu=0;for(this[F+K]=A&255;--K>=0&&(uu*=256);)A<0&&Fu===0&&this[F+K+1]!==0&&(Fu=1),this[F+K]=(A/uu>>0)-Fu&255;return F+P},o.prototype.writeInt8=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,1,127,-128),A<0&&(A=255+A+1),this[F]=A&255,F+1},o.prototype.writeInt16LE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,2,32767,-32768),this[F]=A&255,this[F+1]=A>>>8,F+2},o.prototype.writeInt16BE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,2,32767,-32768),this[F]=A>>>8,this[F+1]=A&255,F+2},o.prototype.writeInt32LE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,4,2147483647,-2147483648),this[F]=A&255,this[F+1]=A>>>8,this[F+2]=A>>>16,this[F+3]=A>>>24,F+4},o.prototype.writeInt32BE=function(A,F,P){return A=+A,F=F>>>0,P||pu(this,A,F,4,2147483647,-2147483648),A<0&&(A=4294967295+A+1),this[F]=A>>>24,this[F+1]=A>>>16,this[F+2]=A>>>8,this[F+3]=A&255,F+4},o.prototype.writeBigInt64LE=Nu(function(A,F=0){return fu(this,A,F,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=Nu(function(A,F=0){return J(this,A,F,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function _u(k,A,F,P,z,K){if(F+P>k.length)throw new RangeError("Index out of range");if(F<0)throw new RangeError("Index out of range")}function Du(k,A,F,P,z){return A=+A,F=F>>>0,z||_u(k,A,F,4),t.write(k,A,F,P,23,4),F+4}o.prototype.writeFloatLE=function(A,F,P){return Du(this,A,F,!0,P)},o.prototype.writeFloatBE=function(A,F,P){return Du(this,A,F,!1,P)};function xu(k,A,F,P,z){return A=+A,F=F>>>0,z||_u(k,A,F,8),t.write(k,A,F,P,52,8),F+8}o.prototype.writeDoubleLE=function(A,F,P){return xu(this,A,F,!0,P)},o.prototype.writeDoubleBE=function(A,F,P){return xu(this,A,F,!1,P)},o.prototype.copy=function(A,F,P,z){if(!o.isBuffer(A))throw new TypeError("argument should be a Buffer");if(P||(P=0),!z&&z!==0&&(z=this.length),F>=A.length&&(F=A.length),F||(F=0),z>0&&z=this.length)throw new RangeError("Index out of range");if(z<0)throw new RangeError("sourceEnd out of bounds");z>this.length&&(z=this.length),A.length-F>>0,P=P===void 0?this.length:P>>>0,A||(A=0);let K;if(typeof A=="number")for(K=F;K2**32?z=S(String(F)):typeof F=="bigint"&&(z=String(F),(F>BigInt(2)**BigInt(32)||F<-(BigInt(2)**BigInt(32)))&&(z=S(z)),z+="n"),P+=` It must be ${A}. Received ${z}`,P},RangeError);function S(k){let A="",F=k.length;const P=k[0]==="-"?1:0;for(;F>=P+4;F-=3)A=`_${k.slice(F-3,F)}${A}`;return`${k.slice(0,F)}${A}`}function T(k,A,F){L(A,"offset"),(k[A]===void 0||k[A+F]===void 0)&&U(A,k.length-(F+1))}function I(k,A,F,P,z,K){if(k>F||k3?A===0||A===BigInt(0)?Fu=`>= 0${uu} and < 2${uu} ** ${(K+1)*8}${uu}`:Fu=`>= -(2${uu} ** ${(K+1)*8-1}${uu}) and < 2 ** ${(K+1)*8-1}${uu}`:Fu=`>= ${A}${uu} and <= ${F}${uu}`,new bu.ERR_OUT_OF_RANGE("value",Fu,k)}T(P,z,K)}function L(k,A){if(typeof k!="number")throw new bu.ERR_INVALID_ARG_TYPE(A,"number",k)}function U(k,A,F){throw Math.floor(k)!==k?(L(k,F),new bu.ERR_OUT_OF_RANGE(F||"offset","an integer",k)):A<0?new bu.ERR_BUFFER_OUT_OF_BOUNDS:new bu.ERR_OUT_OF_RANGE(F||"offset",`>= ${F?1:0} and <= ${A}`,k)}const q=/[^+/0-9A-Za-z-_]/g;function Y(k){if(k=k.split("=")[0],k=k.trim().replace(q,""),k.length<2)return"";for(;k.length%4!==0;)k=k+"=";return k}function $(k,A){A=A||1/0;let F;const P=k.length;let z=null;const K=[];for(let uu=0;uu55295&&F<57344){if(!z){if(F>56319){(A-=3)>-1&&K.push(239,191,189);continue}else if(uu+1===P){(A-=3)>-1&&K.push(239,191,189);continue}z=F;continue}if(F<56320){(A-=3)>-1&&K.push(239,191,189),z=F;continue}F=(z-55296<<10|F-56320)+65536}else z&&(A-=3)>-1&&K.push(239,191,189);if(z=null,F<128){if((A-=1)<0)break;K.push(F)}else if(F<2048){if((A-=2)<0)break;K.push(F>>6|192,F&63|128)}else if(F<65536){if((A-=3)<0)break;K.push(F>>12|224,F>>6&63|128,F&63|128)}else if(F<1114112){if((A-=4)<0)break;K.push(F>>18|240,F>>12&63|128,F>>6&63|128,F&63|128)}else throw new Error("Invalid code point")}return K}function H(k){const A=[];for(let F=0;F>8,z=F%256,K.push(z),K.push(P);return K}function G(k){return e.toByteArray(Y(k))}function ru(k,A,F,P){let z;for(z=0;z=A.length||z>=k.length);++z)A[z+F]=k[z];return z}function Cu(k,A){return k instanceof A||k!=null&&k.constructor!=null&&k.constructor.name!=null&&k.constructor.name===A.name}function Au(k){return k!==k}const Tu=function(){const k="0123456789abcdef",A=new Array(256);for(let F=0;F<16;++F){const P=F*16;for(let z=0;z<16;++z)A[P+z]=k[F]+k[z]}return A}();function Nu(k){return typeof BigInt>"u"?Wu:k}function Wu(){throw new Error("BigInt not supported")}})(ny);var iy={exports:{}},ve=iy.exports={},Qt,Vt;function H1(){throw new Error("setTimeout has not been defined")}function G1(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Qt=setTimeout:Qt=H1}catch{Qt=H1}try{typeof clearTimeout=="function"?Vt=clearTimeout:Vt=G1}catch{Vt=G1}})();function ay(u){if(Qt===setTimeout)return setTimeout(u,0);if((Qt===H1||!Qt)&&setTimeout)return Qt=setTimeout,setTimeout(u,0);try{return Qt(u,0)}catch{try{return Qt.call(null,u,0)}catch{return Qt.call(this,u,0)}}}function x_(u){if(Vt===clearTimeout)return clearTimeout(u);if((Vt===G1||!Vt)&&clearTimeout)return Vt=clearTimeout,clearTimeout(u);try{return Vt(u)}catch{try{return Vt.call(null,u)}catch{return Vt.call(this,u)}}}var jn=[],so=!1,Bi,Rc=-1;function k_(){!so||!Bi||(so=!1,Bi.length?jn=Bi.concat(jn):Rc=-1,jn.length&&oy())}function oy(){if(!so){var u=ay(k_);so=!0;for(var e=jn.length;e;){for(Bi=jn,jn=[];++Rc1)for(var t=1;te in u?h_(u,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Cl=Symbol.for("react.element"),S_=Symbol.for("react.portal"),P_=Symbol.for("react.fragment"),T_=Symbol.for("react.strict_mode"),I_=Symbol.for("react.profiler"),O_=Symbol.for("react.provider"),N_=Symbol.for("react.context"),R_=Symbol.for("react.forward_ref"),j_=Symbol.for("react.suspense"),z_=Symbol.for("react.memo"),M_=Symbol.for("react.lazy"),IC=Symbol.iterator;function U_(u){return u===null||typeof u!="object"?null:(u=IC&&u[IC]||u["@@iterator"],typeof u=="function"?u:null)}var cy={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ey=Object.assign,dy={};function Ps(u,e,t){this.props=u,this.context=e,this.refs=dy,this.updater=t||cy}Ps.prototype.isReactComponent={};Ps.prototype.setState=function(u,e){if(typeof u!="object"&&typeof u!="function"&&u!=null)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,u,e,"setState")};Ps.prototype.forceUpdate=function(u){this.updater.enqueueForceUpdate(this,u,"forceUpdate")};function fy(){}fy.prototype=Ps.prototype;function wp(u,e,t){this.props=u,this.context=e,this.refs=dy,this.updater=t||cy}var xp=wp.prototype=new fy;xp.constructor=wp;Ey(xp,Ps.prototype);xp.isPureReactComponent=!0;var OC=Array.isArray,py=Object.prototype.hasOwnProperty,kp={current:null},hy={key:!0,ref:!0,__self:!0,__source:!0};function Cy(u,e,t){var n,r={},i=null,a=null;if(e!=null)for(n in e.ref!==void 0&&(a=e.ref),e.key!==void 0&&(i=""+e.key),e)py.call(e,n)&&!hy.hasOwnProperty(n)&&(r[n]=e[n]);var o=arguments.length-2;if(o===1)r.children=t;else if(1e in u?h_(u,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var H_=M,G_=Symbol.for("react.element"),K_=Symbol.for("react.fragment"),Q_=Object.prototype.hasOwnProperty,V_=H_.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,J_={key:!0,ref:!0,__self:!0,__source:!0};function my(u,e,t){var n,r={},i=null,a=null;t!==void 0&&(i=""+t),e.key!==void 0&&(i=""+e.key),e.ref!==void 0&&(a=e.ref);for(n in e)Q_.call(e,n)&&!J_.hasOwnProperty(n)&&(r[n]=e[n]);if(u&&u.defaultProps)for(n in e=u.defaultProps,e)r[n]===void 0&&(r[n]=e[n]);return{$$typeof:G_,type:u,key:i,ref:a,props:r,_owner:V_.current}}S2.Fragment=K_;S2.jsx=my;S2.jsxs=my;sy.exports=S2;var Lu=sy.exports;const Y_="modulepreload",X_=function(u){return"/"+u},RC={},Wu=function(e,t,n){if(!t||t.length===0)return e();const r=document.getElementsByTagName("link");return Promise.all(t.map(i=>{if(i=X_(i),i in RC)return;RC[i]=!0;const a=i.endsWith(".css"),o=a?'[rel="stylesheet"]':"";if(!!n)for(let c=r.length-1;c>=0;c--){const E=r[c];if(E.href===i&&(!a||E.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${o}`))return;const l=document.createElement("link");if(l.rel=a?"stylesheet":Y_,a||(l.as="script",l.crossOrigin=""),l.href=i,document.head.appendChild(l),a)return new Promise((c,E)=>{l.addEventListener("load",c),l.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>e()).catch(i=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i})};var jC='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',Z_={rounded:`SFRounded, ui-rounded, "SF Pro Rounded", ${jC}`,system:jC},a4={large:{actionButton:"9999px",connectButton:"12px",modal:"24px",modalMobile:"28px"},medium:{actionButton:"10px",connectButton:"8px",modal:"16px",modalMobile:"18px"},none:{actionButton:"0px",connectButton:"0px",modal:"0px",modalMobile:"0px"},small:{actionButton:"4px",connectButton:"4px",modal:"8px",modalMobile:"8px"}},uS={large:{modalOverlay:"blur(20px)"},none:{modalOverlay:"blur(0px)"},small:{modalOverlay:"blur(4px)"}},eS=({borderRadius:u="large",fontStack:e="rounded",overlayBlur:t="none"})=>({blurs:{modalOverlay:uS[t].modalOverlay},fonts:{body:Z_[e]},radii:{actionButton:a4[u].actionButton,connectButton:a4[u].connectButton,menuButton:a4[u].connectButton,modal:a4[u].modal,modalMobile:a4[u].modalMobile}}),gy={blue:{accentColor:"#0E76FD",accentColorForeground:"#FFF"},green:{accentColor:"#1DB847",accentColorForeground:"#FFF"},orange:{accentColor:"#FF801F",accentColorForeground:"#FFF"},pink:{accentColor:"#FF5CA0",accentColorForeground:"#FFF"},purple:{accentColor:"#5F5AFA",accentColorForeground:"#FFF"},red:{accentColor:"#FA423C",accentColorForeground:"#FFF"}},zC=gy.blue,Ay=({accentColor:u=zC.accentColor,accentColorForeground:e=zC.accentColorForeground,...t}={})=>({...eS(t),colors:{accentColor:u,accentColorForeground:e,actionButtonBorder:"rgba(0, 0, 0, 0.04)",actionButtonBorderMobile:"rgba(0, 0, 0, 0.06)",actionButtonSecondaryBackground:"rgba(0, 0, 0, 0.06)",closeButton:"rgba(60, 66, 66, 0.8)",closeButtonBackground:"rgba(0, 0, 0, 0.06)",connectButtonBackground:"#FFF",connectButtonBackgroundError:"#FF494A",connectButtonInnerBackground:"linear-gradient(0deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.06))",connectButtonText:"#25292E",connectButtonTextError:"#FFF",connectionIndicator:"#30E000",downloadBottomCardBackground:"linear-gradient(126deg, rgba(255, 255, 255, 0) 9.49%, rgba(171, 171, 171, 0.04) 71.04%), #FFFFFF",downloadTopCardBackground:"linear-gradient(126deg, rgba(171, 171, 171, 0.2) 9.49%, rgba(255, 255, 255, 0) 71.04%), #FFFFFF",error:"#FF494A",generalBorder:"rgba(0, 0, 0, 0.06)",generalBorderDim:"rgba(0, 0, 0, 0.03)",menuItemBackground:"rgba(60, 66, 66, 0.1)",modalBackdrop:"rgba(0, 0, 0, 0.3)",modalBackground:"#FFF",modalBorder:"transparent",modalText:"#25292E",modalTextDim:"rgba(60, 66, 66, 0.3)",modalTextSecondary:"rgba(60, 66, 66, 0.6)",profileAction:"#FFF",profileActionHover:"rgba(255, 255, 255, 0.5)",profileForeground:"rgba(60, 66, 66, 0.06)",selectedOptionBorder:"rgba(60, 66, 66, 0.1)",standby:"#FFD641"},shadows:{connectButton:"0px 4px 12px rgba(0, 0, 0, 0.1)",dialog:"0px 8px 32px rgba(0, 0, 0, 0.32)",profileDetailsAction:"0px 2px 6px rgba(37, 41, 46, 0.04)",selectedOption:"0px 2px 6px rgba(0, 0, 0, 0.24)",selectedWallet:"0px 2px 6px rgba(0, 0, 0, 0.12)",walletLogo:"0px 2px 16px rgba(0, 0, 0, 0.16)"}});Ay.accentColors=gy;function tS(u,e){return Object.defineProperty(u,"__recipe__",{value:e,writable:!1}),u}var yy=tS;function By(u){var{conditions:e}=u;if(!e)throw new Error("Styles have no conditions");function t(n){if(typeof n=="string"||typeof n=="number"||typeof n=="boolean"){if(!e.defaultCondition)throw new Error("No default condition");return{[e.defaultCondition]:n}}if(Array.isArray(n)){if(!("responsiveArray"in e))throw new Error("Responsive arrays are not supported");var r={};for(var i in e.responsiveArray)n[i]!=null&&(r[e.responsiveArray[i]]=n[i]);return r}return n}return yy(t,{importPath:"@vanilla-extract/sprinkles/createUtils",importName:"createNormalizeValueFn",args:[{conditions:u.conditions}]})}function nS(u){var{conditions:e}=u;if(!e)throw new Error("Styles have no conditions");var t=By(u);function n(r,i){if(typeof r=="string"||typeof r=="number"||typeof r=="boolean"){if(!e.defaultCondition)throw new Error("No default condition");return i(r,e.defaultCondition)}var a=Array.isArray(r)?t(r):r,o={};for(var s in a)a[s]!=null&&(o[s]=i(a[s],s));return o}return yy(n,{importPath:"@vanilla-extract/sprinkles/createUtils",importName:"createMapValueFn",args:[{conditions:u.conditions}]})}function rS(u,e,t){return e in u?Object.defineProperty(u,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):u[e]=t,u}function MC(u,e){var t=Object.keys(u);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(u);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(u,r).enumerable})),t.push.apply(t,n)}return t}function C9(u){for(var e=1;efunction(){for(var e=arguments.length,t=new Array(e),n=0;ns.styles)),i=Object.keys(r),a=i.filter(s=>"mappings"in r[s]),o=s=>{var l=[],c={},E=C9({},s),d=!1;for(var f of a){var C=s[f];if(C!=null){var h=r[f];d=!0;for(var B of h.mappings)c[B]=C,E[B]==null&&delete E[B]}}var g=d?C9(C9({},c),E):s;for(var m in g){var y=g[m],v=r[m];try{if(v.mappings)continue;if(typeof y=="string"||typeof y=="number")l.push(v.values[y].defaultClass);else if(Array.isArray(y))for(var w=0;wu,oS=function(){return iS(aS)(...arguments)};function sS({storage:u,key:e="REACT_QUERY_OFFLINE_CACHE",throttleTime:t=1e3,serialize:n=JSON.stringify,deserialize:r=JSON.parse,retry:i}){if(u){const a=o=>{try{u.setItem(e,n(o));return}catch(s){return s}};return{persistClient:lS(o=>{let s=o,l=a(s),c=0;for(;l&&s;)c++,s=i==null?void 0:i({persistedClient:s,error:l,errorCount:c}),s&&(l=a(s))},t),restoreClient:()=>{const o=u.getItem(e);if(o)return r(o)},removeClient:()=>{u.removeItem(e)}}}return{persistClient:UC,restoreClient:()=>{},removeClient:UC}}function lS(u,e=100){let t=null,n;return function(...r){n=r,t===null&&(t=setTimeout(()=>{u(...n),t=null},e))}}function UC(){}class Ts{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){const t={listener:e};return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}}const t3=typeof window>"u"||"Deno"in window;function rt(){}function cS(u,e){return typeof u=="function"?u(e):u}function G1(u){return typeof u=="number"&&u>=0&&u!==1/0}function vy(u,e){return Math.max(u+(e||0)-Date.now(),0)}function v4(u,e,t){return ml(u)?typeof e=="function"?{...t,queryKey:u,queryFn:e}:{...e,queryKey:u}:u}function Fy(u,e,t){return ml(u)?typeof e=="function"?{...t,mutationKey:u,mutationFn:e}:{...e,mutationKey:u}:typeof u=="function"?{...e,mutationFn:u}:{...u}}function Er(u,e,t){return ml(u)?[{...e,queryKey:u},t]:[u||{},e]}function LC(u,e){const{type:t="all",exact:n,fetchStatus:r,predicate:i,queryKey:a,stale:o}=u;if(ml(a)){if(n){if(e.queryHash!==Sp(a,e.options))return!1}else if(!EE(e.queryKey,a))return!1}if(t!=="all"){const s=e.isActive();if(t==="active"&&!s||t==="inactive"&&s)return!1}return!(typeof o=="boolean"&&e.isStale()!==o||typeof r<"u"&&r!==e.state.fetchStatus||i&&!i(e))}function $C(u,e){const{exact:t,fetching:n,predicate:r,mutationKey:i}=u;if(ml(i)){if(!e.options.mutationKey)return!1;if(t){if(Bi(e.options.mutationKey)!==Bi(i))return!1}else if(!EE(e.options.mutationKey,i))return!1}return!(typeof n=="boolean"&&e.state.status==="loading"!==n||r&&!r(e))}function Sp(u,e){return((e==null?void 0:e.queryKeyHashFn)||Bi)(u)}function Bi(u){return JSON.stringify(u,(e,t)=>K1(t)?Object.keys(t).sort().reduce((n,r)=>(n[r]=t[r],n),{}):t)}function EE(u,e){return Dy(u,e)}function Dy(u,e){return u===e?!0:typeof u!=typeof e?!1:u&&e&&typeof u=="object"&&typeof e=="object"?!Object.keys(e).some(t=>!Dy(u[t],e[t])):!1}function Pp(u,e){if(u===e)return u;const t=WC(u)&&WC(e);if(t||K1(u)&&K1(e)){const n=t?u.length:Object.keys(u).length,r=t?e:Object.keys(e),i=r.length,a=t?[]:{};let o=0;for(let s=0;s"u")return!0;const t=e.prototype;return!(!qC(t)||!t.hasOwnProperty("isPrototypeOf"))}function qC(u){return Object.prototype.toString.call(u)==="[object Object]"}function ml(u){return Array.isArray(u)}function by(u){return new Promise(e=>{setTimeout(e,u)})}function HC(u){by(0).then(u)}function ES(){if(typeof AbortController=="function")return new AbortController}function Q1(u,e,t){return t.isDataEqual!=null&&t.isDataEqual(u,e)?u:typeof t.structuralSharing=="function"?t.structuralSharing(u,e):t.structuralSharing!==!1?Pp(u,e):e}class dS extends Ts{constructor(){super(),this.setup=e=>{if(!t3&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),window.addEventListener("focus",t,!1),()=>{window.removeEventListener("visibilitychange",t),window.removeEventListener("focus",t)}}}}onSubscribe(){this.cleanup||this.setEventListener(this.setup)}onUnsubscribe(){if(!this.hasListeners()){var e;(e=this.cleanup)==null||e.call(this),this.cleanup=void 0}}setEventListener(e){var t;this.setup=e,(t=this.cleanup)==null||t.call(this),this.cleanup=e(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()})}setFocused(e){this.focused!==e&&(this.focused=e,this.onFocus())}onFocus(){this.listeners.forEach(({listener:e})=>{e()})}isFocused(){return typeof this.focused=="boolean"?this.focused:typeof document>"u"?!0:[void 0,"visible","prerender"].includes(document.visibilityState)}}const fE=new dS,GC=["online","offline"];class fS extends Ts{constructor(){super(),this.setup=e=>{if(!t3&&window.addEventListener){const t=()=>e();return GC.forEach(n=>{window.addEventListener(n,t,!1)}),()=>{GC.forEach(n=>{window.removeEventListener(n,t)})}}}}onSubscribe(){this.cleanup||this.setEventListener(this.setup)}onUnsubscribe(){if(!this.hasListeners()){var e;(e=this.cleanup)==null||e.call(this),this.cleanup=void 0}}setEventListener(e){var t;this.setup=e,(t=this.cleanup)==null||t.call(this),this.cleanup=e(n=>{typeof n=="boolean"?this.setOnline(n):this.onOnline()})}setOnline(e){this.online!==e&&(this.online=e,this.onOnline())}onOnline(){this.listeners.forEach(({listener:e})=>{e()})}isOnline(){return typeof this.online=="boolean"?this.online:typeof navigator>"u"||typeof navigator.onLine>"u"?!0:navigator.onLine}}const pE=new fS;function pS(u){return Math.min(1e3*2**u,3e4)}function P2(u){return(u??"online")==="online"?pE.isOnline():!0}class wy{constructor(e){this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}}function zc(u){return u instanceof wy}function xy(u){let e=!1,t=0,n=!1,r,i,a;const o=new Promise((B,g)=>{i=B,a=g}),s=B=>{n||(f(new wy(B)),u.abort==null||u.abort())},l=()=>{e=!0},c=()=>{e=!1},E=()=>!fE.isFocused()||u.networkMode!=="always"&&!pE.isOnline(),d=B=>{n||(n=!0,u.onSuccess==null||u.onSuccess(B),r==null||r(),i(B))},f=B=>{n||(n=!0,u.onError==null||u.onError(B),r==null||r(),a(B))},C=()=>new Promise(B=>{r=g=>{const m=n||!E();return m&&B(g),m},u.onPause==null||u.onPause()}).then(()=>{r=void 0,n||u.onContinue==null||u.onContinue()}),h=()=>{if(n)return;let B;try{B=u.fn()}catch(g){B=Promise.reject(g)}Promise.resolve(B).then(d).catch(g=>{var m,y;if(n)return;const v=(m=u.retry)!=null?m:3,w=(y=u.retryDelay)!=null?y:pS,D=typeof w=="function"?w(t,g):w,p=v===!0||typeof v=="number"&&t{if(E())return C()}).then(()=>{e?f(g):h()})})};return P2(u.networkMode)?h():C().then(h),{promise:o,cancel:s,continue:()=>(r==null?void 0:r())?o:Promise.resolve(),cancelRetry:l,continueRetry:c}}const Tp=console;function hS(){let u=[],e=0,t=c=>{c()},n=c=>{c()};const r=c=>{let E;e++;try{E=c()}finally{e--,e||o()}return E},i=c=>{e?u.push(c):HC(()=>{t(c)})},a=c=>(...E)=>{i(()=>{c(...E)})},o=()=>{const c=u;u=[],c.length&&HC(()=>{n(()=>{c.forEach(E=>{t(E)})})})};return{batch:r,batchCalls:a,schedule:i,setNotifyFunction:c=>{t=c},setBatchNotifyFunction:c=>{n=c}}}const ne=hS();class ky{destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),G1(this.cacheTime)&&(this.gcTimeout=setTimeout(()=>{this.optionalRemove()},this.cacheTime))}updateCacheTime(e){this.cacheTime=Math.max(this.cacheTime||0,e??(t3?1/0:5*60*1e3))}clearGcTimeout(){this.gcTimeout&&(clearTimeout(this.gcTimeout),this.gcTimeout=void 0)}}class CS extends ky{constructor(e){super(),this.abortSignalConsumed=!1,this.defaultOptions=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.cache=e.cache,this.logger=e.logger||Tp,this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.initialState=e.state||mS(this.options),this.state=this.initialState,this.scheduleGc()}get meta(){return this.options.meta}setOptions(e){this.options={...this.defaultOptions,...e},this.updateCacheTime(this.options.cacheTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.cache.remove(this)}setData(e,t){const n=Q1(this.state.data,e,this.options);return this.dispatch({data:n,type:"success",dataUpdatedAt:t==null?void 0:t.updatedAt,manual:t==null?void 0:t.manual}),n}setState(e,t){this.dispatch({type:"setState",state:e,setStateOptions:t})}cancel(e){var t;const n=this.promise;return(t=this.retryer)==null||t.cancel(e),n?n.then(rt).catch(rt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.initialState)}isActive(){return this.observers.some(e=>e.options.enabled!==!1)}isDisabled(){return this.getObserversCount()>0&&!this.isActive()}isStale(){return this.state.isInvalidated||!this.state.dataUpdatedAt||this.observers.some(e=>e.getCurrentResult().isStale)}isStaleByTime(e=0){return this.state.isInvalidated||!this.state.dataUpdatedAt||!vy(this.state.dataUpdatedAt,e)}onFocus(){var e;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t&&t.refetch({cancelRefetch:!1}),(e=this.retryer)==null||e.continue()}onOnline(){var e;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t&&t.refetch({cancelRefetch:!1}),(e=this.retryer)==null||e.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.cache.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.retryer&&(this.abortSignalConsumed?this.retryer.cancel({revert:!0}):this.retryer.cancelRetry()),this.scheduleGc()),this.cache.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.dispatch({type:"invalidate"})}fetch(e,t){var n,r;if(this.state.fetchStatus!=="idle"){if(this.state.dataUpdatedAt&&t!=null&&t.cancelRefetch)this.cancel({silent:!0});else if(this.promise){var i;return(i=this.retryer)==null||i.continueRetry(),this.promise}}if(e&&this.setOptions(e),!this.options.queryFn){const f=this.observers.find(C=>C.options.queryFn);f&&this.setOptions(f.options)}const a=ES(),o={queryKey:this.queryKey,pageParam:void 0,meta:this.meta},s=f=>{Object.defineProperty(f,"signal",{enumerable:!0,get:()=>{if(a)return this.abortSignalConsumed=!0,a.signal}})};s(o);const l=()=>this.options.queryFn?(this.abortSignalConsumed=!1,this.options.queryFn(o)):Promise.reject("Missing queryFn for queryKey '"+this.options.queryHash+"'"),c={fetchOptions:t,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:l};if(s(c),(n=this.options.behavior)==null||n.onFetch(c),this.revertState=this.state,this.state.fetchStatus==="idle"||this.state.fetchMeta!==((r=c.fetchOptions)==null?void 0:r.meta)){var E;this.dispatch({type:"fetch",meta:(E=c.fetchOptions)==null?void 0:E.meta})}const d=f=>{if(zc(f)&&f.silent||this.dispatch({type:"error",error:f}),!zc(f)){var C,h,B,g;(C=(h=this.cache.config).onError)==null||C.call(h,f,this),(B=(g=this.cache.config).onSettled)==null||B.call(g,this.state.data,f,this)}this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1};return this.retryer=xy({fn:c.fetchFn,abort:a==null?void 0:a.abort.bind(a),onSuccess:f=>{var C,h,B,g;if(typeof f>"u"){d(new Error(this.queryHash+" data is undefined"));return}this.setData(f),(C=(h=this.cache.config).onSuccess)==null||C.call(h,f,this),(B=(g=this.cache.config).onSettled)==null||B.call(g,f,this.state.error,this),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1},onError:d,onFail:(f,C)=>{this.dispatch({type:"failed",failureCount:f,error:C})},onPause:()=>{this.dispatch({type:"pause"})},onContinue:()=>{this.dispatch({type:"continue"})},retry:c.options.retry,retryDelay:c.options.retryDelay,networkMode:c.options.networkMode}),this.promise=this.retryer.promise,this.promise}dispatch(e){const t=n=>{var r,i;switch(e.type){case"failed":return{...n,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:(r=e.meta)!=null?r:null,fetchStatus:P2(this.options.networkMode)?"fetching":"paused",...!n.dataUpdatedAt&&{error:null,status:"loading"}};case"success":return{...n,data:e.data,dataUpdateCount:n.dataUpdateCount+1,dataUpdatedAt:(i=e.dataUpdatedAt)!=null?i:Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const a=e.error;return zc(a)&&a.revert&&this.revertState?{...this.revertState,fetchStatus:"idle"}:{...n,error:a,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error"};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...e.state}}};this.state=t(this.state),ne.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate(e)}),this.cache.notify({query:this,type:"updated",action:e})})}}function mS(u){const e=typeof u.initialData=="function"?u.initialData():u.initialData,t=typeof e<"u",n=t?typeof u.initialDataUpdatedAt=="function"?u.initialDataUpdatedAt():u.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:t?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:t?"success":"loading",fetchStatus:"idle"}}class gS extends Ts{constructor(e){super(),this.config=e||{},this.queries=[],this.queriesMap={}}build(e,t,n){var r;const i=t.queryKey,a=(r=t.queryHash)!=null?r:Sp(i,t);let o=this.get(a);return o||(o=new CS({cache:this,logger:e.getLogger(),queryKey:i,queryHash:a,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(i)}),this.add(o)),o}add(e){this.queriesMap[e.queryHash]||(this.queriesMap[e.queryHash]=e,this.queries.push(e),this.notify({type:"added",query:e}))}remove(e){const t=this.queriesMap[e.queryHash];t&&(e.destroy(),this.queries=this.queries.filter(n=>n!==e),t===e&&delete this.queriesMap[e.queryHash],this.notify({type:"removed",query:e}))}clear(){ne.batch(()=>{this.queries.forEach(e=>{this.remove(e)})})}get(e){return this.queriesMap[e]}getAll(){return this.queries}find(e,t){const[n]=Er(e,t);return typeof n.exact>"u"&&(n.exact=!0),this.queries.find(r=>LC(n,r))}findAll(e,t){const[n]=Er(e,t);return Object.keys(n).length>0?this.queries.filter(r=>LC(n,r)):this.queries}notify(e){ne.batch(()=>{this.listeners.forEach(({listener:t})=>{t(e)})})}onFocus(){ne.batch(()=>{this.queries.forEach(e=>{e.onFocus()})})}onOnline(){ne.batch(()=>{this.queries.forEach(e=>{e.onOnline()})})}}class AS extends ky{constructor(e){super(),this.defaultOptions=e.defaultOptions,this.mutationId=e.mutationId,this.mutationCache=e.mutationCache,this.logger=e.logger||Tp,this.observers=[],this.state=e.state||_y(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options={...this.defaultOptions,...e},this.updateCacheTime(this.options.cacheTime)}get meta(){return this.options.meta}setState(e){this.dispatch({type:"setState",state:e})}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.mutationCache.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.observers=this.observers.filter(t=>t!==e),this.scheduleGc(),this.mutationCache.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.observers.length||(this.state.status==="loading"?this.scheduleGc():this.mutationCache.remove(this))}continue(){var e,t;return(e=(t=this.retryer)==null?void 0:t.continue())!=null?e:this.execute()}async execute(){const e=()=>{var p;return this.retryer=xy({fn:()=>this.options.mutationFn?this.options.mutationFn(this.state.variables):Promise.reject("No mutationFn found"),onFail:(x,j)=>{this.dispatch({type:"failed",failureCount:x,error:j})},onPause:()=>{this.dispatch({type:"pause"})},onContinue:()=>{this.dispatch({type:"continue"})},retry:(p=this.options.retry)!=null?p:0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode}),this.retryer.promise},t=this.state.status==="loading";try{var n,r,i,a,o,s,l,c;if(!t){var E,d,f,C;this.dispatch({type:"loading",variables:this.options.variables}),await((E=(d=this.mutationCache.config).onMutate)==null?void 0:E.call(d,this.state.variables,this));const x=await((f=(C=this.options).onMutate)==null?void 0:f.call(C,this.state.variables));x!==this.state.context&&this.dispatch({type:"loading",context:x,variables:this.state.variables})}const p=await e();return await((n=(r=this.mutationCache.config).onSuccess)==null?void 0:n.call(r,p,this.state.variables,this.state.context,this)),await((i=(a=this.options).onSuccess)==null?void 0:i.call(a,p,this.state.variables,this.state.context)),await((o=(s=this.mutationCache.config).onSettled)==null?void 0:o.call(s,p,null,this.state.variables,this.state.context,this)),await((l=(c=this.options).onSettled)==null?void 0:l.call(c,p,null,this.state.variables,this.state.context)),this.dispatch({type:"success",data:p}),p}catch(p){try{var h,B,g,m,y,v,w,D;throw await((h=(B=this.mutationCache.config).onError)==null?void 0:h.call(B,p,this.state.variables,this.state.context,this)),await((g=(m=this.options).onError)==null?void 0:g.call(m,p,this.state.variables,this.state.context)),await((y=(v=this.mutationCache.config).onSettled)==null?void 0:y.call(v,void 0,p,this.state.variables,this.state.context,this)),await((w=(D=this.options).onSettled)==null?void 0:w.call(D,void 0,p,this.state.variables,this.state.context)),p}finally{this.dispatch({type:"error",error:p})}}}dispatch(e){const t=n=>{switch(e.type){case"failed":return{...n,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"loading":return{...n,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:!P2(this.options.networkMode),status:"loading",variables:e.variables};case"success":return{...n,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:e.error,failureCount:n.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"};case"setState":return{...n,...e.state}}};this.state=t(this.state),ne.batch(()=>{this.observers.forEach(n=>{n.onMutationUpdate(e)}),this.mutationCache.notify({mutation:this,type:"updated",action:e})})}}function _y(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0}}class yS extends Ts{constructor(e){super(),this.config=e||{},this.mutations=[],this.mutationId=0}build(e,t,n){const r=new AS({mutationCache:this,logger:e.getLogger(),mutationId:++this.mutationId,options:e.defaultMutationOptions(t),state:n,defaultOptions:t.mutationKey?e.getMutationDefaults(t.mutationKey):void 0});return this.add(r),r}add(e){this.mutations.push(e),this.notify({type:"added",mutation:e})}remove(e){this.mutations=this.mutations.filter(t=>t!==e),this.notify({type:"removed",mutation:e})}clear(){ne.batch(()=>{this.mutations.forEach(e=>{this.remove(e)})})}getAll(){return this.mutations}find(e){return typeof e.exact>"u"&&(e.exact=!0),this.mutations.find(t=>$C(e,t))}findAll(e){return this.mutations.filter(t=>$C(e,t))}notify(e){ne.batch(()=>{this.listeners.forEach(({listener:t})=>{t(e)})})}resumePausedMutations(){var e;return this.resuming=((e=this.resuming)!=null?e:Promise.resolve()).then(()=>{const t=this.mutations.filter(n=>n.state.isPaused);return ne.batch(()=>t.reduce((n,r)=>n.then(()=>r.continue().catch(rt)),Promise.resolve()))}).then(()=>{this.resuming=void 0}),this.resuming}}function BS(){return{onFetch:u=>{u.fetchFn=()=>{var e,t,n,r,i,a;const o=(e=u.fetchOptions)==null||(t=e.meta)==null?void 0:t.refetchPage,s=(n=u.fetchOptions)==null||(r=n.meta)==null?void 0:r.fetchMore,l=s==null?void 0:s.pageParam,c=(s==null?void 0:s.direction)==="forward",E=(s==null?void 0:s.direction)==="backward",d=((i=u.state.data)==null?void 0:i.pages)||[],f=((a=u.state.data)==null?void 0:a.pageParams)||[];let C=f,h=!1;const B=D=>{Object.defineProperty(D,"signal",{enumerable:!0,get:()=>{var p;if((p=u.signal)!=null&&p.aborted)h=!0;else{var x;(x=u.signal)==null||x.addEventListener("abort",()=>{h=!0})}return u.signal}})},g=u.options.queryFn||(()=>Promise.reject("Missing queryFn for queryKey '"+u.options.queryHash+"'")),m=(D,p,x,j)=>(C=j?[p,...C]:[...C,p],j?[x,...D]:[...D,x]),y=(D,p,x,j)=>{if(h)return Promise.reject("Cancelled");if(typeof x>"u"&&!p&&D.length)return Promise.resolve(D);const O={queryKey:u.queryKey,pageParam:x,meta:u.options.meta};B(O);const uu=g(O);return Promise.resolve(uu).then(su=>m(D,x,su,j))};let v;if(!d.length)v=y([]);else if(c){const D=typeof l<"u",p=D?l:KC(u.options,d);v=y(d,D,p)}else if(E){const D=typeof l<"u",p=D?l:vS(u.options,d);v=y(d,D,p,!0)}else{C=[];const D=typeof u.options.getNextPageParam>"u";v=(o&&d[0]?o(d[0],0,d):!0)?y([],D,f[0]):Promise.resolve(m([],f[0],d[0]));for(let x=1;x{if(o&&d[x]?o(d[x],x,d):!0){const uu=D?f[x]:KC(u.options,j);return y(j,D,uu)}return Promise.resolve(m(j,f[x],d[x]))})}return v.then(D=>({pages:D,pageParams:C}))}}}}function KC(u,e){return u.getNextPageParam==null?void 0:u.getNextPageParam(e[e.length-1],e)}function vS(u,e){return u.getPreviousPageParam==null?void 0:u.getPreviousPageParam(e[0],e)}class Sy{constructor(e={}){this.queryCache=e.queryCache||new gS,this.mutationCache=e.mutationCache||new yS,this.logger=e.logger||Tp,this.defaultOptions=e.defaultOptions||{},this.queryDefaults=[],this.mutationDefaults=[],this.mountCount=0}mount(){this.mountCount++,this.mountCount===1&&(this.unsubscribeFocus=fE.subscribe(()=>{fE.isFocused()&&(this.resumePausedMutations(),this.queryCache.onFocus())}),this.unsubscribeOnline=pE.subscribe(()=>{pE.isOnline()&&(this.resumePausedMutations(),this.queryCache.onOnline())}))}unmount(){var e,t;this.mountCount--,this.mountCount===0&&((e=this.unsubscribeFocus)==null||e.call(this),this.unsubscribeFocus=void 0,(t=this.unsubscribeOnline)==null||t.call(this),this.unsubscribeOnline=void 0)}isFetching(e,t){const[n]=Er(e,t);return n.fetchStatus="fetching",this.queryCache.findAll(n).length}isMutating(e){return this.mutationCache.findAll({...e,fetching:!0}).length}getQueryData(e,t){var n;return(n=this.queryCache.find(e,t))==null?void 0:n.state.data}ensureQueryData(e,t,n){const r=v4(e,t,n),i=this.getQueryData(r.queryKey);return i?Promise.resolve(i):this.fetchQuery(r)}getQueriesData(e){return this.getQueryCache().findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.queryCache.find(e),i=r==null?void 0:r.state.data,a=cS(t,i);if(typeof a>"u")return;const o=v4(e),s=this.defaultQueryOptions(o);return this.queryCache.build(this,s).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return ne.batch(()=>this.getQueryCache().findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e,t){var n;return(n=this.queryCache.find(e,t))==null?void 0:n.state}removeQueries(e,t){const[n]=Er(e,t),r=this.queryCache;ne.batch(()=>{r.findAll(n).forEach(i=>{r.remove(i)})})}resetQueries(e,t,n){const[r,i]=Er(e,t,n),a=this.queryCache,o={type:"active",...r};return ne.batch(()=>(a.findAll(r).forEach(s=>{s.reset()}),this.refetchQueries(o,i)))}cancelQueries(e,t,n){const[r,i={}]=Er(e,t,n);typeof i.revert>"u"&&(i.revert=!0);const a=ne.batch(()=>this.queryCache.findAll(r).map(o=>o.cancel(i)));return Promise.all(a).then(rt).catch(rt)}invalidateQueries(e,t,n){const[r,i]=Er(e,t,n);return ne.batch(()=>{var a,o;if(this.queryCache.findAll(r).forEach(l=>{l.invalidate()}),r.refetchType==="none")return Promise.resolve();const s={...r,type:(a=(o=r.refetchType)!=null?o:r.type)!=null?a:"active"};return this.refetchQueries(s,i)})}refetchQueries(e,t,n){const[r,i]=Er(e,t,n),a=ne.batch(()=>this.queryCache.findAll(r).filter(s=>!s.isDisabled()).map(s=>{var l;return s.fetch(void 0,{...i,cancelRefetch:(l=i==null?void 0:i.cancelRefetch)!=null?l:!0,meta:{refetchPage:r.refetchPage}})}));let o=Promise.all(a).then(rt);return i!=null&&i.throwOnError||(o=o.catch(rt)),o}fetchQuery(e,t,n){const r=v4(e,t,n),i=this.defaultQueryOptions(r);typeof i.retry>"u"&&(i.retry=!1);const a=this.queryCache.build(this,i);return a.isStaleByTime(i.staleTime)?a.fetch(i):Promise.resolve(a.state.data)}prefetchQuery(e,t,n){return this.fetchQuery(e,t,n).then(rt).catch(rt)}fetchInfiniteQuery(e,t,n){const r=v4(e,t,n);return r.behavior=BS(),this.fetchQuery(r)}prefetchInfiniteQuery(e,t,n){return this.fetchInfiniteQuery(e,t,n).then(rt).catch(rt)}resumePausedMutations(){return this.mutationCache.resumePausedMutations()}getQueryCache(){return this.queryCache}getMutationCache(){return this.mutationCache}getLogger(){return this.logger}getDefaultOptions(){return this.defaultOptions}setDefaultOptions(e){this.defaultOptions=e}setQueryDefaults(e,t){const n=this.queryDefaults.find(r=>Bi(e)===Bi(r.queryKey));n?n.defaultOptions=t:this.queryDefaults.push({queryKey:e,defaultOptions:t})}getQueryDefaults(e){if(!e)return;const t=this.queryDefaults.find(n=>EE(e,n.queryKey));return t==null?void 0:t.defaultOptions}setMutationDefaults(e,t){const n=this.mutationDefaults.find(r=>Bi(e)===Bi(r.mutationKey));n?n.defaultOptions=t:this.mutationDefaults.push({mutationKey:e,defaultOptions:t})}getMutationDefaults(e){if(!e)return;const t=this.mutationDefaults.find(n=>EE(e,n.mutationKey));return t==null?void 0:t.defaultOptions}defaultQueryOptions(e){if(e!=null&&e._defaulted)return e;const t={...this.defaultOptions.queries,...this.getQueryDefaults(e==null?void 0:e.queryKey),...e,_defaulted:!0};return!t.queryHash&&t.queryKey&&(t.queryHash=Sp(t.queryKey,t)),typeof t.refetchOnReconnect>"u"&&(t.refetchOnReconnect=t.networkMode!=="always"),typeof t.useErrorBoundary>"u"&&(t.useErrorBoundary=!!t.suspense),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...this.defaultOptions.mutations,...this.getMutationDefaults(e==null?void 0:e.mutationKey),...e,_defaulted:!0}}clear(){this.queryCache.clear(),this.mutationCache.clear()}}class Py extends Ts{constructor(e,t){super(),this.client=e,this.options=t,this.trackedProps=new Set,this.selectError=null,this.bindMethods(),this.setOptions(t)}bindMethods(){this.remove=this.remove.bind(this),this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.currentQuery.addObserver(this),QC(this.currentQuery,this.options)&&this.executeFetch(),this.updateTimers())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return V1(this.currentQuery,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return V1(this.currentQuery,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.clearStaleTimeout(),this.clearRefetchInterval(),this.currentQuery.removeObserver(this)}setOptions(e,t){const n=this.options,r=this.currentQuery;if(this.options=this.client.defaultQueryOptions(e),dE(n,this.options)||this.client.getQueryCache().notify({type:"observerOptionsUpdated",query:this.currentQuery,observer:this}),typeof this.options.enabled<"u"&&typeof this.options.enabled!="boolean")throw new Error("Expected enabled to be a boolean");this.options.queryKey||(this.options.queryKey=n.queryKey),this.updateQuery();const i=this.hasListeners();i&&VC(this.currentQuery,r,this.options,n)&&this.executeFetch(),this.updateResult(t),i&&(this.currentQuery!==r||this.options.enabled!==n.enabled||this.options.staleTime!==n.staleTime)&&this.updateStaleTimeout();const a=this.computeRefetchInterval();i&&(this.currentQuery!==r||this.options.enabled!==n.enabled||a!==this.currentRefetchInterval)&&this.updateRefetchInterval(a)}getOptimisticResult(e){const t=this.client.getQueryCache().build(this.client,e),n=this.createResult(t,e);return DS(this,n,e)&&(this.currentResult=n,this.currentResultOptions=this.options,this.currentResultState=this.currentQuery.state),n}getCurrentResult(){return this.currentResult}trackResult(e){const t={};return Object.keys(e).forEach(n=>{Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:()=>(this.trackedProps.add(n),e[n])})}),t}getCurrentQuery(){return this.currentQuery}remove(){this.client.getQueryCache().remove(this.currentQuery)}refetch({refetchPage:e,...t}={}){return this.fetch({...t,meta:{refetchPage:e}})}fetchOptimistic(e){const t=this.client.defaultQueryOptions(e),n=this.client.getQueryCache().build(this.client,t);return n.isFetchingOptimistic=!0,n.fetch().then(()=>this.createResult(n,t))}fetch(e){var t;return this.executeFetch({...e,cancelRefetch:(t=e.cancelRefetch)!=null?t:!0}).then(()=>(this.updateResult(),this.currentResult))}executeFetch(e){this.updateQuery();let t=this.currentQuery.fetch(this.options,e);return e!=null&&e.throwOnError||(t=t.catch(rt)),t}updateStaleTimeout(){if(this.clearStaleTimeout(),t3||this.currentResult.isStale||!G1(this.options.staleTime))return;const t=vy(this.currentResult.dataUpdatedAt,this.options.staleTime)+1;this.staleTimeoutId=setTimeout(()=>{this.currentResult.isStale||this.updateResult()},t)}computeRefetchInterval(){var e;return typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.currentResult.data,this.currentQuery):(e=this.options.refetchInterval)!=null?e:!1}updateRefetchInterval(e){this.clearRefetchInterval(),this.currentRefetchInterval=e,!(t3||this.options.enabled===!1||!G1(this.currentRefetchInterval)||this.currentRefetchInterval===0)&&(this.refetchIntervalId=setInterval(()=>{(this.options.refetchIntervalInBackground||fE.isFocused())&&this.executeFetch()},this.currentRefetchInterval))}updateTimers(){this.updateStaleTimeout(),this.updateRefetchInterval(this.computeRefetchInterval())}clearStaleTimeout(){this.staleTimeoutId&&(clearTimeout(this.staleTimeoutId),this.staleTimeoutId=void 0)}clearRefetchInterval(){this.refetchIntervalId&&(clearInterval(this.refetchIntervalId),this.refetchIntervalId=void 0)}createResult(e,t){const n=this.currentQuery,r=this.options,i=this.currentResult,a=this.currentResultState,o=this.currentResultOptions,s=e!==n,l=s?e.state:this.currentQueryInitialState,c=s?this.currentResult:this.previousQueryResult,{state:E}=e;let{dataUpdatedAt:d,error:f,errorUpdatedAt:C,fetchStatus:h,status:B}=E,g=!1,m=!1,y;if(t._optimisticResults){const x=this.hasListeners(),j=!x&&QC(e,t),O=x&&VC(e,n,t,r);(j||O)&&(h=P2(e.options.networkMode)?"fetching":"paused",d||(B="loading")),t._optimisticResults==="isRestoring"&&(h="idle")}if(t.keepPreviousData&&!E.dataUpdatedAt&&c!=null&&c.isSuccess&&B!=="error")y=c.data,d=c.dataUpdatedAt,B=c.status,g=!0;else if(t.select&&typeof E.data<"u")if(i&&E.data===(a==null?void 0:a.data)&&t.select===this.selectFn)y=this.selectResult;else try{this.selectFn=t.select,y=t.select(E.data),y=Q1(i==null?void 0:i.data,y,t),this.selectResult=y,this.selectError=null}catch(x){this.selectError=x}else y=E.data;if(typeof t.placeholderData<"u"&&typeof y>"u"&&B==="loading"){let x;if(i!=null&&i.isPlaceholderData&&t.placeholderData===(o==null?void 0:o.placeholderData))x=i.data;else if(x=typeof t.placeholderData=="function"?t.placeholderData():t.placeholderData,t.select&&typeof x<"u")try{x=t.select(x),this.selectError=null}catch(j){this.selectError=j}typeof x<"u"&&(B="success",y=Q1(i==null?void 0:i.data,x,t),m=!0)}this.selectError&&(f=this.selectError,y=this.selectResult,C=Date.now(),B="error");const v=h==="fetching",w=B==="loading",D=B==="error";return{status:B,fetchStatus:h,isLoading:w,isSuccess:B==="success",isError:D,isInitialLoading:w&&v,data:y,dataUpdatedAt:d,error:f,errorUpdatedAt:C,failureCount:E.fetchFailureCount,failureReason:E.fetchFailureReason,errorUpdateCount:E.errorUpdateCount,isFetched:E.dataUpdateCount>0||E.errorUpdateCount>0,isFetchedAfterMount:E.dataUpdateCount>l.dataUpdateCount||E.errorUpdateCount>l.errorUpdateCount,isFetching:v,isRefetching:v&&!w,isLoadingError:D&&E.dataUpdatedAt===0,isPaused:h==="paused",isPlaceholderData:m,isPreviousData:g,isRefetchError:D&&E.dataUpdatedAt!==0,isStale:Ip(e,t),refetch:this.refetch,remove:this.remove}}updateResult(e){const t=this.currentResult,n=this.createResult(this.currentQuery,this.options);if(this.currentResultState=this.currentQuery.state,this.currentResultOptions=this.options,dE(n,t))return;this.currentResult=n;const r={cache:!0},i=()=>{if(!t)return!0;const{notifyOnChangeProps:a}=this.options,o=typeof a=="function"?a():a;if(o==="all"||!o&&!this.trackedProps.size)return!0;const s=new Set(o??this.trackedProps);return this.options.useErrorBoundary&&s.add("error"),Object.keys(this.currentResult).some(l=>{const c=l;return this.currentResult[c]!==t[c]&&s.has(c)})};(e==null?void 0:e.listeners)!==!1&&i()&&(r.listeners=!0),this.notify({...r,...e})}updateQuery(){const e=this.client.getQueryCache().build(this.client,this.options);if(e===this.currentQuery)return;const t=this.currentQuery;this.currentQuery=e,this.currentQueryInitialState=e.state,this.previousQueryResult=this.currentResult,this.hasListeners()&&(t==null||t.removeObserver(this),e.addObserver(this))}onQueryUpdate(e){const t={};e.type==="success"?t.onSuccess=!e.manual:e.type==="error"&&!zc(e.error)&&(t.onError=!0),this.updateResult(t),this.hasListeners()&&this.updateTimers()}notify(e){ne.batch(()=>{if(e.onSuccess){var t,n,r,i;(t=(n=this.options).onSuccess)==null||t.call(n,this.currentResult.data),(r=(i=this.options).onSettled)==null||r.call(i,this.currentResult.data,null)}else if(e.onError){var a,o,s,l;(a=(o=this.options).onError)==null||a.call(o,this.currentResult.error),(s=(l=this.options).onSettled)==null||s.call(l,void 0,this.currentResult.error)}e.listeners&&this.listeners.forEach(({listener:c})=>{c(this.currentResult)}),e.cache&&this.client.getQueryCache().notify({query:this.currentQuery,type:"observerResultsUpdated"})})}}function FS(u,e){return e.enabled!==!1&&!u.state.dataUpdatedAt&&!(u.state.status==="error"&&e.retryOnMount===!1)}function QC(u,e){return FS(u,e)||u.state.dataUpdatedAt>0&&V1(u,e,e.refetchOnMount)}function V1(u,e,t){if(e.enabled!==!1){const n=typeof t=="function"?t(u):t;return n==="always"||n!==!1&&Ip(u,e)}return!1}function VC(u,e,t,n){return t.enabled!==!1&&(u!==e||n.enabled===!1)&&(!t.suspense||u.state.status!=="error")&&Ip(u,t)}function Ip(u,e){return u.isStaleByTime(e.staleTime)}function DS(u,e,t){return t.keepPreviousData?!1:t.placeholderData!==void 0?e.isPlaceholderData:!dE(u.getCurrentResult(),e)}let bS=class extends Ts{constructor(e,t){super(),this.client=e,this.setOptions(t),this.bindMethods(),this.updateResult()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){var t;const n=this.options;this.options=this.client.defaultMutationOptions(e),dE(n,this.options)||this.client.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.currentMutation,observer:this}),(t=this.currentMutation)==null||t.setOptions(this.options)}onUnsubscribe(){if(!this.hasListeners()){var e;(e=this.currentMutation)==null||e.removeObserver(this)}}onMutationUpdate(e){this.updateResult();const t={listeners:!0};e.type==="success"?t.onSuccess=!0:e.type==="error"&&(t.onError=!0),this.notify(t)}getCurrentResult(){return this.currentResult}reset(){this.currentMutation=void 0,this.updateResult(),this.notify({listeners:!0})}mutate(e,t){return this.mutateOptions=t,this.currentMutation&&this.currentMutation.removeObserver(this),this.currentMutation=this.client.getMutationCache().build(this.client,{...this.options,variables:typeof e<"u"?e:this.options.variables}),this.currentMutation.addObserver(this),this.currentMutation.execute()}updateResult(){const e=this.currentMutation?this.currentMutation.state:_y(),t={...e,isLoading:e.status==="loading",isSuccess:e.status==="success",isError:e.status==="error",isIdle:e.status==="idle",mutate:this.mutate,reset:this.reset};this.currentResult=t}notify(e){ne.batch(()=>{if(this.mutateOptions&&this.hasListeners()){if(e.onSuccess){var t,n,r,i;(t=(n=this.mutateOptions).onSuccess)==null||t.call(n,this.currentResult.data,this.currentResult.variables,this.currentResult.context),(r=(i=this.mutateOptions).onSettled)==null||r.call(i,this.currentResult.data,null,this.currentResult.variables,this.currentResult.context)}else if(e.onError){var a,o,s,l;(a=(o=this.mutateOptions).onError)==null||a.call(o,this.currentResult.error,this.currentResult.variables,this.currentResult.context),(s=(l=this.mutateOptions).onSettled)==null||s.call(l,void 0,this.currentResult.error,this.currentResult.variables,this.currentResult.context)}}e.listeners&&this.listeners.forEach(({listener:c})=>{c(this.currentResult)})})}};function wS(u){return{mutationKey:u.options.mutationKey,state:u.state}}function xS(u){return{state:u.state,queryKey:u.queryKey,queryHash:u.queryHash}}function kS(u){return u.state.isPaused}function _S(u){return u.state.status==="success"}function SS(u,e={}){const t=[],n=[];if(e.dehydrateMutations!==!1){const r=e.shouldDehydrateMutation||kS;u.getMutationCache().getAll().forEach(i=>{r(i)&&t.push(wS(i))})}if(e.dehydrateQueries!==!1){const r=e.shouldDehydrateQuery||_S;u.getQueryCache().getAll().forEach(i=>{r(i)&&n.push(xS(i))})}return{mutations:t,queries:n}}function PS(u,e,t){if(typeof e!="object"||e===null)return;const n=u.getMutationCache(),r=u.getQueryCache(),i=e.mutations||[],a=e.queries||[];i.forEach(o=>{var s;n.build(u,{...t==null||(s=t.defaultOptions)==null?void 0:s.mutations,mutationKey:o.mutationKey},o.state)}),a.forEach(({queryKey:o,state:s,queryHash:l})=>{var c;const E=r.get(l);if(E){if(E.state.dataUpdatedAt{if(i=Z_(i),i in jC)return;jC[i]=!0;const a=i.endsWith(".css"),o=a?'[rel="stylesheet"]':"";if(!!n)for(let c=r.length-1;c>=0;c--){const E=r[c];if(E.href===i&&(!a||E.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${o}`))return;const l=document.createElement("link");if(l.rel=a?"stylesheet":X_,a||(l.as="script",l.crossOrigin=""),l.href=i,document.head.appendChild(l),a)return new Promise((c,E)=>{l.addEventListener("load",c),l.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>e()).catch(i=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i})};var zC='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',uS={rounded:`SFRounded, ui-rounded, "SF Pro Rounded", ${zC}`,system:zC},o4={large:{actionButton:"9999px",connectButton:"12px",modal:"24px",modalMobile:"28px"},medium:{actionButton:"10px",connectButton:"8px",modal:"16px",modalMobile:"18px"},none:{actionButton:"0px",connectButton:"0px",modal:"0px",modalMobile:"0px"},small:{actionButton:"4px",connectButton:"4px",modal:"8px",modalMobile:"8px"}},eS={large:{modalOverlay:"blur(20px)"},none:{modalOverlay:"blur(0px)"},small:{modalOverlay:"blur(4px)"}},tS=({borderRadius:u="large",fontStack:e="rounded",overlayBlur:t="none"})=>({blurs:{modalOverlay:eS[t].modalOverlay},fonts:{body:uS[e]},radii:{actionButton:o4[u].actionButton,connectButton:o4[u].connectButton,menuButton:o4[u].connectButton,modal:o4[u].modal,modalMobile:o4[u].modalMobile}}),Ay={blue:{accentColor:"#0E76FD",accentColorForeground:"#FFF"},green:{accentColor:"#1DB847",accentColorForeground:"#FFF"},orange:{accentColor:"#FF801F",accentColorForeground:"#FFF"},pink:{accentColor:"#FF5CA0",accentColorForeground:"#FFF"},purple:{accentColor:"#5F5AFA",accentColorForeground:"#FFF"},red:{accentColor:"#FA423C",accentColorForeground:"#FFF"}},MC=Ay.blue,yy=({accentColor:u=MC.accentColor,accentColorForeground:e=MC.accentColorForeground,...t}={})=>({...tS(t),colors:{accentColor:u,accentColorForeground:e,actionButtonBorder:"rgba(0, 0, 0, 0.04)",actionButtonBorderMobile:"rgba(0, 0, 0, 0.06)",actionButtonSecondaryBackground:"rgba(0, 0, 0, 0.06)",closeButton:"rgba(60, 66, 66, 0.8)",closeButtonBackground:"rgba(0, 0, 0, 0.06)",connectButtonBackground:"#FFF",connectButtonBackgroundError:"#FF494A",connectButtonInnerBackground:"linear-gradient(0deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.06))",connectButtonText:"#25292E",connectButtonTextError:"#FFF",connectionIndicator:"#30E000",downloadBottomCardBackground:"linear-gradient(126deg, rgba(255, 255, 255, 0) 9.49%, rgba(171, 171, 171, 0.04) 71.04%), #FFFFFF",downloadTopCardBackground:"linear-gradient(126deg, rgba(171, 171, 171, 0.2) 9.49%, rgba(255, 255, 255, 0) 71.04%), #FFFFFF",error:"#FF494A",generalBorder:"rgba(0, 0, 0, 0.06)",generalBorderDim:"rgba(0, 0, 0, 0.03)",menuItemBackground:"rgba(60, 66, 66, 0.1)",modalBackdrop:"rgba(0, 0, 0, 0.3)",modalBackground:"#FFF",modalBorder:"transparent",modalText:"#25292E",modalTextDim:"rgba(60, 66, 66, 0.3)",modalTextSecondary:"rgba(60, 66, 66, 0.6)",profileAction:"#FFF",profileActionHover:"rgba(255, 255, 255, 0.5)",profileForeground:"rgba(60, 66, 66, 0.06)",selectedOptionBorder:"rgba(60, 66, 66, 0.1)",standby:"#FFD641"},shadows:{connectButton:"0px 4px 12px rgba(0, 0, 0, 0.1)",dialog:"0px 8px 32px rgba(0, 0, 0, 0.32)",profileDetailsAction:"0px 2px 6px rgba(37, 41, 46, 0.04)",selectedOption:"0px 2px 6px rgba(0, 0, 0, 0.24)",selectedWallet:"0px 2px 6px rgba(0, 0, 0, 0.12)",walletLogo:"0px 2px 16px rgba(0, 0, 0, 0.16)"}});yy.accentColors=Ay;function nS(u,e){return Object.defineProperty(u,"__recipe__",{value:e,writable:!1}),u}var By=nS;function vy(u){var{conditions:e}=u;if(!e)throw new Error("Styles have no conditions");function t(n){if(typeof n=="string"||typeof n=="number"||typeof n=="boolean"){if(!e.defaultCondition)throw new Error("No default condition");return{[e.defaultCondition]:n}}if(Array.isArray(n)){if(!("responsiveArray"in e))throw new Error("Responsive arrays are not supported");var r={};for(var i in e.responsiveArray)n[i]!=null&&(r[e.responsiveArray[i]]=n[i]);return r}return n}return By(t,{importPath:"@vanilla-extract/sprinkles/createUtils",importName:"createNormalizeValueFn",args:[{conditions:u.conditions}]})}function rS(u){var{conditions:e}=u;if(!e)throw new Error("Styles have no conditions");var t=vy(u);function n(r,i){if(typeof r=="string"||typeof r=="number"||typeof r=="boolean"){if(!e.defaultCondition)throw new Error("No default condition");return i(r,e.defaultCondition)}var a=Array.isArray(r)?t(r):r,o={};for(var s in a)a[s]!=null&&(o[s]=i(a[s],s));return o}return By(n,{importPath:"@vanilla-extract/sprinkles/createUtils",importName:"createMapValueFn",args:[{conditions:u.conditions}]})}function iS(u,e,t){return e in u?Object.defineProperty(u,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):u[e]=t,u}function UC(u,e){var t=Object.keys(u);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(u);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(u,r).enumerable})),t.push.apply(t,n)}return t}function m9(u){for(var e=1;efunction(){for(var e=arguments.length,t=new Array(e),n=0;ns.styles)),i=Object.keys(r),a=i.filter(s=>"mappings"in r[s]),o=s=>{var l=[],c={},E=m9({},s),d=!1;for(var f of a){var C=s[f];if(C!=null){var h=r[f];d=!0;for(var B of h.mappings)c[B]=C,E[B]==null&&delete E[B]}}var g=d?m9(m9({},c),E):s;for(var m in g){var y=g[m],v=r[m];try{if(v.mappings)continue;if(typeof y=="string"||typeof y=="number")l.push(v.values[y].defaultClass);else if(Array.isArray(y))for(var w=0;wu,sS=function(){return aS(oS)(...arguments)};function lS({storage:u,key:e="REACT_QUERY_OFFLINE_CACHE",throttleTime:t=1e3,serialize:n=JSON.stringify,deserialize:r=JSON.parse,retry:i}){if(u){const a=o=>{try{u.setItem(e,n(o));return}catch(s){return s}};return{persistClient:cS(o=>{let s=o,l=a(s),c=0;for(;l&&s;)c++,s=i==null?void 0:i({persistedClient:s,error:l,errorCount:c}),s&&(l=a(s))},t),restoreClient:()=>{const o=u.getItem(e);if(o)return r(o)},removeClient:()=>{u.removeItem(e)}}}return{persistClient:LC,restoreClient:()=>{},removeClient:LC}}function cS(u,e=100){let t=null,n;return function(...r){n=r,t===null&&(t=setTimeout(()=>{u(...n),t=null},e))}}function LC(){}class Is{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){const t={listener:e};return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}}const n3=typeof window>"u"||"Deno"in window;function it(){}function ES(u,e){return typeof u=="function"?u(e):u}function K1(u){return typeof u=="number"&&u>=0&&u!==1/0}function Fy(u,e){return Math.max(u+(e||0)-Date.now(),0)}function F4(u,e,t){return gl(u)?typeof e=="function"?{...t,queryKey:u,queryFn:e}:{...e,queryKey:u}:u}function Dy(u,e,t){return gl(u)?typeof e=="function"?{...t,mutationKey:u,mutationFn:e}:{...e,mutationKey:u}:typeof u=="function"?{...e,mutationFn:u}:{...u}}function dr(u,e,t){return gl(u)?[{...e,queryKey:u},t]:[u||{},e]}function $C(u,e){const{type:t="all",exact:n,fetchStatus:r,predicate:i,queryKey:a,stale:o}=u;if(gl(a)){if(n){if(e.queryHash!==Pp(a,e.options))return!1}else if(!dE(e.queryKey,a))return!1}if(t!=="all"){const s=e.isActive();if(t==="active"&&!s||t==="inactive"&&s)return!1}return!(typeof o=="boolean"&&e.isStale()!==o||typeof r<"u"&&r!==e.state.fetchStatus||i&&!i(e))}function WC(u,e){const{exact:t,fetching:n,predicate:r,mutationKey:i}=u;if(gl(i)){if(!e.options.mutationKey)return!1;if(t){if(vi(e.options.mutationKey)!==vi(i))return!1}else if(!dE(e.options.mutationKey,i))return!1}return!(typeof n=="boolean"&&e.state.status==="loading"!==n||r&&!r(e))}function Pp(u,e){return((e==null?void 0:e.queryKeyHashFn)||vi)(u)}function vi(u){return JSON.stringify(u,(e,t)=>Q1(t)?Object.keys(t).sort().reduce((n,r)=>(n[r]=t[r],n),{}):t)}function dE(u,e){return by(u,e)}function by(u,e){return u===e?!0:typeof u!=typeof e?!1:u&&e&&typeof u=="object"&&typeof e=="object"?!Object.keys(e).some(t=>!by(u[t],e[t])):!1}function Tp(u,e){if(u===e)return u;const t=qC(u)&&qC(e);if(t||Q1(u)&&Q1(e)){const n=t?u.length:Object.keys(u).length,r=t?e:Object.keys(e),i=r.length,a=t?[]:{};let o=0;for(let s=0;s"u")return!0;const t=e.prototype;return!(!HC(t)||!t.hasOwnProperty("isPrototypeOf"))}function HC(u){return Object.prototype.toString.call(u)==="[object Object]"}function gl(u){return Array.isArray(u)}function wy(u){return new Promise(e=>{setTimeout(e,u)})}function GC(u){wy(0).then(u)}function dS(){if(typeof AbortController=="function")return new AbortController}function V1(u,e,t){return t.isDataEqual!=null&&t.isDataEqual(u,e)?u:typeof t.structuralSharing=="function"?t.structuralSharing(u,e):t.structuralSharing!==!1?Tp(u,e):e}class fS extends Is{constructor(){super(),this.setup=e=>{if(!n3&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),window.addEventListener("focus",t,!1),()=>{window.removeEventListener("visibilitychange",t),window.removeEventListener("focus",t)}}}}onSubscribe(){this.cleanup||this.setEventListener(this.setup)}onUnsubscribe(){if(!this.hasListeners()){var e;(e=this.cleanup)==null||e.call(this),this.cleanup=void 0}}setEventListener(e){var t;this.setup=e,(t=this.cleanup)==null||t.call(this),this.cleanup=e(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()})}setFocused(e){this.focused!==e&&(this.focused=e,this.onFocus())}onFocus(){this.listeners.forEach(({listener:e})=>{e()})}isFocused(){return typeof this.focused=="boolean"?this.focused:typeof document>"u"?!0:[void 0,"visible","prerender"].includes(document.visibilityState)}}const pE=new fS,KC=["online","offline"];class pS extends Is{constructor(){super(),this.setup=e=>{if(!n3&&window.addEventListener){const t=()=>e();return KC.forEach(n=>{window.addEventListener(n,t,!1)}),()=>{KC.forEach(n=>{window.removeEventListener(n,t)})}}}}onSubscribe(){this.cleanup||this.setEventListener(this.setup)}onUnsubscribe(){if(!this.hasListeners()){var e;(e=this.cleanup)==null||e.call(this),this.cleanup=void 0}}setEventListener(e){var t;this.setup=e,(t=this.cleanup)==null||t.call(this),this.cleanup=e(n=>{typeof n=="boolean"?this.setOnline(n):this.onOnline()})}setOnline(e){this.online!==e&&(this.online=e,this.onOnline())}onOnline(){this.listeners.forEach(({listener:e})=>{e()})}isOnline(){return typeof this.online=="boolean"?this.online:typeof navigator>"u"||typeof navigator.onLine>"u"?!0:navigator.onLine}}const hE=new pS;function hS(u){return Math.min(1e3*2**u,3e4)}function T2(u){return(u??"online")==="online"?hE.isOnline():!0}class xy{constructor(e){this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}}function Mc(u){return u instanceof xy}function ky(u){let e=!1,t=0,n=!1,r,i,a;const o=new Promise((B,g)=>{i=B,a=g}),s=B=>{n||(f(new xy(B)),u.abort==null||u.abort())},l=()=>{e=!0},c=()=>{e=!1},E=()=>!pE.isFocused()||u.networkMode!=="always"&&!hE.isOnline(),d=B=>{n||(n=!0,u.onSuccess==null||u.onSuccess(B),r==null||r(),i(B))},f=B=>{n||(n=!0,u.onError==null||u.onError(B),r==null||r(),a(B))},C=()=>new Promise(B=>{r=g=>{const m=n||!E();return m&&B(g),m},u.onPause==null||u.onPause()}).then(()=>{r=void 0,n||u.onContinue==null||u.onContinue()}),h=()=>{if(n)return;let B;try{B=u.fn()}catch(g){B=Promise.reject(g)}Promise.resolve(B).then(d).catch(g=>{var m,y;if(n)return;const v=(m=u.retry)!=null?m:3,w=(y=u.retryDelay)!=null?y:hS,D=typeof w=="function"?w(t,g):w,p=v===!0||typeof v=="number"&&t{if(E())return C()}).then(()=>{e?f(g):h()})})};return T2(u.networkMode)?h():C().then(h),{promise:o,cancel:s,continue:()=>(r==null?void 0:r())?o:Promise.resolve(),cancelRetry:l,continueRetry:c}}const Ip=console;function CS(){let u=[],e=0,t=c=>{c()},n=c=>{c()};const r=c=>{let E;e++;try{E=c()}finally{e--,e||o()}return E},i=c=>{e?u.push(c):GC(()=>{t(c)})},a=c=>(...E)=>{i(()=>{c(...E)})},o=()=>{const c=u;u=[],c.length&&GC(()=>{n(()=>{c.forEach(E=>{t(E)})})})};return{batch:r,batchCalls:a,schedule:i,setNotifyFunction:c=>{t=c},setBatchNotifyFunction:c=>{n=c}}}const re=CS();class _y{destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),K1(this.cacheTime)&&(this.gcTimeout=setTimeout(()=>{this.optionalRemove()},this.cacheTime))}updateCacheTime(e){this.cacheTime=Math.max(this.cacheTime||0,e??(n3?1/0:5*60*1e3))}clearGcTimeout(){this.gcTimeout&&(clearTimeout(this.gcTimeout),this.gcTimeout=void 0)}}class mS extends _y{constructor(e){super(),this.abortSignalConsumed=!1,this.defaultOptions=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.cache=e.cache,this.logger=e.logger||Ip,this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.initialState=e.state||gS(this.options),this.state=this.initialState,this.scheduleGc()}get meta(){return this.options.meta}setOptions(e){this.options={...this.defaultOptions,...e},this.updateCacheTime(this.options.cacheTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.cache.remove(this)}setData(e,t){const n=V1(this.state.data,e,this.options);return this.dispatch({data:n,type:"success",dataUpdatedAt:t==null?void 0:t.updatedAt,manual:t==null?void 0:t.manual}),n}setState(e,t){this.dispatch({type:"setState",state:e,setStateOptions:t})}cancel(e){var t;const n=this.promise;return(t=this.retryer)==null||t.cancel(e),n?n.then(it).catch(it):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.initialState)}isActive(){return this.observers.some(e=>e.options.enabled!==!1)}isDisabled(){return this.getObserversCount()>0&&!this.isActive()}isStale(){return this.state.isInvalidated||!this.state.dataUpdatedAt||this.observers.some(e=>e.getCurrentResult().isStale)}isStaleByTime(e=0){return this.state.isInvalidated||!this.state.dataUpdatedAt||!Fy(this.state.dataUpdatedAt,e)}onFocus(){var e;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t&&t.refetch({cancelRefetch:!1}),(e=this.retryer)==null||e.continue()}onOnline(){var e;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t&&t.refetch({cancelRefetch:!1}),(e=this.retryer)==null||e.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.cache.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.retryer&&(this.abortSignalConsumed?this.retryer.cancel({revert:!0}):this.retryer.cancelRetry()),this.scheduleGc()),this.cache.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.dispatch({type:"invalidate"})}fetch(e,t){var n,r;if(this.state.fetchStatus!=="idle"){if(this.state.dataUpdatedAt&&t!=null&&t.cancelRefetch)this.cancel({silent:!0});else if(this.promise){var i;return(i=this.retryer)==null||i.continueRetry(),this.promise}}if(e&&this.setOptions(e),!this.options.queryFn){const f=this.observers.find(C=>C.options.queryFn);f&&this.setOptions(f.options)}const a=dS(),o={queryKey:this.queryKey,pageParam:void 0,meta:this.meta},s=f=>{Object.defineProperty(f,"signal",{enumerable:!0,get:()=>{if(a)return this.abortSignalConsumed=!0,a.signal}})};s(o);const l=()=>this.options.queryFn?(this.abortSignalConsumed=!1,this.options.queryFn(o)):Promise.reject("Missing queryFn for queryKey '"+this.options.queryHash+"'"),c={fetchOptions:t,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:l};if(s(c),(n=this.options.behavior)==null||n.onFetch(c),this.revertState=this.state,this.state.fetchStatus==="idle"||this.state.fetchMeta!==((r=c.fetchOptions)==null?void 0:r.meta)){var E;this.dispatch({type:"fetch",meta:(E=c.fetchOptions)==null?void 0:E.meta})}const d=f=>{if(Mc(f)&&f.silent||this.dispatch({type:"error",error:f}),!Mc(f)){var C,h,B,g;(C=(h=this.cache.config).onError)==null||C.call(h,f,this),(B=(g=this.cache.config).onSettled)==null||B.call(g,this.state.data,f,this)}this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1};return this.retryer=ky({fn:c.fetchFn,abort:a==null?void 0:a.abort.bind(a),onSuccess:f=>{var C,h,B,g;if(typeof f>"u"){d(new Error(this.queryHash+" data is undefined"));return}this.setData(f),(C=(h=this.cache.config).onSuccess)==null||C.call(h,f,this),(B=(g=this.cache.config).onSettled)==null||B.call(g,f,this.state.error,this),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1},onError:d,onFail:(f,C)=>{this.dispatch({type:"failed",failureCount:f,error:C})},onPause:()=>{this.dispatch({type:"pause"})},onContinue:()=>{this.dispatch({type:"continue"})},retry:c.options.retry,retryDelay:c.options.retryDelay,networkMode:c.options.networkMode}),this.promise=this.retryer.promise,this.promise}dispatch(e){const t=n=>{var r,i;switch(e.type){case"failed":return{...n,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:(r=e.meta)!=null?r:null,fetchStatus:T2(this.options.networkMode)?"fetching":"paused",...!n.dataUpdatedAt&&{error:null,status:"loading"}};case"success":return{...n,data:e.data,dataUpdateCount:n.dataUpdateCount+1,dataUpdatedAt:(i=e.dataUpdatedAt)!=null?i:Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const a=e.error;return Mc(a)&&a.revert&&this.revertState?{...this.revertState,fetchStatus:"idle"}:{...n,error:a,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error"};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...e.state}}};this.state=t(this.state),re.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate(e)}),this.cache.notify({query:this,type:"updated",action:e})})}}function gS(u){const e=typeof u.initialData=="function"?u.initialData():u.initialData,t=typeof e<"u",n=t?typeof u.initialDataUpdatedAt=="function"?u.initialDataUpdatedAt():u.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:t?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:t?"success":"loading",fetchStatus:"idle"}}class AS extends Is{constructor(e){super(),this.config=e||{},this.queries=[],this.queriesMap={}}build(e,t,n){var r;const i=t.queryKey,a=(r=t.queryHash)!=null?r:Pp(i,t);let o=this.get(a);return o||(o=new mS({cache:this,logger:e.getLogger(),queryKey:i,queryHash:a,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(i)}),this.add(o)),o}add(e){this.queriesMap[e.queryHash]||(this.queriesMap[e.queryHash]=e,this.queries.push(e),this.notify({type:"added",query:e}))}remove(e){const t=this.queriesMap[e.queryHash];t&&(e.destroy(),this.queries=this.queries.filter(n=>n!==e),t===e&&delete this.queriesMap[e.queryHash],this.notify({type:"removed",query:e}))}clear(){re.batch(()=>{this.queries.forEach(e=>{this.remove(e)})})}get(e){return this.queriesMap[e]}getAll(){return this.queries}find(e,t){const[n]=dr(e,t);return typeof n.exact>"u"&&(n.exact=!0),this.queries.find(r=>$C(n,r))}findAll(e,t){const[n]=dr(e,t);return Object.keys(n).length>0?this.queries.filter(r=>$C(n,r)):this.queries}notify(e){re.batch(()=>{this.listeners.forEach(({listener:t})=>{t(e)})})}onFocus(){re.batch(()=>{this.queries.forEach(e=>{e.onFocus()})})}onOnline(){re.batch(()=>{this.queries.forEach(e=>{e.onOnline()})})}}class yS extends _y{constructor(e){super(),this.defaultOptions=e.defaultOptions,this.mutationId=e.mutationId,this.mutationCache=e.mutationCache,this.logger=e.logger||Ip,this.observers=[],this.state=e.state||Sy(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options={...this.defaultOptions,...e},this.updateCacheTime(this.options.cacheTime)}get meta(){return this.options.meta}setState(e){this.dispatch({type:"setState",state:e})}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.mutationCache.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.observers=this.observers.filter(t=>t!==e),this.scheduleGc(),this.mutationCache.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.observers.length||(this.state.status==="loading"?this.scheduleGc():this.mutationCache.remove(this))}continue(){var e,t;return(e=(t=this.retryer)==null?void 0:t.continue())!=null?e:this.execute()}async execute(){const e=()=>{var p;return this.retryer=ky({fn:()=>this.options.mutationFn?this.options.mutationFn(this.state.variables):Promise.reject("No mutationFn found"),onFail:(x,j)=>{this.dispatch({type:"failed",failureCount:x,error:j})},onPause:()=>{this.dispatch({type:"pause"})},onContinue:()=>{this.dispatch({type:"continue"})},retry:(p=this.options.retry)!=null?p:0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode}),this.retryer.promise},t=this.state.status==="loading";try{var n,r,i,a,o,s,l,c;if(!t){var E,d,f,C;this.dispatch({type:"loading",variables:this.options.variables}),await((E=(d=this.mutationCache.config).onMutate)==null?void 0:E.call(d,this.state.variables,this));const x=await((f=(C=this.options).onMutate)==null?void 0:f.call(C,this.state.variables));x!==this.state.context&&this.dispatch({type:"loading",context:x,variables:this.state.variables})}const p=await e();return await((n=(r=this.mutationCache.config).onSuccess)==null?void 0:n.call(r,p,this.state.variables,this.state.context,this)),await((i=(a=this.options).onSuccess)==null?void 0:i.call(a,p,this.state.variables,this.state.context)),await((o=(s=this.mutationCache.config).onSettled)==null?void 0:o.call(s,p,null,this.state.variables,this.state.context,this)),await((l=(c=this.options).onSettled)==null?void 0:l.call(c,p,null,this.state.variables,this.state.context)),this.dispatch({type:"success",data:p}),p}catch(p){try{var h,B,g,m,y,v,w,D;throw await((h=(B=this.mutationCache.config).onError)==null?void 0:h.call(B,p,this.state.variables,this.state.context,this)),await((g=(m=this.options).onError)==null?void 0:g.call(m,p,this.state.variables,this.state.context)),await((y=(v=this.mutationCache.config).onSettled)==null?void 0:y.call(v,void 0,p,this.state.variables,this.state.context,this)),await((w=(D=this.options).onSettled)==null?void 0:w.call(D,void 0,p,this.state.variables,this.state.context)),p}finally{this.dispatch({type:"error",error:p})}}}dispatch(e){const t=n=>{switch(e.type){case"failed":return{...n,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"loading":return{...n,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:!T2(this.options.networkMode),status:"loading",variables:e.variables};case"success":return{...n,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:e.error,failureCount:n.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"};case"setState":return{...n,...e.state}}};this.state=t(this.state),re.batch(()=>{this.observers.forEach(n=>{n.onMutationUpdate(e)}),this.mutationCache.notify({mutation:this,type:"updated",action:e})})}}function Sy(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0}}class BS extends Is{constructor(e){super(),this.config=e||{},this.mutations=[],this.mutationId=0}build(e,t,n){const r=new yS({mutationCache:this,logger:e.getLogger(),mutationId:++this.mutationId,options:e.defaultMutationOptions(t),state:n,defaultOptions:t.mutationKey?e.getMutationDefaults(t.mutationKey):void 0});return this.add(r),r}add(e){this.mutations.push(e),this.notify({type:"added",mutation:e})}remove(e){this.mutations=this.mutations.filter(t=>t!==e),this.notify({type:"removed",mutation:e})}clear(){re.batch(()=>{this.mutations.forEach(e=>{this.remove(e)})})}getAll(){return this.mutations}find(e){return typeof e.exact>"u"&&(e.exact=!0),this.mutations.find(t=>WC(e,t))}findAll(e){return this.mutations.filter(t=>WC(e,t))}notify(e){re.batch(()=>{this.listeners.forEach(({listener:t})=>{t(e)})})}resumePausedMutations(){var e;return this.resuming=((e=this.resuming)!=null?e:Promise.resolve()).then(()=>{const t=this.mutations.filter(n=>n.state.isPaused);return re.batch(()=>t.reduce((n,r)=>n.then(()=>r.continue().catch(it)),Promise.resolve()))}).then(()=>{this.resuming=void 0}),this.resuming}}function vS(){return{onFetch:u=>{u.fetchFn=()=>{var e,t,n,r,i,a;const o=(e=u.fetchOptions)==null||(t=e.meta)==null?void 0:t.refetchPage,s=(n=u.fetchOptions)==null||(r=n.meta)==null?void 0:r.fetchMore,l=s==null?void 0:s.pageParam,c=(s==null?void 0:s.direction)==="forward",E=(s==null?void 0:s.direction)==="backward",d=((i=u.state.data)==null?void 0:i.pages)||[],f=((a=u.state.data)==null?void 0:a.pageParams)||[];let C=f,h=!1;const B=D=>{Object.defineProperty(D,"signal",{enumerable:!0,get:()=>{var p;if((p=u.signal)!=null&&p.aborted)h=!0;else{var x;(x=u.signal)==null||x.addEventListener("abort",()=>{h=!0})}return u.signal}})},g=u.options.queryFn||(()=>Promise.reject("Missing queryFn for queryKey '"+u.options.queryHash+"'")),m=(D,p,x,j)=>(C=j?[p,...C]:[...C,p],j?[x,...D]:[...D,x]),y=(D,p,x,j)=>{if(h)return Promise.reject("Cancelled");if(typeof x>"u"&&!p&&D.length)return Promise.resolve(D);const O={queryKey:u.queryKey,pageParam:x,meta:u.options.meta};B(O);const Z=g(O);return Promise.resolve(Z).then(su=>m(D,x,su,j))};let v;if(!d.length)v=y([]);else if(c){const D=typeof l<"u",p=D?l:QC(u.options,d);v=y(d,D,p)}else if(E){const D=typeof l<"u",p=D?l:FS(u.options,d);v=y(d,D,p,!0)}else{C=[];const D=typeof u.options.getNextPageParam>"u";v=(o&&d[0]?o(d[0],0,d):!0)?y([],D,f[0]):Promise.resolve(m([],f[0],d[0]));for(let x=1;x{if(o&&d[x]?o(d[x],x,d):!0){const Z=D?f[x]:QC(u.options,j);return y(j,D,Z)}return Promise.resolve(m(j,f[x],d[x]))})}return v.then(D=>({pages:D,pageParams:C}))}}}}function QC(u,e){return u.getNextPageParam==null?void 0:u.getNextPageParam(e[e.length-1],e)}function FS(u,e){return u.getPreviousPageParam==null?void 0:u.getPreviousPageParam(e[0],e)}class Py{constructor(e={}){this.queryCache=e.queryCache||new AS,this.mutationCache=e.mutationCache||new BS,this.logger=e.logger||Ip,this.defaultOptions=e.defaultOptions||{},this.queryDefaults=[],this.mutationDefaults=[],this.mountCount=0}mount(){this.mountCount++,this.mountCount===1&&(this.unsubscribeFocus=pE.subscribe(()=>{pE.isFocused()&&(this.resumePausedMutations(),this.queryCache.onFocus())}),this.unsubscribeOnline=hE.subscribe(()=>{hE.isOnline()&&(this.resumePausedMutations(),this.queryCache.onOnline())}))}unmount(){var e,t;this.mountCount--,this.mountCount===0&&((e=this.unsubscribeFocus)==null||e.call(this),this.unsubscribeFocus=void 0,(t=this.unsubscribeOnline)==null||t.call(this),this.unsubscribeOnline=void 0)}isFetching(e,t){const[n]=dr(e,t);return n.fetchStatus="fetching",this.queryCache.findAll(n).length}isMutating(e){return this.mutationCache.findAll({...e,fetching:!0}).length}getQueryData(e,t){var n;return(n=this.queryCache.find(e,t))==null?void 0:n.state.data}ensureQueryData(e,t,n){const r=F4(e,t,n),i=this.getQueryData(r.queryKey);return i?Promise.resolve(i):this.fetchQuery(r)}getQueriesData(e){return this.getQueryCache().findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.queryCache.find(e),i=r==null?void 0:r.state.data,a=ES(t,i);if(typeof a>"u")return;const o=F4(e),s=this.defaultQueryOptions(o);return this.queryCache.build(this,s).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return re.batch(()=>this.getQueryCache().findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e,t){var n;return(n=this.queryCache.find(e,t))==null?void 0:n.state}removeQueries(e,t){const[n]=dr(e,t),r=this.queryCache;re.batch(()=>{r.findAll(n).forEach(i=>{r.remove(i)})})}resetQueries(e,t,n){const[r,i]=dr(e,t,n),a=this.queryCache,o={type:"active",...r};return re.batch(()=>(a.findAll(r).forEach(s=>{s.reset()}),this.refetchQueries(o,i)))}cancelQueries(e,t,n){const[r,i={}]=dr(e,t,n);typeof i.revert>"u"&&(i.revert=!0);const a=re.batch(()=>this.queryCache.findAll(r).map(o=>o.cancel(i)));return Promise.all(a).then(it).catch(it)}invalidateQueries(e,t,n){const[r,i]=dr(e,t,n);return re.batch(()=>{var a,o;if(this.queryCache.findAll(r).forEach(l=>{l.invalidate()}),r.refetchType==="none")return Promise.resolve();const s={...r,type:(a=(o=r.refetchType)!=null?o:r.type)!=null?a:"active"};return this.refetchQueries(s,i)})}refetchQueries(e,t,n){const[r,i]=dr(e,t,n),a=re.batch(()=>this.queryCache.findAll(r).filter(s=>!s.isDisabled()).map(s=>{var l;return s.fetch(void 0,{...i,cancelRefetch:(l=i==null?void 0:i.cancelRefetch)!=null?l:!0,meta:{refetchPage:r.refetchPage}})}));let o=Promise.all(a).then(it);return i!=null&&i.throwOnError||(o=o.catch(it)),o}fetchQuery(e,t,n){const r=F4(e,t,n),i=this.defaultQueryOptions(r);typeof i.retry>"u"&&(i.retry=!1);const a=this.queryCache.build(this,i);return a.isStaleByTime(i.staleTime)?a.fetch(i):Promise.resolve(a.state.data)}prefetchQuery(e,t,n){return this.fetchQuery(e,t,n).then(it).catch(it)}fetchInfiniteQuery(e,t,n){const r=F4(e,t,n);return r.behavior=vS(),this.fetchQuery(r)}prefetchInfiniteQuery(e,t,n){return this.fetchInfiniteQuery(e,t,n).then(it).catch(it)}resumePausedMutations(){return this.mutationCache.resumePausedMutations()}getQueryCache(){return this.queryCache}getMutationCache(){return this.mutationCache}getLogger(){return this.logger}getDefaultOptions(){return this.defaultOptions}setDefaultOptions(e){this.defaultOptions=e}setQueryDefaults(e,t){const n=this.queryDefaults.find(r=>vi(e)===vi(r.queryKey));n?n.defaultOptions=t:this.queryDefaults.push({queryKey:e,defaultOptions:t})}getQueryDefaults(e){if(!e)return;const t=this.queryDefaults.find(n=>dE(e,n.queryKey));return t==null?void 0:t.defaultOptions}setMutationDefaults(e,t){const n=this.mutationDefaults.find(r=>vi(e)===vi(r.mutationKey));n?n.defaultOptions=t:this.mutationDefaults.push({mutationKey:e,defaultOptions:t})}getMutationDefaults(e){if(!e)return;const t=this.mutationDefaults.find(n=>dE(e,n.mutationKey));return t==null?void 0:t.defaultOptions}defaultQueryOptions(e){if(e!=null&&e._defaulted)return e;const t={...this.defaultOptions.queries,...this.getQueryDefaults(e==null?void 0:e.queryKey),...e,_defaulted:!0};return!t.queryHash&&t.queryKey&&(t.queryHash=Pp(t.queryKey,t)),typeof t.refetchOnReconnect>"u"&&(t.refetchOnReconnect=t.networkMode!=="always"),typeof t.useErrorBoundary>"u"&&(t.useErrorBoundary=!!t.suspense),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...this.defaultOptions.mutations,...this.getMutationDefaults(e==null?void 0:e.mutationKey),...e,_defaulted:!0}}clear(){this.queryCache.clear(),this.mutationCache.clear()}}class Ty extends Is{constructor(e,t){super(),this.client=e,this.options=t,this.trackedProps=new Set,this.selectError=null,this.bindMethods(),this.setOptions(t)}bindMethods(){this.remove=this.remove.bind(this),this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.currentQuery.addObserver(this),VC(this.currentQuery,this.options)&&this.executeFetch(),this.updateTimers())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return J1(this.currentQuery,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return J1(this.currentQuery,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.clearStaleTimeout(),this.clearRefetchInterval(),this.currentQuery.removeObserver(this)}setOptions(e,t){const n=this.options,r=this.currentQuery;if(this.options=this.client.defaultQueryOptions(e),fE(n,this.options)||this.client.getQueryCache().notify({type:"observerOptionsUpdated",query:this.currentQuery,observer:this}),typeof this.options.enabled<"u"&&typeof this.options.enabled!="boolean")throw new Error("Expected enabled to be a boolean");this.options.queryKey||(this.options.queryKey=n.queryKey),this.updateQuery();const i=this.hasListeners();i&&JC(this.currentQuery,r,this.options,n)&&this.executeFetch(),this.updateResult(t),i&&(this.currentQuery!==r||this.options.enabled!==n.enabled||this.options.staleTime!==n.staleTime)&&this.updateStaleTimeout();const a=this.computeRefetchInterval();i&&(this.currentQuery!==r||this.options.enabled!==n.enabled||a!==this.currentRefetchInterval)&&this.updateRefetchInterval(a)}getOptimisticResult(e){const t=this.client.getQueryCache().build(this.client,e),n=this.createResult(t,e);return bS(this,n,e)&&(this.currentResult=n,this.currentResultOptions=this.options,this.currentResultState=this.currentQuery.state),n}getCurrentResult(){return this.currentResult}trackResult(e){const t={};return Object.keys(e).forEach(n=>{Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:()=>(this.trackedProps.add(n),e[n])})}),t}getCurrentQuery(){return this.currentQuery}remove(){this.client.getQueryCache().remove(this.currentQuery)}refetch({refetchPage:e,...t}={}){return this.fetch({...t,meta:{refetchPage:e}})}fetchOptimistic(e){const t=this.client.defaultQueryOptions(e),n=this.client.getQueryCache().build(this.client,t);return n.isFetchingOptimistic=!0,n.fetch().then(()=>this.createResult(n,t))}fetch(e){var t;return this.executeFetch({...e,cancelRefetch:(t=e.cancelRefetch)!=null?t:!0}).then(()=>(this.updateResult(),this.currentResult))}executeFetch(e){this.updateQuery();let t=this.currentQuery.fetch(this.options,e);return e!=null&&e.throwOnError||(t=t.catch(it)),t}updateStaleTimeout(){if(this.clearStaleTimeout(),n3||this.currentResult.isStale||!K1(this.options.staleTime))return;const t=Fy(this.currentResult.dataUpdatedAt,this.options.staleTime)+1;this.staleTimeoutId=setTimeout(()=>{this.currentResult.isStale||this.updateResult()},t)}computeRefetchInterval(){var e;return typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.currentResult.data,this.currentQuery):(e=this.options.refetchInterval)!=null?e:!1}updateRefetchInterval(e){this.clearRefetchInterval(),this.currentRefetchInterval=e,!(n3||this.options.enabled===!1||!K1(this.currentRefetchInterval)||this.currentRefetchInterval===0)&&(this.refetchIntervalId=setInterval(()=>{(this.options.refetchIntervalInBackground||pE.isFocused())&&this.executeFetch()},this.currentRefetchInterval))}updateTimers(){this.updateStaleTimeout(),this.updateRefetchInterval(this.computeRefetchInterval())}clearStaleTimeout(){this.staleTimeoutId&&(clearTimeout(this.staleTimeoutId),this.staleTimeoutId=void 0)}clearRefetchInterval(){this.refetchIntervalId&&(clearInterval(this.refetchIntervalId),this.refetchIntervalId=void 0)}createResult(e,t){const n=this.currentQuery,r=this.options,i=this.currentResult,a=this.currentResultState,o=this.currentResultOptions,s=e!==n,l=s?e.state:this.currentQueryInitialState,c=s?this.currentResult:this.previousQueryResult,{state:E}=e;let{dataUpdatedAt:d,error:f,errorUpdatedAt:C,fetchStatus:h,status:B}=E,g=!1,m=!1,y;if(t._optimisticResults){const x=this.hasListeners(),j=!x&&VC(e,t),O=x&&JC(e,n,t,r);(j||O)&&(h=T2(e.options.networkMode)?"fetching":"paused",d||(B="loading")),t._optimisticResults==="isRestoring"&&(h="idle")}if(t.keepPreviousData&&!E.dataUpdatedAt&&c!=null&&c.isSuccess&&B!=="error")y=c.data,d=c.dataUpdatedAt,B=c.status,g=!0;else if(t.select&&typeof E.data<"u")if(i&&E.data===(a==null?void 0:a.data)&&t.select===this.selectFn)y=this.selectResult;else try{this.selectFn=t.select,y=t.select(E.data),y=V1(i==null?void 0:i.data,y,t),this.selectResult=y,this.selectError=null}catch(x){this.selectError=x}else y=E.data;if(typeof t.placeholderData<"u"&&typeof y>"u"&&B==="loading"){let x;if(i!=null&&i.isPlaceholderData&&t.placeholderData===(o==null?void 0:o.placeholderData))x=i.data;else if(x=typeof t.placeholderData=="function"?t.placeholderData():t.placeholderData,t.select&&typeof x<"u")try{x=t.select(x),this.selectError=null}catch(j){this.selectError=j}typeof x<"u"&&(B="success",y=V1(i==null?void 0:i.data,x,t),m=!0)}this.selectError&&(f=this.selectError,y=this.selectResult,C=Date.now(),B="error");const v=h==="fetching",w=B==="loading",D=B==="error";return{status:B,fetchStatus:h,isLoading:w,isSuccess:B==="success",isError:D,isInitialLoading:w&&v,data:y,dataUpdatedAt:d,error:f,errorUpdatedAt:C,failureCount:E.fetchFailureCount,failureReason:E.fetchFailureReason,errorUpdateCount:E.errorUpdateCount,isFetched:E.dataUpdateCount>0||E.errorUpdateCount>0,isFetchedAfterMount:E.dataUpdateCount>l.dataUpdateCount||E.errorUpdateCount>l.errorUpdateCount,isFetching:v,isRefetching:v&&!w,isLoadingError:D&&E.dataUpdatedAt===0,isPaused:h==="paused",isPlaceholderData:m,isPreviousData:g,isRefetchError:D&&E.dataUpdatedAt!==0,isStale:Op(e,t),refetch:this.refetch,remove:this.remove}}updateResult(e){const t=this.currentResult,n=this.createResult(this.currentQuery,this.options);if(this.currentResultState=this.currentQuery.state,this.currentResultOptions=this.options,fE(n,t))return;this.currentResult=n;const r={cache:!0},i=()=>{if(!t)return!0;const{notifyOnChangeProps:a}=this.options,o=typeof a=="function"?a():a;if(o==="all"||!o&&!this.trackedProps.size)return!0;const s=new Set(o??this.trackedProps);return this.options.useErrorBoundary&&s.add("error"),Object.keys(this.currentResult).some(l=>{const c=l;return this.currentResult[c]!==t[c]&&s.has(c)})};(e==null?void 0:e.listeners)!==!1&&i()&&(r.listeners=!0),this.notify({...r,...e})}updateQuery(){const e=this.client.getQueryCache().build(this.client,this.options);if(e===this.currentQuery)return;const t=this.currentQuery;this.currentQuery=e,this.currentQueryInitialState=e.state,this.previousQueryResult=this.currentResult,this.hasListeners()&&(t==null||t.removeObserver(this),e.addObserver(this))}onQueryUpdate(e){const t={};e.type==="success"?t.onSuccess=!e.manual:e.type==="error"&&!Mc(e.error)&&(t.onError=!0),this.updateResult(t),this.hasListeners()&&this.updateTimers()}notify(e){re.batch(()=>{if(e.onSuccess){var t,n,r,i;(t=(n=this.options).onSuccess)==null||t.call(n,this.currentResult.data),(r=(i=this.options).onSettled)==null||r.call(i,this.currentResult.data,null)}else if(e.onError){var a,o,s,l;(a=(o=this.options).onError)==null||a.call(o,this.currentResult.error),(s=(l=this.options).onSettled)==null||s.call(l,void 0,this.currentResult.error)}e.listeners&&this.listeners.forEach(({listener:c})=>{c(this.currentResult)}),e.cache&&this.client.getQueryCache().notify({query:this.currentQuery,type:"observerResultsUpdated"})})}}function DS(u,e){return e.enabled!==!1&&!u.state.dataUpdatedAt&&!(u.state.status==="error"&&e.retryOnMount===!1)}function VC(u,e){return DS(u,e)||u.state.dataUpdatedAt>0&&J1(u,e,e.refetchOnMount)}function J1(u,e,t){if(e.enabled!==!1){const n=typeof t=="function"?t(u):t;return n==="always"||n!==!1&&Op(u,e)}return!1}function JC(u,e,t,n){return t.enabled!==!1&&(u!==e||n.enabled===!1)&&(!t.suspense||u.state.status!=="error")&&Op(u,t)}function Op(u,e){return u.isStaleByTime(e.staleTime)}function bS(u,e,t){return t.keepPreviousData?!1:t.placeholderData!==void 0?e.isPlaceholderData:!fE(u.getCurrentResult(),e)}let wS=class extends Is{constructor(e,t){super(),this.client=e,this.setOptions(t),this.bindMethods(),this.updateResult()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){var t;const n=this.options;this.options=this.client.defaultMutationOptions(e),fE(n,this.options)||this.client.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.currentMutation,observer:this}),(t=this.currentMutation)==null||t.setOptions(this.options)}onUnsubscribe(){if(!this.hasListeners()){var e;(e=this.currentMutation)==null||e.removeObserver(this)}}onMutationUpdate(e){this.updateResult();const t={listeners:!0};e.type==="success"?t.onSuccess=!0:e.type==="error"&&(t.onError=!0),this.notify(t)}getCurrentResult(){return this.currentResult}reset(){this.currentMutation=void 0,this.updateResult(),this.notify({listeners:!0})}mutate(e,t){return this.mutateOptions=t,this.currentMutation&&this.currentMutation.removeObserver(this),this.currentMutation=this.client.getMutationCache().build(this.client,{...this.options,variables:typeof e<"u"?e:this.options.variables}),this.currentMutation.addObserver(this),this.currentMutation.execute()}updateResult(){const e=this.currentMutation?this.currentMutation.state:Sy(),t={...e,isLoading:e.status==="loading",isSuccess:e.status==="success",isError:e.status==="error",isIdle:e.status==="idle",mutate:this.mutate,reset:this.reset};this.currentResult=t}notify(e){re.batch(()=>{if(this.mutateOptions&&this.hasListeners()){if(e.onSuccess){var t,n,r,i;(t=(n=this.mutateOptions).onSuccess)==null||t.call(n,this.currentResult.data,this.currentResult.variables,this.currentResult.context),(r=(i=this.mutateOptions).onSettled)==null||r.call(i,this.currentResult.data,null,this.currentResult.variables,this.currentResult.context)}else if(e.onError){var a,o,s,l;(a=(o=this.mutateOptions).onError)==null||a.call(o,this.currentResult.error,this.currentResult.variables,this.currentResult.context),(s=(l=this.mutateOptions).onSettled)==null||s.call(l,void 0,this.currentResult.error,this.currentResult.variables,this.currentResult.context)}}e.listeners&&this.listeners.forEach(({listener:c})=>{c(this.currentResult)})})}};function xS(u){return{mutationKey:u.options.mutationKey,state:u.state}}function kS(u){return{state:u.state,queryKey:u.queryKey,queryHash:u.queryHash}}function _S(u){return u.state.isPaused}function SS(u){return u.state.status==="success"}function PS(u,e={}){const t=[],n=[];if(e.dehydrateMutations!==!1){const r=e.shouldDehydrateMutation||_S;u.getMutationCache().getAll().forEach(i=>{r(i)&&t.push(xS(i))})}if(e.dehydrateQueries!==!1){const r=e.shouldDehydrateQuery||SS;u.getQueryCache().getAll().forEach(i=>{r(i)&&n.push(kS(i))})}return{mutations:t,queries:n}}function TS(u,e,t){if(typeof e!="object"||e===null)return;const n=u.getMutationCache(),r=u.getQueryCache(),i=e.mutations||[],a=e.queries||[];i.forEach(o=>{var s;n.build(u,{...t==null||(s=t.defaultOptions)==null?void 0:s.mutations,mutationKey:o.mutationKey},o.state)}),a.forEach(({queryKey:o,state:s,queryHash:l})=>{var c;const E=r.get(l);if(E){if(E.state.dataUpdatedAte in u?h_(u,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(u){function e(W,iu){var lu=W.length;W.push(iu);u:for(;0>>1,pu=W[cu];if(0>>1;cur(_u,lu))Dur(xu,_u)?(W[cu]=xu,W[Du]=lu,cu=Du):(W[cu]=_u,W[J]=lu,cu=J);else if(Dur(xu,lu))W[cu]=xu,W[Du]=lu,cu=Du;else break u}}return iu}function r(W,iu){var lu=W.sortIndex-iu.sortIndex;return lu!==0?lu:W.id-iu.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;u.unstable_now=function(){return i.now()}}else{var a=Date,o=a.now();u.unstable_now=function(){return a.now()-o}}var s=[],l=[],c=1,E=null,d=3,f=!1,C=!1,h=!1,B=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,m=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(W){for(var iu=t(l);iu!==null;){if(iu.callback===null)n(l);else if(iu.startTime<=W)n(l),iu.sortIndex=iu.expirationTime,e(s,iu);else break;iu=t(l)}}function v(W){if(h=!1,y(W),!C)if(t(s)!==null)C=!0,au(w);else{var iu=t(l);iu!==null&&nu(v,iu.startTime-W)}}function w(W,iu){C=!1,h&&(h=!1,g(x),x=-1),f=!0;var lu=d;try{for(y(iu),E=t(s);E!==null&&(!(E.expirationTime>iu)||W&&!uu());){var cu=E.callback;if(typeof cu=="function"){E.callback=null,d=E.priorityLevel;var pu=cu(E.expirationTime<=iu);iu=u.unstable_now(),typeof pu=="function"?E.callback=pu:E===t(s)&&n(s),y(iu)}else n(s);E=t(s)}if(E!==null)var fu=!0;else{var J=t(l);J!==null&&nu(v,J.startTime-iu),fu=!1}return fu}finally{E=null,d=lu,f=!1}}var D=!1,p=null,x=-1,j=5,O=-1;function uu(){return!(u.unstable_now()-OW||125cu?(W.sortIndex=lu,e(l,W),t(s)===null&&W===t(l)&&(h?(g(x),x=-1):h=!0,nu(v,lu-cu))):(W.sortIndex=pu,e(s,W),C||f||(C=!0,au(w))),W},u.unstable_shouldYield=uu,u.unstable_wrapCallback=function(W){var iu=d;return function(){var lu=d;d=iu;try{return W.apply(this,arguments)}finally{d=lu}}}})(Oy);Iy.exports=Oy;var TS=Iy.exports;/** + */(function(u){function e(W,iu){var lu=W.length;W.push(iu);u:for(;0>>1,pu=W[cu];if(0>>1;cur(_u,lu))Dur(xu,_u)?(W[cu]=xu,W[Du]=lu,cu=Du):(W[cu]=_u,W[J]=lu,cu=J);else if(Dur(xu,lu))W[cu]=xu,W[Du]=lu,cu=Du;else break u}}return iu}function r(W,iu){var lu=W.sortIndex-iu.sortIndex;return lu!==0?lu:W.id-iu.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;u.unstable_now=function(){return i.now()}}else{var a=Date,o=a.now();u.unstable_now=function(){return a.now()-o}}var s=[],l=[],c=1,E=null,d=3,f=!1,C=!1,h=!1,B=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,m=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(W){for(var iu=t(l);iu!==null;){if(iu.callback===null)n(l);else if(iu.startTime<=W)n(l),iu.sortIndex=iu.expirationTime,e(s,iu);else break;iu=t(l)}}function v(W){if(h=!1,y(W),!C)if(t(s)!==null)C=!0,au(w);else{var iu=t(l);iu!==null&&nu(v,iu.startTime-W)}}function w(W,iu){C=!1,h&&(h=!1,g(x),x=-1),f=!0;var lu=d;try{for(y(iu),E=t(s);E!==null&&(!(E.expirationTime>iu)||W&&!Z());){var cu=E.callback;if(typeof cu=="function"){E.callback=null,d=E.priorityLevel;var pu=cu(E.expirationTime<=iu);iu=u.unstable_now(),typeof pu=="function"?E.callback=pu:E===t(s)&&n(s),y(iu)}else n(s);E=t(s)}if(E!==null)var fu=!0;else{var J=t(l);J!==null&&nu(v,J.startTime-iu),fu=!1}return fu}finally{E=null,d=lu,f=!1}}var D=!1,p=null,x=-1,j=5,O=-1;function Z(){return!(u.unstable_now()-OW||125cu?(W.sortIndex=lu,e(l,W),t(s)===null&&W===t(l)&&(h?(g(x),x=-1):h=!0,nu(v,lu-cu))):(W.sortIndex=pu,e(s,W),C||f||(C=!0,au(w))),W},u.unstable_shouldYield=Z,u.unstable_wrapCallback=function(W){var iu=d;return function(){var lu=d;d=iu;try{return W.apply(this,arguments)}finally{d=lu}}}})(Ny);Oy.exports=Ny;var IS=Oy.exports;/** * @license React * react-dom.production.min.js * @@ -35,14 +35,14 @@ var h_=Object.defineProperty;var C_=(u,e,t)=>e in u?h_(u,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Ny=M,W0=TS;function du(u){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+u,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),J1=Object.prototype.hasOwnProperty,IS=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,JC={},YC={};function OS(u){return J1.call(YC,u)?!0:J1.call(JC,u)?!1:IS.test(u)?YC[u]=!0:(JC[u]=!0,!1)}function NS(u,e,t,n){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return n?!1:t!==null?!t.acceptsBooleans:(u=u.toLowerCase().slice(0,5),u!=="data-"&&u!=="aria-");default:return!1}}function RS(u,e,t,n){if(e===null||typeof e>"u"||NS(u,e,t,n))return!0;if(n)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function h0(u,e,t,n,r,i,a){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=n,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=u,this.type=e,this.sanitizeURL=i,this.removeEmptyString=a}var We={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(u){We[u]=new h0(u,0,!1,u,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(u){var e=u[0];We[e]=new h0(e,1,!1,u[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(u){We[u]=new h0(u,2,!1,u.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(u){We[u]=new h0(u,2,!1,u,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(u){We[u]=new h0(u,3,!1,u.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(u){We[u]=new h0(u,3,!0,u,null,!1,!1)});["capture","download"].forEach(function(u){We[u]=new h0(u,4,!1,u,null,!1,!1)});["cols","rows","size","span"].forEach(function(u){We[u]=new h0(u,6,!1,u,null,!1,!1)});["rowSpan","start"].forEach(function(u){We[u]=new h0(u,5,!1,u.toLowerCase(),null,!1,!1)});var Op=/[\-:]([a-z])/g;function Np(u){return u[1].toUpperCase()}"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(u){var e=u.replace(Op,Np);We[e]=new h0(e,1,!1,u,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(u){var e=u.replace(Op,Np);We[e]=new h0(e,1,!1,u,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(u){var e=u.replace(Op,Np);We[e]=new h0(e,1,!1,u,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(u){We[u]=new h0(u,1,!1,u.toLowerCase(),null,!1,!1)});We.xlinkHref=new h0("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(u){We[u]=new h0(u,1,!1,u.toLowerCase(),null,!0,!0)});function Rp(u,e,t,n){var r=We.hasOwnProperty(e)?We[e]:null;(r!==null?r.type!==0:n||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Y1=Object.prototype.hasOwnProperty,OS=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,YC={},XC={};function NS(u){return Y1.call(XC,u)?!0:Y1.call(YC,u)?!1:OS.test(u)?XC[u]=!0:(YC[u]=!0,!1)}function RS(u,e,t,n){if(t!==null&&t.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return n?!1:t!==null?!t.acceptsBooleans:(u=u.toLowerCase().slice(0,5),u!=="data-"&&u!=="aria-");default:return!1}}function jS(u,e,t,n){if(e===null||typeof e>"u"||RS(u,e,t,n))return!0;if(n)return!1;if(t!==null)switch(t.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function C0(u,e,t,n,r,i,a){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=n,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=u,this.type=e,this.sanitizeURL=i,this.removeEmptyString=a}var qe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(u){qe[u]=new C0(u,0,!1,u,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(u){var e=u[0];qe[e]=new C0(e,1,!1,u[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(u){qe[u]=new C0(u,2,!1,u.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(u){qe[u]=new C0(u,2,!1,u,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(u){qe[u]=new C0(u,3,!1,u.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(u){qe[u]=new C0(u,3,!0,u,null,!1,!1)});["capture","download"].forEach(function(u){qe[u]=new C0(u,4,!1,u,null,!1,!1)});["cols","rows","size","span"].forEach(function(u){qe[u]=new C0(u,6,!1,u,null,!1,!1)});["rowSpan","start"].forEach(function(u){qe[u]=new C0(u,5,!1,u.toLowerCase(),null,!1,!1)});var Np=/[\-:]([a-z])/g;function Rp(u){return u[1].toUpperCase()}"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(u){var e=u.replace(Np,Rp);qe[e]=new C0(e,1,!1,u,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(u){var e=u.replace(Np,Rp);qe[e]=new C0(e,1,!1,u,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(u){var e=u.replace(Np,Rp);qe[e]=new C0(e,1,!1,u,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(u){qe[u]=new C0(u,1,!1,u.toLowerCase(),null,!1,!1)});qe.xlinkHref=new C0("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(u){qe[u]=new C0(u,1,!1,u.toLowerCase(),null,!0,!0)});function jp(u,e,t,n){var r=qe.hasOwnProperty(e)?qe[e]:null;(r!==null?r.type!==0:n||!(2o||r[a]!==i[o]){var s=` -`+r[a].replace(" at new "," at ");return u.displayName&&s.includes("")&&(s=s.replace("",u.displayName)),s}while(1<=a&&0<=o);break}}}finally{g9=!1,Error.prepareStackTrace=t}return(u=u?u.displayName||u.name:"")?F4(u):""}function jS(u){switch(u.tag){case 5:return F4(u.type);case 16:return F4("Lazy");case 13:return F4("Suspense");case 19:return F4("SuspenseList");case 0:case 2:case 15:return u=A9(u.type,!1),u;case 11:return u=A9(u.type.render,!1),u;case 1:return u=A9(u.type,!0),u;default:return""}}function u6(u){if(u==null)return null;if(typeof u=="function")return u.displayName||u.name||null;if(typeof u=="string")return u;switch(u){case $a:return"Fragment";case La:return"Portal";case Y1:return"Profiler";case jp:return"StrictMode";case X1:return"Suspense";case Z1:return"SuspenseList"}if(typeof u=="object")switch(u.$$typeof){case zy:return(u.displayName||"Context")+".Consumer";case jy:return(u._context.displayName||"Context")+".Provider";case zp:var e=u.render;return u=u.displayName,u||(u=e.displayName||e.name||"",u=u!==""?"ForwardRef("+u+")":"ForwardRef"),u;case Mp:return e=u.displayName||null,e!==null?e:u6(u.type)||"Memo";case dr:e=u._payload,u=u._init;try{return u6(u(e))}catch{}}return null}function zS(u){var e=u.type;switch(u.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return u=e.render,u=u.displayName||u.name||"",e.displayName||(u!==""?"ForwardRef("+u+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return u6(e);case 8:return e===jp?"StrictMode":"Mode";case 22:return"Offscreen";case 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(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Gr(u){switch(typeof u){case"boolean":case"number":case"string":case"undefined":return u;case"object":return u;default:return""}}function Uy(u){var e=u.type;return(u=u.nodeName)&&u.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function MS(u){var e=Uy(u)?"checked":"value",t=Object.getOwnPropertyDescriptor(u.constructor.prototype,e),n=""+u[e];if(!u.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,i=t.set;return Object.defineProperty(u,e,{configurable:!0,get:function(){return r.call(this)},set:function(a){n=""+a,i.call(this,a)}}),Object.defineProperty(u,e,{enumerable:t.enumerable}),{getValue:function(){return n},setValue:function(a){n=""+a},stopTracking:function(){u._valueTracker=null,delete u[e]}}}}function tc(u){u._valueTracker||(u._valueTracker=MS(u))}function Ly(u){if(!u)return!1;var e=u._valueTracker;if(!e)return!0;var t=e.getValue(),n="";return u&&(n=Uy(u)?u.checked?"true":"false":u.value),u=n,u!==t?(e.setValue(u),!0):!1}function hE(u){if(u=u||(typeof document<"u"?document:void 0),typeof u>"u")return null;try{return u.activeElement||u.body}catch{return u.body}}function e6(u,e){var t=e.checked;return Ce({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??u._wrapperState.initialChecked})}function ZC(u,e){var t=e.defaultValue==null?"":e.defaultValue,n=e.checked!=null?e.checked:e.defaultChecked;t=Gr(e.value!=null?e.value:t),u._wrapperState={initialChecked:n,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function $y(u,e){e=e.checked,e!=null&&Rp(u,"checked",e,!1)}function t6(u,e){$y(u,e);var t=Gr(e.value),n=e.type;if(t!=null)n==="number"?(t===0&&u.value===""||u.value!=t)&&(u.value=""+t):u.value!==""+t&&(u.value=""+t);else if(n==="submit"||n==="reset"){u.removeAttribute("value");return}e.hasOwnProperty("value")?n6(u,e.type,t):e.hasOwnProperty("defaultValue")&&n6(u,e.type,Gr(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(u.defaultChecked=!!e.defaultChecked)}function um(u,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var n=e.type;if(!(n!=="submit"&&n!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+u._wrapperState.initialValue,t||e===u.value||(u.value=e),u.defaultValue=e}t=u.name,t!==""&&(u.name=""),u.defaultChecked=!!u._wrapperState.initialChecked,t!==""&&(u.name=t)}function n6(u,e,t){(e!=="number"||hE(u.ownerDocument)!==u)&&(t==null?u.defaultValue=""+u._wrapperState.initialValue:u.defaultValue!==""+t&&(u.defaultValue=""+t))}var D4=Array.isArray;function so(u,e,t,n){if(u=u.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=nc.firstChild;u.firstChild;)u.removeChild(u.firstChild);for(;e.firstChild;)u.appendChild(e.firstChild)}});function r3(u,e){if(e){var t=u.firstChild;if(t&&t===u.lastChild&&t.nodeType===3){t.nodeValue=e;return}}u.textContent=e}var U4={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,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},US=["Webkit","ms","Moz","O"];Object.keys(U4).forEach(function(u){US.forEach(function(e){e=e+u.charAt(0).toUpperCase()+u.substring(1),U4[e]=U4[u]})});function Gy(u,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||U4.hasOwnProperty(u)&&U4[u]?(""+e).trim():e+"px"}function Ky(u,e){u=u.style;for(var t in e)if(e.hasOwnProperty(t)){var n=t.indexOf("--")===0,r=Gy(t,e[t],n);t==="float"&&(t="cssFloat"),n?u.setProperty(t,r):u[t]=r}}var LS=Ce({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});function a6(u,e){if(e){if(LS[u]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(du(137,u));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(du(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(du(61))}if(e.style!=null&&typeof e.style!="object")throw Error(du(62))}}function o6(u,e){if(u.indexOf("-")===-1)return typeof e.is=="string";switch(u){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 s6=null;function Up(u){return u=u.target||u.srcElement||window,u.correspondingUseElement&&(u=u.correspondingUseElement),u.nodeType===3?u.parentNode:u}var l6=null,lo=null,co=null;function nm(u){if(u=yl(u)){if(typeof l6!="function")throw Error(du(280));var e=u.stateNode;e&&(e=R2(e),l6(u.stateNode,u.type,e))}}function Qy(u){lo?co?co.push(u):co=[u]:lo=u}function Vy(){if(lo){var u=lo,e=co;if(co=lo=null,nm(u),e)for(u=0;u>>=0,u===0?32:31-(XS(u)/ZS|0)|0}var rc=64,ic=4194304;function b4(u){switch(u&-u){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 u&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return u&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return u}}function AE(u,e){var t=u.pendingLanes;if(t===0)return 0;var n=0,r=u.suspendedLanes,i=u.pingedLanes,a=t&268435455;if(a!==0){var o=a&~r;o!==0?n=b4(o):(i&=a,i!==0&&(n=b4(i)))}else a=t&~r,a!==0?n=b4(a):i!==0&&(n=b4(i));if(n===0)return 0;if(e!==0&&e!==n&&!(e&r)&&(r=n&-n,i=e&-e,r>=i||r===16&&(i&4194240)!==0))return e;if(n&4&&(n|=t&16),e=u.entangledLanes,e!==0)for(u=u.entanglements,e&=n;0t;t++)e.push(u);return e}function gl(u,e,t){u.pendingLanes|=e,e!==536870912&&(u.suspendedLanes=0,u.pingedLanes=0),u=u.eventTimes,e=31-Ot(e),u[e]=t}function nP(u,e){var t=u.pendingLanes&~e;u.pendingLanes=e,u.suspendedLanes=0,u.pingedLanes=0,u.expiredLanes&=e,u.mutableReadLanes&=e,u.entangledLanes&=e,e=u.entanglements;var n=u.eventTimes;for(u=u.expirationTimes;0=$4),dm=String.fromCharCode(32),fm=!1;function hB(u,e){switch(u){case"keyup":return PP.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function CB(u){return u=u.detail,typeof u=="object"&&"data"in u?u.data:null}var Wa=!1;function IP(u,e){switch(u){case"compositionend":return CB(e);case"keypress":return e.which!==32?null:(fm=!0,dm);case"textInput":return u=e.data,u===dm&&fm?null:u;default:return null}}function OP(u,e){if(Wa)return u==="compositionend"||!Qp&&hB(u,e)?(u=fB(),Uc=Hp=Ir=null,Wa=!1,u):null;switch(u){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-u};u=n}u:{for(;t;){if(t.nextSibling){t=t.nextSibling;break u}t=t.parentNode}t=void 0}t=mm(t)}}function yB(u,e){return u&&e?u===e?!0:u&&u.nodeType===3?!1:e&&e.nodeType===3?yB(u,e.parentNode):"contains"in u?u.contains(e):u.compareDocumentPosition?!!(u.compareDocumentPosition(e)&16):!1:!1}function BB(){for(var u=window,e=hE();e instanceof u.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)u=e.contentWindow;else break;e=hE(u.document)}return e}function Vp(u){var e=u&&u.nodeName&&u.nodeName.toLowerCase();return e&&(e==="input"&&(u.type==="text"||u.type==="search"||u.type==="tel"||u.type==="url"||u.type==="password")||e==="textarea"||u.contentEditable==="true")}function WP(u){var e=BB(),t=u.focusedElem,n=u.selectionRange;if(e!==t&&t&&t.ownerDocument&&yB(t.ownerDocument.documentElement,t)){if(n!==null&&Vp(t)){if(e=n.start,u=n.end,u===void 0&&(u=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(u,t.value.length);else if(u=(e=t.ownerDocument||document)&&e.defaultView||window,u.getSelection){u=u.getSelection();var r=t.textContent.length,i=Math.min(n.start,r);n=n.end===void 0?i:Math.min(n.end,r),!u.extend&&i>n&&(r=n,n=i,i=r),r=gm(t,i);var a=gm(t,n);r&&a&&(u.rangeCount!==1||u.anchorNode!==r.node||u.anchorOffset!==r.offset||u.focusNode!==a.node||u.focusOffset!==a.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),u.removeAllRanges(),i>n?(u.addRange(e),u.extend(a.node,a.offset)):(e.setEnd(a.node,a.offset),u.addRange(e)))}}for(e=[],u=t;u=u.parentNode;)u.nodeType===1&&e.push({element:u,left:u.scrollLeft,top:u.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,qa=null,h6=null,q4=null,C6=!1;function Am(u,e,t){var n=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;C6||qa==null||qa!==hE(n)||(n=qa,"selectionStart"in n&&Vp(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),q4&&c3(q4,n)||(q4=n,n=vE(h6,"onSelect"),0Ka||(u.current=v6[Ka],v6[Ka]=null,Ka--)}function re(u,e){Ka++,v6[Ka]=u.current,u.current=e}var Kr={},n0=ei(Kr),b0=ei(!1),ta=Kr;function as(u,e){var t=u.type.contextTypes;if(!t)return Kr;var n=u.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===e)return n.__reactInternalMemoizedMaskedChildContext;var r={},i;for(i in t)r[i]=e[i];return n&&(u=u.stateNode,u.__reactInternalMemoizedUnmaskedChildContext=e,u.__reactInternalMemoizedMaskedChildContext=r),r}function w0(u){return u=u.childContextTypes,u!=null}function DE(){oe(b0),oe(n0)}function wm(u,e,t){if(n0.current!==Kr)throw Error(du(168));re(n0,e),re(b0,t)}function SB(u,e,t){var n=u.stateNode;if(e=e.childContextTypes,typeof n.getChildContext!="function")return t;n=n.getChildContext();for(var r in n)if(!(r in e))throw Error(du(108,zS(u)||"Unknown",r));return Ce({},t,n)}function bE(u){return u=(u=u.stateNode)&&u.__reactInternalMemoizedMergedChildContext||Kr,ta=n0.current,re(n0,u),re(b0,b0.current),!0}function xm(u,e,t){var n=u.stateNode;if(!n)throw Error(du(169));t?(u=SB(u,e,ta),n.__reactInternalMemoizedMergedChildContext=u,oe(b0),oe(n0),re(n0,u)):oe(b0),re(b0,t)}var gn=null,j2=!1,I9=!1;function PB(u){gn===null?gn=[u]:gn.push(u)}function eT(u){j2=!0,PB(u)}function ti(){if(!I9&&gn!==null){I9=!0;var u=0,e=ue;try{var t=gn;for(ue=1;u>=a,r-=a,jn=1<<32-Ot(e)+r|t<x?(j=p,p=null):j=p.sibling;var O=d(g,p,y[x],v);if(O===null){p===null&&(p=j);break}u&&p&&O.alternate===null&&e(g,p),m=i(O,m,x),D===null?w=O:D.sibling=O,D=O,p=j}if(x===y.length)return t(g,p),se&&fi(g,x),w;if(p===null){for(;xx?(j=p,p=null):j=p.sibling;var uu=d(g,p,O.value,v);if(uu===null){p===null&&(p=j);break}u&&p&&uu.alternate===null&&e(g,p),m=i(uu,m,x),D===null?w=uu:D.sibling=uu,D=uu,p=j}if(O.done)return t(g,p),se&&fi(g,x),w;if(p===null){for(;!O.done;x++,O=y.next())O=E(g,O.value,v),O!==null&&(m=i(O,m,x),D===null?w=O:D.sibling=O,D=O);return se&&fi(g,x),w}for(p=n(g,p);!O.done;x++,O=y.next())O=f(p,g,x,O.value,v),O!==null&&(u&&O.alternate!==null&&p.delete(O.key===null?x:O.key),m=i(O,m,x),D===null?w=O:D.sibling=O,D=O);return u&&p.forEach(function(ou){return e(g,ou)}),se&&fi(g,x),w}function B(g,m,y,v){if(typeof y=="object"&&y!==null&&y.type===$a&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case ec:u:{for(var w=y.key,D=m;D!==null;){if(D.key===w){if(w=y.type,w===$a){if(D.tag===7){t(g,D.sibling),m=r(D,y.props.children),m.return=g,g=m;break u}}else if(D.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===dr&&Om(w)===D.type){t(g,D.sibling),m=r(D,y.props),m.ref=d4(g,D,y),m.return=g,g=m;break u}t(g,D);break}else e(g,D);D=D.sibling}y.type===$a?(m=Vi(y.props.children,g.mode,v,y.key),m.return=g,g=m):(v=Qc(y.type,y.key,y.props,null,g.mode,v),v.ref=d4(g,m,y),v.return=g,g=v)}return a(g);case La:u:{for(D=y.key;m!==null;){if(m.key===D)if(m.tag===4&&m.stateNode.containerInfo===y.containerInfo&&m.stateNode.implementation===y.implementation){t(g,m.sibling),m=r(m,y.children||[]),m.return=g,g=m;break u}else{t(g,m);break}else e(g,m);m=m.sibling}m=L9(y,g.mode,v),m.return=g,g=m}return a(g);case dr:return D=y._init,B(g,m,D(y._payload),v)}if(D4(y))return C(g,m,y,v);if(o4(y))return h(g,m,y,v);dc(g,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,m!==null&&m.tag===6?(t(g,m.sibling),m=r(m,y),m.return=g,g=m):(t(g,m),m=U9(y,g.mode,v),m.return=g,g=m),a(g)):t(g,m)}return B}var ss=MB(!0),UB=MB(!1),Bl={},ln=ei(Bl),p3=ei(Bl),h3=ei(Bl);function Di(u){if(u===Bl)throw Error(du(174));return u}function rh(u,e){switch(re(h3,e),re(p3,u),re(ln,Bl),u=e.nodeType,u){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:i6(null,"");break;default:u=u===8?e.parentNode:e,e=u.namespaceURI||null,u=u.tagName,e=i6(e,u)}oe(ln),re(ln,e)}function ls(){oe(ln),oe(p3),oe(h3)}function LB(u){Di(h3.current);var e=Di(ln.current),t=i6(e,u.type);e!==t&&(re(p3,u),re(ln,t))}function ih(u){p3.current===u&&(oe(ln),oe(p3))}var ce=ei(0);function PE(u){for(var e=u;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===u)break;for(;e.sibling===null;){if(e.return===null||e.return===u)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var O9=[];function ah(){for(var u=0;ut?t:4,u(!0);var n=N9.transition;N9.transition={};try{u(!1),e()}finally{ue=t,N9.transition=n}}function nv(){return pt().memoizedState}function iT(u,e,t){var n=$r(u);if(t={lane:n,action:t,hasEagerState:!1,eagerState:null,next:null},rv(u))iv(e,t);else if(t=NB(u,e,t,n),t!==null){var r=d0();Nt(t,u,n,r),av(t,e,n)}}function aT(u,e,t){var n=$r(u),r={lane:n,action:t,hasEagerState:!1,eagerState:null,next:null};if(rv(u))iv(e,r);else{var i=u.alternate;if(u.lanes===0&&(i===null||i.lanes===0)&&(i=e.lastRenderedReducer,i!==null))try{var a=e.lastRenderedState,o=i(a,t);if(r.hasEagerState=!0,r.eagerState=o,Rt(o,a)){var s=e.interleaved;s===null?(r.next=r,th(e)):(r.next=s.next,s.next=r),e.interleaved=r;return}}catch{}finally{}t=NB(u,e,r,n),t!==null&&(r=d0(),Nt(t,u,n,r),av(t,e,n))}}function rv(u){var e=u.alternate;return u===he||e!==null&&e===he}function iv(u,e){H4=TE=!0;var t=u.pending;t===null?e.next=e:(e.next=t.next,t.next=e),u.pending=e}function av(u,e,t){if(t&4194240){var n=e.lanes;n&=u.pendingLanes,t|=n,e.lanes=t,$p(u,t)}}var IE={readContext:ft,useCallback:Ge,useContext:Ge,useEffect:Ge,useImperativeHandle:Ge,useInsertionEffect:Ge,useLayoutEffect:Ge,useMemo:Ge,useReducer:Ge,useRef:Ge,useState:Ge,useDebugValue:Ge,useDeferredValue:Ge,useTransition:Ge,useMutableSource:Ge,useSyncExternalStore:Ge,useId:Ge,unstable_isNewReconciler:!1},oT={readContext:ft,useCallback:function(u,e){return Gt().memoizedState=[u,e===void 0?null:e],u},useContext:ft,useEffect:Rm,useImperativeHandle:function(u,e,t){return t=t!=null?t.concat([u]):null,qc(4194308,4,XB.bind(null,e,u),t)},useLayoutEffect:function(u,e){return qc(4194308,4,u,e)},useInsertionEffect:function(u,e){return qc(4,2,u,e)},useMemo:function(u,e){var t=Gt();return e=e===void 0?null:e,u=u(),t.memoizedState=[u,e],u},useReducer:function(u,e,t){var n=Gt();return e=t!==void 0?t(e):e,n.memoizedState=n.baseState=e,u={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:u,lastRenderedState:e},n.queue=u,u=u.dispatch=iT.bind(null,he,u),[n.memoizedState,u]},useRef:function(u){var e=Gt();return u={current:u},e.memoizedState=u},useState:Nm,useDebugValue:Eh,useDeferredValue:function(u){return Gt().memoizedState=u},useTransition:function(){var u=Nm(!1),e=u[0];return u=rT.bind(null,u[1]),Gt().memoizedState=u,[e,u]},useMutableSource:function(){},useSyncExternalStore:function(u,e,t){var n=he,r=Gt();if(se){if(t===void 0)throw Error(du(407));t=t()}else{if(t=e(),Re===null)throw Error(du(349));ra&30||qB(n,e,t)}r.memoizedState=t;var i={value:t,getSnapshot:e};return r.queue=i,Rm(GB.bind(null,n,i,u),[u]),n.flags|=2048,g3(9,HB.bind(null,n,i,t,e),void 0,null),t},useId:function(){var u=Gt(),e=Re.identifierPrefix;if(se){var t=zn,n=jn;t=(n&~(1<<32-Ot(n)-1)).toString(32)+t,e=":"+e+"R"+t,t=C3++,0")&&(s=s.replace("",u.displayName)),s}while(1<=a&&0<=o);break}}}finally{A9=!1,Error.prepareStackTrace=t}return(u=u?u.displayName||u.name:"")?D4(u):""}function zS(u){switch(u.tag){case 5:return D4(u.type);case 16:return D4("Lazy");case 13:return D4("Suspense");case 19:return D4("SuspenseList");case 0:case 2:case 15:return u=y9(u.type,!1),u;case 11:return u=y9(u.type.render,!1),u;case 1:return u=y9(u.type,!0),u;default:return""}}function e6(u){if(u==null)return null;if(typeof u=="function")return u.displayName||u.name||null;if(typeof u=="string")return u;switch(u){case Wa:return"Fragment";case $a:return"Portal";case X1:return"Profiler";case zp:return"StrictMode";case Z1:return"Suspense";case u6:return"SuspenseList"}if(typeof u=="object")switch(u.$$typeof){case My:return(u.displayName||"Context")+".Consumer";case zy:return(u._context.displayName||"Context")+".Provider";case Mp:var e=u.render;return u=u.displayName,u||(u=e.displayName||e.name||"",u=u!==""?"ForwardRef("+u+")":"ForwardRef"),u;case Up:return e=u.displayName||null,e!==null?e:e6(u.type)||"Memo";case fr:e=u._payload,u=u._init;try{return e6(u(e))}catch{}}return null}function MS(u){var e=u.type;switch(u.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return u=e.render,u=u.displayName||u.name||"",e.displayName||(u!==""?"ForwardRef("+u+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return e6(e);case 8:return e===zp?"StrictMode":"Mode";case 22:return"Offscreen";case 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(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Kr(u){switch(typeof u){case"boolean":case"number":case"string":case"undefined":return u;case"object":return u;default:return""}}function Ly(u){var e=u.type;return(u=u.nodeName)&&u.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function US(u){var e=Ly(u)?"checked":"value",t=Object.getOwnPropertyDescriptor(u.constructor.prototype,e),n=""+u[e];if(!u.hasOwnProperty(e)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,i=t.set;return Object.defineProperty(u,e,{configurable:!0,get:function(){return r.call(this)},set:function(a){n=""+a,i.call(this,a)}}),Object.defineProperty(u,e,{enumerable:t.enumerable}),{getValue:function(){return n},setValue:function(a){n=""+a},stopTracking:function(){u._valueTracker=null,delete u[e]}}}}function nc(u){u._valueTracker||(u._valueTracker=US(u))}function $y(u){if(!u)return!1;var e=u._valueTracker;if(!e)return!0;var t=e.getValue(),n="";return u&&(n=Ly(u)?u.checked?"true":"false":u.value),u=n,u!==t?(e.setValue(u),!0):!1}function CE(u){if(u=u||(typeof document<"u"?document:void 0),typeof u>"u")return null;try{return u.activeElement||u.body}catch{return u.body}}function t6(u,e){var t=e.checked;return me({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??u._wrapperState.initialChecked})}function um(u,e){var t=e.defaultValue==null?"":e.defaultValue,n=e.checked!=null?e.checked:e.defaultChecked;t=Kr(e.value!=null?e.value:t),u._wrapperState={initialChecked:n,initialValue:t,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function Wy(u,e){e=e.checked,e!=null&&jp(u,"checked",e,!1)}function n6(u,e){Wy(u,e);var t=Kr(e.value),n=e.type;if(t!=null)n==="number"?(t===0&&u.value===""||u.value!=t)&&(u.value=""+t):u.value!==""+t&&(u.value=""+t);else if(n==="submit"||n==="reset"){u.removeAttribute("value");return}e.hasOwnProperty("value")?r6(u,e.type,t):e.hasOwnProperty("defaultValue")&&r6(u,e.type,Kr(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(u.defaultChecked=!!e.defaultChecked)}function em(u,e,t){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var n=e.type;if(!(n!=="submit"&&n!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+u._wrapperState.initialValue,t||e===u.value||(u.value=e),u.defaultValue=e}t=u.name,t!==""&&(u.name=""),u.defaultChecked=!!u._wrapperState.initialChecked,t!==""&&(u.name=t)}function r6(u,e,t){(e!=="number"||CE(u.ownerDocument)!==u)&&(t==null?u.defaultValue=""+u._wrapperState.initialValue:u.defaultValue!==""+t&&(u.defaultValue=""+t))}var b4=Array.isArray;function lo(u,e,t,n){if(u=u.options,e){e={};for(var r=0;r"+e.valueOf().toString()+"",e=rc.firstChild;u.firstChild;)u.removeChild(u.firstChild);for(;e.firstChild;)u.appendChild(e.firstChild)}});function i3(u,e){if(e){var t=u.firstChild;if(t&&t===u.lastChild&&t.nodeType===3){t.nodeValue=e;return}}u.textContent=e}var L4={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,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},LS=["Webkit","ms","Moz","O"];Object.keys(L4).forEach(function(u){LS.forEach(function(e){e=e+u.charAt(0).toUpperCase()+u.substring(1),L4[e]=L4[u]})});function Ky(u,e,t){return e==null||typeof e=="boolean"||e===""?"":t||typeof e!="number"||e===0||L4.hasOwnProperty(u)&&L4[u]?(""+e).trim():e+"px"}function Qy(u,e){u=u.style;for(var t in e)if(e.hasOwnProperty(t)){var n=t.indexOf("--")===0,r=Ky(t,e[t],n);t==="float"&&(t="cssFloat"),n?u.setProperty(t,r):u[t]=r}}var $S=me({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});function o6(u,e){if(e){if($S[u]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(du(137,u));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(du(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(du(61))}if(e.style!=null&&typeof e.style!="object")throw Error(du(62))}}function s6(u,e){if(u.indexOf("-")===-1)return typeof e.is=="string";switch(u){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 l6=null;function Lp(u){return u=u.target||u.srcElement||window,u.correspondingUseElement&&(u=u.correspondingUseElement),u.nodeType===3?u.parentNode:u}var c6=null,co=null,Eo=null;function rm(u){if(u=Bl(u)){if(typeof c6!="function")throw Error(du(280));var e=u.stateNode;e&&(e=j2(e),c6(u.stateNode,u.type,e))}}function Vy(u){co?Eo?Eo.push(u):Eo=[u]:co=u}function Jy(){if(co){var u=co,e=Eo;if(Eo=co=null,rm(u),e)for(u=0;u>>=0,u===0?32:31-(ZS(u)/uP|0)|0}var ic=64,ac=4194304;function w4(u){switch(u&-u){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 u&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return u&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return u}}function yE(u,e){var t=u.pendingLanes;if(t===0)return 0;var n=0,r=u.suspendedLanes,i=u.pingedLanes,a=t&268435455;if(a!==0){var o=a&~r;o!==0?n=w4(o):(i&=a,i!==0&&(n=w4(i)))}else a=t&~r,a!==0?n=w4(a):i!==0&&(n=w4(i));if(n===0)return 0;if(e!==0&&e!==n&&!(e&r)&&(r=n&-n,i=e&-e,r>=i||r===16&&(i&4194240)!==0))return e;if(n&4&&(n|=t&16),e=u.entangledLanes,e!==0)for(u=u.entanglements,e&=n;0t;t++)e.push(u);return e}function Al(u,e,t){u.pendingLanes|=e,e!==536870912&&(u.suspendedLanes=0,u.pingedLanes=0),u=u.eventTimes,e=31-Nt(e),u[e]=t}function rP(u,e){var t=u.pendingLanes&~e;u.pendingLanes=e,u.suspendedLanes=0,u.pingedLanes=0,u.expiredLanes&=e,u.mutableReadLanes&=e,u.entangledLanes&=e,e=u.entanglements;var n=u.eventTimes;for(u=u.expirationTimes;0=W4),fm=String.fromCharCode(32),pm=!1;function CB(u,e){switch(u){case"keyup":return TP.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function mB(u){return u=u.detail,typeof u=="object"&&"data"in u?u.data:null}var qa=!1;function OP(u,e){switch(u){case"compositionend":return mB(e);case"keypress":return e.which!==32?null:(pm=!0,fm);case"textInput":return u=e.data,u===fm&&pm?null:u;default:return null}}function NP(u,e){if(qa)return u==="compositionend"||!Vp&&CB(u,e)?(u=pB(),Lc=Gp=Or=null,qa=!1,u):null;switch(u){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:t,offset:e-u};u=n}u:{for(;t;){if(t.nextSibling){t=t.nextSibling;break u}t=t.parentNode}t=void 0}t=gm(t)}}function BB(u,e){return u&&e?u===e?!0:u&&u.nodeType===3?!1:e&&e.nodeType===3?BB(u,e.parentNode):"contains"in u?u.contains(e):u.compareDocumentPosition?!!(u.compareDocumentPosition(e)&16):!1:!1}function vB(){for(var u=window,e=CE();e instanceof u.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)u=e.contentWindow;else break;e=CE(u.document)}return e}function Jp(u){var e=u&&u.nodeName&&u.nodeName.toLowerCase();return e&&(e==="input"&&(u.type==="text"||u.type==="search"||u.type==="tel"||u.type==="url"||u.type==="password")||e==="textarea"||u.contentEditable==="true")}function qP(u){var e=vB(),t=u.focusedElem,n=u.selectionRange;if(e!==t&&t&&t.ownerDocument&&BB(t.ownerDocument.documentElement,t)){if(n!==null&&Jp(t)){if(e=n.start,u=n.end,u===void 0&&(u=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(u,t.value.length);else if(u=(e=t.ownerDocument||document)&&e.defaultView||window,u.getSelection){u=u.getSelection();var r=t.textContent.length,i=Math.min(n.start,r);n=n.end===void 0?i:Math.min(n.end,r),!u.extend&&i>n&&(r=n,n=i,i=r),r=Am(t,i);var a=Am(t,n);r&&a&&(u.rangeCount!==1||u.anchorNode!==r.node||u.anchorOffset!==r.offset||u.focusNode!==a.node||u.focusOffset!==a.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),u.removeAllRanges(),i>n?(u.addRange(e),u.extend(a.node,a.offset)):(e.setEnd(a.node,a.offset),u.addRange(e)))}}for(e=[],u=t;u=u.parentNode;)u.nodeType===1&&e.push({element:u,left:u.scrollLeft,top:u.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Ha=null,C6=null,H4=null,m6=!1;function ym(u,e,t){var n=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;m6||Ha==null||Ha!==CE(n)||(n=Ha,"selectionStart"in n&&Jp(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),H4&&E3(H4,n)||(H4=n,n=FE(C6,"onSelect"),0Qa||(u.current=F6[Qa],F6[Qa]=null,Qa--)}function ie(u,e){Qa++,F6[Qa]=u.current,u.current=e}var Qr={},r0=ti(Qr),w0=ti(!1),na=Qr;function os(u,e){var t=u.type.contextTypes;if(!t)return Qr;var n=u.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===e)return n.__reactInternalMemoizedMaskedChildContext;var r={},i;for(i in t)r[i]=e[i];return n&&(u=u.stateNode,u.__reactInternalMemoizedUnmaskedChildContext=e,u.__reactInternalMemoizedMaskedChildContext=r),r}function x0(u){return u=u.childContextTypes,u!=null}function bE(){se(w0),se(r0)}function xm(u,e,t){if(r0.current!==Qr)throw Error(du(168));ie(r0,e),ie(w0,t)}function PB(u,e,t){var n=u.stateNode;if(e=e.childContextTypes,typeof n.getChildContext!="function")return t;n=n.getChildContext();for(var r in n)if(!(r in e))throw Error(du(108,MS(u)||"Unknown",r));return me({},t,n)}function wE(u){return u=(u=u.stateNode)&&u.__reactInternalMemoizedMergedChildContext||Qr,na=r0.current,ie(r0,u),ie(w0,w0.current),!0}function km(u,e,t){var n=u.stateNode;if(!n)throw Error(du(169));t?(u=PB(u,e,na),n.__reactInternalMemoizedMergedChildContext=u,se(w0),se(r0),ie(r0,u)):se(w0),ie(w0,t)}var An=null,z2=!1,O9=!1;function TB(u){An===null?An=[u]:An.push(u)}function tT(u){z2=!0,TB(u)}function ni(){if(!O9&&An!==null){O9=!0;var u=0,e=ee;try{var t=An;for(ee=1;u>=a,r-=a,zn=1<<32-Nt(e)+r|t<x?(j=p,p=null):j=p.sibling;var O=d(g,p,y[x],v);if(O===null){p===null&&(p=j);break}u&&p&&O.alternate===null&&e(g,p),m=i(O,m,x),D===null?w=O:D.sibling=O,D=O,p=j}if(x===y.length)return t(g,p),le&&pi(g,x),w;if(p===null){for(;xx?(j=p,p=null):j=p.sibling;var Z=d(g,p,O.value,v);if(Z===null){p===null&&(p=j);break}u&&p&&Z.alternate===null&&e(g,p),m=i(Z,m,x),D===null?w=Z:D.sibling=Z,D=Z,p=j}if(O.done)return t(g,p),le&&pi(g,x),w;if(p===null){for(;!O.done;x++,O=y.next())O=E(g,O.value,v),O!==null&&(m=i(O,m,x),D===null?w=O:D.sibling=O,D=O);return le&&pi(g,x),w}for(p=n(g,p);!O.done;x++,O=y.next())O=f(p,g,x,O.value,v),O!==null&&(u&&O.alternate!==null&&p.delete(O.key===null?x:O.key),m=i(O,m,x),D===null?w=O:D.sibling=O,D=O);return u&&p.forEach(function(ou){return e(g,ou)}),le&&pi(g,x),w}function B(g,m,y,v){if(typeof y=="object"&&y!==null&&y.type===Wa&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case tc:u:{for(var w=y.key,D=m;D!==null;){if(D.key===w){if(w=y.type,w===Wa){if(D.tag===7){t(g,D.sibling),m=r(D,y.props.children),m.return=g,g=m;break u}}else if(D.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===fr&&Nm(w)===D.type){t(g,D.sibling),m=r(D,y.props),m.ref=f4(g,D,y),m.return=g,g=m;break u}t(g,D);break}else e(g,D);D=D.sibling}y.type===Wa?(m=Ji(y.props.children,g.mode,v,y.key),m.return=g,g=m):(v=Vc(y.type,y.key,y.props,null,g.mode,v),v.ref=f4(g,m,y),v.return=g,g=v)}return a(g);case $a:u:{for(D=y.key;m!==null;){if(m.key===D)if(m.tag===4&&m.stateNode.containerInfo===y.containerInfo&&m.stateNode.implementation===y.implementation){t(g,m.sibling),m=r(m,y.children||[]),m.return=g,g=m;break u}else{t(g,m);break}else e(g,m);m=m.sibling}m=$9(y,g.mode,v),m.return=g,g=m}return a(g);case fr:return D=y._init,B(g,m,D(y._payload),v)}if(b4(y))return C(g,m,y,v);if(s4(y))return h(g,m,y,v);fc(g,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,m!==null&&m.tag===6?(t(g,m.sibling),m=r(m,y),m.return=g,g=m):(t(g,m),m=L9(y,g.mode,v),m.return=g,g=m),a(g)):t(g,m)}return B}var ls=UB(!0),LB=UB(!1),vl={},cn=ti(vl),h3=ti(vl),C3=ti(vl);function bi(u){if(u===vl)throw Error(du(174));return u}function ih(u,e){switch(ie(C3,e),ie(h3,u),ie(cn,vl),u=e.nodeType,u){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:a6(null,"");break;default:u=u===8?e.parentNode:e,e=u.namespaceURI||null,u=u.tagName,e=a6(e,u)}se(cn),ie(cn,e)}function cs(){se(cn),se(h3),se(C3)}function $B(u){bi(C3.current);var e=bi(cn.current),t=a6(e,u.type);e!==t&&(ie(h3,u),ie(cn,t))}function ah(u){h3.current===u&&(se(cn),se(h3))}var Ee=ti(0);function TE(u){for(var e=u;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===u)break;for(;e.sibling===null;){if(e.return===null||e.return===u)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var N9=[];function oh(){for(var u=0;ut?t:4,u(!0);var n=R9.transition;R9.transition={};try{u(!1),e()}finally{ee=t,R9.transition=n}}function rv(){return ht().memoizedState}function aT(u,e,t){var n=Wr(u);if(t={lane:n,action:t,hasEagerState:!1,eagerState:null,next:null},iv(u))av(e,t);else if(t=RB(u,e,t,n),t!==null){var r=f0();Rt(t,u,n,r),ov(t,e,n)}}function oT(u,e,t){var n=Wr(u),r={lane:n,action:t,hasEagerState:!1,eagerState:null,next:null};if(iv(u))av(e,r);else{var i=u.alternate;if(u.lanes===0&&(i===null||i.lanes===0)&&(i=e.lastRenderedReducer,i!==null))try{var a=e.lastRenderedState,o=i(a,t);if(r.hasEagerState=!0,r.eagerState=o,jt(o,a)){var s=e.interleaved;s===null?(r.next=r,nh(e)):(r.next=s.next,s.next=r),e.interleaved=r;return}}catch{}finally{}t=RB(u,e,r,n),t!==null&&(r=f0(),Rt(t,u,n,r),ov(t,e,n))}}function iv(u){var e=u.alternate;return u===Ce||e!==null&&e===Ce}function av(u,e){G4=IE=!0;var t=u.pending;t===null?e.next=e:(e.next=t.next,t.next=e),u.pending=e}function ov(u,e,t){if(t&4194240){var n=e.lanes;n&=u.pendingLanes,t|=n,e.lanes=t,Wp(u,t)}}var OE={readContext:pt,useCallback:Ke,useContext:Ke,useEffect:Ke,useImperativeHandle:Ke,useInsertionEffect:Ke,useLayoutEffect:Ke,useMemo:Ke,useReducer:Ke,useRef:Ke,useState:Ke,useDebugValue:Ke,useDeferredValue:Ke,useTransition:Ke,useMutableSource:Ke,useSyncExternalStore:Ke,useId:Ke,unstable_isNewReconciler:!1},sT={readContext:pt,useCallback:function(u,e){return Kt().memoizedState=[u,e===void 0?null:e],u},useContext:pt,useEffect:jm,useImperativeHandle:function(u,e,t){return t=t!=null?t.concat([u]):null,Hc(4194308,4,ZB.bind(null,e,u),t)},useLayoutEffect:function(u,e){return Hc(4194308,4,u,e)},useInsertionEffect:function(u,e){return Hc(4,2,u,e)},useMemo:function(u,e){var t=Kt();return e=e===void 0?null:e,u=u(),t.memoizedState=[u,e],u},useReducer:function(u,e,t){var n=Kt();return e=t!==void 0?t(e):e,n.memoizedState=n.baseState=e,u={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:u,lastRenderedState:e},n.queue=u,u=u.dispatch=aT.bind(null,Ce,u),[n.memoizedState,u]},useRef:function(u){var e=Kt();return u={current:u},e.memoizedState=u},useState:Rm,useDebugValue:dh,useDeferredValue:function(u){return Kt().memoizedState=u},useTransition:function(){var u=Rm(!1),e=u[0];return u=iT.bind(null,u[1]),Kt().memoizedState=u,[e,u]},useMutableSource:function(){},useSyncExternalStore:function(u,e,t){var n=Ce,r=Kt();if(le){if(t===void 0)throw Error(du(407));t=t()}else{if(t=e(),je===null)throw Error(du(349));ia&30||HB(n,e,t)}r.memoizedState=t;var i={value:t,getSnapshot:e};return r.queue=i,jm(KB.bind(null,n,i,u),[u]),n.flags|=2048,A3(9,GB.bind(null,n,i,t,e),void 0,null),t},useId:function(){var u=Kt(),e=je.identifierPrefix;if(le){var t=Mn,n=zn;t=(n&~(1<<32-Nt(n)-1)).toString(32)+t,e=":"+e+"R"+t,t=m3++,0<\/script>",u=u.removeChild(u.firstChild)):typeof n.is=="string"?u=a.createElement(t,{is:n.is}):(u=a.createElement(t),t==="select"&&(a=u,n.multiple?a.multiple=!0:n.size&&(a.size=n.size))):u=a.createElementNS(u,t),u[nn]=e,u[f3]=n,hv(u,e,!1,!1),e.stateNode=u;u:{switch(a=o6(t,n),t){case"dialog":ie("cancel",u),ie("close",u),r=n;break;case"iframe":case"object":case"embed":ie("load",u),r=n;break;case"video":case"audio":for(r=0;rEs&&(e.flags|=128,n=!0,f4(i,!1),e.lanes=4194304)}else{if(!n)if(u=PE(a),u!==null){if(e.flags|=128,n=!0,t=u.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),f4(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!se)return Ke(e),null}else 2*Ae()-i.renderingStartTime>Es&&t!==1073741824&&(e.flags|=128,n=!0,f4(i,!1),e.lanes=4194304);i.isBackwards?(a.sibling=e.child,e.child=a):(t=i.last,t!==null?t.sibling=a:e.child=a,i.last=a)}return i.tail!==null?(e=i.tail,i.rendering=e,i.tail=e.sibling,i.renderingStartTime=Ae(),e.sibling=null,t=ce.current,re(ce,n?t&1|2:t&1),e):(Ke(e),null);case 22:case 23:return mh(),n=e.memoizedState!==null,u!==null&&u.memoizedState!==null!==n&&(e.flags|=8192),n&&e.mode&1?z0&1073741824&&(Ke(e),e.subtreeFlags&6&&(e.flags|=8192)):Ke(e),null;case 24:return null;case 25:return null}throw Error(du(156,e.tag))}function hT(u,e){switch(Yp(e),e.tag){case 1:return w0(e.type)&&DE(),u=e.flags,u&65536?(e.flags=u&-65537|128,e):null;case 3:return ls(),oe(b0),oe(n0),ah(),u=e.flags,u&65536&&!(u&128)?(e.flags=u&-65537|128,e):null;case 5:return ih(e),null;case 13:if(oe(ce),u=e.memoizedState,u!==null&&u.dehydrated!==null){if(e.alternate===null)throw Error(du(340));os()}return u=e.flags,u&65536?(e.flags=u&-65537|128,e):null;case 19:return oe(ce),null;case 4:return ls(),null;case 10:return eh(e.type._context),null;case 22:case 23:return mh(),null;case 24:return null;default:return null}}var pc=!1,Xe=!1,CT=typeof WeakSet=="function"?WeakSet:Set,vu=null;function Ya(u,e){var t=u.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(n){ge(u,e,n)}else t.current=null}function O6(u,e,t){try{t()}catch(n){ge(u,e,n)}}var Hm=!1;function mT(u,e){if(m6=yE,u=BB(),Vp(u)){if("selectionStart"in u)var t={start:u.selectionStart,end:u.selectionEnd};else u:{t=(t=u.ownerDocument)&&t.defaultView||window;var n=t.getSelection&&t.getSelection();if(n&&n.rangeCount!==0){t=n.anchorNode;var r=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{t.nodeType,i.nodeType}catch{t=null;break u}var a=0,o=-1,s=-1,l=0,c=0,E=u,d=null;e:for(;;){for(var f;E!==t||r!==0&&E.nodeType!==3||(o=a+r),E!==i||n!==0&&E.nodeType!==3||(s=a+n),E.nodeType===3&&(a+=E.nodeValue.length),(f=E.firstChild)!==null;)d=E,E=f;for(;;){if(E===u)break e;if(d===t&&++l===r&&(o=a),d===i&&++c===n&&(s=a),(f=E.nextSibling)!==null)break;E=d,d=E.parentNode}E=f}t=o===-1||s===-1?null:{start:o,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(g6={focusedElem:u,selectionRange:t},yE=!1,vu=e;vu!==null;)if(e=vu,u=e.child,(e.subtreeFlags&1028)!==0&&u!==null)u.return=e,vu=u;else for(;vu!==null;){e=vu;try{var C=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(C!==null){var h=C.memoizedProps,B=C.memoizedState,g=e.stateNode,m=g.getSnapshotBeforeUpdate(e.elementType===e.type?h:Ft(e.type,h),B);g.__reactInternalSnapshotBeforeUpdate=m}break;case 3:var y=e.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(du(163))}}catch(v){ge(e,e.return,v)}if(u=e.sibling,u!==null){u.return=e.return,vu=u;break}vu=e.return}return C=Hm,Hm=!1,C}function G4(u,e,t){var n=e.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var r=n=n.next;do{if((r.tag&u)===u){var i=r.destroy;r.destroy=void 0,i!==void 0&&O6(e,t,i)}r=r.next}while(r!==n)}}function U2(u,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&u)===u){var n=t.create;t.destroy=n()}t=t.next}while(t!==e)}}function N6(u){var e=u.ref;if(e!==null){var t=u.stateNode;switch(u.tag){case 5:u=t;break;default:u=t}typeof e=="function"?e(u):e.current=u}}function gv(u){var e=u.alternate;e!==null&&(u.alternate=null,gv(e)),u.child=null,u.deletions=null,u.sibling=null,u.tag===5&&(e=u.stateNode,e!==null&&(delete e[nn],delete e[f3],delete e[B6],delete e[ZP],delete e[uT])),u.stateNode=null,u.return=null,u.dependencies=null,u.memoizedProps=null,u.memoizedState=null,u.pendingProps=null,u.stateNode=null,u.updateQueue=null}function Av(u){return u.tag===5||u.tag===3||u.tag===4}function Gm(u){u:for(;;){for(;u.sibling===null;){if(u.return===null||Av(u.return))return null;u=u.return}for(u.sibling.return=u.return,u=u.sibling;u.tag!==5&&u.tag!==6&&u.tag!==18;){if(u.flags&2||u.child===null||u.tag===4)continue u;u.child.return=u,u=u.child}if(!(u.flags&2))return u.stateNode}}function R6(u,e,t){var n=u.tag;if(n===5||n===6)u=u.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(u,e):t.insertBefore(u,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(u,t)):(e=t,e.appendChild(u)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=FE));else if(n!==4&&(u=u.child,u!==null))for(R6(u,e,t),u=u.sibling;u!==null;)R6(u,e,t),u=u.sibling}function j6(u,e,t){var n=u.tag;if(n===5||n===6)u=u.stateNode,e?t.insertBefore(u,e):t.appendChild(u);else if(n!==4&&(u=u.child,u!==null))for(j6(u,e,t),u=u.sibling;u!==null;)j6(u,e,t),u=u.sibling}var Me=null,_t=!1;function ar(u,e,t){for(t=t.child;t!==null;)yv(u,e,t),t=t.sibling}function yv(u,e,t){if(sn&&typeof sn.onCommitFiberUnmount=="function")try{sn.onCommitFiberUnmount(T2,t)}catch{}switch(t.tag){case 5:Xe||Ya(t,e);case 6:var n=Me,r=_t;Me=null,ar(u,e,t),Me=n,_t=r,Me!==null&&(_t?(u=Me,t=t.stateNode,u.nodeType===8?u.parentNode.removeChild(t):u.removeChild(t)):Me.removeChild(t.stateNode));break;case 18:Me!==null&&(_t?(u=Me,t=t.stateNode,u.nodeType===8?T9(u.parentNode,t):u.nodeType===1&&T9(u,t),s3(u)):T9(Me,t.stateNode));break;case 4:n=Me,r=_t,Me=t.stateNode.containerInfo,_t=!0,ar(u,e,t),Me=n,_t=r;break;case 0:case 11:case 14:case 15:if(!Xe&&(n=t.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){r=n=n.next;do{var i=r,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&O6(t,e,a),r=r.next}while(r!==n)}ar(u,e,t);break;case 1:if(!Xe&&(Ya(t,e),n=t.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=t.memoizedProps,n.state=t.memoizedState,n.componentWillUnmount()}catch(o){ge(t,e,o)}ar(u,e,t);break;case 21:ar(u,e,t);break;case 22:t.mode&1?(Xe=(n=Xe)||t.memoizedState!==null,ar(u,e,t),Xe=n):ar(u,e,t);break;default:ar(u,e,t)}}function Km(u){var e=u.updateQueue;if(e!==null){u.updateQueue=null;var t=u.stateNode;t===null&&(t=u.stateNode=new CT),e.forEach(function(n){var r=wT.bind(null,u,n);t.has(n)||(t.add(n),n.then(r,r))})}}function yt(u,e){var t=e.deletions;if(t!==null)for(var n=0;nr&&(r=a),n&=~i}if(n=r,n=Ae()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*AT(n/1960))-n,10u?16:u,Or===null)var n=!1;else{if(u=Or,Or=null,RE=0,Qu&6)throw Error(du(331));var r=Qu;for(Qu|=4,vu=u.current;vu!==null;){var i=vu,a=i.child;if(vu.flags&16){var o=i.deletions;if(o!==null){for(var s=0;sAe()-hh?Qi(u,0):ph|=t),x0(u,e)}function kv(u,e){e===0&&(u.mode&1?(e=ic,ic<<=1,!(ic&130023424)&&(ic=4194304)):e=1);var t=d0();u=Kn(u,e),u!==null&&(gl(u,e,t),x0(u,t))}function bT(u){var e=u.memoizedState,t=0;e!==null&&(t=e.retryLane),kv(u,t)}function wT(u,e){var t=0;switch(u.tag){case 13:var n=u.stateNode,r=u.memoizedState;r!==null&&(t=r.retryLane);break;case 19:n=u.stateNode;break;default:throw Error(du(314))}n!==null&&n.delete(e),kv(u,t)}var _v;_v=function(u,e,t){if(u!==null)if(u.memoizedProps!==e.pendingProps||b0.current)D0=!0;else{if(!(u.lanes&t)&&!(e.flags&128))return D0=!1,fT(u,e,t);D0=!!(u.flags&131072)}else D0=!1,se&&e.flags&1048576&&TB(e,xE,e.index);switch(e.lanes=0,e.tag){case 2:var n=e.type;Hc(u,e),u=e.pendingProps;var r=as(e,n0.current);fo(e,t),r=sh(null,e,n,u,r,t);var i=lh();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,w0(n)?(i=!0,bE(e)):i=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,nh(e),r.updater=z2,e.stateNode=r,r._reactInternals=e,x6(e,n,u,t),e=S6(null,e,n,!0,i,t)):(e.tag=0,se&&i&&Jp(e),i0(null,e,r,t),e=e.child),e;case 16:n=e.elementType;u:{switch(Hc(u,e),u=e.pendingProps,r=n._init,n=r(n._payload),e.type=n,r=e.tag=kT(n),u=Ft(n,u),r){case 0:e=_6(null,e,n,u,t);break u;case 1:e=$m(null,e,n,u,t);break u;case 11:e=Um(null,e,n,u,t);break u;case 14:e=Lm(null,e,n,Ft(n.type,u),t);break u}throw Error(du(306,n,""))}return e;case 0:return n=e.type,r=e.pendingProps,r=e.elementType===n?r:Ft(n,r),_6(u,e,n,r,t);case 1:return n=e.type,r=e.pendingProps,r=e.elementType===n?r:Ft(n,r),$m(u,e,n,r,t);case 3:u:{if(dv(e),u===null)throw Error(du(387));n=e.pendingProps,i=e.memoizedState,r=i.element,RB(u,e),SE(e,n,null,t);var a=e.memoizedState;if(n=a.element,i.isDehydrated)if(i={element:n,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},e.updateQueue.baseState=i,e.memoizedState=i,e.flags&256){r=cs(Error(du(423)),e),e=Wm(u,e,n,t,r);break u}else if(n!==r){r=cs(Error(du(424)),e),e=Wm(u,e,n,t,r);break u}else for(M0=Mr(e.stateNode.containerInfo.firstChild),$0=e,se=!0,St=null,t=UB(e,null,n,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(os(),n===r){e=Qn(u,e,t);break u}i0(u,e,n,t)}e=e.child}return e;case 5:return LB(e),u===null&&D6(e),n=e.type,r=e.pendingProps,i=u!==null?u.memoizedProps:null,a=r.children,A6(n,r)?a=null:i!==null&&A6(n,i)&&(e.flags|=32),Ev(u,e),i0(u,e,a,t),e.child;case 6:return u===null&&D6(e),null;case 13:return fv(u,e,t);case 4:return rh(e,e.stateNode.containerInfo),n=e.pendingProps,u===null?e.child=ss(e,null,n,t):i0(u,e,n,t),e.child;case 11:return n=e.type,r=e.pendingProps,r=e.elementType===n?r:Ft(n,r),Um(u,e,n,r,t);case 7:return i0(u,e,e.pendingProps,t),e.child;case 8:return i0(u,e,e.pendingProps.children,t),e.child;case 12:return i0(u,e,e.pendingProps.children,t),e.child;case 10:u:{if(n=e.type._context,r=e.pendingProps,i=e.memoizedProps,a=r.value,re(kE,n._currentValue),n._currentValue=a,i!==null)if(Rt(i.value,a)){if(i.children===r.children&&!b0.current){e=Qn(u,e,t);break u}}else for(i=e.child,i!==null&&(i.return=e);i!==null;){var o=i.dependencies;if(o!==null){a=i.child;for(var s=o.firstContext;s!==null;){if(s.context===n){if(i.tag===1){s=Ln(-1,t&-t),s.tag=2;var l=i.updateQueue;if(l!==null){l=l.shared;var c=l.pending;c===null?s.next=s:(s.next=c.next,c.next=s),l.pending=s}}i.lanes|=t,s=i.alternate,s!==null&&(s.lanes|=t),b6(i.return,t,e),o.lanes|=t;break}s=s.next}}else if(i.tag===10)a=i.type===e.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(du(341));a.lanes|=t,o=a.alternate,o!==null&&(o.lanes|=t),b6(a,t,e),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===e){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}i0(u,e,r.children,t),e=e.child}return e;case 9:return r=e.type,n=e.pendingProps.children,fo(e,t),r=ft(r),n=n(r),e.flags|=1,i0(u,e,n,t),e.child;case 14:return n=e.type,r=Ft(n,e.pendingProps),r=Ft(n.type,r),Lm(u,e,n,r,t);case 15:return lv(u,e,e.type,e.pendingProps,t);case 17:return n=e.type,r=e.pendingProps,r=e.elementType===n?r:Ft(n,r),Hc(u,e),e.tag=1,w0(n)?(u=!0,bE(e)):u=!1,fo(e,t),zB(e,n,r),x6(e,n,r,t),S6(null,e,n,!0,u,t);case 19:return pv(u,e,t);case 22:return cv(u,e,t)}throw Error(du(156,e.tag))};function Sv(u,e){return tB(u,e)}function xT(u,e,t,n){this.tag=u,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function lt(u,e,t,n){return new xT(u,e,t,n)}function Ah(u){return u=u.prototype,!(!u||!u.isReactComponent)}function kT(u){if(typeof u=="function")return Ah(u)?1:0;if(u!=null){if(u=u.$$typeof,u===zp)return 11;if(u===Mp)return 14}return 2}function Wr(u,e){var t=u.alternate;return t===null?(t=lt(u.tag,e,u.key,u.mode),t.elementType=u.elementType,t.type=u.type,t.stateNode=u.stateNode,t.alternate=u,u.alternate=t):(t.pendingProps=e,t.type=u.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=u.flags&14680064,t.childLanes=u.childLanes,t.lanes=u.lanes,t.child=u.child,t.memoizedProps=u.memoizedProps,t.memoizedState=u.memoizedState,t.updateQueue=u.updateQueue,e=u.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=u.sibling,t.index=u.index,t.ref=u.ref,t}function Qc(u,e,t,n,r,i){var a=2;if(n=u,typeof u=="function")Ah(u)&&(a=1);else if(typeof u=="string")a=5;else u:switch(u){case $a:return Vi(t.children,r,i,e);case jp:a=8,r|=8;break;case Y1:return u=lt(12,t,e,r|2),u.elementType=Y1,u.lanes=i,u;case X1:return u=lt(13,t,e,r),u.elementType=X1,u.lanes=i,u;case Z1:return u=lt(19,t,e,r),u.elementType=Z1,u.lanes=i,u;case My:return $2(t,r,i,e);default:if(typeof u=="object"&&u!==null)switch(u.$$typeof){case jy:a=10;break u;case zy:a=9;break u;case zp:a=11;break u;case Mp:a=14;break u;case dr:a=16,n=null;break u}throw Error(du(130,u==null?u:typeof u,""))}return e=lt(a,t,e,r),e.elementType=u,e.type=n,e.lanes=i,e}function Vi(u,e,t,n){return u=lt(7,u,n,e),u.lanes=t,u}function $2(u,e,t,n){return u=lt(22,u,n,e),u.elementType=My,u.lanes=t,u.stateNode={isHidden:!1},u}function U9(u,e,t){return u=lt(6,u,null,e),u.lanes=t,u}function L9(u,e,t){return e=lt(4,u.children!==null?u.children:[],u.key,e),e.lanes=t,e.stateNode={containerInfo:u.containerInfo,pendingChildren:null,implementation:u.implementation},e}function _T(u,e,t,n,r){this.tag=e,this.containerInfo=u,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=B9(0),this.expirationTimes=B9(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=B9(0),this.identifierPrefix=n,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function yh(u,e,t,n,r,i,a,o,s){return u=new _T(u,e,t,o,s),e===1?(e=1,i===!0&&(e|=8)):e=0,i=lt(3,null,null,e),u.current=i,i.stateNode=u,i.memoizedState={element:n,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},nh(i),u}function ST(u,e,t){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Ov)}catch(u){console.error(u)}}Ov(),Ty.exports=q0;var Nv=Ty.exports,Rv={exports:{}},jv={};/** +`+i.stack}return{value:u,source:e,stack:r,digest:null}}function M9(u,e,t){return{value:u,source:null,stack:t??null,digest:e??null}}function _6(u,e){try{console.error(e.value)}catch(t){setTimeout(function(){throw t})}}var ET=typeof WeakMap=="function"?WeakMap:Map;function sv(u,e,t){t=$n(-1,t),t.tag=3,t.payload={element:null};var n=e.value;return t.callback=function(){RE||(RE=!0,M6=n),_6(u,e)},t}function lv(u,e,t){t=$n(-1,t),t.tag=3;var n=u.type.getDerivedStateFromError;if(typeof n=="function"){var r=e.value;t.payload=function(){return n(r)},t.callback=function(){_6(u,e)}}var i=u.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(t.callback=function(){_6(u,e),typeof n!="function"&&($r===null?$r=new Set([this]):$r.add(this));var a=e.stack;this.componentDidCatch(e.value,{componentStack:a!==null?a:""})}),t}function zm(u,e,t){var n=u.pingCache;if(n===null){n=u.pingCache=new ET;var r=new Set;n.set(e,r)}else r=n.get(e),r===void 0&&(r=new Set,n.set(e,r));r.has(t)||(r.add(t),u=bT.bind(null,u,e,t),e.then(u,u))}function Mm(u){do{var e;if((e=u.tag===13)&&(e=u.memoizedState,e=e!==null?e.dehydrated!==null:!0),e)return u;u=u.return}while(u!==null);return null}function Um(u,e,t,n,r){return u.mode&1?(u.flags|=65536,u.lanes=r,u):(u===e?u.flags|=65536:(u.flags|=128,t.flags|=131072,t.flags&=-52805,t.tag===1&&(t.alternate===null?t.tag=17:(e=$n(-1,1),e.tag=2,Lr(t,e,1))),t.lanes|=1),u)}var dT=er.ReactCurrentOwner,b0=!1;function a0(u,e,t,n){e.child=u===null?LB(e,null,t,n):ls(e,u.child,t,n)}function Lm(u,e,t,n,r){t=t.render;var i=e.ref;return po(e,r),n=lh(u,e,t,n,i,r),t=ch(),u!==null&&!b0?(e.updateQueue=u.updateQueue,e.flags&=-2053,u.lanes&=~r,Vn(u,e,r)):(le&&t&&Yp(e),e.flags|=1,a0(u,e,n,r),e.child)}function $m(u,e,t,n,r){if(u===null){var i=t.type;return typeof i=="function"&&!yh(i)&&i.defaultProps===void 0&&t.compare===null&&t.defaultProps===void 0?(e.tag=15,e.type=i,cv(u,e,i,n,r)):(u=Vc(t.type,null,n,e,e.mode,r),u.ref=e.ref,u.return=e,e.child=u)}if(i=u.child,!(u.lanes&r)){var a=i.memoizedProps;if(t=t.compare,t=t!==null?t:E3,t(a,n)&&u.ref===e.ref)return Vn(u,e,r)}return e.flags|=1,u=qr(i,n),u.ref=e.ref,u.return=e,e.child=u}function cv(u,e,t,n,r){if(u!==null){var i=u.memoizedProps;if(E3(i,n)&&u.ref===e.ref)if(b0=!1,e.pendingProps=n=i,(u.lanes&r)!==0)u.flags&131072&&(b0=!0);else return e.lanes=u.lanes,Vn(u,e,r)}return S6(u,e,t,n,r)}function Ev(u,e,t){var n=e.pendingProps,r=n.children,i=u!==null?u.memoizedState:null;if(n.mode==="hidden")if(!(e.mode&1))e.memoizedState={baseLanes:0,cachePool:null,transitions:null},ie(Za,M0),M0|=t;else{if(!(t&1073741824))return u=i!==null?i.baseLanes|t:t,e.lanes=e.childLanes=1073741824,e.memoizedState={baseLanes:u,cachePool:null,transitions:null},e.updateQueue=null,ie(Za,M0),M0|=u,null;e.memoizedState={baseLanes:0,cachePool:null,transitions:null},n=i!==null?i.baseLanes:t,ie(Za,M0),M0|=n}else i!==null?(n=i.baseLanes|t,e.memoizedState=null):n=t,ie(Za,M0),M0|=n;return a0(u,e,r,t),e.child}function dv(u,e){var t=e.ref;(u===null&&t!==null||u!==null&&u.ref!==t)&&(e.flags|=512,e.flags|=2097152)}function S6(u,e,t,n,r){var i=x0(t)?na:r0.current;return i=os(e,i),po(e,r),t=lh(u,e,t,n,i,r),n=ch(),u!==null&&!b0?(e.updateQueue=u.updateQueue,e.flags&=-2053,u.lanes&=~r,Vn(u,e,r)):(le&&n&&Yp(e),e.flags|=1,a0(u,e,t,r),e.child)}function Wm(u,e,t,n,r){if(x0(t)){var i=!0;wE(e)}else i=!1;if(po(e,r),e.stateNode===null)Gc(u,e),MB(e,t,n),k6(e,t,n,r),n=!0;else if(u===null){var a=e.stateNode,o=e.memoizedProps;a.props=o;var s=a.context,l=t.contextType;typeof l=="object"&&l!==null?l=pt(l):(l=x0(t)?na:r0.current,l=os(e,l));var c=t.getDerivedStateFromProps,E=typeof c=="function"||typeof a.getSnapshotBeforeUpdate=="function";E||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(o!==n||s!==l)&&Om(e,a,n,l),pr=!1;var d=e.memoizedState;a.state=d,PE(e,n,a,r),s=e.memoizedState,o!==n||d!==s||w0.current||pr?(typeof c=="function"&&(x6(e,t,c,n),s=e.memoizedState),(o=pr||Im(e,t,o,n,d,s,l))?(E||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount=="function"&&(e.flags|=4194308)):(typeof a.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=n,e.memoizedState=s),a.props=n,a.state=s,a.context=l,n=o):(typeof a.componentDidMount=="function"&&(e.flags|=4194308),n=!1)}else{a=e.stateNode,jB(u,e),o=e.memoizedProps,l=e.type===e.elementType?o:Dt(e.type,o),a.props=l,E=e.pendingProps,d=a.context,s=t.contextType,typeof s=="object"&&s!==null?s=pt(s):(s=x0(t)?na:r0.current,s=os(e,s));var f=t.getDerivedStateFromProps;(c=typeof f=="function"||typeof a.getSnapshotBeforeUpdate=="function")||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(o!==E||d!==s)&&Om(e,a,n,s),pr=!1,d=e.memoizedState,a.state=d,PE(e,n,a,r);var C=e.memoizedState;o!==E||d!==C||w0.current||pr?(typeof f=="function"&&(x6(e,t,f,n),C=e.memoizedState),(l=pr||Im(e,t,l,n,d,C,s)||!1)?(c||typeof a.UNSAFE_componentWillUpdate!="function"&&typeof a.componentWillUpdate!="function"||(typeof a.componentWillUpdate=="function"&&a.componentWillUpdate(n,C,s),typeof a.UNSAFE_componentWillUpdate=="function"&&a.UNSAFE_componentWillUpdate(n,C,s)),typeof a.componentDidUpdate=="function"&&(e.flags|=4),typeof a.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof a.componentDidUpdate!="function"||o===u.memoizedProps&&d===u.memoizedState||(e.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||o===u.memoizedProps&&d===u.memoizedState||(e.flags|=1024),e.memoizedProps=n,e.memoizedState=C),a.props=n,a.state=C,a.context=s,n=l):(typeof a.componentDidUpdate!="function"||o===u.memoizedProps&&d===u.memoizedState||(e.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||o===u.memoizedProps&&d===u.memoizedState||(e.flags|=1024),n=!1)}return P6(u,e,t,n,i,r)}function P6(u,e,t,n,r,i){dv(u,e);var a=(e.flags&128)!==0;if(!n&&!a)return r&&km(e,t,!1),Vn(u,e,i);n=e.stateNode,dT.current=e;var o=a&&typeof t.getDerivedStateFromError!="function"?null:n.render();return e.flags|=1,u!==null&&a?(e.child=ls(e,u.child,null,i),e.child=ls(e,null,o,i)):a0(u,e,o,i),e.memoizedState=n.state,r&&km(e,t,!0),e.child}function fv(u){var e=u.stateNode;e.pendingContext?xm(u,e.pendingContext,e.pendingContext!==e.context):e.context&&xm(u,e.context,!1),ih(u,e.containerInfo)}function qm(u,e,t,n,r){return ss(),Zp(r),e.flags|=256,a0(u,e,t,n),e.child}var T6={dehydrated:null,treeContext:null,retryLane:0};function I6(u){return{baseLanes:u,cachePool:null,transitions:null}}function pv(u,e,t){var n=e.pendingProps,r=Ee.current,i=!1,a=(e.flags&128)!==0,o;if((o=a)||(o=u!==null&&u.memoizedState===null?!1:(r&2)!==0),o?(i=!0,e.flags&=-129):(u===null||u.memoizedState!==null)&&(r|=1),ie(Ee,r&1),u===null)return b6(e),u=e.memoizedState,u!==null&&(u=u.dehydrated,u!==null)?(e.mode&1?u.data==="$!"?e.lanes=8:e.lanes=1073741824:e.lanes=1,null):(a=n.children,u=n.fallback,i?(n=e.mode,i=e.child,a={mode:"hidden",children:a},!(n&1)&&i!==null?(i.childLanes=0,i.pendingProps=a):i=W2(a,n,0,null),u=Ji(u,n,t,null),i.return=e,u.return=e,i.sibling=u,e.child=i,e.child.memoizedState=I6(t),e.memoizedState=T6,u):fh(e,a));if(r=u.memoizedState,r!==null&&(o=r.dehydrated,o!==null))return fT(u,e,a,n,o,r,t);if(i){i=n.fallback,a=e.mode,r=u.child,o=r.sibling;var s={mode:"hidden",children:n.children};return!(a&1)&&e.child!==r?(n=e.child,n.childLanes=0,n.pendingProps=s,e.deletions=null):(n=qr(r,s),n.subtreeFlags=r.subtreeFlags&14680064),o!==null?i=qr(o,i):(i=Ji(i,a,t,null),i.flags|=2),i.return=e,n.return=e,n.sibling=i,e.child=n,n=i,i=e.child,a=u.child.memoizedState,a=a===null?I6(t):{baseLanes:a.baseLanes|t,cachePool:null,transitions:a.transitions},i.memoizedState=a,i.childLanes=u.childLanes&~t,e.memoizedState=T6,n}return i=u.child,u=i.sibling,n=qr(i,{mode:"visible",children:n.children}),!(e.mode&1)&&(n.lanes=t),n.return=e,n.sibling=null,u!==null&&(t=e.deletions,t===null?(e.deletions=[u],e.flags|=16):t.push(u)),e.child=n,e.memoizedState=null,n}function fh(u,e){return e=W2({mode:"visible",children:e},u.mode,0,null),e.return=u,u.child=e}function pc(u,e,t,n){return n!==null&&Zp(n),ls(e,u.child,null,t),u=fh(e,e.pendingProps.children),u.flags|=2,e.memoizedState=null,u}function fT(u,e,t,n,r,i,a){if(t)return e.flags&256?(e.flags&=-257,n=M9(Error(du(422))),pc(u,e,a,n)):e.memoizedState!==null?(e.child=u.child,e.flags|=128,null):(i=n.fallback,r=e.mode,n=W2({mode:"visible",children:n.children},r,0,null),i=Ji(i,r,a,null),i.flags|=2,n.return=e,i.return=e,n.sibling=i,e.child=n,e.mode&1&&ls(e,u.child,null,a),e.child.memoizedState=I6(a),e.memoizedState=T6,i);if(!(e.mode&1))return pc(u,e,a,null);if(r.data==="$!"){if(n=r.nextSibling&&r.nextSibling.dataset,n)var o=n.dgst;return n=o,i=Error(du(419)),n=M9(i,n,void 0),pc(u,e,a,n)}if(o=(a&u.childLanes)!==0,b0||o){if(n=je,n!==null){switch(a&-a){case 4:r=2;break;case 16:r=8;break;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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:r=32;break;case 536870912:r=268435456;break;default:r=0}r=r&(n.suspendedLanes|a)?0:r,r!==0&&r!==i.retryLane&&(i.retryLane=r,Qn(u,r),Rt(n,u,r,-1))}return Ah(),n=M9(Error(du(421))),pc(u,e,a,n)}return r.data==="$?"?(e.flags|=128,e.child=u.child,e=wT.bind(null,u),r._reactRetry=e,null):(u=i.treeContext,U0=Ur(r.nextSibling),W0=e,le=!0,Pt=null,u!==null&&(ot[st++]=zn,ot[st++]=Mn,ot[st++]=ra,zn=u.id,Mn=u.overflow,ra=e),e=fh(e,n.children),e.flags|=4096,e)}function Hm(u,e,t){u.lanes|=e;var n=u.alternate;n!==null&&(n.lanes|=e),w6(u.return,e,t)}function U9(u,e,t,n,r){var i=u.memoizedState;i===null?u.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:n,tail:t,tailMode:r}:(i.isBackwards=e,i.rendering=null,i.renderingStartTime=0,i.last=n,i.tail=t,i.tailMode=r)}function hv(u,e,t){var n=e.pendingProps,r=n.revealOrder,i=n.tail;if(a0(u,e,n.children,t),n=Ee.current,n&2)n=n&1|2,e.flags|=128;else{if(u!==null&&u.flags&128)u:for(u=e.child;u!==null;){if(u.tag===13)u.memoizedState!==null&&Hm(u,t,e);else if(u.tag===19)Hm(u,t,e);else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===e)break u;for(;u.sibling===null;){if(u.return===null||u.return===e)break u;u=u.return}u.sibling.return=u.return,u=u.sibling}n&=1}if(ie(Ee,n),!(e.mode&1))e.memoizedState=null;else switch(r){case"forwards":for(t=e.child,r=null;t!==null;)u=t.alternate,u!==null&&TE(u)===null&&(r=t),t=t.sibling;t=r,t===null?(r=e.child,e.child=null):(r=t.sibling,t.sibling=null),U9(e,!1,r,t,i);break;case"backwards":for(t=null,r=e.child,e.child=null;r!==null;){if(u=r.alternate,u!==null&&TE(u)===null){e.child=r;break}u=r.sibling,r.sibling=t,t=r,r=u}U9(e,!0,t,null,i);break;case"together":U9(e,!1,null,null,void 0);break;default:e.memoizedState=null}return e.child}function Gc(u,e){!(e.mode&1)&&u!==null&&(u.alternate=null,e.alternate=null,e.flags|=2)}function Vn(u,e,t){if(u!==null&&(e.dependencies=u.dependencies),aa|=e.lanes,!(t&e.childLanes))return null;if(u!==null&&e.child!==u.child)throw Error(du(153));if(e.child!==null){for(u=e.child,t=qr(u,u.pendingProps),e.child=t,t.return=e;u.sibling!==null;)u=u.sibling,t=t.sibling=qr(u,u.pendingProps),t.return=e;t.sibling=null}return e.child}function pT(u,e,t){switch(e.tag){case 3:fv(e),ss();break;case 5:$B(e);break;case 1:x0(e.type)&&wE(e);break;case 4:ih(e,e.stateNode.containerInfo);break;case 10:var n=e.type._context,r=e.memoizedProps.value;ie(_E,n._currentValue),n._currentValue=r;break;case 13:if(n=e.memoizedState,n!==null)return n.dehydrated!==null?(ie(Ee,Ee.current&1),e.flags|=128,null):t&e.child.childLanes?pv(u,e,t):(ie(Ee,Ee.current&1),u=Vn(u,e,t),u!==null?u.sibling:null);ie(Ee,Ee.current&1);break;case 19:if(n=(t&e.childLanes)!==0,u.flags&128){if(n)return hv(u,e,t);e.flags|=128}if(r=e.memoizedState,r!==null&&(r.rendering=null,r.tail=null,r.lastEffect=null),ie(Ee,Ee.current),n)break;return null;case 22:case 23:return e.lanes=0,Ev(u,e,t)}return Vn(u,e,t)}var Cv,O6,mv,gv;Cv=function(u,e){for(var t=e.child;t!==null;){if(t.tag===5||t.tag===6)u.appendChild(t.stateNode);else if(t.tag!==4&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return;t=t.return}t.sibling.return=t.return,t=t.sibling}};O6=function(){};mv=function(u,e,t,n){var r=u.memoizedProps;if(r!==n){u=e.stateNode,bi(cn.current);var i=null;switch(t){case"input":r=t6(u,r),n=t6(u,n),i=[];break;case"select":r=me({},r,{value:void 0}),n=me({},n,{value:void 0}),i=[];break;case"textarea":r=i6(u,r),n=i6(u,n),i=[];break;default:typeof r.onClick!="function"&&typeof n.onClick=="function"&&(u.onclick=DE)}o6(t,n);var a;t=null;for(l in r)if(!n.hasOwnProperty(l)&&r.hasOwnProperty(l)&&r[l]!=null)if(l==="style"){var o=r[l];for(a in o)o.hasOwnProperty(a)&&(t||(t={}),t[a]="")}else l!=="dangerouslySetInnerHTML"&&l!=="children"&&l!=="suppressContentEditableWarning"&&l!=="suppressHydrationWarning"&&l!=="autoFocus"&&(r3.hasOwnProperty(l)?i||(i=[]):(i=i||[]).push(l,null));for(l in n){var s=n[l];if(o=r!=null?r[l]:void 0,n.hasOwnProperty(l)&&s!==o&&(s!=null||o!=null))if(l==="style")if(o){for(a in o)!o.hasOwnProperty(a)||s&&s.hasOwnProperty(a)||(t||(t={}),t[a]="");for(a in s)s.hasOwnProperty(a)&&o[a]!==s[a]&&(t||(t={}),t[a]=s[a])}else t||(i||(i=[]),i.push(l,t)),t=s;else l==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,o=o?o.__html:void 0,s!=null&&o!==s&&(i=i||[]).push(l,s)):l==="children"?typeof s!="string"&&typeof s!="number"||(i=i||[]).push(l,""+s):l!=="suppressContentEditableWarning"&&l!=="suppressHydrationWarning"&&(r3.hasOwnProperty(l)?(s!=null&&l==="onScroll"&&ae("scroll",u),i||o===s||(i=[])):(i=i||[]).push(l,s))}t&&(i=i||[]).push("style",t);var l=i;(e.updateQueue=l)&&(e.flags|=4)}};gv=function(u,e,t,n){t!==n&&(e.flags|=4)};function p4(u,e){if(!le)switch(u.tailMode){case"hidden":e=u.tail;for(var t=null;e!==null;)e.alternate!==null&&(t=e),e=e.sibling;t===null?u.tail=null:t.sibling=null;break;case"collapsed":t=u.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e||u.tail===null?u.tail=null:u.tail.sibling=null:n.sibling=null}}function Qe(u){var e=u.alternate!==null&&u.alternate.child===u.child,t=0,n=0;if(e)for(var r=u.child;r!==null;)t|=r.lanes|r.childLanes,n|=r.subtreeFlags&14680064,n|=r.flags&14680064,r.return=u,r=r.sibling;else for(r=u.child;r!==null;)t|=r.lanes|r.childLanes,n|=r.subtreeFlags,n|=r.flags,r.return=u,r=r.sibling;return u.subtreeFlags|=n,u.childLanes=t,e}function hT(u,e,t){var n=e.pendingProps;switch(Xp(e),e.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Qe(e),null;case 1:return x0(e.type)&&bE(),Qe(e),null;case 3:return n=e.stateNode,cs(),se(w0),se(r0),oh(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(u===null||u.child===null)&&(dc(e)?e.flags|=4:u===null||u.memoizedState.isDehydrated&&!(e.flags&256)||(e.flags|=1024,Pt!==null&&($6(Pt),Pt=null))),O6(u,e),Qe(e),null;case 5:ah(e);var r=bi(C3.current);if(t=e.type,u!==null&&e.stateNode!=null)mv(u,e,t,n,r),u.ref!==e.ref&&(e.flags|=512,e.flags|=2097152);else{if(!n){if(e.stateNode===null)throw Error(du(166));return Qe(e),null}if(u=bi(cn.current),dc(e)){n=e.stateNode,t=e.type;var i=e.memoizedProps;switch(n[rn]=e,n[p3]=i,u=(e.mode&1)!==0,t){case"dialog":ae("cancel",n),ae("close",n);break;case"iframe":case"object":case"embed":ae("load",n);break;case"video":case"audio":for(r=0;r<\/script>",u=u.removeChild(u.firstChild)):typeof n.is=="string"?u=a.createElement(t,{is:n.is}):(u=a.createElement(t),t==="select"&&(a=u,n.multiple?a.multiple=!0:n.size&&(a.size=n.size))):u=a.createElementNS(u,t),u[rn]=e,u[p3]=n,Cv(u,e,!1,!1),e.stateNode=u;u:{switch(a=s6(t,n),t){case"dialog":ae("cancel",u),ae("close",u),r=n;break;case"iframe":case"object":case"embed":ae("load",u),r=n;break;case"video":case"audio":for(r=0;rds&&(e.flags|=128,n=!0,p4(i,!1),e.lanes=4194304)}else{if(!n)if(u=TE(a),u!==null){if(e.flags|=128,n=!0,t=u.updateQueue,t!==null&&(e.updateQueue=t,e.flags|=4),p4(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!le)return Qe(e),null}else 2*ye()-i.renderingStartTime>ds&&t!==1073741824&&(e.flags|=128,n=!0,p4(i,!1),e.lanes=4194304);i.isBackwards?(a.sibling=e.child,e.child=a):(t=i.last,t!==null?t.sibling=a:e.child=a,i.last=a)}return i.tail!==null?(e=i.tail,i.rendering=e,i.tail=e.sibling,i.renderingStartTime=ye(),e.sibling=null,t=Ee.current,ie(Ee,n?t&1|2:t&1),e):(Qe(e),null);case 22:case 23:return gh(),n=e.memoizedState!==null,u!==null&&u.memoizedState!==null!==n&&(e.flags|=8192),n&&e.mode&1?M0&1073741824&&(Qe(e),e.subtreeFlags&6&&(e.flags|=8192)):Qe(e),null;case 24:return null;case 25:return null}throw Error(du(156,e.tag))}function CT(u,e){switch(Xp(e),e.tag){case 1:return x0(e.type)&&bE(),u=e.flags,u&65536?(e.flags=u&-65537|128,e):null;case 3:return cs(),se(w0),se(r0),oh(),u=e.flags,u&65536&&!(u&128)?(e.flags=u&-65537|128,e):null;case 5:return ah(e),null;case 13:if(se(Ee),u=e.memoizedState,u!==null&&u.dehydrated!==null){if(e.alternate===null)throw Error(du(340));ss()}return u=e.flags,u&65536?(e.flags=u&-65537|128,e):null;case 19:return se(Ee),null;case 4:return cs(),null;case 10:return th(e.type._context),null;case 22:case 23:return gh(),null;case 24:return null;default:return null}}var hc=!1,Ze=!1,mT=typeof WeakSet=="function"?WeakSet:Set,vu=null;function Xa(u,e){var t=u.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(n){Ae(u,e,n)}else t.current=null}function N6(u,e,t){try{t()}catch(n){Ae(u,e,n)}}var Gm=!1;function gT(u,e){if(g6=BE,u=vB(),Jp(u)){if("selectionStart"in u)var t={start:u.selectionStart,end:u.selectionEnd};else u:{t=(t=u.ownerDocument)&&t.defaultView||window;var n=t.getSelection&&t.getSelection();if(n&&n.rangeCount!==0){t=n.anchorNode;var r=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{t.nodeType,i.nodeType}catch{t=null;break u}var a=0,o=-1,s=-1,l=0,c=0,E=u,d=null;e:for(;;){for(var f;E!==t||r!==0&&E.nodeType!==3||(o=a+r),E!==i||n!==0&&E.nodeType!==3||(s=a+n),E.nodeType===3&&(a+=E.nodeValue.length),(f=E.firstChild)!==null;)d=E,E=f;for(;;){if(E===u)break e;if(d===t&&++l===r&&(o=a),d===i&&++c===n&&(s=a),(f=E.nextSibling)!==null)break;E=d,d=E.parentNode}E=f}t=o===-1||s===-1?null:{start:o,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(A6={focusedElem:u,selectionRange:t},BE=!1,vu=e;vu!==null;)if(e=vu,u=e.child,(e.subtreeFlags&1028)!==0&&u!==null)u.return=e,vu=u;else for(;vu!==null;){e=vu;try{var C=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(C!==null){var h=C.memoizedProps,B=C.memoizedState,g=e.stateNode,m=g.getSnapshotBeforeUpdate(e.elementType===e.type?h:Dt(e.type,h),B);g.__reactInternalSnapshotBeforeUpdate=m}break;case 3:var y=e.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(du(163))}}catch(v){Ae(e,e.return,v)}if(u=e.sibling,u!==null){u.return=e.return,vu=u;break}vu=e.return}return C=Gm,Gm=!1,C}function K4(u,e,t){var n=e.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var r=n=n.next;do{if((r.tag&u)===u){var i=r.destroy;r.destroy=void 0,i!==void 0&&N6(e,t,i)}r=r.next}while(r!==n)}}function L2(u,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var t=e=e.next;do{if((t.tag&u)===u){var n=t.create;t.destroy=n()}t=t.next}while(t!==e)}}function R6(u){var e=u.ref;if(e!==null){var t=u.stateNode;switch(u.tag){case 5:u=t;break;default:u=t}typeof e=="function"?e(u):e.current=u}}function Av(u){var e=u.alternate;e!==null&&(u.alternate=null,Av(e)),u.child=null,u.deletions=null,u.sibling=null,u.tag===5&&(e=u.stateNode,e!==null&&(delete e[rn],delete e[p3],delete e[v6],delete e[uT],delete e[eT])),u.stateNode=null,u.return=null,u.dependencies=null,u.memoizedProps=null,u.memoizedState=null,u.pendingProps=null,u.stateNode=null,u.updateQueue=null}function yv(u){return u.tag===5||u.tag===3||u.tag===4}function Km(u){u:for(;;){for(;u.sibling===null;){if(u.return===null||yv(u.return))return null;u=u.return}for(u.sibling.return=u.return,u=u.sibling;u.tag!==5&&u.tag!==6&&u.tag!==18;){if(u.flags&2||u.child===null||u.tag===4)continue u;u.child.return=u,u=u.child}if(!(u.flags&2))return u.stateNode}}function j6(u,e,t){var n=u.tag;if(n===5||n===6)u=u.stateNode,e?t.nodeType===8?t.parentNode.insertBefore(u,e):t.insertBefore(u,e):(t.nodeType===8?(e=t.parentNode,e.insertBefore(u,t)):(e=t,e.appendChild(u)),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=DE));else if(n!==4&&(u=u.child,u!==null))for(j6(u,e,t),u=u.sibling;u!==null;)j6(u,e,t),u=u.sibling}function z6(u,e,t){var n=u.tag;if(n===5||n===6)u=u.stateNode,e?t.insertBefore(u,e):t.appendChild(u);else if(n!==4&&(u=u.child,u!==null))for(z6(u,e,t),u=u.sibling;u!==null;)z6(u,e,t),u=u.sibling}var Ue=null,St=!1;function or(u,e,t){for(t=t.child;t!==null;)Bv(u,e,t),t=t.sibling}function Bv(u,e,t){if(ln&&typeof ln.onCommitFiberUnmount=="function")try{ln.onCommitFiberUnmount(I2,t)}catch{}switch(t.tag){case 5:Ze||Xa(t,e);case 6:var n=Ue,r=St;Ue=null,or(u,e,t),Ue=n,St=r,Ue!==null&&(St?(u=Ue,t=t.stateNode,u.nodeType===8?u.parentNode.removeChild(t):u.removeChild(t)):Ue.removeChild(t.stateNode));break;case 18:Ue!==null&&(St?(u=Ue,t=t.stateNode,u.nodeType===8?I9(u.parentNode,t):u.nodeType===1&&I9(u,t),l3(u)):I9(Ue,t.stateNode));break;case 4:n=Ue,r=St,Ue=t.stateNode.containerInfo,St=!0,or(u,e,t),Ue=n,St=r;break;case 0:case 11:case 14:case 15:if(!Ze&&(n=t.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){r=n=n.next;do{var i=r,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&N6(t,e,a),r=r.next}while(r!==n)}or(u,e,t);break;case 1:if(!Ze&&(Xa(t,e),n=t.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=t.memoizedProps,n.state=t.memoizedState,n.componentWillUnmount()}catch(o){Ae(t,e,o)}or(u,e,t);break;case 21:or(u,e,t);break;case 22:t.mode&1?(Ze=(n=Ze)||t.memoizedState!==null,or(u,e,t),Ze=n):or(u,e,t);break;default:or(u,e,t)}}function Qm(u){var e=u.updateQueue;if(e!==null){u.updateQueue=null;var t=u.stateNode;t===null&&(t=u.stateNode=new mT),e.forEach(function(n){var r=xT.bind(null,u,n);t.has(n)||(t.add(n),n.then(r,r))})}}function Bt(u,e){var t=e.deletions;if(t!==null)for(var n=0;nr&&(r=a),n&=~i}if(n=r,n=ye()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*yT(n/1960))-n,10u?16:u,Nr===null)var n=!1;else{if(u=Nr,Nr=null,jE=0,Vu&6)throw Error(du(331));var r=Vu;for(Vu|=4,vu=u.current;vu!==null;){var i=vu,a=i.child;if(vu.flags&16){var o=i.deletions;if(o!==null){for(var s=0;sye()-Ch?Vi(u,0):hh|=t),k0(u,e)}function _v(u,e){e===0&&(u.mode&1?(e=ac,ac<<=1,!(ac&130023424)&&(ac=4194304)):e=1);var t=f0();u=Qn(u,e),u!==null&&(Al(u,e,t),k0(u,t))}function wT(u){var e=u.memoizedState,t=0;e!==null&&(t=e.retryLane),_v(u,t)}function xT(u,e){var t=0;switch(u.tag){case 13:var n=u.stateNode,r=u.memoizedState;r!==null&&(t=r.retryLane);break;case 19:n=u.stateNode;break;default:throw Error(du(314))}n!==null&&n.delete(e),_v(u,t)}var Sv;Sv=function(u,e,t){if(u!==null)if(u.memoizedProps!==e.pendingProps||w0.current)b0=!0;else{if(!(u.lanes&t)&&!(e.flags&128))return b0=!1,pT(u,e,t);b0=!!(u.flags&131072)}else b0=!1,le&&e.flags&1048576&&IB(e,kE,e.index);switch(e.lanes=0,e.tag){case 2:var n=e.type;Gc(u,e),u=e.pendingProps;var r=os(e,r0.current);po(e,t),r=lh(null,e,n,u,r,t);var i=ch();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,x0(n)?(i=!0,wE(e)):i=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,rh(e),r.updater=M2,e.stateNode=r,r._reactInternals=e,k6(e,n,u,t),e=P6(null,e,n,!0,i,t)):(e.tag=0,le&&i&&Yp(e),a0(null,e,r,t),e=e.child),e;case 16:n=e.elementType;u:{switch(Gc(u,e),u=e.pendingProps,r=n._init,n=r(n._payload),e.type=n,r=e.tag=_T(n),u=Dt(n,u),r){case 0:e=S6(null,e,n,u,t);break u;case 1:e=Wm(null,e,n,u,t);break u;case 11:e=Lm(null,e,n,u,t);break u;case 14:e=$m(null,e,n,Dt(n.type,u),t);break u}throw Error(du(306,n,""))}return e;case 0:return n=e.type,r=e.pendingProps,r=e.elementType===n?r:Dt(n,r),S6(u,e,n,r,t);case 1:return n=e.type,r=e.pendingProps,r=e.elementType===n?r:Dt(n,r),Wm(u,e,n,r,t);case 3:u:{if(fv(e),u===null)throw Error(du(387));n=e.pendingProps,i=e.memoizedState,r=i.element,jB(u,e),PE(e,n,null,t);var a=e.memoizedState;if(n=a.element,i.isDehydrated)if(i={element:n,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},e.updateQueue.baseState=i,e.memoizedState=i,e.flags&256){r=Es(Error(du(423)),e),e=qm(u,e,n,t,r);break u}else if(n!==r){r=Es(Error(du(424)),e),e=qm(u,e,n,t,r);break u}else for(U0=Ur(e.stateNode.containerInfo.firstChild),W0=e,le=!0,Pt=null,t=LB(e,null,n,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(ss(),n===r){e=Vn(u,e,t);break u}a0(u,e,n,t)}e=e.child}return e;case 5:return $B(e),u===null&&b6(e),n=e.type,r=e.pendingProps,i=u!==null?u.memoizedProps:null,a=r.children,y6(n,r)?a=null:i!==null&&y6(n,i)&&(e.flags|=32),dv(u,e),a0(u,e,a,t),e.child;case 6:return u===null&&b6(e),null;case 13:return pv(u,e,t);case 4:return ih(e,e.stateNode.containerInfo),n=e.pendingProps,u===null?e.child=ls(e,null,n,t):a0(u,e,n,t),e.child;case 11:return n=e.type,r=e.pendingProps,r=e.elementType===n?r:Dt(n,r),Lm(u,e,n,r,t);case 7:return a0(u,e,e.pendingProps,t),e.child;case 8:return a0(u,e,e.pendingProps.children,t),e.child;case 12:return a0(u,e,e.pendingProps.children,t),e.child;case 10:u:{if(n=e.type._context,r=e.pendingProps,i=e.memoizedProps,a=r.value,ie(_E,n._currentValue),n._currentValue=a,i!==null)if(jt(i.value,a)){if(i.children===r.children&&!w0.current){e=Vn(u,e,t);break u}}else for(i=e.child,i!==null&&(i.return=e);i!==null;){var o=i.dependencies;if(o!==null){a=i.child;for(var s=o.firstContext;s!==null;){if(s.context===n){if(i.tag===1){s=$n(-1,t&-t),s.tag=2;var l=i.updateQueue;if(l!==null){l=l.shared;var c=l.pending;c===null?s.next=s:(s.next=c.next,c.next=s),l.pending=s}}i.lanes|=t,s=i.alternate,s!==null&&(s.lanes|=t),w6(i.return,t,e),o.lanes|=t;break}s=s.next}}else if(i.tag===10)a=i.type===e.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(du(341));a.lanes|=t,o=a.alternate,o!==null&&(o.lanes|=t),w6(a,t,e),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===e){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}a0(u,e,r.children,t),e=e.child}return e;case 9:return r=e.type,n=e.pendingProps.children,po(e,t),r=pt(r),n=n(r),e.flags|=1,a0(u,e,n,t),e.child;case 14:return n=e.type,r=Dt(n,e.pendingProps),r=Dt(n.type,r),$m(u,e,n,r,t);case 15:return cv(u,e,e.type,e.pendingProps,t);case 17:return n=e.type,r=e.pendingProps,r=e.elementType===n?r:Dt(n,r),Gc(u,e),e.tag=1,x0(n)?(u=!0,wE(e)):u=!1,po(e,t),MB(e,n,r),k6(e,n,r,t),P6(null,e,n,!0,u,t);case 19:return hv(u,e,t);case 22:return Ev(u,e,t)}throw Error(du(156,e.tag))};function Pv(u,e){return nB(u,e)}function kT(u,e,t,n){this.tag=u,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ct(u,e,t,n){return new kT(u,e,t,n)}function yh(u){return u=u.prototype,!(!u||!u.isReactComponent)}function _T(u){if(typeof u=="function")return yh(u)?1:0;if(u!=null){if(u=u.$$typeof,u===Mp)return 11;if(u===Up)return 14}return 2}function qr(u,e){var t=u.alternate;return t===null?(t=ct(u.tag,e,u.key,u.mode),t.elementType=u.elementType,t.type=u.type,t.stateNode=u.stateNode,t.alternate=u,u.alternate=t):(t.pendingProps=e,t.type=u.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=u.flags&14680064,t.childLanes=u.childLanes,t.lanes=u.lanes,t.child=u.child,t.memoizedProps=u.memoizedProps,t.memoizedState=u.memoizedState,t.updateQueue=u.updateQueue,e=u.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=u.sibling,t.index=u.index,t.ref=u.ref,t}function Vc(u,e,t,n,r,i){var a=2;if(n=u,typeof u=="function")yh(u)&&(a=1);else if(typeof u=="string")a=5;else u:switch(u){case Wa:return Ji(t.children,r,i,e);case zp:a=8,r|=8;break;case X1:return u=ct(12,t,e,r|2),u.elementType=X1,u.lanes=i,u;case Z1:return u=ct(13,t,e,r),u.elementType=Z1,u.lanes=i,u;case u6:return u=ct(19,t,e,r),u.elementType=u6,u.lanes=i,u;case Uy:return W2(t,r,i,e);default:if(typeof u=="object"&&u!==null)switch(u.$$typeof){case zy:a=10;break u;case My:a=9;break u;case Mp:a=11;break u;case Up:a=14;break u;case fr:a=16,n=null;break u}throw Error(du(130,u==null?u:typeof u,""))}return e=ct(a,t,e,r),e.elementType=u,e.type=n,e.lanes=i,e}function Ji(u,e,t,n){return u=ct(7,u,n,e),u.lanes=t,u}function W2(u,e,t,n){return u=ct(22,u,n,e),u.elementType=Uy,u.lanes=t,u.stateNode={isHidden:!1},u}function L9(u,e,t){return u=ct(6,u,null,e),u.lanes=t,u}function $9(u,e,t){return e=ct(4,u.children!==null?u.children:[],u.key,e),e.lanes=t,e.stateNode={containerInfo:u.containerInfo,pendingChildren:null,implementation:u.implementation},e}function ST(u,e,t,n,r){this.tag=e,this.containerInfo=u,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=v9(0),this.expirationTimes=v9(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=v9(0),this.identifierPrefix=n,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function Bh(u,e,t,n,r,i,a,o,s){return u=new ST(u,e,t,o,s),e===1?(e=1,i===!0&&(e|=8)):e=0,i=ct(3,null,null,e),u.current=i,i.stateNode=u,i.memoizedState={element:n,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},rh(i),u}function PT(u,e,t){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Nv)}catch(u){console.error(u)}}Nv(),Iy.exports=H0;var Rv=Iy.exports,jv={exports:{}},zv={};/** * @license React * use-sync-external-store-shim.production.min.js * @@ -50,37 +50,37 @@ Error generating stack: `+i.message+` * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var ds=M;function NT(u,e){return u===e&&(u!==0||1/u===1/e)||u!==u&&e!==e}var RT=typeof Object.is=="function"?Object.is:NT,jT=ds.useState,zT=ds.useEffect,MT=ds.useLayoutEffect,UT=ds.useDebugValue;function LT(u,e){var t=e(),n=jT({inst:{value:t,getSnapshot:e}}),r=n[0].inst,i=n[1];return MT(function(){r.value=t,r.getSnapshot=e,$9(r)&&i({inst:r})},[u,t,e]),zT(function(){return $9(r)&&i({inst:r}),u(function(){$9(r)&&i({inst:r})})},[u]),UT(t),t}function $9(u){var e=u.getSnapshot;u=u.value;try{var t=e();return!RT(u,t)}catch{return!0}}function $T(u,e){return e()}var WT=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?$T:LT;jv.useSyncExternalStore=ds.useSyncExternalStore!==void 0?ds.useSyncExternalStore:WT;Rv.exports=jv;var Dh=Rv.exports;const zv=Dh.useSyncExternalStore,e8=M.createContext(void 0),Mv=M.createContext(!1);function Uv(u,e){return u||(e&&typeof window<"u"?(window.ReactQueryClientContext||(window.ReactQueryClientContext=e8),window.ReactQueryClientContext):e8)}const K2=({context:u}={})=>{const e=M.useContext(Uv(u,M.useContext(Mv)));if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},Lv=({client:u,children:e,context:t,contextSharing:n=!1})=>{M.useEffect(()=>(u.mount(),()=>{u.unmount()}),[u]);const r=Uv(t,n);return M.createElement(Mv.Provider,{value:!t&&n},M.createElement(r.Provider,{value:u},e))},$v=M.createContext(!1),Wv=()=>M.useContext($v);$v.Provider;function qT(){let u=!1;return{clearReset:()=>{u=!1},reset:()=>{u=!0},isReset:()=>u}}const HT=M.createContext(qT()),qv=()=>M.useContext(HT);function Hv(u,e){return typeof u=="function"?u(...e):!!u}const GT=(u,e)=>{(u.suspense||u.useErrorBoundary)&&(e.isReset()||(u.retryOnMount=!1))},KT=u=>{M.useEffect(()=>{u.clearReset()},[u])},QT=({result:u,errorResetBoundary:e,useErrorBoundary:t,query:n})=>u.isError&&!e.isReset()&&!u.isFetching&&Hv(t,[u.error,n]),VT=u=>{u.suspense&&typeof u.staleTime!="number"&&(u.staleTime=1e3)},JT=(u,e)=>u.isLoading&&u.isFetching&&!e,YT=(u,e,t)=>(u==null?void 0:u.suspense)&&JT(e,t),XT=(u,e,t)=>e.fetchOptimistic(u).then(({data:n})=>{u.onSuccess==null||u.onSuccess(n),u.onSettled==null||u.onSettled(n,null)}).catch(n=>{t.clearReset(),u.onError==null||u.onError(n),u.onSettled==null||u.onSettled(void 0,n)});function ZT(u,e){const t=K2({context:u.context}),n=Wv(),r=qv(),i=t.defaultQueryOptions(u);i._optimisticResults=n?"isRestoring":"optimistic",i.onError&&(i.onError=ne.batchCalls(i.onError)),i.onSuccess&&(i.onSuccess=ne.batchCalls(i.onSuccess)),i.onSettled&&(i.onSettled=ne.batchCalls(i.onSettled)),VT(i),GT(i,r),KT(r);const[a]=M.useState(()=>new e(t,i)),o=a.getOptimisticResult(i);if(zv(M.useCallback(s=>{const l=n?()=>{}:a.subscribe(ne.batchCalls(s));return a.updateResult(),l},[a,n]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),M.useEffect(()=>{a.setOptions(i,{listeners:!1})},[i,a]),YT(i,o,n))throw XT(i,a,r);if(QT({result:o,errorResetBoundary:r,useErrorBoundary:i.useErrorBoundary,query:a.getCurrentQuery()}))throw o.error;return i.notifyOnChangeProps?o:a.trackResult(o)}function uI(u,e,t){const n=v4(u,e,t);return ZT(n,Py)}function eI(u,e,t){const n=Fy(u,e,t),r=K2({context:n.context}),[i]=M.useState(()=>new bS(r,n));M.useEffect(()=>{i.setOptions(n)},[i,n]);const a=zv(M.useCallback(s=>i.subscribe(ne.batchCalls(s)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),o=M.useCallback((s,l)=>{i.mutate(s,l).catch(tI)},[i]);if(a.error&&Hv(i.options.useErrorBoundary,[a.error]))throw a.error;return{...a,mutate:o,mutateAsync:a.mutate}}function tI(){}const nI=["added","removed","updated"];function t8(u){return nI.includes(u)}async function rI({queryClient:u,persister:e,maxAge:t=1e3*60*60*24,buster:n="",hydrateOptions:r}){try{const i=await e.restoreClient();if(i)if(i.timestamp){const a=Date.now()-i.timestamp>t,o=i.buster!==n;a||o?e.removeClient():PS(u,i.clientState,r)}else e.removeClient()}catch{e.removeClient()}}async function n8({queryClient:u,persister:e,buster:t="",dehydrateOptions:n}){const r={buster:t,timestamp:Date.now(),clientState:SS(u,n)};await e.persistClient(r)}function iI(u){const e=u.queryClient.getQueryCache().subscribe(n=>{t8(n.type)&&n8(u)}),t=u.queryClient.getMutationCache().subscribe(n=>{t8(n.type)&&n8(u)});return()=>{e(),t()}}function aI(u){let e=!1,t;const n=()=>{e=!0,t==null||t()},r=rI(u).then(()=>{e||(t=iI(u))});return[n,r]}const oI="1.16.5",sI=u=>u,Q2=u=>u,lI=()=>`viem@${oI}`;let gu=class $6 extends Error{constructor(e,t={}){var i;super(),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ViemError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:lI()});const n=t.cause instanceof $6?t.cause.details:(i=t.cause)!=null&&i.message?t.cause.message:t.details,r=t.cause instanceof $6&&t.cause.docsPath||t.docsPath;this.message=[e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...r?[`Docs: https://viem.sh${r}.html${t.docsSlug?`#${t.docsSlug}`:""}`]:[],...n?[`Details: ${n}`]:[],`Version: ${this.version}`].join(` -`),t.cause&&(this.cause=t.cause),this.details=n,this.docsPath=r,this.metaMessages=t.metaMessages,this.shortMessage=e}walk(e){return Gv(this,e)}};function Gv(u,e){return e!=null&&e(u)?u:u&&typeof u=="object"&&"cause"in u?Gv(u.cause,e):e?null:u}class W6 extends gu{constructor({blockNumber:e,chain:t,contract:n}){super(`Chain "${t.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...e&&n.blockCreated&&n.blockCreated>e?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${e}).`]:[`- The chain does not have the contract "${n.name}" configured.`]]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ChainDoesNotSupportContract"})}}let cI=class extends gu{constructor({chain:e,currentChainId:t}){super(`The current chain of the wallet (id: ${t}) does not match the target chain for the transaction (id: ${e.id} – ${e.name}).`,{metaMessages:[`Current Chain ID: ${t}`,`Expected Chain ID: ${e.id} – ${e.name}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ChainMismatchError"})}};class EI extends gu{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(` -`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ChainNotFoundError"})}}class Kv extends gu{constructor(){super("No chain was provided to the Client."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ClientChainNotConfiguredError"})}}function Qv({chain:u,currentChainId:e}){if(!u)throw new EI;if(e!==u.id)throw new cI({chain:u,currentChainId:e})}function bh(u,e={}){const{fees:t=u.fees,formatters:n=u.formatters,serializers:r=u.serializers}=e;return{...u,fees:t,formatters:n,serializers:r}}function Ns({blockNumber:u,chain:e,contract:t}){var r;const n=(r=e==null?void 0:e.contracts)==null?void 0:r[t];if(!n)throw new W6({chain:e,contract:{name:t}});if(u&&n.blockCreated&&n.blockCreated>u)throw new W6({blockNumber:u,chain:e,contract:{name:t,blockCreated:n.blockCreated}});return n.address}class dI extends gu{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${r*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"IntegerOutOfRangeError"})}}class fI extends gu{constructor(e){super(`Hex value "${e}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidHexBooleanError"})}}class pI extends gu{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SizeOverflowError"})}}function cn(u,{strict:e=!0}={}){return!u||typeof u!="string"?!1:e?/^0x[0-9a-fA-F]*$/.test(u):u.startsWith("0x")}function Se(u){return cn(u,{strict:!1})?Math.ceil((u.length-2)/2):u.length}function Ji(u,{dir:e="left"}={}){let t=typeof u=="string"?u.replace("0x",""):u,n=0;for(let r=0;rt*2)throw new Jv({size:Math.ceil(n.length/2),targetSize:t,type:"hex"});return`0x${n[e==="right"?"padEnd":"padStart"](t*2,"0")}`}function hI(u,{dir:e,size:t=32}={}){if(t===null)return u;if(u.length>t)throw new Jv({size:u.length,targetSize:t,type:"bytes"});const n=new Uint8Array(t);for(let r=0;re.toString(16).padStart(2,"0"));function er(u,e={}){return typeof u=="number"||typeof u=="bigint"?zu(u,e):typeof u=="string"?wh(u,e):typeof u=="boolean"?Yv(u,e):y3(u,e)}function Yv(u,e={}){const t=`0x${Number(u)}`;return typeof e.size=="number"?(ni(t,{size:e.size}),Rs(t,{size:e.size})):t}function y3(u,e={}){let t="";for(let r=0;ri||r=pn.zero&&u<=pn.nine)return u-pn.zero;if(u>=pn.A&&u<=pn.F)return u-(pn.A-10);if(u>=pn.a&&u<=pn.f)return u-(pn.a-10)}function xh(u,e={}){let t=u;e.size&&(ni(t,{size:e.size}),t=Rs(t,{dir:"right",size:e.size}));let n=t.slice(2);n.length%2&&(n=`0${n}`);const r=n.length/2,i=new Uint8Array(r);for(let a=0,o=0;ae)throw new pI({givenSize:Se(u),maxSize:e})}function In(u,e={}){const{signed:t}=e;e.size&&ni(u,{size:e.size});const n=BigInt(u);if(!t)return n;const r=(u.length-2)/2,i=(1n<({exclude:t,format:r=>{const i=e(r);if(t)for(const a of t)delete i[a];return{...i,...n(r)}},type:u})}const Xv={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559"};function V2(u){const e={...u,blockHash:u.blockHash?u.blockHash:null,blockNumber:u.blockNumber?BigInt(u.blockNumber):null,chainId:u.chainId?u0(u.chainId):void 0,gas:u.gas?BigInt(u.gas):void 0,gasPrice:u.gasPrice?BigInt(u.gasPrice):void 0,maxFeePerGas:u.maxFeePerGas?BigInt(u.maxFeePerGas):void 0,maxPriorityFeePerGas:u.maxPriorityFeePerGas?BigInt(u.maxPriorityFeePerGas):void 0,nonce:u.nonce?u0(u.nonce):void 0,to:u.to?u.to:null,transactionIndex:u.transactionIndex?Number(u.transactionIndex):null,type:u.type?Xv[u.type]:void 0,typeHex:u.type?u.type:void 0,value:u.value?BigInt(u.value):void 0,v:u.v?BigInt(u.v):void 0};return e.type==="legacy"&&(delete e.accessList,delete e.maxFeePerGas,delete e.maxPriorityFeePerGas),e.type==="eip2930"&&(delete e.maxFeePerGas,delete e.maxPriorityFeePerGas),e}const vI=_h("transaction",V2);function Sh(u){var t;const e=(t=u.transactions)==null?void 0:t.map(n=>typeof n=="string"?n:V2(n));return{...u,baseFeePerGas:u.baseFeePerGas?BigInt(u.baseFeePerGas):null,difficulty:u.difficulty?BigInt(u.difficulty):void 0,gasLimit:u.gasLimit?BigInt(u.gasLimit):void 0,gasUsed:u.gasUsed?BigInt(u.gasUsed):void 0,hash:u.hash?u.hash:null,logsBloom:u.logsBloom?u.logsBloom:null,nonce:u.nonce?u.nonce:null,number:u.number?BigInt(u.number):null,size:u.size?BigInt(u.size):void 0,timestamp:u.timestamp?BigInt(u.timestamp):void 0,transactions:e,totalDifficulty:u.totalDifficulty?BigInt(u.totalDifficulty):null}}const FI=_h("block",Sh);function jt(u,{args:e,eventName:t}={}){return{...u,blockHash:u.blockHash?u.blockHash:null,blockNumber:u.blockNumber?BigInt(u.blockNumber):null,logIndex:u.logIndex?Number(u.logIndex):null,transactionHash:u.transactionHash?u.transactionHash:null,transactionIndex:u.transactionIndex?Number(u.transactionIndex):null,...t?{args:e,eventName:t}:{}}}const DI={"0x0":"reverted","0x1":"success"};function Zv(u){return{...u,blockNumber:u.blockNumber?BigInt(u.blockNumber):null,contractAddress:u.contractAddress?u.contractAddress:null,cumulativeGasUsed:u.cumulativeGasUsed?BigInt(u.cumulativeGasUsed):null,effectiveGasPrice:u.effectiveGasPrice?BigInt(u.effectiveGasPrice):null,gasUsed:u.gasUsed?BigInt(u.gasUsed):null,logs:u.logs?u.logs.map(e=>jt(e)):null,to:u.to?u.to:null,transactionIndex:u.transactionIndex?u0(u.transactionIndex):null,status:u.status?DI[u.status]:null,type:u.type?Xv[u.type]||u.type:null}}const bI=_h("transactionReceipt",Zv),wI={block:FI({format(u){var t;return{transactions:(t=u.transactions)==null?void 0:t.map(n=>{if(typeof n=="string")return n;const r=V2(n);return r.typeHex==="0x7e"&&(r.isSystemTx=n.isSystemTx,r.mint=n.mint?In(n.mint):void 0,r.sourceHash=n.sourceHash,r.type="deposit"),r}),stateRoot:u.stateRoot}}}),transaction:vI({format(u){const e={};return u.type==="0x7e"&&(e.isSystemTx=u.isSystemTx,e.mint=u.mint?In(u.mint):void 0,e.sourceHash=u.sourceHash,e.type="deposit"),e}}),transactionReceipt:bI({format(u){return{l1GasPrice:u.l1GasPrice?In(u.l1GasPrice):null,l1GasUsed:u.l1GasUsed?In(u.l1GasUsed):null,l1Fee:u.l1Fee?In(u.l1Fee):null,l1FeeScalar:u.l1FeeScalar?Number(u.l1FeeScalar):null}}})},xI={legacy:"0x0",eip2930:"0x1",eip1559:"0x2"};function J2(u){return{...u,gas:typeof u.gas<"u"?zu(u.gas):void 0,gasPrice:typeof u.gasPrice<"u"?zu(u.gasPrice):void 0,maxFeePerGas:typeof u.maxFeePerGas<"u"?zu(u.maxFeePerGas):void 0,maxPriorityFeePerGas:typeof u.maxPriorityFeePerGas<"u"?zu(u.maxPriorityFeePerGas):void 0,nonce:typeof u.nonce<"u"?zu(u.nonce):void 0,type:typeof u.type<"u"?xI[u.type]:void 0,value:typeof u.value<"u"?zu(u.value):void 0}}class B3 extends gu{constructor({address:e}){super(`Address "${e}" is invalid.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAddressError"})}}const kI={gwei:9,wei:18},_I={ether:-9,wei:9},SI={ether:-18,gwei:-9};function ME(u,e){let t=u.toString();const n=t.startsWith("-");n&&(t=t.slice(1)),t=t.padStart(e,"0");let[r,i]=[t.slice(0,t.length-e),t.slice(t.length-e)];return i=i.replace(/(0+)$/,""),`${n?"-":""}${r||"0"}${i?`.${i}`:""}`}function k0(u,e="wei"){return ME(u,_I[e])}class Za extends gu{constructor({cause:e,message:t}={}){var r;const n=(r=t==null?void 0:t.replace("execution reverted: ",""))==null?void 0:r.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ExecutionRevertedError"})}}Object.defineProperty(Za,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(Za,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});class UE extends gu{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${k0(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"FeeCapTooHigh"})}}Object.defineProperty(UE,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class q6 extends gu{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${k0(t)}`:""} gwei) cannot be lower than the block base fee.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"FeeCapTooLow"})}}Object.defineProperty(q6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class H6 extends gu{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:""}is higher than the next one expected.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"NonceTooHighError"})}}Object.defineProperty(H6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class G6 extends gu{constructor({cause:e,nonce:t}={}){super([`Nonce provided for the transaction ${t?`(${t}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(` -`),{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"NonceTooLowError"})}}Object.defineProperty(G6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class K6 extends gu{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:""}exceeds the maximum allowed nonce.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"NonceMaxValueError"})}}Object.defineProperty(K6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class Q6 extends gu{constructor({cause:e}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(` -`),{cause:e,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InsufficientFundsError"})}}Object.defineProperty(Q6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds/});class V6 extends gu{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"IntrinsicGasTooHighError"})}}Object.defineProperty(V6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class J6 extends gu{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:""}provided for the transaction is too low.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"IntrinsicGasTooLowError"})}}Object.defineProperty(J6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class Y6 extends gu{constructor({cause:e}){super("The transaction type is not supported for this chain.",{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionTypeNotSupportedError"})}}Object.defineProperty(Y6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class LE extends gu{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${k0(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${k0(n)} gwei`:""}).`].join(` -`),{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TipAboveFeeCapError"})}}Object.defineProperty(LE,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class Y2 extends gu{constructor({cause:e}){super(`An error occurred while executing: ${e==null?void 0:e.shortMessage}`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownNodeError"})}}const PI=/^0x[a-fA-F0-9]{40}$/;function fs(u){return PI.test(u)}function Vn(u){return typeof u[0]=="string"?Ph(u):TI(u)}function TI(u){let e=0;for(const r of u)e+=r.length;const t=new Uint8Array(e);let n=0;for(const r of u)t.set(r,n),n+=r.length;return t}function Ph(u){return`0x${u.reduce((e,t)=>e+t.replace("0x",""),"")}`}function ri(u,{includeName:e=!1}={}){if(u.type!=="function"&&u.type!=="event"&&u.type!=="error")throw new HI(u.type);return`${u.name}(${X2(u.inputs,{includeName:e})})`}function X2(u,{includeName:e=!1}={}){return u?u.map(t=>II(t,{includeName:e})).join(e?", ":","):""}function II(u,{includeName:e}){return u.type.startsWith("tuple")?`(${X2(u.components,{includeName:e})})${u.type.slice(5)}`:u.type+(e&&u.name?` ${u.name}`:"")}class OI extends gu{constructor({docsPath:e}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(` -`),{docsPath:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiConstructorNotFoundError"})}}class i8 extends gu{constructor({docsPath:e}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(` -`),{docsPath:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiConstructorParamsNotFoundError"})}}class Th extends gu{constructor({data:e,params:t,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(` -`),{metaMessages:[`Params: (${X2(t,{includeName:!0})})`,`Data: ${e} (${n} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e,this.params=t,this.size=n}}class Z2 extends gu{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiDecodingZeroDataError"})}}class NI extends gu{constructor({expectedLength:e,givenLength:t,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${t}`].join(` -`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEncodingArrayLengthMismatchError"})}}class RI extends gu{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${Se(t)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEncodingBytesSizeMismatchError"})}}class jI extends gu{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${t}`].join(` + */var fs=M;function RT(u,e){return u===e&&(u!==0||1/u===1/e)||u!==u&&e!==e}var jT=typeof Object.is=="function"?Object.is:RT,zT=fs.useState,MT=fs.useEffect,UT=fs.useLayoutEffect,LT=fs.useDebugValue;function $T(u,e){var t=e(),n=zT({inst:{value:t,getSnapshot:e}}),r=n[0].inst,i=n[1];return UT(function(){r.value=t,r.getSnapshot=e,W9(r)&&i({inst:r})},[u,t,e]),MT(function(){return W9(r)&&i({inst:r}),u(function(){W9(r)&&i({inst:r})})},[u]),LT(t),t}function W9(u){var e=u.getSnapshot;u=u.value;try{var t=e();return!jT(u,t)}catch{return!0}}function WT(u,e){return e()}var qT=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?WT:$T;zv.useSyncExternalStore=fs.useSyncExternalStore!==void 0?fs.useSyncExternalStore:qT;jv.exports=zv;var bh=jv.exports;const Mv=bh.useSyncExternalStore,t8=M.createContext(void 0),Uv=M.createContext(!1);function Lv(u,e){return u||(e&&typeof window<"u"?(window.ReactQueryClientContext||(window.ReactQueryClientContext=t8),window.ReactQueryClientContext):t8)}const Q2=({context:u}={})=>{const e=M.useContext(Lv(u,M.useContext(Uv)));if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},$v=({client:u,children:e,context:t,contextSharing:n=!1})=>{M.useEffect(()=>(u.mount(),()=>{u.unmount()}),[u]);const r=Lv(t,n);return M.createElement(Uv.Provider,{value:!t&&n},M.createElement(r.Provider,{value:u},e))},Wv=M.createContext(!1),qv=()=>M.useContext(Wv);Wv.Provider;function HT(){let u=!1;return{clearReset:()=>{u=!1},reset:()=>{u=!0},isReset:()=>u}}const GT=M.createContext(HT()),Hv=()=>M.useContext(GT);function Gv(u,e){return typeof u=="function"?u(...e):!!u}const KT=(u,e)=>{(u.suspense||u.useErrorBoundary)&&(e.isReset()||(u.retryOnMount=!1))},QT=u=>{M.useEffect(()=>{u.clearReset()},[u])},VT=({result:u,errorResetBoundary:e,useErrorBoundary:t,query:n})=>u.isError&&!e.isReset()&&!u.isFetching&&Gv(t,[u.error,n]),JT=u=>{u.suspense&&typeof u.staleTime!="number"&&(u.staleTime=1e3)},YT=(u,e)=>u.isLoading&&u.isFetching&&!e,XT=(u,e,t)=>(u==null?void 0:u.suspense)&&YT(e,t),ZT=(u,e,t)=>e.fetchOptimistic(u).then(({data:n})=>{u.onSuccess==null||u.onSuccess(n),u.onSettled==null||u.onSettled(n,null)}).catch(n=>{t.clearReset(),u.onError==null||u.onError(n),u.onSettled==null||u.onSettled(void 0,n)});function uI(u,e){const t=Q2({context:u.context}),n=qv(),r=Hv(),i=t.defaultQueryOptions(u);i._optimisticResults=n?"isRestoring":"optimistic",i.onError&&(i.onError=re.batchCalls(i.onError)),i.onSuccess&&(i.onSuccess=re.batchCalls(i.onSuccess)),i.onSettled&&(i.onSettled=re.batchCalls(i.onSettled)),JT(i),KT(i,r),QT(r);const[a]=M.useState(()=>new e(t,i)),o=a.getOptimisticResult(i);if(Mv(M.useCallback(s=>{const l=n?()=>{}:a.subscribe(re.batchCalls(s));return a.updateResult(),l},[a,n]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),M.useEffect(()=>{a.setOptions(i,{listeners:!1})},[i,a]),XT(i,o,n))throw ZT(i,a,r);if(VT({result:o,errorResetBoundary:r,useErrorBoundary:i.useErrorBoundary,query:a.getCurrentQuery()}))throw o.error;return i.notifyOnChangeProps?o:a.trackResult(o)}function eI(u,e,t){const n=F4(u,e,t);return uI(n,Ty)}function tI(u,e,t){const n=Dy(u,e,t),r=Q2({context:n.context}),[i]=M.useState(()=>new wS(r,n));M.useEffect(()=>{i.setOptions(n)},[i,n]);const a=Mv(M.useCallback(s=>i.subscribe(re.batchCalls(s)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),o=M.useCallback((s,l)=>{i.mutate(s,l).catch(nI)},[i]);if(a.error&&Gv(i.options.useErrorBoundary,[a.error]))throw a.error;return{...a,mutate:o,mutateAsync:a.mutate}}function nI(){}const rI=["added","removed","updated"];function n8(u){return rI.includes(u)}async function iI({queryClient:u,persister:e,maxAge:t=1e3*60*60*24,buster:n="",hydrateOptions:r}){try{const i=await e.restoreClient();if(i)if(i.timestamp){const a=Date.now()-i.timestamp>t,o=i.buster!==n;a||o?e.removeClient():TS(u,i.clientState,r)}else e.removeClient()}catch{e.removeClient()}}async function r8({queryClient:u,persister:e,buster:t="",dehydrateOptions:n}){const r={buster:t,timestamp:Date.now(),clientState:PS(u,n)};await e.persistClient(r)}function aI(u){const e=u.queryClient.getQueryCache().subscribe(n=>{n8(n.type)&&r8(u)}),t=u.queryClient.getMutationCache().subscribe(n=>{n8(n.type)&&r8(u)});return()=>{e(),t()}}function oI(u){let e=!1,t;const n=()=>{e=!0,t==null||t()},r=iI(u).then(()=>{e||(t=aI(u))});return[n,r]}function wh(u,e={}){const{fees:t=u.fees,formatters:n=u.formatters,serializers:r=u.serializers}=e;return{...u,fees:t,formatters:n,serializers:r}}const sI="1.17.1",lI=u=>u,V2=u=>u,cI=()=>`viem@${sI}`;let gu=class W6 extends Error{constructor(e,t={}){var i;super(),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ViemError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:cI()});const n=t.cause instanceof W6?t.cause.details:(i=t.cause)!=null&&i.message?t.cause.message:t.details,r=t.cause instanceof W6&&t.cause.docsPath||t.docsPath;this.message=[e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...r?[`Docs: https://viem.sh${r}.html${t.docsSlug?`#${t.docsSlug}`:""}`]:[],...n?[`Details: ${n}`]:[],`Version: ${this.version}`].join(` +`),t.cause&&(this.cause=t.cause),this.details=n,this.docsPath=r,this.metaMessages=t.metaMessages,this.shortMessage=e}walk(e){return Kv(this,e)}};function Kv(u,e){return e!=null&&e(u)?u:u&&typeof u=="object"&&"cause"in u?Kv(u.cause,e):e?null:u}class EI extends gu{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${r*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"IntegerOutOfRangeError"})}}class dI extends gu{constructor(e){super(`Hex value "${e}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidHexBooleanError"})}}class fI extends gu{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SizeOverflowError"})}}function En(u,{strict:e=!0}={}){return!u||typeof u!="string"?!1:e?/^0x[0-9a-fA-F]*$/.test(u):u.startsWith("0x")}function Pe(u){return En(u,{strict:!1})?Math.ceil((u.length-2)/2):u.length}function Yi(u,{dir:e="left"}={}){let t=typeof u=="string"?u.replace("0x",""):u,n=0;for(let r=0;rt*2)throw new Vv({size:Math.ceil(n.length/2),targetSize:t,type:"hex"});return`0x${n[e==="right"?"padEnd":"padStart"](t*2,"0")}`}function pI(u,{dir:e,size:t=32}={}){if(t===null)return u;if(u.length>t)throw new Vv({size:u.length,targetSize:t,type:"bytes"});const n=new Uint8Array(t);for(let r=0;re.toString(16).padStart(2,"0"));function tr(u,e={}){return typeof u=="number"||typeof u=="bigint"?Mu(u,e):typeof u=="string"?xh(u,e):typeof u=="boolean"?Jv(u,e):B3(u,e)}function Jv(u,e={}){const t=`0x${Number(u)}`;return typeof e.size=="number"?(ri(t,{size:e.size}),Rs(t,{size:e.size})):t}function B3(u,e={}){let t="";for(let r=0;ri||r=hn.zero&&u<=hn.nine)return u-hn.zero;if(u>=hn.A&&u<=hn.F)return u-(hn.A-10);if(u>=hn.a&&u<=hn.f)return u-(hn.a-10)}function kh(u,e={}){let t=u;e.size&&(ri(t,{size:e.size}),t=Rs(t,{dir:"right",size:e.size}));let n=t.slice(2);n.length%2&&(n=`0${n}`);const r=n.length/2,i=new Uint8Array(r);for(let a=0,o=0;ae)throw new fI({givenSize:Pe(u),maxSize:e})}function On(u,e={}){const{signed:t}=e;e.size&&ri(u,{size:e.size});const n=BigInt(u);if(!t)return n;const r=(u.length-2)/2,i=(1n<({exclude:t,format:r=>{const i=e(r);if(t)for(const a of t)delete i[a];return{...i,...n(r)}},type:u})}const Yv={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559"};function J2(u){const e={...u,blockHash:u.blockHash?u.blockHash:null,blockNumber:u.blockNumber?BigInt(u.blockNumber):null,chainId:u.chainId?e0(u.chainId):void 0,gas:u.gas?BigInt(u.gas):void 0,gasPrice:u.gasPrice?BigInt(u.gasPrice):void 0,maxFeePerGas:u.maxFeePerGas?BigInt(u.maxFeePerGas):void 0,maxPriorityFeePerGas:u.maxPriorityFeePerGas?BigInt(u.maxPriorityFeePerGas):void 0,nonce:u.nonce?e0(u.nonce):void 0,to:u.to?u.to:null,transactionIndex:u.transactionIndex?Number(u.transactionIndex):null,type:u.type?Yv[u.type]:void 0,typeHex:u.type?u.type:void 0,value:u.value?BigInt(u.value):void 0,v:u.v?BigInt(u.v):void 0};return e.type==="legacy"&&(delete e.accessList,delete e.maxFeePerGas,delete e.maxPriorityFeePerGas),e.type==="eip2930"&&(delete e.maxFeePerGas,delete e.maxPriorityFeePerGas),e}const BI=Sh("transaction",J2);function Ph(u){var t;const e=(t=u.transactions)==null?void 0:t.map(n=>typeof n=="string"?n:J2(n));return{...u,baseFeePerGas:u.baseFeePerGas?BigInt(u.baseFeePerGas):null,difficulty:u.difficulty?BigInt(u.difficulty):void 0,gasLimit:u.gasLimit?BigInt(u.gasLimit):void 0,gasUsed:u.gasUsed?BigInt(u.gasUsed):void 0,hash:u.hash?u.hash:null,logsBloom:u.logsBloom?u.logsBloom:null,nonce:u.nonce?u.nonce:null,number:u.number?BigInt(u.number):null,size:u.size?BigInt(u.size):void 0,timestamp:u.timestamp?BigInt(u.timestamp):void 0,transactions:e,totalDifficulty:u.totalDifficulty?BigInt(u.totalDifficulty):null}}const vI=Sh("block",Ph);function zt(u,{args:e,eventName:t}={}){return{...u,blockHash:u.blockHash?u.blockHash:null,blockNumber:u.blockNumber?BigInt(u.blockNumber):null,logIndex:u.logIndex?Number(u.logIndex):null,transactionHash:u.transactionHash?u.transactionHash:null,transactionIndex:u.transactionIndex?Number(u.transactionIndex):null,...t?{args:e,eventName:t}:{}}}const FI={"0x0":"reverted","0x1":"success"};function Xv(u){return{...u,blockNumber:u.blockNumber?BigInt(u.blockNumber):null,contractAddress:u.contractAddress?u.contractAddress:null,cumulativeGasUsed:u.cumulativeGasUsed?BigInt(u.cumulativeGasUsed):null,effectiveGasPrice:u.effectiveGasPrice?BigInt(u.effectiveGasPrice):null,gasUsed:u.gasUsed?BigInt(u.gasUsed):null,logs:u.logs?u.logs.map(e=>zt(e)):null,to:u.to?u.to:null,transactionIndex:u.transactionIndex?e0(u.transactionIndex):null,status:u.status?FI[u.status]:null,type:u.type?Yv[u.type]||u.type:null}}const DI=Sh("transactionReceipt",Xv),bI={block:vI({format(u){var t;return{transactions:(t=u.transactions)==null?void 0:t.map(n=>{if(typeof n=="string")return n;const r=J2(n);return r.typeHex==="0x7e"&&(r.isSystemTx=n.isSystemTx,r.mint=n.mint?On(n.mint):void 0,r.sourceHash=n.sourceHash,r.type="deposit"),r}),stateRoot:u.stateRoot}}}),transaction:BI({format(u){const e={};return u.type==="0x7e"&&(e.isSystemTx=u.isSystemTx,e.mint=u.mint?On(u.mint):void 0,e.sourceHash=u.sourceHash,e.type="deposit"),e}}),transactionReceipt:DI({format(u){return{l1GasPrice:u.l1GasPrice?On(u.l1GasPrice):null,l1GasUsed:u.l1GasUsed?On(u.l1GasUsed):null,l1Fee:u.l1Fee?On(u.l1Fee):null,l1FeeScalar:u.l1FeeScalar?Number(u.l1FeeScalar):null}}})},wI={legacy:"0x0",eip2930:"0x1",eip1559:"0x2"};function Y2(u){return{...u,gas:typeof u.gas<"u"?Mu(u.gas):void 0,gasPrice:typeof u.gasPrice<"u"?Mu(u.gasPrice):void 0,maxFeePerGas:typeof u.maxFeePerGas<"u"?Mu(u.maxFeePerGas):void 0,maxPriorityFeePerGas:typeof u.maxPriorityFeePerGas<"u"?Mu(u.maxPriorityFeePerGas):void 0,nonce:typeof u.nonce<"u"?Mu(u.nonce):void 0,type:typeof u.type<"u"?wI[u.type]:void 0,value:typeof u.value<"u"?Mu(u.value):void 0}}class v3 extends gu{constructor({address:e}){super(`Address "${e}" is invalid.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAddressError"})}}class q6 extends gu{constructor({blockNumber:e,chain:t,contract:n}){super(`Chain "${t.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...e&&n.blockCreated&&n.blockCreated>e?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${e}).`]:[`- The chain does not have the contract "${n.name}" configured.`]]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ChainDoesNotSupportContract"})}}let xI=class extends gu{constructor({chain:e,currentChainId:t}){super(`The current chain of the wallet (id: ${t}) does not match the target chain for the transaction (id: ${e.id} – ${e.name}).`,{metaMessages:[`Current Chain ID: ${t}`,`Expected Chain ID: ${e.id} – ${e.name}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ChainMismatchError"})}};class kI extends gu{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(` +`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ChainNotFoundError"})}}class Zv extends gu{constructor(){super("No chain was provided to the Client."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ClientChainNotConfiguredError"})}}const _I={gwei:9,wei:18},SI={ether:-9,wei:9},PI={ether:-18,gwei:-9};function UE(u,e){let t=u.toString();const n=t.startsWith("-");n&&(t=t.slice(1)),t=t.padStart(e,"0");let[r,i]=[t.slice(0,t.length-e),t.slice(t.length-e)];return i=i.replace(/(0+)$/,""),`${n?"-":""}${r||"0"}${i?`.${i}`:""}`}function _0(u,e="wei"){return UE(u,SI[e])}class uo extends gu{constructor({cause:e,message:t}={}){var r;const n=(r=t==null?void 0:t.replace("execution reverted: ",""))==null?void 0:r.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ExecutionRevertedError"})}}Object.defineProperty(uo,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(uo,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});class LE extends gu{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${_0(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"FeeCapTooHigh"})}}Object.defineProperty(LE,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class H6 extends gu{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${_0(t)}`:""} gwei) cannot be lower than the block base fee.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"FeeCapTooLow"})}}Object.defineProperty(H6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class G6 extends gu{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:""}is higher than the next one expected.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"NonceTooHighError"})}}Object.defineProperty(G6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class K6 extends gu{constructor({cause:e,nonce:t}={}){super([`Nonce provided for the transaction ${t?`(${t}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(` +`),{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"NonceTooLowError"})}}Object.defineProperty(K6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class Q6 extends gu{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:""}exceeds the maximum allowed nonce.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"NonceMaxValueError"})}}Object.defineProperty(Q6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class V6 extends gu{constructor({cause:e}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(` +`),{cause:e,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InsufficientFundsError"})}}Object.defineProperty(V6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds/});class J6 extends gu{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"IntrinsicGasTooHighError"})}}Object.defineProperty(J6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class Y6 extends gu{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:""}provided for the transaction is too low.`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"IntrinsicGasTooLowError"})}}Object.defineProperty(Y6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class X6 extends gu{constructor({cause:e}){super("The transaction type is not supported for this chain.",{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionTypeNotSupportedError"})}}Object.defineProperty(X6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class $E extends gu{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${_0(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${_0(n)} gwei`:""}).`].join(` +`),{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TipAboveFeeCapError"})}}Object.defineProperty($E,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class X2 extends gu{constructor({cause:e}){super(`An error occurred while executing: ${e==null?void 0:e.shortMessage}`,{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownNodeError"})}}const TI=/^0x[a-fA-F0-9]{40}$/;function ps(u){return TI.test(u)}function Jn(u){return typeof u[0]=="string"?Th(u):II(u)}function II(u){let e=0;for(const r of u)e+=r.length;const t=new Uint8Array(e);let n=0;for(const r of u)t.set(r,n),n+=r.length;return t}function Th(u){return`0x${u.reduce((e,t)=>e+t.replace("0x",""),"")}`}function Ru(u,e){return t=>{var n;return((n=u[e.name])==null?void 0:n.call(u,t))??e(u,t)}}function ii(u,{includeName:e=!1}={}){if(u.type!=="function"&&u.type!=="event"&&u.type!=="error")throw new GI(u.type);return`${u.name}(${Z2(u.inputs,{includeName:e})})`}function Z2(u,{includeName:e=!1}={}){return u?u.map(t=>OI(t,{includeName:e})).join(e?", ":","):""}function OI(u,{includeName:e}){return u.type.startsWith("tuple")?`(${Z2(u.components,{includeName:e})})${u.type.slice(5)}`:u.type+(e&&u.name?` ${u.name}`:"")}class NI extends gu{constructor({docsPath:e}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(` +`),{docsPath:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiConstructorNotFoundError"})}}class a8 extends gu{constructor({docsPath:e}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(` +`),{docsPath:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiConstructorParamsNotFoundError"})}}class Ih extends gu{constructor({data:e,params:t,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join(` +`),{metaMessages:[`Params: (${Z2(t,{includeName:!0})})`,`Data: ${e} (${n} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e,this.params=t,this.size=n}}class ud extends gu{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiDecodingZeroDataError"})}}class RI extends gu{constructor({expectedLength:e,givenLength:t,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${t}`].join(` +`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEncodingArrayLengthMismatchError"})}}class jI extends gu{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${Pe(t)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEncodingBytesSizeMismatchError"})}}class zI extends gu{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${t}`].join(` `)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEncodingLengthMismatchError"})}}class uF extends gu{constructor(e,{docsPath:t}){super([`Encoded error signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${e}.`].join(` -`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}}class zI extends gu{constructor({docsPath:e}){super("Cannot extract event signature from empty topics.",{docsPath:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEventSignatureEmptyTopicsError"})}}class MI extends gu{constructor(e,{docsPath:t}){super([`Encoded event signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join(` -`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEventSignatureNotFoundError"})}}class a8 extends gu{constructor(e,{docsPath:t}={}){super([`Event ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join(` -`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEventNotFoundError"})}}class $E extends gu{constructor(e,{docsPath:t}={}){super([`Function ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(` -`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiFunctionNotFoundError"})}}class UI extends gu{constructor(e,{docsPath:t}){super([`Function "${e}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(` -`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiFunctionOutputsNotFoundError"})}}class LI extends gu{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BytesSizeMismatchError"})}}class oa extends gu{constructor({abiItem:e,data:t,params:n,size:r}){super([`Data size of ${r} bytes is too small for non-indexed event parameters.`].join(` -`),{metaMessages:[`Params: (${X2(n,{includeName:!0})})`,`Data: ${t} (${r} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e,this.data=t,this.params=n,this.size=r}}class js extends gu{constructor({abiItem:e,param:t}){super([`Expected a topic for indexed event parameter${t.name?` "${t.name}"`:""} on event "${ri(e,{includeName:!0})}".`].join(` -`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e}}class $I extends gu{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(` -`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiEncodingType"})}}class WI extends gu{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(` -`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiDecodingType"})}}class qI extends gu{constructor(e){super([`Value "${e}" is not a valid array.`].join(` -`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidArrayError"})}}class HI extends gu{constructor(e){super([`"${e}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(` -`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidDefinitionTypeError"})}}class GI extends gu{constructor(e){super(`Filter type "${e}" is not supported.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"FilterTypeNotSupportedError"})}}const KI=/((function|event)\s)?(.*)(\((.*)\))/;function eF(u){const e=u.match(KI),t=(e==null?void 0:e[2])||void 0,n=e==null?void 0:e[3],r=(e==null?void 0:e[5])||void 0;return{type:t,name:n,params:r}}function QI(u){return eF(u).name}function VI(u){const e=eF(u).params,t=e==null?void 0:e.split(",").map(n=>n.trim().split(" "));return t==null?void 0:t.map(n=>({type:n[0],name:n[1]==="indexed"?n[2]:n[1],...n[1]==="indexed"?{indexed:!0}:{}}))}const tF=u=>{if(typeof u=="string"){const e=QI(u),t=VI(u)||[];return`${e}(${t.map(({type:n})=>n).join(",")})`}return ri(u)},JI=u=>tF(u);function WE(u){if(!Number.isSafeInteger(u)||u<0)throw new Error(`Wrong positive integer: ${u}`)}function Ih(u,...e){if(!(u instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(u.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${u.length}`)}function YI(u){if(typeof u!="function"||typeof u.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");WE(u.outputLen),WE(u.blockLen)}function ps(u,e=!0){if(u.destroyed)throw new Error("Hash instance has been destroyed");if(e&&u.finished)throw new Error("Hash#digest() has already been called")}function nF(u,e){Ih(u);const t=e.outputLen;if(u.length>o8&mc)}:{h:Number(u>>o8&mc)|0,l:Number(u&mc)|0}}function ZI(u,e=!1){let t=new Uint32Array(u.length),n=new Uint32Array(u.length);for(let r=0;ru<>>32-t,eO=(u,e,t)=>e<>>32-t,tO=(u,e,t)=>e<>>64-t,nO=(u,e,t)=>u<>>64-t,W9=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const rF=u=>u instanceof Uint8Array,rO=u=>new Uint32Array(u.buffer,u.byteOffset,Math.floor(u.byteLength/4)),q9=u=>new DataView(u.buffer,u.byteOffset,u.byteLength),qt=(u,e)=>u<<32-e|u>>>e,iO=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!iO)throw new Error("Non little-endian hardware is not supported");function aO(u){if(typeof u!="string")throw new Error(`utf8ToBytes expected string, got ${typeof u}`);return new Uint8Array(new TextEncoder().encode(u))}function ud(u){if(typeof u=="string"&&(u=aO(u)),!rF(u))throw new Error(`expected Uint8Array, got ${typeof u}`);return u}function oO(...u){const e=new Uint8Array(u.reduce((n,r)=>n+r.length,0));let t=0;return u.forEach(n=>{if(!rF(n))throw new Error("Uint8Array expected");e.set(n,t),t+=n.length}),e}let Oh=class{clone(){return this._cloneInto()}};function iF(u){const e=n=>u().update(ud(n)).digest(),t=u();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>u(),e}function sO(u=32){if(W9&&typeof W9.getRandomValues=="function")return W9.getRandomValues(new Uint8Array(u));throw new Error("crypto.getRandomValues must be defined")}const[aF,oF,sF]=[[],[],[]],lO=BigInt(0),h4=BigInt(1),cO=BigInt(2),EO=BigInt(7),dO=BigInt(256),fO=BigInt(113);for(let u=0,e=h4,t=1,n=0;u<24;u++){[t,n]=[n,(2*t+3*n)%5],aF.push(2*(5*n+t)),oF.push((u+1)*(u+2)/2%64);let r=lO;for(let i=0;i<7;i++)e=(e<>EO)*fO)%dO,e&cO&&(r^=h4<<(h4<t>32?tO(u,e,t):uO(u,e,t),l8=(u,e,t)=>t>32?nO(u,e,t):eO(u,e,t);function CO(u,e=24){const t=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let a=0;a<10;a++)t[a]=u[a]^u[a+10]^u[a+20]^u[a+30]^u[a+40];for(let a=0;a<10;a+=2){const o=(a+8)%10,s=(a+2)%10,l=t[s],c=t[s+1],E=s8(l,c,1)^t[o],d=l8(l,c,1)^t[o+1];for(let f=0;f<50;f+=10)u[a+f]^=E,u[a+f+1]^=d}let r=u[2],i=u[3];for(let a=0;a<24;a++){const o=oF[a],s=s8(r,i,o),l=l8(r,i,o),c=aF[a];r=u[c],i=u[c+1],u[c]=s,u[c+1]=l}for(let a=0;a<50;a+=10){for(let o=0;o<10;o++)t[o]=u[a+o];for(let o=0;o<10;o++)u[a+o]^=~t[(o+2)%10]&t[(o+4)%10]}u[0]^=pO[n],u[1]^=hO[n]}t.fill(0)}class Nh extends Oh{constructor(e,t,n,r=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,WE(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=rO(this.state)}keccak(){CO(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){ps(this);const{blockLen:t,state:n}=this;e=ud(e);const r=e.length;for(let i=0;i=n&&this.keccak();const a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return WE(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(nF(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:r,rounds:i,enableXOF:a}=this;return e||(e=new Nh(t,n,r,a,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=n,e.outputLen=r,e.enableXOF=a,e.destroyed=this.destroyed,e}}const mO=(u,e,t)=>iF(()=>new Nh(e,u,t)),lF=mO(1,136,256/8);function s0(u,e){const t=e||"hex",n=lF(cn(u,{strict:!1})?Qr(u):u);return t==="bytes"?n:er(n)}const gO=u=>s0(Qr(u)),Rh=u=>gO(JI(u));function Fe(u,e,t,{strict:n}={}){return cn(u,{strict:!1})?yO(u,e,t,{strict:n}):AO(u,e,t,{strict:n})}function cF(u,e){if(typeof e=="number"&&e>0&&e>Se(u)-1)throw new Vv({offset:e,position:"start",size:Se(u)})}function EF(u,e,t){if(typeof e=="number"&&typeof t=="number"&&Se(u)!==t-e)throw new Vv({offset:t,position:"end",size:Se(u)})}function AO(u,e,t,{strict:n}={}){cF(u,e);const r=u.slice(e,t);return n&&EF(r,e,t),r}function yO(u,e,t,{strict:n}={}){cF(u,e);const r=`0x${u.replace("0x","").slice((e??0)*2,(t??u.length)*2)}`;return n&&EF(r,e,t),r}function vl(u,e){if(u.length!==e.length)throw new jI({expectedLength:u.length,givenLength:e.length});const t=BO({params:u,values:e}),n=zh(t);return n.length===0?"0x":n}function BO({params:u,values:e}){const t=[];for(let n=0;n0?Vn([o,a]):o}}if(r)return{dynamic:!0,encoded:a}}return{dynamic:!1,encoded:Vn(i.map(({encoded:a})=>a))}}function DO(u,{param:e}){const[,t]=e.type.split("bytes"),n=Se(u);if(!t){let r=u;return n%32!==0&&(r=qr(r,{dir:"right",size:Math.ceil((u.length-2)/2/32)*32})),{dynamic:!0,encoded:Vn([qr(zu(n,{size:32})),r])}}if(n!==parseInt(t))throw new RI({expectedSize:parseInt(t),value:u});return{dynamic:!1,encoded:qr(u,{dir:"right"})}}function bO(u){return{dynamic:!1,encoded:qr(Yv(u))}}function wO(u,{signed:e}){return{dynamic:!1,encoded:zu(u,{size:32,signed:e})}}function xO(u){const e=wh(u),t=Math.ceil(Se(e)/32),n=[];for(let r=0;rr))}}function ed(u){const e=u.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}const _O=u=>s0(Qr(u)),Mh=u=>Fe(_O(tF(u)),0,4);function Fl({abi:u,args:e=[],name:t}){const n=cn(t,{strict:!1}),r=u.filter(i=>n?i.type==="function"?Mh(i)===t:i.type==="event"?Rh(i)===t:!1:"name"in i&&i.name===t);if(r.length!==0){if(r.length===1)return r[0];for(const i of r){if(!("inputs"in i))continue;if(!e||e.length===0){if(!i.inputs||i.inputs.length===0)return i;continue}if(!i.inputs||i.inputs.length===0||i.inputs.length!==e.length)continue;if(e.every((o,s)=>{const l="inputs"in i&&i.inputs[s];return l?X6(o,l):!1}))return i}return r[0]}}function X6(u,e){const t=typeof u,n=e.type;switch(n){case"address":return fs(u);case"bool":return t==="boolean";case"function":return t==="string";case"string":return t==="string";default:return n==="tuple"&&"components"in e?Object.values(e.components).every((r,i)=>X6(Object.values(u)[i],r)):/^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)?t==="number"||t==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?t==="string"||u instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(u)&&u.every(r=>X6(r,{...e,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Dl({abi:u,eventName:e,args:t}){var o;let n=u[0];if(e&&(n=Fl({abi:u,args:t,name:e}),!n))throw new a8(e,{docsPath:"/docs/contract/encodeEventTopics"});if(n.type!=="event")throw new a8(void 0,{docsPath:"/docs/contract/encodeEventTopics"});const r=ri(n),i=Rh(r);let a=[];if(t&&"inputs"in n){const s=(o=n.inputs)==null?void 0:o.filter(c=>"indexed"in c&&c.indexed),l=Array.isArray(t)?t:Object.values(t).length>0?(s==null?void 0:s.map(c=>t[c.name]))??[]:[];l.length>0&&(a=(s==null?void 0:s.map((c,E)=>Array.isArray(l[E])?l[E].map((d,f)=>c8({param:c,value:l[E][f]})):l[E]?c8({param:c,value:l[E]}):null))??[])}return[i,...a]}function c8({param:u,value:e}){if(u.type==="string"||u.type==="bytes")return s0(Qr(e));if(u.type==="tuple"||u.type.match(/^(.*)\[(\d+)?\]$/))throw new GI(u.type);return vl([u],[e])}function td(u,{method:e}){var n,r;const t={};return u.transport.type==="fallback"&&((r=(n=u.transport).onResponse)==null||r.call(n,({method:i,response:a,status:o,transport:s})=>{o==="success"&&e===i&&(t[a]=s.request)})),i=>t[i]||u.request}async function dF(u,{address:e,abi:t,args:n,eventName:r,fromBlock:i,strict:a,toBlock:o}){const s=td(u,{method:"eth_newFilter"}),l=r?Dl({abi:t,args:n,eventName:r}):void 0,c=await u.request({method:"eth_newFilter",params:[{address:e,fromBlock:typeof i=="bigint"?zu(i):i,toBlock:typeof o=="bigint"?zu(o):o,topics:l}]});return{abi:t,args:n,eventName:r,id:c,request:s(c),strict:a,type:"event"}}function Ct(u){return typeof u=="string"?{address:u,type:"json-rpc"}:u}function ii({abi:u,args:e,functionName:t}){let n=u[0];if(t&&(n=Fl({abi:u,args:e,name:t}),!n))throw new $E(t,{docsPath:"/docs/contract/encodeFunctionData"});if(n.type!=="function")throw new $E(void 0,{docsPath:"/docs/contract/encodeFunctionData"});const r=ri(n),i=Mh(r),a="inputs"in n&&n.inputs?vl(n.inputs,e??[]):void 0;return Ph([i,a??"0x"])}const fF={1:"An `assert` condition failed.",17:"Arithmic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},SO={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},PO={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"};function Uh(u,e){const t=e?`${e}${u.toLowerCase()}`:u.substring(2).toLowerCase(),n=s0($n(t),"bytes"),r=(e?t.substring(`${e}0x`.length):t).split("");for(let i=0;i<40;i+=2)n[i>>1]>>4>=8&&r[i]&&(r[i]=r[i].toUpperCase()),(n[i>>1]&15)>=8&&r[i+1]&&(r[i+1]=r[i+1].toUpperCase());return`0x${r.join("")}`}function e0(u,e){if(!fs(u))throw new B3({address:u});return Uh(u,e)}function nd(u,e){if(e==="0x"&&u.length>0)throw new Z2;if(Se(e)&&Se(e)<32)throw new Th({data:e,params:u,size:Se(e)});return TO({data:e,params:u})}function TO({data:u,params:e}){const t=[];let n=0;for(let r=0;r=Se(u))throw new Th({data:u,params:e,size:Se(u)});const i=e[r],{consumed:a,value:o}=ho({data:u,param:i,position:n});t.push(o),n+=a}return t}function ho({data:u,param:e,position:t}){const n=ed(e.type);if(n){const[i,a]=n;return OO(u,{length:i,param:{...e,type:a},position:t})}if(e.type==="tuple")return MO(u,{param:e,position:t});if(e.type==="string")return zO(u,{position:t});if(e.type.startsWith("bytes"))return RO(u,{param:e,position:t});const r=Fe(u,t,t+32,{strict:!0});if(e.type.startsWith("uint")||e.type.startsWith("int"))return jO(r,{param:e});if(e.type==="address")return IO(r);if(e.type==="bool")return NO(r);throw new WI(e.type,{docsPath:"/docs/contract/decodeAbiParameters"})}function IO(u){return{consumed:32,value:Uh(Fe(u,-20))}}function OO(u,{param:e,length:t,position:n}){if(!t){const a=u0(Fe(u,n,n+32,{strict:!0})),o=u0(Fe(u,a,a+32,{strict:!0}));let s=0;const l=[];for(let c=0;c48?In(u,{signed:t}):u0(u,{signed:t})}}function zO(u,{position:e}){const t=u0(Fe(u,e,e+32,{strict:!0})),n=u0(Fe(u,t,t+32,{strict:!0}));return n===0?{consumed:32,value:""}:{consumed:32,value:kh(Ji(Fe(u,t+32,t+32+n,{strict:!0})))}}function MO(u,{param:e,position:t}){const n=e.components.length===0||e.components.some(({name:a})=>!a),r=n?[]:{};let i=0;if(qE(e)){const a=u0(Fe(u,t,t+32,{strict:!0}));for(let o=0;oi.type==="error"&&t===Mh(ri(i)));if(!r)throw new uF(t,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:r,args:"inputs"in r&&r.inputs&&r.inputs.length>0?nd(r.inputs,Fe(e,4)):void 0,errorName:r.name}}const f0=(u,e,t)=>JSON.stringify(u,(n,r)=>{const i=typeof r=="bigint"?r.toString():r;return typeof e=="function"?e(n,i):i},t);function pF({abiItem:u,args:e,includeFunctionName:t=!0,includeName:n=!1}){if("name"in u&&"inputs"in u&&u.inputs)return`${t?u.name:""}(${u.inputs.map((r,i)=>`${n&&r.name?`${r.name}: `:""}${typeof e[i]=="object"?f0(e[i]):e[i]}`).join(", ")})`}function Lh(u,e="wei"){return ME(u,kI[e])}function bl(u){const e=Object.entries(u).map(([n,r])=>r===void 0||r===!1?null:[n,r]).filter(Boolean),t=e.reduce((n,[r])=>Math.max(n,r.length),0);return e.map(([n,r])=>` ${`${n}:`.padEnd(t+1)} ${r}`).join(` -`)}class LO extends gu{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(` -`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"FeeConflictError"})}}class $O extends gu{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",bl(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- a Legacy Transaction with `gasPrice`"]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSerializableTransactionError"})}}class WO extends gu{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d}){const f=bl({chain:r&&`${r==null?void 0:r.name} (id: ${r==null?void 0:r.id})`,from:t==null?void 0:t.address,to:E,value:typeof d<"u"&&`${Lh(d)} ${(r==null?void 0:r.nativeCurrency.symbol)||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${k0(o)} gwei`,maxFeePerGas:typeof s<"u"&&`${k0(s)} gwei`,maxPriorityFeePerGas:typeof l<"u"&&`${k0(l)} gwei`,nonce:c});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Request Arguments:",f].filter(Boolean)}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionExecutionError"}),this.cause=e}}class hF extends gu{constructor({blockHash:e,blockNumber:t,blockTag:n,hash:r,index:i}){let a="Transaction";n&&i!==void 0&&(a=`Transaction at block time "${n}" at index "${i}"`),e&&i!==void 0&&(a=`Transaction at block hash "${e}" at index "${i}"`),t&&i!==void 0&&(a=`Transaction at block number "${t}" at index "${i}"`),r&&(a=`Transaction with hash "${r}"`),super(`${a} could not be found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionNotFoundError"})}}class CF extends gu{constructor({hash:e}){super(`Transaction receipt with hash "${e}" could not be found. The Transaction may not be processed on a block yet.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionReceiptNotFoundError"})}}class qO extends gu{constructor({hash:e}){super(`Timed out while waiting for transaction with hash "${e}" to be confirmed.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WaitForTransactionReceiptTimeoutError"})}}class mF extends gu{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d}){const f=t?Ct(t):void 0,C=bl({from:f==null?void 0:f.address,to:E,value:typeof d<"u"&&`${Lh(d)} ${(r==null?void 0:r.nativeCurrency.symbol)||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${k0(o)} gwei`,maxFeePerGas:typeof s<"u"&&`${k0(s)} gwei`,maxPriorityFeePerGas:typeof l<"u"&&`${k0(l)} gwei`,nonce:c});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Raw Call Arguments:",C].filter(Boolean)}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CallExecutionError"}),this.cause=e}}class $h extends gu{constructor(e,{abi:t,args:n,contractAddress:r,docsPath:i,functionName:a,sender:o}){const s=Fl({abi:t,args:n,name:a}),l=s?pF({abiItem:s,args:n,includeFunctionName:!1,includeName:!1}):void 0,c=s?ri(s,{includeName:!0}):void 0,E=bl({address:r&&sI(r),function:c,args:l&&l!=="()"&&`${[...Array((a==null?void 0:a.length)??0).keys()].map(()=>" ").join("")}${l}`,sender:o});super(e.shortMessage||`An unknown error occurred while executing the contract function "${a}".`,{cause:e,docsPath:i,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Contract Call:",E].filter(Boolean)}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ContractFunctionExecutionError"}),this.abi=t,this.args=n,this.cause=e,this.contractAddress=r,this.functionName=a,this.sender=o}}class Z6 extends gu{constructor({abi:e,data:t,functionName:n,message:r}){let i,a,o,s;if(t&&t!=="0x")try{a=UO({abi:e,data:t});const{abiItem:c,errorName:E,args:d}=a;if(E==="Error")s=d[0];else if(E==="Panic"){const[f]=d;s=fF[f]}else{const f=c?ri(c,{includeName:!0}):void 0,C=c&&d?pF({abiItem:c,args:d,includeFunctionName:!1,includeName:!1}):void 0;o=[f?`Error: ${f}`:"",C&&C!=="()"?` ${[...Array((E==null?void 0:E.length)??0).keys()].map(()=>" ").join("")}${C}`:""]}}catch(c){i=c}else r&&(s=r);let l;i instanceof uF&&(l=i.signature,o=[`Unable to decode signature "${l}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${l}.`]),super(s&&s!=="execution reverted"||l?[`The contract function "${n}" reverted with the following ${l?"signature":"reason"}:`,s||l].join(` -`):`The contract function "${n}" reverted.`,{cause:i,metaMessages:o}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=a,this.reason=s,this.signature=l}}class HO extends gu{constructor({functionName:e}){super(`The contract function "${e}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${e}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ContractFunctionZeroDataError"})}}class Wh extends gu{constructor({data:e,message:t}){super(t||""),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RawContractError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e}}class V4 extends gu{constructor({body:e,details:t,headers:n,status:r,url:i}){super("HTTP request failed.",{details:t,metaMessages:[r&&`Status: ${r}`,`URL: ${Q2(i)}`,e&&`Request body: ${f0(e)}`].filter(Boolean)}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=e,this.headers=n,this.status=r,this.url=i}}class GO extends gu{constructor({body:e,details:t,url:n}){super("WebSocket request failed.",{details:t,metaMessages:[`URL: ${Q2(n)}`,`Request body: ${f0(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WebSocketRequestError"})}}class qh extends gu{constructor({body:e,error:t,url:n}){super("RPC Request failed.",{cause:t,details:t.message,metaMessages:[`URL: ${Q2(n)}`,`Request body: ${f0(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t.code}}class uf extends gu{constructor({body:e,url:t}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${Q2(t)}`,`Request body: ${f0(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TimeoutError"})}}const KO=-1;class T0 extends gu{constructor(e,{code:t,docsPath:n,metaMessages:r,shortMessage:i}){super(i,{cause:e,docsPath:n,metaMessages:r||(e==null?void 0:e.metaMessages)}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.code=e instanceof qh?e.code:t??KO}}class zs extends T0{constructor(e,t){super(e,t),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ProviderRpcError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t.data}}class v3 extends T0{constructor(e){super(e,{code:v3.code,shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ParseRpcError"})}}Object.defineProperty(v3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class F3 extends T0{constructor(e){super(e,{code:F3.code,shortMessage:"JSON is not a valid request object."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidRequestRpcError"})}}Object.defineProperty(F3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class D3 extends T0{constructor(e){super(e,{code:D3.code,shortMessage:"The method does not exist / is not available."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"MethodNotFoundRpcError"})}}Object.defineProperty(D3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class b3 extends T0{constructor(e){super(e,{code:b3.code,shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(` -`)}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParamsRpcError"})}}Object.defineProperty(b3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class hs extends T0{constructor(e){super(e,{code:hs.code,shortMessage:"An internal error was received."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InternalRpcError"})}}Object.defineProperty(hs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class sa extends T0{constructor(e){super(e,{code:sa.code,shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(` -`)}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidInputRpcError"})}}Object.defineProperty(sa,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class w3 extends T0{constructor(e){super(e,{code:w3.code,shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(w3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class Vr extends T0{constructor(e){super(e,{code:Vr.code,shortMessage:"Requested resource not available."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceUnavailableRpcError"})}}Object.defineProperty(Vr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class x3 extends T0{constructor(e){super(e,{code:x3.code,shortMessage:"Transaction creation failed."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionRejectedRpcError"})}}Object.defineProperty(x3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});class k3 extends T0{constructor(e){super(e,{code:k3.code,shortMessage:"Method is not implemented."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"MethodNotSupportedRpcError"})}}Object.defineProperty(k3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});class _3 extends T0{constructor(e){super(e,{code:_3.code,shortMessage:"Request exceeds defined limit."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"LimitExceededRpcError"})}}Object.defineProperty(_3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class S3 extends T0{constructor(e){super(e,{code:S3.code,shortMessage:"Version of JSON-RPC protocol is not supported."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"JsonRpcVersionUnsupportedError"})}}Object.defineProperty(S3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class _e extends zs{constructor(e){super(e,{code:_e.code,shortMessage:"User rejected the request."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UserRejectedRequestError"})}}Object.defineProperty(_e,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class P3 extends zs{constructor(e){super(e,{code:P3.code,shortMessage:"The requested method and/or account has not been authorized by the user."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnauthorizedProviderError"})}}Object.defineProperty(P3,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class T3 extends zs{constructor(e){super(e,{code:T3.code,shortMessage:"The Provider does not support the requested method."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnsupportedProviderMethodError"})}}Object.defineProperty(T3,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class I3 extends zs{constructor(e){super(e,{code:I3.code,shortMessage:"The Provider is disconnected from all chains."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ProviderDisconnectedError"})}}Object.defineProperty(I3,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class O3 extends zs{constructor(e){super(e,{code:O3.code,shortMessage:"The Provider is not connected to the requested chain."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ChainDisconnectedError"})}}Object.defineProperty(O3,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class En extends zs{constructor(e){super(e,{code:En.code,shortMessage:"An error occurred when attempting to switch chain."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SwitchChainError"})}}Object.defineProperty(En,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class QO extends T0{constructor(e){super(e,{shortMessage:"An unknown RPC error occurred."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownRpcError"})}}const VO=3;function N3(u,{abi:e,address:t,args:n,docsPath:r,functionName:i,sender:a}){const{code:o,data:s,message:l,shortMessage:c}=u instanceof Wh?u:u instanceof gu?u.walk(d=>"data"in d)||u.walk():{},E=(()=>u instanceof Z2?new HO({functionName:i}):[VO,hs.code].includes(o)&&(s||l||c)?new Z6({abi:e,data:typeof s=="object"?s.data:s,functionName:i,message:c??l}):u)();return new $h(E,{abi:e,args:n,contractAddress:t,docsPath:r,functionName:i,sender:a})}class Ms extends gu{constructor({docsPath:e}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the WalletClient."].join(` -`),{docsPath:e,docsSlug:"account"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AccountNotFoundError"})}}class JO extends gu{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d}){const f=bl({from:t==null?void 0:t.address,to:E,value:typeof d<"u"&&`${Lh(d)} ${(r==null?void 0:r.nativeCurrency.symbol)||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${k0(o)} gwei`,maxFeePerGas:typeof s<"u"&&`${k0(s)} gwei`,maxPriorityFeePerGas:typeof l<"u"&&`${k0(l)} gwei`,nonce:c});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Estimate Gas Arguments:",f].filter(Boolean)}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EstimateGasExecutionError"}),this.cause=e}}function Hh(u,e){const t=(u.details||"").toLowerCase(),n=u.walk(r=>r.code===Za.code);return n instanceof gu?new Za({cause:u,message:n.details}):Za.nodeMessage.test(t)?new Za({cause:u,message:u.details}):UE.nodeMessage.test(t)?new UE({cause:u,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):q6.nodeMessage.test(t)?new q6({cause:u,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):H6.nodeMessage.test(t)?new H6({cause:u,nonce:e==null?void 0:e.nonce}):G6.nodeMessage.test(t)?new G6({cause:u,nonce:e==null?void 0:e.nonce}):K6.nodeMessage.test(t)?new K6({cause:u,nonce:e==null?void 0:e.nonce}):Q6.nodeMessage.test(t)?new Q6({cause:u}):V6.nodeMessage.test(t)?new V6({cause:u,gas:e==null?void 0:e.gas}):J6.nodeMessage.test(t)?new J6({cause:u,gas:e==null?void 0:e.gas}):Y6.nodeMessage.test(t)?new Y6({cause:u}):LE.nodeMessage.test(t)?new LE({cause:u,maxFeePerGas:e==null?void 0:e.maxFeePerGas,maxPriorityFeePerGas:e==null?void 0:e.maxPriorityFeePerGas}):new Y2({cause:u})}function YO(u,{docsPath:e,...t}){const n=(()=>{const r=Hh(u,t);return r instanceof Y2?u:r})();return new JO(n,{docsPath:e,...t})}function Gh(u,{format:e}){return e?Object.keys(e({})).reduce((n,r)=>(u!=null&&u.hasOwnProperty(r)&&(n[r]=u[r]),n),{}):{}}function wl(u){const{account:e,gasPrice:t,maxFeePerGas:n,maxPriorityFeePerGas:r,to:i}=u,a=e?Ct(e):void 0;if(a&&!fs(a.address))throw new B3({address:a.address});if(i&&!fs(i))throw new B3({address:i});if(typeof t<"u"&&(typeof n<"u"||typeof r<"u"))throw new LO;if(n&&n>2n**256n-1n)throw new UE({maxFeePerGas:n});if(r&&n&&r>n)throw new LE({maxFeePerGas:n,maxPriorityFeePerGas:r})}class XO extends gu{constructor(){super("`baseFeeMultiplier` must be greater than 1."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseFeeScalarError"})}}class Kh extends gu{constructor(){super("Chain does not support EIP-1559 fees."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Eip1559FeesNotSupportedError"})}}class ZO extends gu{constructor({maxPriorityFeePerGas:e}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${k0(e)} gwei).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"MaxFeePerGasTooLowError"})}}class uN extends gu{constructor({blockHash:e,blockNumber:t}){let n="Block";e&&(n=`Block at hash "${e}"`),t&&(n=`Block at number "${t}"`),super(`${n} could not be found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BlockNotFoundError"})}}async function Jr(u,{blockHash:e,blockNumber:t,blockTag:n,includeTransactions:r}={}){var c,E,d;const i=n??"latest",a=r??!1,o=t!==void 0?zu(t):void 0;let s=null;if(e?s=await u.request({method:"eth_getBlockByHash",params:[e,a]}):s=await u.request({method:"eth_getBlockByNumber",params:[o||i,a]}),!s)throw new uN({blockHash:e,blockNumber:t});return(((d=(E=(c=u.chain)==null?void 0:c.formatters)==null?void 0:E.block)==null?void 0:d.format)||Sh)(s)}async function Qh(u){const e=await u.request({method:"eth_gasPrice"});return BigInt(e)}async function eN(u,e){return gF(u,e)}async function gF(u,e){var i,a,o;const{block:t,chain:n=u.chain,request:r}=e||{};if(typeof((i=n==null?void 0:n.fees)==null?void 0:i.defaultPriorityFee)=="function"){const s=t||await Jr(u);return n.fees.defaultPriorityFee({block:s,client:u,request:r})}else if(typeof((a=n==null?void 0:n.fees)==null?void 0:a.defaultPriorityFee)<"u")return(o=n==null?void 0:n.fees)==null?void 0:o.defaultPriorityFee;try{const s=await u.request({method:"eth_maxPriorityFeePerGas"});return In(s)}catch{const[s,l]=await Promise.all([t?Promise.resolve(t):Jr(u),Qh(u)]);if(typeof s.baseFeePerGas!="bigint")throw new Kh;const c=l-s.baseFeePerGas;return c<0n?0n:c}}async function tN(u,e){return ef(u,e)}async function ef(u,e){var d,f;const{block:t,chain:n=u.chain,request:r,type:i="eip1559"}=e||{},a=await(async()=>{var C,h;return typeof((C=n==null?void 0:n.fees)==null?void 0:C.baseFeeMultiplier)=="function"?n.fees.baseFeeMultiplier({block:t,client:u,request:r}):((h=n==null?void 0:n.fees)==null?void 0:h.baseFeeMultiplier)??1.2})();if(a<1)throw new XO;const s=10**(((d=a.toString().split(".")[1])==null?void 0:d.length)??0),l=C=>C*BigInt(Math.ceil(a*s))/BigInt(s),c=t||await Jr(u);if(typeof((f=n==null?void 0:n.fees)==null?void 0:f.estimateFeesPerGas)=="function")return n.fees.estimateFeesPerGas({block:t,client:u,multiply:l,request:r,type:i});if(i==="eip1559"){if(typeof c.baseFeePerGas!="bigint")throw new Kh;const C=r!=null&&r.maxPriorityFeePerGas?r.maxPriorityFeePerGas:await gF(u,{block:c,chain:n,request:r}),h=l(c.baseFeePerGas);return{maxFeePerGas:(r==null?void 0:r.maxFeePerGas)??h+C,maxPriorityFeePerGas:C}}return{gasPrice:(r==null?void 0:r.gasPrice)??l(await Qh(u))}}async function AF(u,{address:e,blockTag:t="latest",blockNumber:n}){const r=await u.request({method:"eth_getTransactionCount",params:[e,n?zu(n):t]});return u0(r)}function nN(u){if(u.type)return u.type;if(typeof u.maxFeePerGas<"u"||typeof u.maxPriorityFeePerGas<"u")return"eip1559";if(typeof u.gasPrice<"u")return typeof u.accessList<"u"?"eip2930":"legacy";throw new $O({transaction:u})}async function rd(u,e){const{account:t=u.account,chain:n,gas:r,nonce:i,type:a}=e;if(!t)throw new Ms;const o=Ct(t),s=await Jr(u,{blockTag:"latest"}),l={...e,from:o.address};if(typeof i>"u"&&(l.nonce=await AF(u,{address:o.address,blockTag:"pending"})),typeof a>"u")try{l.type=nN(l)}catch{l.type=typeof s.baseFeePerGas=="bigint"?"eip1559":"legacy"}if(l.type==="eip1559"){const{maxFeePerGas:c,maxPriorityFeePerGas:E}=await ef(u,{block:s,chain:n,request:l});if(typeof e.maxPriorityFeePerGas>"u"&&e.maxFeePerGas&&e.maxFeePerGas"u"&&(l.gas=await Vh(u,{...l,account:{address:o.address,type:"json-rpc"}})),wl(l),l}async function Vh(u,e){var r,i,a;const t=e.account??u.account;if(!t)throw new Ms({docsPath:"/docs/actions/public/estimateGas"});const n=Ct(t);try{const{accessList:o,blockNumber:s,blockTag:l,data:c,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,to:B,value:g,...m}=n.type==="local"?await rd(u,e):e,v=(s?zu(s):void 0)||l;wl(e);const w=((a=(i=(r=u.chain)==null?void 0:r.formatters)==null?void 0:i.transactionRequest)==null?void 0:a.format)||J2,D=w({...Gh(m,{format:w}),from:n.address,accessList:o,data:c,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,to:B,value:g}),p=await u.request({method:"eth_estimateGas",params:v?[D,v]:[D]});return BigInt(p)}catch(o){throw YO(o,{...e,account:n,chain:u.chain})}}async function rN(u,{abi:e,address:t,args:n,functionName:r,...i}){const a=ii({abi:e,args:n,functionName:r});try{return await Vh(u,{data:a,to:t,...i})}catch(o){const s=i.account?Ct(i.account):void 0;throw N3(o,{abi:e,address:t,args:n,docsPath:"/docs/contract/estimateContractGas",functionName:r,sender:s==null?void 0:s.address})}}const E8="/docs/contract/decodeEventLog";function xl({abi:u,data:e,strict:t,topics:n}){const r=t??!0,[i,...a]=n;if(!i)throw new zI({docsPath:E8});const o=u.find(C=>C.type==="event"&&i===Rh(ri(C)));if(!(o&&"name"in o)||o.type!=="event")throw new MI(i,{docsPath:E8});const{name:s,inputs:l}=o,c=l==null?void 0:l.some(C=>!("name"in C&&C.name));let E=c?[]:{};const d=l.filter(C=>"indexed"in C&&C.indexed);for(let C=0;C!("indexed"in C&&C.indexed));if(f.length>0){if(e&&e!=="0x")try{const C=nd(f,e);if(C)if(c)E=[...E,...C];else for(let h=0;h0?E:void 0}}function iN({param:u,value:e}){return u.type==="string"||u.type==="bytes"||u.type==="tuple"||u.type.match(/^(.*)\[(\d+)?\]$/)?e:(nd([u],e)||[])[0]}async function Jh(u,{address:e,blockHash:t,fromBlock:n,toBlock:r,event:i,events:a,args:o,strict:s}={}){const l=s??!1,c=a??(i?[i]:void 0);let E=[];c&&(E=[c.flatMap(f=>Dl({abi:[f],eventName:f.name,args:o}))],i&&(E=E[0]));let d;return t?d=await u.request({method:"eth_getLogs",params:[{address:e,topics:E,blockHash:t}]}):d=await u.request({method:"eth_getLogs",params:[{address:e,topics:E,fromBlock:typeof n=="bigint"?zu(n):n,toBlock:typeof r=="bigint"?zu(r):r}]}),d.map(f=>{var C;try{const{eventName:h,args:B}=c?xl({abi:c,data:f.data,topics:f.topics,strict:l}):{eventName:void 0,args:void 0};return jt(f,{args:B,eventName:h})}catch(h){let B,g;if(h instanceof oa||h instanceof js){if(l)return;B=h.abiItem.name,g=(C=h.abiItem.inputs)==null?void 0:C.some(m=>!("name"in m&&m.name))}return jt(f,{args:g?[]:{},eventName:B})}}).filter(Boolean)}async function yF(u,{abi:e,address:t,args:n,blockHash:r,eventName:i,fromBlock:a,toBlock:o,strict:s}){const l=i?Fl({abi:e,name:i}):void 0,c=l?void 0:e.filter(E=>E.type==="event");return Jh(u,{address:t,args:n,blockHash:r,event:l,events:c,fromBlock:a,toBlock:o,strict:s})}const H9="/docs/contract/decodeFunctionResult";function Us({abi:u,args:e,functionName:t,data:n}){let r=u[0];if(t&&(r=Fl({abi:u,args:e,name:t}),!r))throw new $E(t,{docsPath:H9});if(r.type!=="function")throw new $E(void 0,{docsPath:H9});if(!r.outputs)throw new UI(r.name,{docsPath:H9});const i=nd(r.outputs,n);if(i&&i.length>1)return i;if(i&&i.length===1)return i[0]}const tf=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"}],BF=[{inputs:[],name:"ResolverNotFound",type:"error"},{inputs:[],name:"ResolverWildcardNotSupported",type:"error"}],vF=[...BF,{name:"resolve",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],aN=[...BF,{name:"reverse",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolvedAddress"},{type:"address",name:"reverseResolver"},{type:"address",name:"resolver"}]}],d8=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],f8=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],oN=[{inputs:[{internalType:"address",name:"_signer",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"}],sN="0x82ad56cb";function lN(u,{docsPath:e,...t}){const n=(()=>{const r=Hh(u,t);return r instanceof Y2?u:r})();return new mF(n,{docsPath:e,...t})}const G9=new Map;function Yh({fn:u,id:e,shouldSplitBatch:t,wait:n=0}){const r=async()=>{const l=o();i();const c=l.map(({args:E})=>E);c.length!==0&&u(c).then(E=>{l.forEach(({pendingPromise:d},f)=>{var C;return(C=d.resolve)==null?void 0:C.call(d,[E[f],E])})}).catch(E=>{l.forEach(({pendingPromise:d})=>{var f;return(f=d.reject)==null?void 0:f.call(d,E)})})},i=()=>G9.delete(e),a=()=>o().map(({args:l})=>l),o=()=>G9.get(e)||[],s=l=>G9.set(e,[...o(),l]);return{flush:i,async schedule(l){const c={},E=new Promise((C,h)=>{c.resolve=C,c.reject=h});return(t==null?void 0:t([...a(),l]))&&r(),o().length>0?(s({args:l,pendingPromise:c}),E):(s({args:l,pendingPromise:c}),setTimeout(r,n),E)}}}async function id(u,e){var g,m,y,v;const{account:t=u.account,batch:n=!!((g=u.batch)!=null&&g.multicall),blockNumber:r,blockTag:i="latest",accessList:a,data:o,gas:s,gasPrice:l,maxFeePerGas:c,maxPriorityFeePerGas:E,nonce:d,to:f,value:C,...h}=e,B=t?Ct(t):void 0;try{wl(e);const D=(r?zu(r):void 0)||i,p=((v=(y=(m=u.chain)==null?void 0:m.formatters)==null?void 0:y.transactionRequest)==null?void 0:v.format)||J2,x=p({...Gh(h,{format:p}),from:B==null?void 0:B.address,accessList:a,data:o,gas:s,gasPrice:l,maxFeePerGas:c,maxPriorityFeePerGas:E,nonce:d,to:f,value:C});if(n&&cN({request:x}))try{return await EN(u,{...x,blockNumber:r,blockTag:i})}catch(O){if(!(O instanceof Kv)&&!(O instanceof W6))throw O}const j=await u.request({method:"eth_call",params:D?[x,D]:[x]});return j==="0x"?{data:void 0}:{data:j}}catch(w){const D=dN(w),{offchainLookup:p,offchainLookupSignature:x}=await Wu(()=>import("./ccip-9658a292.js"),[]);if((D==null?void 0:D.slice(0,10))===x&&f)return{data:await p(u,{data:D,to:f})};throw lN(w,{...e,account:B,chain:u.chain})}}function cN({request:u}){const{data:e,to:t,...n}=u;return!(!e||e.startsWith(sN)||!t||Object.values(n).filter(r=>typeof r<"u").length>0)}async function EN(u,e){var h;const{batchSize:t=1024,wait:n=0}=typeof((h=u.batch)==null?void 0:h.multicall)=="object"?u.batch.multicall:{},{blockNumber:r,blockTag:i="latest",data:a,multicallAddress:o,to:s}=e;let l=o;if(!l){if(!u.chain)throw new Kv;l=Ns({blockNumber:r,chain:u.chain,contract:"multicall3"})}const E=(r?zu(r):void 0)||i,{schedule:d}=Yh({id:`${u.uid}.${E}`,wait:n,shouldSplitBatch(B){return B.reduce((m,{data:y})=>m+(y.length-2),0)>t*2},fn:async B=>{const g=B.map(v=>({allowFailure:!0,callData:v.data,target:v.to})),m=ii({abi:tf,args:[g],functionName:"aggregate3"}),y=await u.request({method:"eth_call",params:[{data:m,to:l},E]});return Us({abi:tf,args:[g],functionName:"aggregate3",data:y||"0x"})}}),[{returnData:f,success:C}]=await d({data:a,to:s});if(!C)throw new Wh({data:f});return f==="0x"?{data:void 0}:{data:f}}function dN(u){if(!(u instanceof gu))return;const e=u.walk();return typeof e.data=="object"?e.data.data:e.data}async function Yr(u,{abi:e,address:t,args:n,functionName:r,...i}){const a=ii({abi:e,args:n,functionName:r});try{const{data:o}=await id(u,{data:a,to:t,...i});return Us({abi:e,args:n,functionName:r,data:o||"0x"})}catch(o){throw N3(o,{abi:e,address:t,args:n,docsPath:"/docs/contract/readContract",functionName:r})}}async function fN(u,{abi:e,address:t,args:n,dataSuffix:r,functionName:i,...a}){const o=a.account?Ct(a.account):void 0,s=ii({abi:e,args:n,functionName:i});try{const{data:l}=await id(u,{batch:!1,data:`${s}${r?r.replace("0x",""):""}`,to:t,...a});return{result:Us({abi:e,args:n,functionName:i,data:l||"0x"}),request:{abi:e,address:t,args:n,dataSuffix:r,functionName:i,...a}}}catch(l){throw N3(l,{abi:e,address:t,args:n,docsPath:"/docs/contract/simulateContract",functionName:i,sender:o==null?void 0:o.address})}}const K9=new Map,p8=new Map;let pN=0;function Ls(u,e,t){const n=++pN,r=()=>K9.get(u)||[],i=()=>{const c=r();K9.set(u,c.filter(E=>E.id!==n))},a=()=>{const c=p8.get(u);r().length===1&&c&&c(),i()},o=r();if(K9.set(u,[...o,{id:n,fns:e}]),o&&o.length>0)return a;const s={};for(const c in e)s[c]=(...E)=>{const d=r();d.length!==0&&d.forEach(f=>{var C,h;return(h=(C=f.fns)[c])==null?void 0:h.call(C,...E)})};const l=t(s);return typeof l=="function"&&p8.set(u,l),a}async function HE(u){return new Promise(e=>setTimeout(e,u))}function kl(u,{emitOnBegin:e,initialWaitTime:t,interval:n}){let r=!0;const i=()=>r=!1;return(async()=>{let o;e&&(o=await u({unpoll:i}));const s=await(t==null?void 0:t(o))??n;await HE(s);const l=async()=>{r&&(await u({unpoll:i}),await HE(n),l())};l()})(),i}const hN=new Map,CN=new Map;function mN(u){const e=(r,i)=>({clear:()=>i.delete(r),get:()=>i.get(r),set:a=>i.set(r,a)}),t=e(u,hN),n=e(u,CN);return{clear:()=>{t.clear(),n.clear()},promise:t,response:n}}async function gN(u,{cacheKey:e,cacheTime:t=1/0}){const n=mN(e),r=n.response.get();if(r&&t>0&&new Date().getTime()-r.created.getTime()`blockNumber.${u}`;async function _l(u,{cacheTime:e=u.cacheTime,maxAge:t}={}){const n=await gN(()=>u.request({method:"eth_blockNumber"}),{cacheKey:AN(u.uid),cacheTime:t??e});return BigInt(n)}async function ad(u,{filter:e}){const t="strict"in e&&e.strict;return(await e.request({method:"eth_getFilterChanges",params:[e.id]})).map(r=>{var i;if(typeof r=="string")return r;try{const{eventName:a,args:o}="abi"in e&&e.abi?xl({abi:e.abi,data:r.data,topics:r.topics,strict:t}):{eventName:void 0,args:void 0};return jt(r,{args:o,eventName:a})}catch(a){let o,s;if(a instanceof oa||a instanceof js){if("strict"in e&&e.strict)return;o=a.abiItem.name,s=(i=a.abiItem.inputs)==null?void 0:i.some(l=>!("name"in l&&l.name))}return jt(r,{args:s?[]:{},eventName:o})}}).filter(Boolean)}async function od(u,{filter:e}){return e.request({method:"eth_uninstallFilter",params:[e.id]})}function yN(u,{abi:e,address:t,args:n,batch:r=!0,eventName:i,onError:a,onLogs:o,poll:s,pollingInterval:l=u.pollingInterval,strict:c}){return(typeof s<"u"?s:u.transport.type!=="webSocket")?(()=>{const C=f0(["watchContractEvent",t,n,r,u.uid,i,l]),h=c??!1;return Ls(C,{onLogs:o,onError:a},B=>{let g,m,y=!1;const v=kl(async()=>{var w;if(!y){try{m=await dF(u,{abi:e,address:t,args:n,eventName:i,strict:h})}catch{}y=!0;return}try{let D;if(m)D=await ad(u,{filter:m});else{const p=await _l(u);g&&g!==p?D=await yF(u,{abi:e,address:t,args:n,fromBlock:g+1n,toBlock:p,strict:h}):D=[],g=p}if(D.length===0)return;r?B.onLogs(D):D.forEach(p=>B.onLogs([p]))}catch(D){m&&D instanceof sa&&(y=!1),(w=B.onError)==null||w.call(B,D)}},{emitOnBegin:!0,interval:l});return async()=>{m&&await od(u,{filter:m}),v()}})})():(()=>{let C=!0,h=()=>C=!1;return(async()=>{try{const B=i?Dl({abi:e,eventName:i,args:n}):[],{unsubscribe:g}=await u.transport.subscribe({params:["logs",{address:t,topics:B}],onData(m){var v;if(!C)return;const y=m.result;try{const{eventName:w,args:D}=xl({abi:e,data:y.data,topics:y.topics,strict:c}),p=jt(y,{args:D,eventName:w});o([p])}catch(w){let D,p;if(w instanceof oa||w instanceof js){if(c)return;D=w.abiItem.name,p=(v=w.abiItem.inputs)==null?void 0:v.some(j=>!("name"in j&&j.name))}const x=jt(y,{args:p?[]:{},eventName:D});o([x])}},onError(m){a==null||a(m)}});h=g,C||h()}catch(B){a==null||a(B)}})(),h})()}function BN(u,{docsPath:e,...t}){const n=(()=>{const r=Hh(u,t);return r instanceof Y2?u:r})();return new WO(n,{docsPath:e,...t})}async function R3(u){const e=await u.request({method:"eth_chainId"});return u0(e)}async function Xh(u,{serializedTransaction:e}){return u.request({method:"eth_sendRawTransaction",params:[e]})}async function Zh(u,e){var h,B,g;const{account:t=u.account,chain:n=u.chain,accessList:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d,...f}=e;if(!t)throw new Ms({docsPath:"/docs/actions/wallet/sendTransaction"});const C=Ct(t);try{wl(e);let m;if(n!==null&&(m=await R3(u),Qv({currentChainId:m,chain:n})),C.type==="local"){const w=await rd(u,{account:C,accessList:r,chain:n,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d,...f});m||(m=await R3(u));const D=(h=n==null?void 0:n.serializers)==null?void 0:h.transaction,p=await C.signTransaction({...w,chainId:m},{serializer:D});return await Xh(u,{serializedTransaction:p})}const y=((g=(B=n==null?void 0:n.formatters)==null?void 0:B.transactionRequest)==null?void 0:g.format)||J2,v=y({...Gh(f,{format:y}),accessList:r,data:i,from:C.address,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d});return await u.request({method:"eth_sendTransaction",params:[v]})}catch(m){throw BN(m,{...e,account:C,chain:e.chain||void 0})}}async function vN(u,{abi:e,address:t,args:n,dataSuffix:r,functionName:i,...a}){const o=ii({abi:e,args:n,functionName:i});return await Zh(u,{data:`${o}${r?r.replace("0x",""):""}`,to:t,...a})}async function FN(u,{chain:e}){const{id:t,name:n,nativeCurrency:r,rpcUrls:i,blockExplorers:a}=e;await u.request({method:"wallet_addEthereumChain",params:[{chainId:zu(t),chainName:n,nativeCurrency:r,rpcUrls:i.default.http,blockExplorerUrls:a?Object.values(a).map(({url:o})=>o):void 0}]})}const nf=256;let gc=nf,Ac;function DN(u=11){if(!Ac||gc+u>nf*2){Ac="",gc=0;for(let e=0;e{const g=B(h);for(const y in f)delete g[y];const m={...h,...g};return Object.assign(m,{extend:C(m)})}}return Object.assign(f,{extend:C(f)})}function DF(u,{delay:e=100,retryCount:t=2,shouldRetry:n=()=>!0}={}){return new Promise((r,i)=>{const a=async({count:o=0}={})=>{const s=async({error:l})=>{const c=typeof e=="function"?e({count:o,error:l}):e;c&&await HE(c),a({count:o+1})};try{const l=await u();r(l)}catch(l){if(o"code"in u?u.code!==-1&&u.code!==-32004&&u.code!==-32005&&u.code!==-32042&&u.code!==-32603:u instanceof V4&&u.status?u.status!==403&&u.status!==408&&u.status!==413&&u.status!==429&&u.status!==500&&u.status!==502&&u.status!==503&&u.status!==504:!1;function bN(u,{retryDelay:e=150,retryCount:t=3}={}){return async n=>DF(async()=>{try{return await u(n)}catch(r){const i=r;switch(i.code){case v3.code:throw new v3(i);case F3.code:throw new F3(i);case D3.code:throw new D3(i);case b3.code:throw new b3(i);case hs.code:throw new hs(i);case sa.code:throw new sa(i);case w3.code:throw new w3(i);case Vr.code:throw new Vr(i);case x3.code:throw new x3(i);case k3.code:throw new k3(i);case _3.code:throw new _3(i);case S3.code:throw new S3(i);case _e.code:throw new _e(i);case P3.code:throw new P3(i);case T3.code:throw new T3(i);case I3.code:throw new I3(i);case O3.code:throw new O3(i);case En.code:throw new En(i);case 5e3:throw new _e(i);default:throw r instanceof gu?r:new QO(i)}}},{delay:({count:r,error:i})=>{var a;if(i&&i instanceof V4){const o=(a=i==null?void 0:i.headers)==null?void 0:a.get("Retry-After");if(o!=null&&o.match(/\d/))return parseInt(o)*1e3}return~~(1<!bF(r)})}function sd({key:u,name:e,request:t,retryCount:n=3,retryDelay:r=150,timeout:i,type:a},o){return{config:{key:u,name:e,request:t,retryCount:n,retryDelay:r,timeout:i,type:a},request:bN(t,{retryCount:n,retryDelay:r}),value:o}}function Sl(u,e={}){const{key:t="custom",name:n="Custom Provider",retryDelay:r}=e;return({retryCount:i})=>sd({key:t,name:n,request:u.request.bind(u),retryCount:e.retryCount??i,retryDelay:r,type:"custom"})}function h8(u,e={}){const{key:t="fallback",name:n="Fallback",rank:r=!1,retryCount:i,retryDelay:a}=e;return({chain:o,pollingInterval:s=4e3,timeout:l})=>{let c=u,E=()=>{};const d=sd({key:t,name:n,async request({method:f,params:C}){const h=async(B=0)=>{const g=c[B]({chain:o,retryCount:0,timeout:l});try{const m=await g.request({method:f,params:C});return E({method:f,params:C,response:m,transport:g,status:"success"}),m}catch(m){if(E({error:m,method:f,params:C,transport:g,status:"error"}),bF(m)||B===c.length-1)throw m;return h(B+1)}};return h()},retryCount:i,retryDelay:a,type:"fallback"},{onResponse:f=>E=f,transports:c.map(f=>f({chain:o,retryCount:0}))});if(r){const f=typeof r=="object"?r:{};wN({chain:o,interval:f.interval??s,onTransports:C=>c=C,sampleCount:f.sampleCount,timeout:f.timeout,transports:c,weights:f.weights})}return d}}function wN({chain:u,interval:e=4e3,onTransports:t,sampleCount:n=10,timeout:r=1e3,transports:i,weights:a={}}){const{stability:o=.7,latency:s=.3}=a,l=[],c=async()=>{const E=await Promise.all(i.map(async C=>{const h=C({chain:u,retryCount:0,timeout:r}),B=Date.now();let g,m;try{await h.request({method:"net_listening"}),m=1}catch{m=0}finally{g=Date.now()}return{latency:g-B,success:m}}));l.push(E),l.length>n&&l.shift();const d=Math.max(...l.map(C=>Math.max(...C.map(({latency:h})=>h)))),f=i.map((C,h)=>{const B=l.map(w=>w[h].latency),m=1-B.reduce((w,D)=>w+D,0)/B.length/d,y=l.map(w=>w[h].success),v=y.reduce((w,D)=>w+D,0)/y.length;return v===0?[0,h]:[s*m+o*v,h]}).sort((C,h)=>h[0]-C[0]);t(f.map(([,C])=>i[C])),await HE(e),c()};c()}class wF extends gu{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro"})}}function xN(){if(typeof WebSocket<"u")return WebSocket;if(typeof globalThis.WebSocket<"u")return globalThis.WebSocket;if(typeof window.WebSocket<"u")return window.WebSocket;if(typeof self.WebSocket<"u")return self.WebSocket;throw new Error("`WebSocket` is not supported in this environment")}const C8=xN();function xF(u,{errorInstance:e=new Error("timed out"),timeout:t,signal:n}){return new Promise((r,i)=>{(async()=>{let a;try{const o=new AbortController;t>0&&(a=setTimeout(()=>{n?o.abort():i(e)},t)),r(await u({signal:o==null?void 0:o.signal}))}catch(o){o.name==="AbortError"&&i(e),i(o)}finally{clearTimeout(a)}})()})}let rf=0;async function kN(u,{body:e,fetchOptions:t={},timeout:n=1e4}){var o;const{headers:r,method:i,signal:a}=t;try{const s=await xF(async({signal:c})=>await fetch(u,{...t,body:Array.isArray(e)?f0(e.map(d=>({jsonrpc:"2.0",id:d.id??rf++,...d}))):f0({jsonrpc:"2.0",id:e.id??rf++,...e}),headers:{...r,"Content-Type":"application/json"},method:i||"POST",signal:a||(n>0?c:void 0)}),{errorInstance:new uf({body:e,url:u}),timeout:n,signal:!0});let l;if((o=s.headers.get("Content-Type"))!=null&&o.startsWith("application/json")?l=await s.json():l=await s.text(),!s.ok)throw new V4({body:e,details:f0(l.error)||s.statusText,headers:s.headers,status:s.status,url:u});return l}catch(s){throw s instanceof V4||s instanceof uf?s:new V4({body:e,details:s.message,url:u})}}const Q9=new Map;async function V9(u){let e=Q9.get(u);if(e)return e;const{schedule:t}=Yh({id:u,fn:async()=>{const i=new C8(u),a=new Map,o=new Map,s=({data:c})=>{const E=JSON.parse(c),d=E.method==="eth_subscription",f=d?E.params.subscription:E.id,C=d?o:a,h=C.get(f);h&&h({data:c}),d||C.delete(f)},l=()=>{Q9.delete(u),i.removeEventListener("close",l),i.removeEventListener("message",s)};return i.addEventListener("close",l),i.addEventListener("message",s),i.readyState===C8.CONNECTING&&await new Promise((c,E)=>{i&&(i.onopen=c,i.onerror=E)}),e=Object.assign(i,{requests:a,subscriptions:o}),Q9.set(u,e),[e]}}),[n,[r]]=await t();return r}function _N(u,{body:e,onResponse:t}){if(u.readyState===u.CLOSED||u.readyState===u.CLOSING)throw new GO({body:e,url:u.url,details:"Socket is closed."});const n=rf++,r=({data:i})=>{var o;const a=JSON.parse(i);typeof a.id=="number"&&n!==a.id||(t==null||t(a),e.method==="eth_subscribe"&&typeof a.result=="string"&&u.subscriptions.set(a.result,r),e.method==="eth_unsubscribe"&&u.subscriptions.delete((o=e.params)==null?void 0:o[0]))};return u.requests.set(n,r),u.send(JSON.stringify({jsonrpc:"2.0",...e,id:n})),u}async function SN(u,{body:e,timeout:t=1e4}){return xF(()=>new Promise(n=>Co.webSocket(u,{body:e,onResponse:n})),{errorInstance:new uf({body:e,url:u.url}),timeout:t})}const Co={http:kN,webSocket:_N,webSocketAsync:SN};function PN(u,e={}){const{batch:t,fetchOptions:n,key:r="http",name:i="HTTP JSON-RPC",retryDelay:a}=e;return({chain:o,retryCount:s,timeout:l})=>{const{batchSize:c=1e3,wait:E=0}=typeof t=="object"?t:{},d=e.retryCount??s,f=l??e.timeout??1e4,C=u||(o==null?void 0:o.rpcUrls.default.http[0]);if(!C)throw new wF;return sd({key:r,name:i,async request({method:h,params:B}){const g={method:h,params:B},{schedule:m}=Yh({id:`${u}`,wait:E,shouldSplitBatch(D){return D.length>c},fn:D=>Co.http(C,{body:D,fetchOptions:n,timeout:f})}),y=async D=>t?m(D):[await Co.http(C,{body:D,fetchOptions:n,timeout:f})],[{error:v,result:w}]=await y(g);if(v)throw new qh({body:g,error:v,url:C});return w},retryCount:d,retryDelay:a,timeout:f,type:"http"},{fetchOptions:n,url:u})}}function u5(u,e){var n,r,i;if(!(u instanceof gu))return!1;const t=u.walk(a=>a instanceof Z6);return t instanceof Z6?!!(((n=t.data)==null?void 0:n.errorName)==="ResolverNotFound"||((r=t.data)==null?void 0:r.errorName)==="ResolverWildcardNotSupported"||(i=t.reason)!=null&&i.includes("Wildcard on non-extended resolvers is not supported")||e==="reverse"&&t.reason===fF[50]):!1}function kF(u){if(u.length!==66||u.indexOf("[")!==0||u.indexOf("]")!==65)return null;const e=`0x${u.slice(1,65)}`;return cn(e)?e:null}function Vc(u){let e=new Uint8Array(32).fill(0);if(!u)return y3(e);const t=u.split(".");for(let n=t.length-1;n>=0;n-=1){const r=kF(t[n]),i=r?Qr(r):s0($n(t[n]),"bytes");e=s0(Vn([e,i]),"bytes")}return y3(e)}function TN(u){return`[${u.slice(2)}]`}function IN(u){const e=new Uint8Array(32).fill(0);return u?kF(u)||s0($n(u)):y3(e)}function ld(u){const e=u.replace(/^\.|\.$/gm,"");if(e.length===0)return new Uint8Array(1);const t=new Uint8Array($n(e).byteLength+2);let n=0;const r=e.split(".");for(let i=0;i255&&(a=$n(TN(IN(r[i])))),t[n]=a.length,t.set(a,n+1),n+=a.length+1}return t.byteLength!==n+1?t.slice(0,n+1):t}async function ON(u,{blockNumber:e,blockTag:t,coinType:n,name:r,universalResolverAddress:i}){let a=i;if(!a){if(!u.chain)throw new Error("client chain not configured. universalResolverAddress is required.");a=Ns({blockNumber:e,chain:u.chain,contract:"ensUniversalResolver"})}try{const o=ii({abi:f8,functionName:"addr",...n!=null?{args:[Vc(r),BigInt(n)]}:{args:[Vc(r)]}}),s=await Yr(u,{address:a,abi:vF,functionName:"resolve",args:[er(ld(r)),o],blockNumber:e,blockTag:t});if(s[0]==="0x")return null;const l=Us({abi:f8,args:n!=null?[Vc(r),BigInt(n)]:void 0,functionName:"addr",data:s[0]});return l==="0x"||Ji(l)==="0x00"?null:l}catch(o){if(u5(o,"resolve"))return null;throw o}}class NN extends gu{constructor({data:e}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarInvalidMetadataError"})}}class C4 extends gu{constructor({reason:e}){super(`ENS NFT avatar URI is invalid. ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarInvalidNftUriError"})}}class e5 extends gu{constructor({uri:e}){super(`Unable to resolve ENS avatar URI "${e}". The URI may be malformed, invalid, or does not respond with a valid image.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarUriResolutionError"})}}class RN extends gu{constructor({namespace:e}){super(`ENS NFT avatar namespace "${e}" is not supported. Must be "erc721" or "erc1155".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarUnsupportedNamespaceError"})}}const jN=/(?https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?\/)?(?ipfs\/|ipns\/)?(?[\w\-.]+)(?\/.*)?/,zN=/^(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\-.]+))?(?\/.*)?$/,MN=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,UN=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function LN(u){try{const e=await fetch(u,{method:"HEAD"});if(e.status===200){const t=e.headers.get("content-type");return t==null?void 0:t.startsWith("image/")}return!1}catch(e){return typeof e=="object"&&typeof e.response<"u"||!globalThis.hasOwnProperty("Image")?!1:new Promise(t=>{const n=new Image;n.onload=()=>{t(!0)},n.onerror=()=>{t(!1)},n.src=u})}}function m8(u,e){return u?u.endsWith("/")?u.slice(0,-1):u:e}function _F({uri:u,gatewayUrls:e}){const t=MN.test(u);if(t)return{uri:u,isOnChain:!0,isEncoded:t};const n=m8(e==null?void 0:e.ipfs,"https://ipfs.io"),r=m8(e==null?void 0:e.arweave,"https://arweave.net"),i=u.match(jN),{protocol:a,subpath:o,target:s,subtarget:l=""}=(i==null?void 0:i.groups)||{},c=a==="ipns:/"||o==="ipns/",E=a==="ipfs:/"||o==="ipfs/"||zN.test(u);if(u.startsWith("http")&&!c&&!E){let f=u;return e!=null&&e.arweave&&(f=u.replace(/https:\/\/arweave.net/g,e==null?void 0:e.arweave)),{uri:f,isOnChain:!1,isEncoded:!1}}if((c||E)&&s)return{uri:`${n}/${c?"ipns":"ipfs"}/${s}${l}`,isOnChain:!1,isEncoded:!1};if(a==="ar:/"&&s)return{uri:`${r}/${s}${l||""}`,isOnChain:!1,isEncoded:!1};let d=u.replace(UN,"");if(d.startsWith("r.json());return await t5({gatewayUrls:u,uri:SF(t)})}catch{throw new e5({uri:e})}}async function t5({gatewayUrls:u,uri:e}){const{uri:t,isOnChain:n}=_F({uri:e,gatewayUrls:u});if(n||await LN(t))return t;throw new e5({uri:e})}function WN(u){let e=u;e.startsWith("did:nft:")&&(e=e.replace("did:nft:","").replace(/_/g,"/"));const[t,n,r]=e.split("/"),[i,a]=t.split(":"),[o,s]=n.split(":");if(!i||i.toLowerCase()!=="eip155")throw new C4({reason:"Only EIP-155 supported"});if(!a)throw new C4({reason:"Chain ID not found"});if(!s)throw new C4({reason:"Contract address not found"});if(!r)throw new C4({reason:"Token ID not found"});if(!o)throw new C4({reason:"ERC namespace not found"});return{chainID:parseInt(a),namespace:o.toLowerCase(),contractAddress:s,tokenID:r}}async function qN(u,{nft:e}){if(e.namespace==="erc721")return Yr(u,{address:e.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(e.tokenID)]});if(e.namespace==="erc1155")return Yr(u,{address:e.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(e.tokenID)]});throw new RN({namespace:e.namespace})}async function HN(u,{gatewayUrls:e,record:t}){return/eip155:/i.test(t)?GN(u,{gatewayUrls:e,record:t}):t5({uri:t,gatewayUrls:e})}async function GN(u,{gatewayUrls:e,record:t}){const n=WN(t),r=await qN(u,{nft:n}),{uri:i,isOnChain:a,isEncoded:o}=_F({uri:r,gatewayUrls:e});if(a&&(i.includes("data:application/json;base64,")||i.startsWith("{"))){const l=o?atob(i.replace("data:application/json;base64,","")):i,c=JSON.parse(l);return t5({uri:SF(c),gatewayUrls:e})}let s=n.tokenID;return n.namespace==="erc1155"&&(s=s.replace("0x","").padStart(64,"0")),$N({gatewayUrls:e,uri:i.replace(/(?:0x)?{id}/,s)})}async function PF(u,{blockNumber:e,blockTag:t,name:n,key:r,universalResolverAddress:i}){let a=i;if(!a){if(!u.chain)throw new Error("client chain not configured. universalResolverAddress is required.");a=Ns({blockNumber:e,chain:u.chain,contract:"ensUniversalResolver"})}try{const o=await Yr(u,{address:a,abi:vF,functionName:"resolve",args:[er(ld(n)),ii({abi:d8,functionName:"text",args:[Vc(n),r]})],blockNumber:e,blockTag:t});if(o[0]==="0x")return null;const s=Us({abi:d8,functionName:"text",data:o[0]});return s===""?null:s}catch(o){if(u5(o,"resolve"))return null;throw o}}async function KN(u,{blockNumber:e,blockTag:t,gatewayUrls:n,name:r,universalResolverAddress:i}){const a=await PF(u,{blockNumber:e,blockTag:t,key:"avatar",name:r,universalResolverAddress:i});if(!a)return null;try{return await HN(u,{record:a,gatewayUrls:n})}catch{return null}}async function QN(u,{address:e,blockNumber:t,blockTag:n,universalResolverAddress:r}){let i=r;if(!i){if(!u.chain)throw new Error("client chain not configured. universalResolverAddress is required.");i=Ns({blockNumber:t,chain:u.chain,contract:"ensUniversalResolver"})}const a=`${e.toLowerCase().substring(2)}.addr.reverse`;try{return(await Yr(u,{address:i,abi:aN,functionName:"reverse",args:[er(ld(a))],blockNumber:t,blockTag:n}))[0]}catch(o){if(u5(o,"reverse"))return null;throw o}}async function VN(u,{blockNumber:e,blockTag:t,name:n,universalResolverAddress:r}){let i=r;if(!i){if(!u.chain)throw new Error("client chain not configured. universalResolverAddress is required.");i=Ns({blockNumber:e,chain:u.chain,contract:"ensUniversalResolver"})}const[a]=await Yr(u,{address:i,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[er(ld(n))],blockNumber:e,blockTag:t});return a}async function JN(u){const e=td(u,{method:"eth_newBlockFilter"}),t=await u.request({method:"eth_newBlockFilter"});return{id:t,request:e(t),type:"block"}}async function TF(u,{address:e,args:t,event:n,events:r,fromBlock:i,strict:a,toBlock:o}={}){const s=r??(n?[n]:void 0),l=td(u,{method:"eth_newFilter"});let c=[];s&&(c=[s.flatMap(d=>Dl({abi:[d],eventName:d.name,args:t}))],n&&(c=c[0]));const E=await u.request({method:"eth_newFilter",params:[{address:e,fromBlock:typeof i=="bigint"?zu(i):i,toBlock:typeof o=="bigint"?zu(o):o,...c.length?{topics:c}:{}}]});return{abi:s,args:t,eventName:n?n.name:void 0,fromBlock:i,id:E,request:l(E),strict:a,toBlock:o,type:"event"}}async function IF(u){const e=td(u,{method:"eth_newPendingTransactionFilter"}),t=await u.request({method:"eth_newPendingTransactionFilter"});return{id:t,request:e(t),type:"transaction"}}async function YN(u,{address:e,blockNumber:t,blockTag:n="latest"}){const r=t?zu(t):void 0,i=await u.request({method:"eth_getBalance",params:[e,r||n]});return BigInt(i)}async function XN(u,{blockHash:e,blockNumber:t,blockTag:n="latest"}={}){const r=t!==void 0?zu(t):void 0;let i;return e?i=await u.request({method:"eth_getBlockTransactionCountByHash",params:[e]}):i=await u.request({method:"eth_getBlockTransactionCountByNumber",params:[r||n]}),u0(i)}async function ZN(u,{address:e,blockNumber:t,blockTag:n="latest"}){const r=t!==void 0?zu(t):void 0,i=await u.request({method:"eth_getCode",params:[e,r||n]});if(i!=="0x")return i}function uR(u){var e;return{baseFeePerGas:u.baseFeePerGas.map(t=>BigInt(t)),gasUsedRatio:u.gasUsedRatio,oldestBlock:BigInt(u.oldestBlock),reward:(e=u.reward)==null?void 0:e.map(t=>t.map(n=>BigInt(n)))}}async function eR(u,{blockCount:e,blockNumber:t,blockTag:n="latest",rewardPercentiles:r}){const i=t?zu(t):void 0,a=await u.request({method:"eth_feeHistory",params:[zu(e),i||n,r]});return uR(a)}async function tR(u,{filter:e}){const t=e.strict??!1;return(await e.request({method:"eth_getFilterLogs",params:[e.id]})).map(r=>{var i;try{const{eventName:a,args:o}="abi"in e&&e.abi?xl({abi:e.abi,data:r.data,topics:r.topics,strict:t}):{eventName:void 0,args:void 0};return jt(r,{args:o,eventName:a})}catch(a){let o,s;if(a instanceof oa||a instanceof js){if("strict"in e&&e.strict)return;o=a.abiItem.name,s=(i=a.abiItem.inputs)==null?void 0:i.some(l=>!("name"in l&&l.name))}return jt(r,{args:s?[]:{},eventName:o})}}).filter(Boolean)}const nR=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,rR=/^(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)?$/;function iR({domain:u,message:e,primaryType:t,types:n}){const r=typeof u>"u"?{}:u,i={EIP712Domain:MF({domain:r}),...n};zF({domain:r,message:e,primaryType:t,types:i});const a=["0x1901"];return r&&a.push(aR({domain:r,types:i})),t!=="EIP712Domain"&&a.push(OF({data:e,primaryType:t,types:i})),s0(Vn(a))}function aR({domain:u,types:e}){return OF({data:u,primaryType:"EIP712Domain",types:e})}function OF({data:u,primaryType:e,types:t}){const n=NF({data:u,primaryType:e,types:t});return s0(n)}function NF({data:u,primaryType:e,types:t}){const n=[{type:"bytes32"}],r=[oR({primaryType:e,types:t})];for(const i of t[e]){const[a,o]=jF({types:t,name:i.name,type:i.type,value:u[i.name]});n.push(a),r.push(o)}return vl(n,r)}function oR({primaryType:u,types:e}){const t=er(sR({primaryType:u,types:e}));return s0(t)}function sR({primaryType:u,types:e}){let t="";const n=RF({primaryType:u,types:e});n.delete(u);const r=[u,...Array.from(n).sort()];for(const i of r)t+=`${i}(${e[i].map(({name:a,type:o})=>`${o} ${a}`).join(",")})`;return t}function RF({primaryType:u,types:e},t=new Set){const n=u.match(/^\w*/u),r=n==null?void 0:n[0];if(t.has(r)||e[r]===void 0)return t;t.add(r);for(const i of e[r])RF({primaryType:i.type,types:e},t);return t}function jF({types:u,name:e,type:t,value:n}){if(u[t]!==void 0)return[{type:"bytes32"},s0(NF({data:n,primaryType:t,types:u}))];if(t==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},s0(n)];if(t==="string")return[{type:"bytes32"},s0(er(n))];if(t.lastIndexOf("]")===t.length-1){const r=t.slice(0,t.lastIndexOf("[")),i=n.map(a=>jF({name:e,type:r,types:u,value:a}));return[{type:"bytes32"},s0(vl(i.map(([a])=>a),i.map(([,a])=>a)))]}return[{type:t},n]}function zF({domain:u,message:e,primaryType:t,types:n}){const r=n,i=(a,o)=>{for(const s of a){const{name:l,type:c}=s,E=c,d=o[l],f=E.match(rR);if(f&&(typeof d=="number"||typeof d=="bigint")){const[B,g,m]=f;zu(d,{signed:g==="int",size:parseInt(m)/8})}if(E==="address"&&typeof d=="string"&&!fs(d))throw new B3({address:d});const C=E.match(nR);if(C){const[B,g]=C;if(g&&Se(d)!==parseInt(g))throw new LI({expectedSize:parseInt(g),givenSize:Se(d)})}const h=r[E];h&&i(h,d)}};if(r.EIP712Domain&&u&&i(r.EIP712Domain,u),t!=="EIP712Domain"){const a=r[t];i(a,e)}}function MF({domain:u}){return[typeof(u==null?void 0:u.name)=="string"&&{name:"name",type:"string"},(u==null?void 0:u.version)&&{name:"version",type:"string"},typeof(u==null?void 0:u.chainId)=="number"&&{name:"chainId",type:"uint256"},(u==null?void 0:u.verifyingContract)&&{name:"verifyingContract",type:"address"},(u==null?void 0:u.salt)&&{name:"salt",type:"bytes32"}].filter(Boolean)}const J9="/docs/contract/encodeDeployData";function UF({abi:u,args:e,bytecode:t}){if(!e||e.length===0)return t;const n=u.find(i=>"type"in i&&i.type==="constructor");if(!n)throw new OI({docsPath:J9});if(!("inputs"in n))throw new i8({docsPath:J9});if(!n.inputs||n.inputs.length===0)throw new i8({docsPath:J9});const r=vl(n.inputs,e);return Ph([t,r])}function lR(u,e){const t=(()=>typeof u=="string"?$n(u):u.raw instanceof Uint8Array?u.raw:Qr(u.raw))(),n=$n(`Ethereum Signed Message: -${t.length}`);return s0(Vn([n,t]),e)}function cR(u){return u.map(e=>({...e,value:BigInt(e.value)}))}function ER(u){return{...u,balance:u.balance?BigInt(u.balance):void 0,nonce:u.nonce?u0(u.nonce):void 0,storageProof:u.storageProof?cR(u.storageProof):void 0}}async function dR(u,{address:e,blockNumber:t,blockTag:n,storageKeys:r}){const i=n??"latest",a=t!==void 0?zu(t):void 0,o=await u.request({method:"eth_getProof",params:[e,r,a||i]});return ER(o)}async function fR(u,{address:e,blockNumber:t,blockTag:n="latest",slot:r}){const i=t!==void 0?zu(t):void 0;return await u.request({method:"eth_getStorageAt",params:[e,r,i||n]})}async function n5(u,{blockHash:e,blockNumber:t,blockTag:n,hash:r,index:i}){var c,E,d;const a=n||"latest",o=t!==void 0?zu(t):void 0;let s=null;if(r?s=await u.request({method:"eth_getTransactionByHash",params:[r]}):e?s=await u.request({method:"eth_getTransactionByBlockHashAndIndex",params:[e,zu(i)]}):(o||a)&&(s=await u.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[o||a,zu(i)]})),!s)throw new hF({blockHash:e,blockNumber:t,blockTag:a,hash:r,index:i});return(((d=(E=(c=u.chain)==null?void 0:c.formatters)==null?void 0:E.transaction)==null?void 0:d.format)||V2)(s)}async function pR(u,{hash:e,transactionReceipt:t}){const[n,r]=await Promise.all([_l(u),e?n5(u,{hash:e}):void 0]),i=(t==null?void 0:t.blockNumber)||(r==null?void 0:r.blockNumber);return i?n-i+1n:0n}async function af(u,{hash:e}){var r,i,a;const t=await u.request({method:"eth_getTransactionReceipt",params:[e]});if(!t)throw new CF({hash:e});return(((a=(i=(r=u.chain)==null?void 0:r.formatters)==null?void 0:i.transactionReceipt)==null?void 0:a.format)||Zv)(t)}async function hR(u,e){var h;const{allowFailure:t=!0,batchSize:n,blockNumber:r,blockTag:i,contracts:a,multicallAddress:o}=e,s=n??(typeof((h=u.batch)==null?void 0:h.multicall)=="object"&&u.batch.multicall.batchSize||1024);let l=o;if(!l){if(!u.chain)throw new Error("client chain not configured. multicallAddress is required.");l=Ns({blockNumber:r,chain:u.chain,contract:"multicall3"})}const c=[[]];let E=0,d=0;for(let B=0;B0&&d>s&&c[E].length>0&&(E++,d=(w.length-2)/2,c[E]=[]),c[E]=[...c[E],{allowFailure:!0,callData:w,target:m}]}catch(w){const D=N3(w,{abi:g,address:m,args:y,docsPath:"/docs/contract/multicall",functionName:v});if(!t)throw D;c[E]=[...c[E],{allowFailure:!0,callData:"0x",target:m}]}}const f=await Promise.allSettled(c.map(B=>Yr(u,{abi:tf,address:l,args:[B],blockNumber:r,blockTag:i,functionName:"aggregate3"}))),C=[];for(let B=0;Bu instanceof Uint8Array,gR=Array.from({length:256},(u,e)=>e.toString(16).padStart(2,"0"));function Cs(u){if(!Ed(u))throw new Error("Uint8Array expected");let e="";for(let t=0;tn+r.length,0));let t=0;return u.forEach(n=>{if(!Ed(n))throw new Error("Uint8Array expected");e.set(n,t),t+=n.length}),e}function WF(u,e){if(u.length!==e.length)return!1;for(let t=0;tLF;u>>=cd,e+=1);return e}function vR(u,e){return u>>BigInt(e)&cd}const FR=(u,e,t)=>u|(t?cd:LF)<(mR<new Uint8Array(u),g8=u=>Uint8Array.from(u);function qF(u,e,t){if(typeof u!="number"||u<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=Y9(u),r=Y9(u),i=0;const a=()=>{n.fill(1),r.fill(0),i=0},o=(...E)=>t(r,n,...E),s=(E=Y9())=>{r=o(g8([0]),E),n=o(),E.length!==0&&(r=o(g8([1]),E),n=o())},l=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let E=0;const d=[];for(;E{a(),s(E);let f;for(;!(f=d(l()));)s();return a(),f}}const DR={bigint:u=>typeof u=="bigint",function:u=>typeof u=="function",boolean:u=>typeof u=="boolean",string:u=>typeof u=="string",stringOrUint8Array:u=>typeof u=="string"||u instanceof Uint8Array,isSafeInteger:u=>Number.isSafeInteger(u),array:u=>Array.isArray(u),field:(u,e)=>e.Fp.isValid(u),hash:u=>typeof u=="function"&&Number.isSafeInteger(u.outputLen)};function Pl(u,e,t={}){const n=(r,i,a)=>{const o=DR[i];if(typeof o!="function")throw new Error(`Invalid validator "${i}", expected function`);const s=u[r];if(!(a&&s===void 0)&&!o(s,u))throw new Error(`Invalid param ${String(r)}=${s} (${typeof s}), expected ${i}`)};for(const[r,i]of Object.entries(e))n(r,i,!1);for(const[r,i]of Object.entries(t))n(r,i,!0);return u}const bR=Object.freeze(Object.defineProperty({__proto__:null,bitGet:vR,bitLen:BR,bitMask:o5,bitSet:FR,bytesToHex:Cs,bytesToNumberBE:Yi,bytesToNumberLE:i5,concatBytes:j3,createHmacDrbg:qF,ensureBytes:Dt,equalBytes:WF,hexToBytes:ms,hexToNumber:r5,numberToBytesBE:gs,numberToBytesLE:a5,numberToHexUnpadded:$F,numberToVarBytesBE:AR,utf8ToBytes:yR,validateObject:Pl},Symbol.toStringTag,{value:"Module"}));function wR(u,e){const t=cn(u)?Qr(u):u,n=cn(e)?Qr(e):e;return WF(t,n)}async function HF(u,{address:e,hash:t,signature:n,...r}){const i=cn(n)?n:er(n);try{const{data:a}=await id(u,{data:UF({abi:oN,args:[e,t,i],bytecode:CR}),...r});return wR(a??"0x0","0x1")}catch(a){if(a instanceof mF)return!1;throw a}}async function xR(u,{address:e,message:t,signature:n,...r}){const i=lR(t);return HF(u,{address:e,hash:i,signature:n,...r})}async function kR(u,{address:e,signature:t,message:n,primaryType:r,types:i,domain:a,...o}){const s=iR({message:n,primaryType:r,types:i,domain:a});return HF(u,{address:e,hash:s,signature:t,...o})}function GF(u,{emitOnBegin:e=!1,emitMissed:t=!1,onBlockNumber:n,onError:r,poll:i,pollingInterval:a=u.pollingInterval}){const o=typeof i<"u"?i:u.transport.type!=="webSocket";let s;return o?(()=>{const E=f0(["watchBlockNumber",u.uid,e,t,a]);return Ls(E,{onBlockNumber:n,onError:r},d=>kl(async()=>{var f;try{const C=await _l(u,{cacheTime:0});if(s){if(C===s)return;if(C-s>1&&t)for(let h=s+1n;hs)&&(d.onBlockNumber(C,s),s=C)}catch(C){(f=d.onError)==null||f.call(d,C)}},{emitOnBegin:e,interval:a}))})():(()=>{let E=!0,d=()=>E=!1;return(async()=>{try{const{unsubscribe:f}=await u.transport.subscribe({params:["newHeads"],onData(C){var B;if(!E)return;const h=In((B=C.result)==null?void 0:B.number);n(h,s),s=h},onError(C){r==null||r(C)}});d=f,E||d()}catch(f){r==null||r(f)}})(),d})()}async function _R(u,{confirmations:e=1,hash:t,onReplaced:n,pollingInterval:r=u.pollingInterval,timeout:i}){const a=f0(["waitForTransactionReceipt",u.uid,t]);let o,s,l,c=!1;return new Promise((E,d)=>{i&&setTimeout(()=>d(new qO({hash:t})),i);const f=Ls(a,{onReplaced:n,resolve:E,reject:d},C=>{const h=GF(u,{emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:r,async onBlockNumber(B){if(c)return;let g=B;const m=y=>{h(),y(),f()};try{if(l){if(e>1&&(!l.blockNumber||g-l.blockNumber+1nC.resolve(l));return}if(o||(c=!0,await DF(async()=>{o=await n5(u,{hash:t}),o.blockNumber&&(g=o.blockNumber)},{delay:({count:y})=>~~(1<1&&(!l.blockNumber||g-l.blockNumber+1nC.resolve(l))}catch(y){if(o&&(y instanceof hF||y instanceof CF))try{s=o;const w=(await Jr(u,{blockNumber:g,includeTransactions:!0})).transactions.find(({from:p,nonce:x})=>p===s.from&&x===s.nonce);if(!w||(l=await af(u,{hash:w.hash}),e>1&&(!l.blockNumber||g-l.blockNumber+1n{var p;(p=C.onReplaced)==null||p.call(C,{reason:D,replacedTransaction:s,transaction:w,transactionReceipt:l}),C.resolve(l)})}catch(v){m(()=>C.reject(v))}else m(()=>C.reject(y))}}})})})}function SR(u,{blockTag:e="latest",emitMissed:t=!1,emitOnBegin:n=!1,onBlock:r,onError:i,includeTransactions:a,poll:o,pollingInterval:s=u.pollingInterval}){const l=typeof o<"u"?o:u.transport.type!=="webSocket",c=a??!1;let E;return l?(()=>{const C=f0(["watchBlocks",u.uid,t,n,c,s]);return Ls(C,{onBlock:r,onError:i},h=>kl(async()=>{var B;try{const g=await Jr(u,{blockTag:e,includeTransactions:c});if(g.number&&(E!=null&&E.number)){if(g.number===E.number)return;if(g.number-E.number>1&&t)for(let m=(E==null?void 0:E.number)+1n;mE.number)&&(h.onBlock(g,E),E=g)}catch(g){(B=h.onError)==null||B.call(h,g)}},{emitOnBegin:n,interval:s}))})():(()=>{let C=!0,h=()=>C=!1;return(async()=>{try{const{unsubscribe:B}=await u.transport.subscribe({params:["newHeads"],onData(g){var v,w,D;if(!C)return;const y=(((D=(w=(v=u.chain)==null?void 0:v.formatters)==null?void 0:w.block)==null?void 0:D.format)||Sh)(g.result);r(y,E),E=y},onError(g){i==null||i(g)}});h=B,C||h()}catch(B){i==null||i(B)}})(),h})()}function PR(u,{address:e,args:t,batch:n=!0,event:r,events:i,onError:a,onLogs:o,poll:s,pollingInterval:l=u.pollingInterval,strict:c}){const E=typeof s<"u"?s:u.transport.type!=="webSocket",d=c??!1;return E?(()=>{const h=f0(["watchEvent",e,t,n,u.uid,r,l]);return Ls(h,{onLogs:o,onError:a},B=>{let g,m,y=!1;const v=kl(async()=>{var w;if(!y){try{m=await TF(u,{address:e,args:t,event:r,events:i,strict:d})}catch{}y=!0;return}try{let D;if(m)D=await ad(u,{filter:m});else{const p=await _l(u);g&&g!==p?D=await Jh(u,{address:e,args:t,event:r,events:i,fromBlock:g+1n,toBlock:p}):D=[],g=p}if(D.length===0)return;n?B.onLogs(D):D.forEach(p=>B.onLogs([p]))}catch(D){m&&D instanceof sa&&(y=!1),(w=B.onError)==null||w.call(B,D)}},{emitOnBegin:!0,interval:l});return async()=>{m&&await od(u,{filter:m}),v()}})})():(()=>{let h=!0,B=()=>h=!1;return(async()=>{try{const g=i??(r?[r]:void 0);let m=[];g&&(m=[g.flatMap(v=>Dl({abi:[v],eventName:v.name,args:t}))],r&&(m=m[0]));const{unsubscribe:y}=await u.transport.subscribe({params:["logs",{address:e,topics:m}],onData(v){var D;if(!h)return;const w=v.result;try{const{eventName:p,args:x}=xl({abi:g,data:w.data,topics:w.topics,strict:d}),j=jt(w,{args:x,eventName:p});o([j])}catch(p){let x,j;if(p instanceof oa||p instanceof js){if(c)return;x=p.abiItem.name,j=(D=p.abiItem.inputs)==null?void 0:D.some(uu=>!("name"in uu&&uu.name))}const O=jt(w,{args:j?[]:{},eventName:x});o([O])}},onError(v){a==null||a(v)}});B=y,h||B()}catch(g){a==null||a(g)}})(),B})()}function TR(u,{batch:e=!0,onError:t,onTransactions:n,poll:r,pollingInterval:i=u.pollingInterval}){return(typeof r<"u"?r:u.transport.type!=="webSocket")?(()=>{const l=f0(["watchPendingTransactions",u.uid,e,i]);return Ls(l,{onTransactions:n,onError:t},c=>{let E;const d=kl(async()=>{var f;try{if(!E)try{E=await IF(u);return}catch(h){throw d(),h}const C=await ad(u,{filter:E});if(C.length===0)return;e?c.onTransactions(C):C.forEach(h=>c.onTransactions([h]))}catch(C){(f=c.onError)==null||f.call(c,C)}},{emitOnBegin:!0,interval:i});return async()=>{E&&await od(u,{filter:E}),d()}})})():(()=>{let l=!0,c=()=>l=!1;return(async()=>{try{const{unsubscribe:E}=await u.transport.subscribe({params:["newPendingTransactions"],onData(d){if(!l)return;const f=d.result;n([f])},onError(d){t==null||t(d)}});c=E,l||c()}catch(E){t==null||t(E)}})(),c})()}function IR(u){return{call:e=>id(u,e),createBlockFilter:()=>JN(u),createContractEventFilter:e=>dF(u,e),createEventFilter:e=>TF(u,e),createPendingTransactionFilter:()=>IF(u),estimateContractGas:e=>rN(u,e),estimateGas:e=>Vh(u,e),getBalance:e=>YN(u,e),getBlock:e=>Jr(u,e),getBlockNumber:e=>_l(u,e),getBlockTransactionCount:e=>XN(u,e),getBytecode:e=>ZN(u,e),getChainId:()=>R3(u),getContractEvents:e=>yF(u,e),getEnsAddress:e=>ON(u,e),getEnsAvatar:e=>KN(u,e),getEnsName:e=>QN(u,e),getEnsResolver:e=>VN(u,e),getEnsText:e=>PF(u,e),getFeeHistory:e=>eR(u,e),estimateFeesPerGas:e=>tN(u,e),getFilterChanges:e=>ad(u,e),getFilterLogs:e=>tR(u,e),getGasPrice:()=>Qh(u),getLogs:e=>Jh(u,e),getProof:e=>dR(u,e),estimateMaxPriorityFeePerGas:e=>eN(u,e),getStorageAt:e=>fR(u,e),getTransaction:e=>n5(u,e),getTransactionConfirmations:e=>pR(u,e),getTransactionCount:e=>AF(u,e),getTransactionReceipt:e=>af(u,e),multicall:e=>hR(u,e),prepareTransactionRequest:e=>rd(u,e),readContract:e=>Yr(u,e),sendRawTransaction:e=>Xh(u,e),simulateContract:e=>fN(u,e),verifyMessage:e=>xR(u,e),verifyTypedData:e=>kR(u,e),uninstallFilter:e=>od(u,e),waitForTransactionReceipt:e=>_R(u,e),watchBlocks:e=>SR(u,e),watchBlockNumber:e=>GF(u,e),watchContractEvent:e=>yN(u,e),watchEvent:e=>PR(u,e),watchPendingTransactions:e=>TR(u,e)}}function A8(u){const{key:e="public",name:t="Public Client"}=u;return FF({...u,key:e,name:t,type:"publicClient"}).extend(IR)}function OR(u,{abi:e,args:t,bytecode:n,...r}){const i=UF({abi:e,args:t,bytecode:n});return Zh(u,{...r,data:i})}async function NR(u){var t;return((t=u.account)==null?void 0:t.type)==="local"?[u.account.address]:(await u.request({method:"eth_accounts"})).map(n=>Uh(n))}async function RR(u){return await u.request({method:"wallet_getPermissions"})}async function jR(u){return(await u.request({method:"eth_requestAccounts"})).map(t=>e0(t))}async function zR(u,e){return u.request({method:"wallet_requestPermissions",params:[e]})}async function MR(u,{account:e=u.account,message:t}){if(!e)throw new Ms({docsPath:"/docs/actions/wallet/signMessage"});const n=Ct(e);if(n.type==="local")return n.signMessage({message:t});const r=(()=>typeof t=="string"?wh(t):t.raw instanceof Uint8Array?er(t.raw):t.raw)();return u.request({method:"personal_sign",params:[r,n.address]})}async function UR(u,e){var l,c,E,d;const{account:t=u.account,chain:n=u.chain,...r}=e;if(!t)throw new Ms({docsPath:"/docs/actions/wallet/signTransaction"});const i=Ct(t);wl({account:i,...e});const a=await R3(u);n!==null&&Qv({currentChainId:a,chain:n});const o=(n==null?void 0:n.formatters)||((l=u.chain)==null?void 0:l.formatters),s=((c=o==null?void 0:o.transactionRequest)==null?void 0:c.format)||J2;return i.type==="local"?i.signTransaction({...r,chainId:a},{serializer:(d=(E=u.chain)==null?void 0:E.serializers)==null?void 0:d.transaction}):await u.request({method:"eth_signTransaction",params:[{...s(r),chainId:zu(a),from:i.address}]})}async function LR(u,{account:e=u.account,domain:t,message:n,primaryType:r,types:i}){if(!e)throw new Ms({docsPath:"/docs/actions/wallet/signTypedData"});const a=Ct(e),o={EIP712Domain:MF({domain:t}),...i};if(zF({domain:t,message:n,primaryType:r,types:o}),a.type==="local")return a.signTypedData({domain:t,primaryType:r,types:o,message:n});const s=f0({domain:t??{},primaryType:r,types:o,message:n},(l,c)=>cn(c)?c.toLowerCase():c);return u.request({method:"eth_signTypedData_v4",params:[a.address,s]})}async function $R(u,{id:e}){await u.request({method:"wallet_switchEthereumChain",params:[{chainId:zu(e)}]})}async function WR(u,e){return await u.request({method:"wallet_watchAsset",params:e})}function qR(u){return{addChain:e=>FN(u,e),deployContract:e=>OR(u,e),getAddresses:()=>NR(u),getChainId:()=>R3(u),getPermissions:()=>RR(u),prepareTransactionRequest:e=>rd(u,e),requestAddresses:()=>jR(u),requestPermissions:e=>zR(u,e),sendRawTransaction:e=>Xh(u,e),sendTransaction:e=>Zh(u,e),signMessage:e=>MR(u,e),signTransaction:e=>UR(u,e),signTypedData:e=>LR(u,e),switchChain:e=>$R(u,e),watchAsset:e=>WR(u,e),writeContract:e=>vN(u,e)}}function Tl(u){const{key:e="wallet",name:t="Wallet Client",transport:n}=u;return FF({...u,key:e,name:t,transport:i=>n({...i,retryCount:0}),type:"walletClient"}).extend(qR)}function HR(u,e={}){const{key:t="webSocket",name:n="WebSocket JSON-RPC",retryDelay:r}=e;return({chain:i,retryCount:a,timeout:o})=>{var E;const s=e.retryCount??a,l=o??e.timeout??1e4,c=u||((E=i==null?void 0:i.rpcUrls.default.webSocket)==null?void 0:E[0]);if(!c)throw new wF;return sd({key:t,name:n,async request({method:d,params:f}){const C={method:d,params:f},h=await V9(c),{error:B,result:g}=await Co.webSocketAsync(h,{body:C,timeout:l});if(B)throw new qh({body:C,error:B,url:c});return g},retryCount:s,retryDelay:r,timeout:l,type:"webSocket"},{getSocket(){return V9(c)},async subscribe({params:d,onData:f,onError:C}){const h=await V9(c),{result:B}=await new Promise((g,m)=>Co.webSocket(h,{body:{method:"eth_subscribe",params:d},onResponse(y){if(y.error){m(y.error),C==null||C(y.error);return}if(typeof y.id=="number"){g(y);return}y.method==="eth_subscription"&&f(y.params)}}));return{subscriptionId:B,async unsubscribe(){return new Promise(g=>Co.webSocket(h,{body:{method:"eth_unsubscribe",params:[B]},onResponse:g}))}}}})}}function GR(u,e,t,n){if(typeof u.setBigUint64=="function")return u.setBigUint64(e,t,n);const r=BigInt(32),i=BigInt(4294967295),a=Number(t>>r&i),o=Number(t&i),s=n?4:0,l=n?0:4;u.setUint32(e+s,a,n),u.setUint32(e+l,o,n)}class KR extends Oh{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=q9(this.buffer)}update(e){ps(this);const{view:t,buffer:n,blockLen:r}=this;e=ud(e);const i=e.length;for(let a=0;ar-a&&(this.process(n,0),a=0);for(let E=a;Ec.length)throw new Error("_sha2: outputLen bigger than state");for(let E=0;Eu&e^~u&t,VR=(u,e,t)=>u&e^u&t^e&t,JR=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),or=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),sr=new Uint32Array(64);class YR extends KR{constructor(){super(64,32,8,!1),this.A=or[0]|0,this.B=or[1]|0,this.C=or[2]|0,this.D=or[3]|0,this.E=or[4]|0,this.F=or[5]|0,this.G=or[6]|0,this.H=or[7]|0}get(){const{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}process(e,t){for(let E=0;E<16;E++,t+=4)sr[E]=e.getUint32(t,!1);for(let E=16;E<64;E++){const d=sr[E-15],f=sr[E-2],C=qt(d,7)^qt(d,18)^d>>>3,h=qt(f,17)^qt(f,19)^f>>>10;sr[E]=h+sr[E-7]+C+sr[E-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:l,H:c}=this;for(let E=0;E<64;E++){const d=qt(o,6)^qt(o,11)^qt(o,25),f=c+d+QR(o,s,l)+JR[E]+sr[E]|0,h=(qt(n,2)^qt(n,13)^qt(n,22))+VR(n,r,i)|0;c=l,l=s,s=o,o=a+f|0,a=i,i=r,r=n,n=f+h|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,a,o,s,l,c)}roundClean(){sr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const XR=iF(()=>new YR);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ne=BigInt(0),ye=BigInt(1),mi=BigInt(2),ZR=BigInt(3),of=BigInt(4),y8=BigInt(5),B8=BigInt(8);BigInt(9);BigInt(16);function g0(u,e){const t=u%e;return t>=Ne?t:e+t}function uj(u,e,t){if(t<=Ne||e 0");if(t===ye)return Ne;let n=ye;for(;e>Ne;)e&ye&&(n=n*u%t),u=u*u%t,e>>=ye;return n}function V0(u,e,t){let n=u;for(;e-- >Ne;)n*=n,n%=t;return n}function sf(u,e){if(u===Ne||e<=Ne)throw new Error(`invert: expected positive integers, got n=${u} mod=${e}`);let t=g0(u,e),n=e,r=Ne,i=ye;for(;t!==Ne;){const o=n/t,s=n%t,l=r-i*o;n=t,t=s,r=i,i=l}if(n!==ye)throw new Error("invert: does not exist");return g0(r,e)}function ej(u){const e=(u-ye)/mi;let t,n,r;for(t=u-ye,n=0;t%mi===Ne;t/=mi,n++);for(r=mi;r(n[r]="function",n),e);return Pl(u,t)}function ij(u,e,t){if(t 0");if(t===Ne)return u.ONE;if(t===ye)return e;let n=u.ONE,r=e;for(;t>Ne;)t&ye&&(n=u.mul(n,r)),r=u.sqr(r),t>>=ye;return n}function aj(u,e){const t=new Array(e.length),n=e.reduce((i,a,o)=>u.is0(a)?i:(t[o]=i,u.mul(i,a)),u.ONE),r=u.inv(n);return e.reduceRight((i,a,o)=>u.is0(a)?i:(t[o]=u.mul(i,t[o]),u.mul(i,a)),r),t}function KF(u,e){const t=e!==void 0?e:u.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function oj(u,e,t=!1,n={}){if(u<=Ne)throw new Error(`Expected Field ORDER > 0, got ${u}`);const{nBitLength:r,nByteLength:i}=KF(u,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const a=tj(u),o=Object.freeze({ORDER:u,BITS:r,BYTES:i,MASK:o5(r),ZERO:Ne,ONE:ye,create:s=>g0(s,u),isValid:s=>{if(typeof s!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof s}`);return Ne<=s&&ss===Ne,isOdd:s=>(s&ye)===ye,neg:s=>g0(-s,u),eql:(s,l)=>s===l,sqr:s=>g0(s*s,u),add:(s,l)=>g0(s+l,u),sub:(s,l)=>g0(s-l,u),mul:(s,l)=>g0(s*l,u),pow:(s,l)=>ij(o,s,l),div:(s,l)=>g0(s*sf(l,u),u),sqrN:s=>s*s,addN:(s,l)=>s+l,subN:(s,l)=>s-l,mulN:(s,l)=>s*l,inv:s=>sf(s,u),sqrt:n.sqrt||(s=>a(o,s)),invertBatch:s=>aj(o,s),cmov:(s,l,c)=>c?l:s,toBytes:s=>t?a5(s,i):gs(s,i),fromBytes:s=>{if(s.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${s.length}`);return t?i5(s):Yi(s)}});return Object.freeze(o)}function QF(u){if(typeof u!="bigint")throw new Error("field order must be bigint");const e=u.toString(2).length;return Math.ceil(e/8)}function VF(u){const e=QF(u);return e+Math.ceil(e/2)}function sj(u,e,t=!1){const n=u.length,r=QF(e),i=VF(e);if(n<16||n1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);const a=t?Yi(u):i5(u),o=g0(a,e-ye)+ye;return t?a5(o,r):gs(o,r)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const lj=BigInt(0),X9=BigInt(1);function cj(u,e){const t=(r,i)=>{const a=i.negate();return r?a:i},n=r=>{const i=Math.ceil(e/r)+1,a=2**(r-1);return{windows:i,windowSize:a}};return{constTimeNegate:t,unsafeLadder(r,i){let a=u.ZERO,o=r;for(;i>lj;)i&X9&&(a=a.add(o)),o=o.double(),i>>=X9;return a},precomputeWindow(r,i){const{windows:a,windowSize:o}=n(i),s=[];let l=r,c=l;for(let E=0;E>=f,B>s&&(B-=d,a+=X9);const g=h,m=h+Math.abs(B)-1,y=C%2!==0,v=B<0;B===0?c=c.add(t(y,i[g])):l=l.add(t(v,i[m]))}return{p:l,f:c}},wNAFCached(r,i,a,o){const s=r._WINDOW_SIZE||1;let l=i.get(r);return l||(l=this.precomputeWindow(r,s),s!==1&&i.set(r,o(l))),this.wNAF(s,l,a)}}}function JF(u){return rj(u.Fp),Pl(u,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...KF(u.n,u.nBitLength),...u,p:u.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ej(u){const e=JF(u);Pl(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:t,Fp:n,a:r}=e;if(t){if(!n.eql(r,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}const{bytesToNumberBE:dj,hexToBytes:fj}=bR,bi={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(u){const{Err:e}=bi;if(u.length<2||u[0]!==2)throw new e("Invalid signature integer tag");const t=u[1],n=u.subarray(2,t+2);if(!t||n.length!==t)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:dj(n),l:u.subarray(t+2)}},toSig(u){const{Err:e}=bi,t=typeof u=="string"?fj(u):u;if(!(t instanceof Uint8Array))throw new Error("ui8a expected");let n=t.length;if(n<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==n-2)throw new e("Invalid signature: incorrect length");const{d:r,l:i}=bi._parseInt(t.subarray(2)),{d:a,l:o}=bi._parseInt(i);if(o.length)throw new e("Invalid signature: left bytes after parsing");return{r,s:a}},hexFromSig(u){const e=l=>Number.parseInt(l[0],16)&8?"00"+l:l,t=l=>{const c=l.toString(16);return c.length&1?`0${c}`:c},n=e(t(u.s)),r=e(t(u.r)),i=n.length/2,a=r.length/2,o=t(i),s=t(a);return`30${t(a+i+4)}02${s}${r}02${o}${n}`}},On=BigInt(0),it=BigInt(1);BigInt(2);const v8=BigInt(3);BigInt(4);function pj(u){const e=Ej(u),{Fp:t}=e,n=e.toBytes||((C,h,B)=>{const g=h.toAffine();return j3(Uint8Array.from([4]),t.toBytes(g.x),t.toBytes(g.y))}),r=e.fromBytes||(C=>{const h=C.subarray(1),B=t.fromBytes(h.subarray(0,t.BYTES)),g=t.fromBytes(h.subarray(t.BYTES,2*t.BYTES));return{x:B,y:g}});function i(C){const{a:h,b:B}=e,g=t.sqr(C),m=t.mul(g,C);return t.add(t.add(m,t.mul(C,h)),B)}if(!t.eql(t.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function a(C){return typeof C=="bigint"&&Ont.eql(y,t.ZERO);return m(B)&&m(g)?E.ZERO:new E(B,g,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(h){const B=t.invertBatch(h.map(g=>g.pz));return h.map((g,m)=>g.toAffine(B[m])).map(E.fromAffine)}static fromHex(h){const B=E.fromAffine(r(Dt("pointHex",h)));return B.assertValidity(),B}static fromPrivateKey(h){return E.BASE.multiply(s(h))}_setWindowSize(h){this._WINDOW_SIZE=h,l.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:h,y:B}=this.toAffine();if(!t.isValid(h)||!t.isValid(B))throw new Error("bad point: x or y not FE");const g=t.sqr(B),m=i(h);if(!t.eql(g,m))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:h}=this.toAffine();if(t.isOdd)return!t.isOdd(h);throw new Error("Field doesn't support isOdd")}equals(h){c(h);const{px:B,py:g,pz:m}=this,{px:y,py:v,pz:w}=h,D=t.eql(t.mul(B,w),t.mul(y,m)),p=t.eql(t.mul(g,w),t.mul(v,m));return D&&p}negate(){return new E(this.px,t.neg(this.py),this.pz)}double(){const{a:h,b:B}=e,g=t.mul(B,v8),{px:m,py:y,pz:v}=this;let w=t.ZERO,D=t.ZERO,p=t.ZERO,x=t.mul(m,m),j=t.mul(y,y),O=t.mul(v,v),uu=t.mul(m,y);return uu=t.add(uu,uu),p=t.mul(m,v),p=t.add(p,p),w=t.mul(h,p),D=t.mul(g,O),D=t.add(w,D),w=t.sub(j,D),D=t.add(j,D),D=t.mul(w,D),w=t.mul(uu,w),p=t.mul(g,p),O=t.mul(h,O),uu=t.sub(x,O),uu=t.mul(h,uu),uu=t.add(uu,p),p=t.add(x,x),x=t.add(p,x),x=t.add(x,O),x=t.mul(x,uu),D=t.add(D,x),O=t.mul(y,v),O=t.add(O,O),x=t.mul(O,uu),w=t.sub(w,x),p=t.mul(O,j),p=t.add(p,p),p=t.add(p,p),new E(w,D,p)}add(h){c(h);const{px:B,py:g,pz:m}=this,{px:y,py:v,pz:w}=h;let D=t.ZERO,p=t.ZERO,x=t.ZERO;const j=e.a,O=t.mul(e.b,v8);let uu=t.mul(B,y),ou=t.mul(g,v),su=t.mul(m,w),hu=t.add(B,g),eu=t.add(y,v);hu=t.mul(hu,eu),eu=t.add(uu,ou),hu=t.sub(hu,eu),eu=t.add(B,m);let au=t.add(y,w);return eu=t.mul(eu,au),au=t.add(uu,su),eu=t.sub(eu,au),au=t.add(g,m),D=t.add(v,w),au=t.mul(au,D),D=t.add(ou,su),au=t.sub(au,D),x=t.mul(j,eu),D=t.mul(O,su),x=t.add(D,x),D=t.sub(ou,x),x=t.add(ou,x),p=t.mul(D,x),ou=t.add(uu,uu),ou=t.add(ou,uu),su=t.mul(j,su),eu=t.mul(O,eu),ou=t.add(ou,su),su=t.sub(uu,su),su=t.mul(j,su),eu=t.add(eu,su),uu=t.mul(ou,eu),p=t.add(p,uu),uu=t.mul(au,eu),D=t.mul(hu,D),D=t.sub(D,uu),uu=t.mul(hu,ou),x=t.mul(au,x),x=t.add(x,uu),new E(D,p,x)}subtract(h){return this.add(h.negate())}is0(){return this.equals(E.ZERO)}wNAF(h){return f.wNAFCached(this,l,h,B=>{const g=t.invertBatch(B.map(m=>m.pz));return B.map((m,y)=>m.toAffine(g[y])).map(E.fromAffine)})}multiplyUnsafe(h){const B=E.ZERO;if(h===On)return B;if(o(h),h===it)return this;const{endo:g}=e;if(!g)return f.unsafeLadder(this,h);let{k1neg:m,k1:y,k2neg:v,k2:w}=g.splitScalar(h),D=B,p=B,x=this;for(;y>On||w>On;)y&it&&(D=D.add(x)),w&it&&(p=p.add(x)),x=x.double(),y>>=it,w>>=it;return m&&(D=D.negate()),v&&(p=p.negate()),p=new E(t.mul(p.px,g.beta),p.py,p.pz),D.add(p)}multiply(h){o(h);let B=h,g,m;const{endo:y}=e;if(y){const{k1neg:v,k1:w,k2neg:D,k2:p}=y.splitScalar(B);let{p:x,f:j}=this.wNAF(w),{p:O,f:uu}=this.wNAF(p);x=f.constTimeNegate(v,x),O=f.constTimeNegate(D,O),O=new E(t.mul(O.px,y.beta),O.py,O.pz),g=x.add(O),m=j.add(uu)}else{const{p:v,f:w}=this.wNAF(B);g=v,m=w}return E.normalizeZ([g,m])[0]}multiplyAndAddUnsafe(h,B,g){const m=E.BASE,y=(w,D)=>D===On||D===it||!w.equals(m)?w.multiplyUnsafe(D):w.multiply(D),v=y(this,B).add(y(h,g));return v.is0()?void 0:v}toAffine(h){const{px:B,py:g,pz:m}=this,y=this.is0();h==null&&(h=y?t.ONE:t.inv(m));const v=t.mul(B,h),w=t.mul(g,h),D=t.mul(m,h);if(y)return{x:t.ZERO,y:t.ZERO};if(!t.eql(D,t.ONE))throw new Error("invZ was invalid");return{x:v,y:w}}isTorsionFree(){const{h,isTorsionFree:B}=e;if(h===it)return!0;if(B)return B(E,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h,clearCofactor:B}=e;return h===it?this:B?B(E,this):this.multiplyUnsafe(e.h)}toRawBytes(h=!0){return this.assertValidity(),n(E,this,h)}toHex(h=!0){return Cs(this.toRawBytes(h))}}E.BASE=new E(e.Gx,e.Gy,t.ONE),E.ZERO=new E(t.ZERO,t.ONE,t.ZERO);const d=e.nBitLength,f=cj(E,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:E,normPrivateKeyToScalar:s,weierstrassEquation:i,isWithinCurveOrder:a}}function hj(u){const e=JF(u);return Pl(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function Cj(u){const e=hj(u),{Fp:t,n}=e,r=t.BYTES+1,i=2*t.BYTES+1;function a(eu){return OnCs(gs(eu,e.nByteLength));function C(eu){const au=n>>it;return eu>au}function h(eu){return C(eu)?o(-eu):eu}const B=(eu,au,nu)=>Yi(eu.slice(au,nu));class g{constructor(au,nu,W){this.r=au,this.s=nu,this.recovery=W,this.assertValidity()}static fromCompact(au){const nu=e.nByteLength;return au=Dt("compactSignature",au,nu*2),new g(B(au,0,nu),B(au,nu,2*nu))}static fromDER(au){const{r:nu,s:W}=bi.toSig(Dt("DER",au));return new g(nu,W)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(au){return new g(this.r,this.s,au)}recoverPublicKey(au){const{r:nu,s:W,recovery:iu}=this,lu=p(Dt("msgHash",au));if(iu==null||![0,1,2,3].includes(iu))throw new Error("recovery id invalid");const cu=iu===2||iu===3?nu+e.n:nu;if(cu>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");const pu=iu&1?"03":"02",fu=l.fromHex(pu+f(cu)),J=s(cu),_u=o(-lu*J),Du=o(W*J),xu=l.BASE.multiplyAndAddUnsafe(fu,_u,Du);if(!xu)throw new Error("point at infinify");return xu.assertValidity(),xu}hasHighS(){return C(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return ms(this.toDERHex())}toDERHex(){return bi.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return ms(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}const m={isValidPrivateKey(eu){try{return c(eu),!0}catch{return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const eu=VF(e.n);return sj(e.randomBytes(eu),e.n)},precompute(eu=8,au=l.BASE){return au._setWindowSize(eu),au.multiply(BigInt(3)),au}};function y(eu,au=!0){return l.fromPrivateKey(eu).toRawBytes(au)}function v(eu){const au=eu instanceof Uint8Array,nu=typeof eu=="string",W=(au||nu)&&eu.length;return au?W===r||W===i:nu?W===2*r||W===2*i:eu instanceof l}function w(eu,au,nu=!0){if(v(eu))throw new Error("first arg must be private key");if(!v(au))throw new Error("second arg must be public key");return l.fromHex(au).multiply(c(eu)).toRawBytes(nu)}const D=e.bits2int||function(eu){const au=Yi(eu),nu=eu.length*8-e.nBitLength;return nu>0?au>>BigInt(nu):au},p=e.bits2int_modN||function(eu){return o(D(eu))},x=o5(e.nBitLength);function j(eu){if(typeof eu!="bigint")throw new Error("bigint expected");if(!(On<=eu&&euIu in nu))throw new Error("sign() legacy options not supported");const{hash:W,randomBytes:iu}=e;let{lowS:lu,prehash:cu,extraEntropy:pu}=nu;lu==null&&(lu=!0),eu=Dt("msgHash",eu),cu&&(eu=Dt("prehashed msgHash",W(eu)));const fu=p(eu),J=c(au),_u=[j(J),j(fu)];if(pu!=null){const Iu=pu===!0?iu(t.BYTES):pu;_u.push(Dt("extraEntropy",Iu))}const Du=j3(..._u),xu=fu;function bu(Iu){const S=D(Iu);if(!d(S))return;const T=s(S),I=l.BASE.multiply(S).toAffine(),L=o(I.x);if(L===On)return;const U=o(T*o(xu+L*J));if(U===On)return;let q=(I.x===L?0:2)|Number(I.y&it),Y=U;return lu&&C(U)&&(Y=h(U),q^=1),new g(L,Y,q)}return{seed:Du,k2sig:bu}}const uu={lowS:e.lowS,prehash:!1},ou={lowS:e.lowS,prehash:!1};function su(eu,au,nu=uu){const{seed:W,k2sig:iu}=O(eu,au,nu),lu=e;return qF(lu.hash.outputLen,lu.nByteLength,lu.hmac)(W,iu)}l.BASE._setWindowSize(8);function hu(eu,au,nu,W=ou){var I;const iu=eu;if(au=Dt("msgHash",au),nu=Dt("publicKey",nu),"strict"in W)throw new Error("options.strict was renamed to lowS");const{lowS:lu,prehash:cu}=W;let pu,fu;try{if(typeof iu=="string"||iu instanceof Uint8Array)try{pu=g.fromDER(iu)}catch(L){if(!(L instanceof bi.Err))throw L;pu=g.fromCompact(iu)}else if(typeof iu=="object"&&typeof iu.r=="bigint"&&typeof iu.s=="bigint"){const{r:L,s:U}=iu;pu=new g(L,U)}else throw new Error("PARSE");fu=l.fromHex(nu)}catch(L){if(L.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(lu&&pu.hasHighS())return!1;cu&&(au=e.hash(au));const{r:J,s:_u}=pu,Du=p(au),xu=s(_u),bu=o(Du*xu),Iu=o(J*xu),S=(I=l.BASE.multiplyAndAddUnsafe(fu,bu,Iu))==null?void 0:I.toAffine();return S?o(S.x)===J:!1}return{CURVE:e,getPublicKey:y,getSharedSecret:w,sign:su,verify:hu,ProjectivePoint:l,Signature:g,utils:m}}let YF=class extends Oh{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,YI(e);const n=ud(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let a=0;anew YF(u,e).update(t).digest();XF.create=(u,e)=>new YF(u,e);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function mj(u){return{hash:u,hmac:(e,...t)=>XF(u,e,oO(...t)),randomBytes:sO}}function gj(u,e){const t=n=>Cj({...u,...mj(n)});return Object.freeze({...t(e),create:t})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ZF=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),F8=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Aj=BigInt(1),lf=BigInt(2),D8=(u,e)=>(u+e/lf)/e;function yj(u){const e=ZF,t=BigInt(3),n=BigInt(6),r=BigInt(11),i=BigInt(22),a=BigInt(23),o=BigInt(44),s=BigInt(88),l=u*u*u%e,c=l*l*u%e,E=V0(c,t,e)*c%e,d=V0(E,t,e)*c%e,f=V0(d,lf,e)*l%e,C=V0(f,r,e)*f%e,h=V0(C,i,e)*C%e,B=V0(h,o,e)*h%e,g=V0(B,s,e)*B%e,m=V0(g,o,e)*h%e,y=V0(m,t,e)*c%e,v=V0(y,a,e)*C%e,w=V0(v,n,e)*l%e,D=V0(w,lf,e);if(!cf.eql(cf.sqr(D),u))throw new Error("Cannot find square root");return D}const cf=oj(ZF,void 0,void 0,{sqrt:yj}),cr=gj({a:BigInt(0),b:BigInt(7),Fp:cf,n:F8,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:u=>{const e=F8,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Aj*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),r=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,a=BigInt("0x100000000000000000000000000000000"),o=D8(i*u,e),s=D8(-n*u,e);let l=g0(u-o*t-s*r,e),c=g0(-o*n-s*i,e);const E=l>a,d=c>a;if(E&&(l=e-l),d&&(c=e-c),l>a||c>a)throw new Error("splitScalar: Endomorphism failed, k="+u);return{k1neg:E,k1:l,k2neg:d,k2:c}}}},XR);BigInt(0);cr.ProjectivePoint;const Bj=bh({id:5,network:"goerli",name:"Goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-goerli.g.alchemy.com/v2"],webSocket:["wss://eth-goerli.g.alchemy.com/v2"]},infura:{http:["https://goerli.infura.io/v3"],webSocket:["wss://goerli.infura.io/ws/v3"]},default:{http:["https://rpc.ankr.com/eth_goerli"]},public:{http:["https://rpc.ankr.com/eth_goerli"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli.etherscan.io"},default:{name:"Etherscan",url:"https://goerli.etherscan.io"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0x56522D00C410a43BFfDF00a9A569489297385790",blockCreated:8765204},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:6507670}},testnet:!0}),s5=bh({id:1,network:"homestead",name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-mainnet.g.alchemy.com/v2"],webSocket:["wss://eth-mainnet.g.alchemy.com/v2"]},infura:{http:["https://mainnet.infura.io/v3"],webSocket:["wss://mainnet.infura.io/ws/v3"]},default:{http:["https://cloudflare-eth.com"]},public:{http:["https://cloudflare-eth.com"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://etherscan.io"},default:{name:"Etherscan",url:"https://etherscan.io"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc0497E381f536Be9ce14B0dD3817cBcAe57d2F62",blockCreated:16966585},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),vj=bh({id:420,name:"Optimism Goerli",network:"optimism-goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-goerli.g.alchemy.com/v2"],webSocket:["wss://opt-goerli.g.alchemy.com/v2"]},infura:{http:["https://optimism-goerli.infura.io/v3"],webSocket:["wss://optimism-goerli.infura.io/ws/v3"]},default:{http:["https://goerli.optimism.io"]},public:{http:["https://goerli.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"},default:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:49461}},testnet:!0},{formatters:wI});var uD=class extends Error{constructor({chainId:u,connectorId:e}){super(`Chain "${u}" not configured for connector "${e}".`),this.name="ChainNotConfiguredForConnectorError"}},y0=class extends Error{constructor(){super(...arguments),this.name="ConnectorNotFoundError",this.message="Connector not found"}};function la(u){return typeof u=="string"?Number.parseInt(u,u.trim().substring(0,2)==="0x"?16:10):typeof u=="bigint"?Number(u):u}var eD={exports:{}};(function(u){var e=Object.prototype.hasOwnProperty,t="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(t=!1));function r(s,l,c){this.fn=s,this.context=l,this.once=c||!1}function i(s,l,c,E,d){if(typeof c!="function")throw new TypeError("The listener must be a function");var f=new r(c,E||s,d),C=t?t+l:l;return s._events[C]?s._events[C].fn?s._events[C]=[s._events[C],f]:s._events[C].push(f):(s._events[C]=f,s._eventsCount++),s}function a(s,l){--s._eventsCount===0?s._events=new n:delete s._events[l]}function o(){this._events=new n,this._eventsCount=0}o.prototype.eventNames=function(){var l=[],c,E;if(this._eventsCount===0)return l;for(E in c=this._events)e.call(c,E)&&l.push(t?E.slice(1):E);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(c)):l},o.prototype.listeners=function(l){var c=t?t+l:l,E=this._events[c];if(!E)return[];if(E.fn)return[E.fn];for(var d=0,f=E.length,C=new Array(f);d{if(!e.has(u))throw TypeError("Cannot "+t)},qu=(u,e,t)=>(l5(u,e,"read from private field"),t?t.call(u):e.get(u)),we=(u,e,t)=>{if(e.has(u))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(u):e.set(u,t)},Jn=(u,e,t,n)=>(l5(u,e,"write to private field"),n?n.call(u,t):e.set(u,t),t),De=(u,e,t)=>(l5(u,e,"access private method"),t),Il=class extends Dj{constructor({chains:u=[s5,Bj],options:e}){super(),this.chains=u,this.options=e}getBlockExplorerUrls(u){const{default:e,...t}=u.blockExplorers??{};if(e)return[e.url,...Object.values(t).map(n=>n.url)]}isChainUnsupported(u){return!this.chains.some(e=>e.id===u)}setStorage(u){this.storage=u}};function bj(u){var t;if(!u)return"Injected";const e=n=>{if(n.isApexWallet)return"Apex Wallet";if(n.isAvalanche)return"Core Wallet";if(n.isBackpack)return"Backpack";if(n.isBifrost)return"Bifrost Wallet";if(n.isBitKeep)return"BitKeep";if(n.isBitski)return"Bitski";if(n.isBlockWallet)return"BlockWallet";if(n.isBraveWallet)return"Brave Wallet";if(n.isCoin98)return"Coin98 Wallet";if(n.isCoinbaseWallet)return"Coinbase Wallet";if(n.isDawn)return"Dawn Wallet";if(n.isDefiant)return"Defiant";if(n.isDesig)return"Desig Wallet";if(n.isEnkrypt)return"Enkrypt";if(n.isExodus)return"Exodus";if(n.isFordefi)return"Fordefi";if(n.isFrame)return"Frame";if(n.isFrontier)return"Frontier Wallet";if(n.isGamestop)return"GameStop Wallet";if(n.isHaqqWallet)return"HAQQ Wallet";if(n.isHyperPay)return"HyperPay Wallet";if(n.isImToken)return"ImToken";if(n.isHaloWallet)return"Halo Wallet";if(n.isKuCoinWallet)return"KuCoin Wallet";if(n.isMathWallet)return"MathWallet";if(n.isNovaWallet)return"Nova Wallet";if(n.isOkxWallet||n.isOKExWallet)return"OKX Wallet";if(n.isOneInchIOSWallet||n.isOneInchAndroidWallet)return"1inch Wallet";if(n.isOpera)return"Opera";if(n.isPhantom)return"Phantom";if(n.isPortal)return"Ripio Portal";if(n.isRabby)return"Rabby Wallet";if(n.isRainbow)return"Rainbow";if(n.isStatus)return"Status";if(n.isSubWallet)return"SubWallet";if(n.isTalisman)return"Talisman";if(n.isTally)return"Taho";if(n.isTokenPocket)return"TokenPocket";if(n.isTokenary)return"Tokenary";if(n.isTrust||n.isTrustWallet)return"Trust Wallet";if(n.isTTWallet)return"TTWallet";if(n.isXDEFI)return"XDEFI Wallet";if(n.isZeal)return"Zeal";if(n.isZerion)return"Zerion";if(n.isMetaMask)return"MetaMask"};if((t=u.providers)!=null&&t.length){const n=new Set;let r=1;for(const a of u.providers){let o=e(a);o||(o=`Unknown Wallet #${r}`,r+=1),n.add(o)}const i=[...n];return i.length?i:i[0]??"Injected"}return e(u)??"Injected"}var Jc,As=class extends Il{constructor({chains:u,options:e}={}){const t={shimDisconnect:!0,getProvider(){if(typeof window>"u")return;const r=window.ethereum;return r!=null&&r.providers?r.providers[0]:r},...e};super({chains:u,options:t}),this.id="injected",we(this,Jc,void 0),this.shimDisconnectKey=`${this.id}.shimDisconnect`,this.onAccountsChanged=r=>{r.length===0?this.emit("disconnect"):this.emit("change",{account:e0(r[0])})},this.onChainChanged=r=>{const i=la(r),a=this.isChainUnsupported(i);this.emit("change",{chain:{id:i,unsupported:a}})},this.onDisconnect=async r=>{var i;r.code===1013&&await this.getProvider()&&await this.getAccount()||(this.emit("disconnect"),this.options.shimDisconnect&&((i=this.storage)==null||i.removeItem(this.shimDisconnectKey)))};const n=t.getProvider();if(typeof t.name=="string")this.name=t.name;else if(n){const r=bj(n);t.name?this.name=t.name(r):typeof r=="string"?this.name=r:this.name=r[0]}else this.name="Injected";this.ready=!!n}async connect({chainId:u}={}){var e;try{const t=await this.getProvider();if(!t)throw new y0;t.on&&(t.on("accountsChanged",this.onAccountsChanged),t.on("chainChanged",this.onChainChanged),t.on("disconnect",this.onDisconnect)),this.emit("message",{type:"connecting"});const n=await t.request({method:"eth_requestAccounts"}),r=e0(n[0]);let i=await this.getChainId(),a=this.isChainUnsupported(i);return u&&i!==u&&(i=(await this.switchChain(u)).id,a=this.isChainUnsupported(i)),this.options.shimDisconnect&&((e=this.storage)==null||e.setItem(this.shimDisconnectKey,!0)),{account:r,chain:{id:i,unsupported:a}}}catch(t){throw this.isUserRejectedRequestError(t)?new _e(t):t.code===-32002?new Vr(t):t}}async disconnect(){var e;const u=await this.getProvider();u!=null&&u.removeListener&&(u.removeListener("accountsChanged",this.onAccountsChanged),u.removeListener("chainChanged",this.onChainChanged),u.removeListener("disconnect",this.onDisconnect),this.options.shimDisconnect&&((e=this.storage)==null||e.removeItem(this.shimDisconnectKey)))}async getAccount(){const u=await this.getProvider();if(!u)throw new y0;const e=await u.request({method:"eth_accounts"});return e0(e[0])}async getChainId(){const u=await this.getProvider();if(!u)throw new y0;return u.request({method:"eth_chainId"}).then(la)}async getProvider(){const u=this.options.getProvider();return u&&Jn(this,Jc,u),qu(this,Jc)}async getWalletClient({chainId:u}={}){const[e,t]=await Promise.all([this.getProvider(),this.getAccount()]),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Tl({account:t,chain:n,transport:Sl(e)})}async isAuthorized(){var u;try{if(this.options.shimDisconnect&&!((u=this.storage)!=null&&u.getItem(this.shimDisconnectKey)))return!1;if(!await this.getProvider())throw new y0;return!!await this.getAccount()}catch{return!1}}async switchChain(u){var n,r,i;const e=await this.getProvider();if(!e)throw new y0;const t=zu(u);try{return await Promise.all([e.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]}),new Promise(a=>this.on("change",({chain:o})=>{(o==null?void 0:o.id)===u&&a()}))]),this.chains.find(a=>a.id===u)??{id:u,name:`Chain ${t}`,network:`${t}`,nativeCurrency:{name:"Ether",decimals:18,symbol:"ETH"},rpcUrls:{default:{http:[""]},public:{http:[""]}}}}catch(a){const o=this.chains.find(s=>s.id===u);if(!o)throw new uD({chainId:u,connectorId:this.id});if(a.code===4902||((r=(n=a==null?void 0:a.data)==null?void 0:n.originalError)==null?void 0:r.code)===4902)try{if(await e.request({method:"wallet_addEthereumChain",params:[{chainId:t,chainName:o.name,nativeCurrency:o.nativeCurrency,rpcUrls:[((i=o.rpcUrls.public)==null?void 0:i.http[0])??""],blockExplorerUrls:this.getBlockExplorerUrls(o)}]}),await this.getChainId()!==u)throw new _e(new Error("User rejected switch after adding network."));return o}catch(s){throw new _e(s)}throw this.isUserRejectedRequestError(a)?new _e(a):new En(a)}}async watchAsset({address:u,decimals:e=18,image:t,symbol:n}){const r=await this.getProvider();if(!r)throw new y0;return r.request({method:"wallet_watchAsset",params:{type:"ERC20",options:{address:u,decimals:e,image:t,symbol:n}}})}isUserRejectedRequestError(u){return u.code===4001}};Jc=new WeakMap;var c5=(u,e,t)=>{if(!e.has(u))throw TypeError("Cannot "+t)},Z9=(u,e,t)=>(c5(u,e,"read from private field"),t?t.call(u):e.get(u)),u1=(u,e,t)=>{if(e.has(u))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(u):e.set(u,t)},yc=(u,e,t,n)=>(c5(u,e,"write to private field"),n?n.call(u,t):e.set(u,t),t),wj=(u,e,t)=>(c5(u,e,"access private method"),t);const xj=u=>(e,t,n)=>{const r=n.subscribe;return n.subscribe=(a,o,s)=>{let l=a;if(o){const c=(s==null?void 0:s.equalityFn)||Object.is;let E=a(n.getState());l=d=>{const f=a(d);if(!c(E,f)){const C=E;o(E=f,C)}},s!=null&&s.fireImmediately&&o(E,E)}return r(l)},u(e,t,n)},kj=xj;function _j(u,e){let t;try{t=u()}catch{return}return{getItem:r=>{var i;const a=s=>s===null?null:JSON.parse(s,e==null?void 0:e.reviver),o=(i=t.getItem(r))!=null?i:null;return o instanceof Promise?o.then(a):a(o)},setItem:(r,i)=>t.setItem(r,JSON.stringify(i,e==null?void 0:e.replacer)),removeItem:r=>t.removeItem(r)}}const z3=u=>e=>{try{const t=u(e);return t instanceof Promise?t:{then(n){return z3(n)(t)},catch(n){return this}}}catch(t){return{then(n){return this},catch(n){return z3(n)(t)}}}},Sj=(u,e)=>(t,n,r)=>{let i={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:B=>B,version:0,merge:(B,g)=>({...g,...B}),...e},a=!1;const o=new Set,s=new Set;let l;try{l=i.getStorage()}catch{}if(!l)return u((...B)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),t(...B)},n,r);const c=z3(i.serialize),E=()=>{const B=i.partialize({...n()});let g;const m=c({state:B,version:i.version}).then(y=>l.setItem(i.name,y)).catch(y=>{g=y});if(g)throw g;return m},d=r.setState;r.setState=(B,g)=>{d(B,g),E()};const f=u((...B)=>{t(...B),E()},n,r);let C;const h=()=>{var B;if(!l)return;a=!1,o.forEach(m=>m(n()));const g=((B=i.onRehydrateStorage)==null?void 0:B.call(i,n()))||void 0;return z3(l.getItem.bind(l))(i.name).then(m=>{if(m)return i.deserialize(m)}).then(m=>{if(m)if(typeof m.version=="number"&&m.version!==i.version){if(i.migrate)return i.migrate(m.state,m.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return m.state}).then(m=>{var y;return C=i.merge(m,(y=n())!=null?y:f),t(C,!0),E()}).then(()=>{g==null||g(C,void 0),a=!0,s.forEach(m=>m(C))}).catch(m=>{g==null||g(void 0,m)})};return r.persist={setOptions:B=>{i={...i,...B},B.getStorage&&(l=B.getStorage())},clearStorage:()=>{l==null||l.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>h(),hasHydrated:()=>a,onHydrate:B=>(o.add(B),()=>{o.delete(B)}),onFinishHydration:B=>(s.add(B),()=>{s.delete(B)})},h(),C||f},Pj=(u,e)=>(t,n,r)=>{let i={storage:_j(()=>localStorage),partialize:h=>h,version:0,merge:(h,B)=>({...B,...h}),...e},a=!1;const o=new Set,s=new Set;let l=i.storage;if(!l)return u((...h)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),t(...h)},n,r);const c=()=>{const h=i.partialize({...n()});return l.setItem(i.name,{state:h,version:i.version})},E=r.setState;r.setState=(h,B)=>{E(h,B),c()};const d=u((...h)=>{t(...h),c()},n,r);let f;const C=()=>{var h,B;if(!l)return;a=!1,o.forEach(m=>{var y;return m((y=n())!=null?y:d)});const g=((B=i.onRehydrateStorage)==null?void 0:B.call(i,(h=n())!=null?h:d))||void 0;return z3(l.getItem.bind(l))(i.name).then(m=>{if(m)if(typeof m.version=="number"&&m.version!==i.version){if(i.migrate)return i.migrate(m.state,m.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return m.state}).then(m=>{var y;return f=i.merge(m,(y=n())!=null?y:d),t(f,!0),c()}).then(()=>{g==null||g(f,void 0),f=n(),a=!0,s.forEach(m=>m(f))}).catch(m=>{g==null||g(void 0,m)})};return r.persist={setOptions:h=>{i={...i,...h},h.storage&&(l=h.storage)},clearStorage:()=>{l==null||l.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>C(),hasHydrated:()=>a,onHydrate:h=>(o.add(h),()=>{o.delete(h)}),onFinishHydration:h=>(s.add(h),()=>{s.delete(h)})},i.skipHydration||C(),f||d},Tj=(u,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?Sj(u,e):Pj(u,e),Ij=Tj,b8=u=>{let e;const t=new Set,n=(s,l)=>{const c=typeof s=="function"?s(e):s;if(!Object.is(c,e)){const E=e;e=l??typeof c!="object"?c:Object.assign({},e,c),t.forEach(d=>d(e,E))}},r=()=>e,o={setState:n,getState:r,subscribe:s=>(t.add(s),()=>t.delete(s)),destroy:()=>{t.clear()}};return e=u(n,r,o),o},Oj=u=>u?b8(u):b8;function tD(u,e){if(Object.is(u,e))return!0;if(typeof u!="object"||u===null||typeof e!="object"||e===null)return!1;if(u instanceof Map&&e instanceof Map){if(u.size!==e.size)return!1;for(const[n,r]of u)if(!Object.is(r,e.get(n)))return!1;return!0}if(u instanceof Set&&e instanceof Set){if(u.size!==e.size)return!1;for(const n of u)if(!e.has(n))return!1;return!0}const t=Object.keys(u);if(t.length!==Object.keys(e).length)return!1;for(let n=0;nh===E.id)||(s=[...s,C.chain]),l[E.id]=[...l[E.id]||[],...C.rpcUrls.http],C.rpcUrls.webSocket&&(c[E.id]=[...c[E.id]||[],...C.rpcUrls.webSocket]))}if(!d)throw new Error([`Could not find valid provider configuration for chain "${E.name}". +`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}}class MI extends gu{constructor({docsPath:e}){super("Cannot extract event signature from empty topics.",{docsPath:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEventSignatureEmptyTopicsError"})}}class UI extends gu{constructor(e,{docsPath:t}){super([`Encoded event signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join(` +`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEventSignatureNotFoundError"})}}class o8 extends gu{constructor(e,{docsPath:t}={}){super([`Event ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join(` +`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiEventNotFoundError"})}}class WE extends gu{constructor(e,{docsPath:t}={}){super([`Function ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(` +`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiFunctionNotFoundError"})}}class LI extends gu{constructor(e,{docsPath:t}){super([`Function "${e}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(` +`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiFunctionOutputsNotFoundError"})}}class $I extends gu{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BytesSizeMismatchError"})}}class sa extends gu{constructor({abiItem:e,data:t,params:n,size:r}){super([`Data size of ${r} bytes is too small for non-indexed event parameters.`].join(` +`),{metaMessages:[`Params: (${Z2(n,{includeName:!0})})`,`Data: ${t} (${r} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e,this.data=t,this.params=n,this.size=r}}class js extends gu{constructor({abiItem:e,param:t}){super([`Expected a topic for indexed event parameter${t.name?` "${t.name}"`:""} on event "${ii(e,{includeName:!0})}".`].join(` +`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e}}class WI extends gu{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(` +`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiEncodingType"})}}class qI extends gu{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(` +`),{docsPath:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiDecodingType"})}}class HI extends gu{constructor(e){super([`Value "${e}" is not a valid array.`].join(` +`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidArrayError"})}}class GI extends gu{constructor(e){super([`"${e}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(` +`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidDefinitionTypeError"})}}class KI extends gu{constructor(e){super(`Filter type "${e}" is not supported.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"FilterTypeNotSupportedError"})}}const QI=/((function|event)\s)?(.*)(\((.*)\))/;function eF(u){const e=u.match(QI),t=(e==null?void 0:e[2])||void 0,n=e==null?void 0:e[3],r=(e==null?void 0:e[5])||void 0;return{type:t,name:n,params:r}}function VI(u){return eF(u).name}function JI(u){const e=eF(u).params,t=e==null?void 0:e.split(",").map(n=>n.trim().split(" "));return t==null?void 0:t.map(n=>({type:n[0],name:n[1]==="indexed"?n[2]:n[1],...n[1]==="indexed"?{indexed:!0}:{}}))}const tF=u=>{if(typeof u=="string"){const e=VI(u),t=JI(u)||[];return`${e}(${t.map(({type:n})=>n).join(",")})`}return ii(u)},YI=u=>tF(u);function qE(u){if(!Number.isSafeInteger(u)||u<0)throw new Error(`Wrong positive integer: ${u}`)}function Oh(u,...e){if(!(u instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(u.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${u.length}`)}function XI(u){if(typeof u!="function"||typeof u.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");qE(u.outputLen),qE(u.blockLen)}function hs(u,e=!0){if(u.destroyed)throw new Error("Hash instance has been destroyed");if(e&&u.finished)throw new Error("Hash#digest() has already been called")}function nF(u,e){Oh(u);const t=e.outputLen;if(u.length>s8&gc)}:{h:Number(u>>s8&gc)|0,l:Number(u&gc)|0}}function uO(u,e=!1){let t=new Uint32Array(u.length),n=new Uint32Array(u.length);for(let r=0;ru<>>32-t,tO=(u,e,t)=>e<>>32-t,nO=(u,e,t)=>e<>>64-t,rO=(u,e,t)=>u<>>64-t,q9=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const rF=u=>u instanceof Uint8Array,iO=u=>new Uint32Array(u.buffer,u.byteOffset,Math.floor(u.byteLength/4)),H9=u=>new DataView(u.buffer,u.byteOffset,u.byteLength),Ht=(u,e)=>u<<32-e|u>>>e,aO=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!aO)throw new Error("Non little-endian hardware is not supported");function oO(u){if(typeof u!="string")throw new Error(`utf8ToBytes expected string, got ${typeof u}`);return new Uint8Array(new TextEncoder().encode(u))}function ed(u){if(typeof u=="string"&&(u=oO(u)),!rF(u))throw new Error(`expected Uint8Array, got ${typeof u}`);return u}function sO(...u){const e=new Uint8Array(u.reduce((n,r)=>n+r.length,0));let t=0;return u.forEach(n=>{if(!rF(n))throw new Error("Uint8Array expected");e.set(n,t),t+=n.length}),e}let Nh=class{clone(){return this._cloneInto()}};function iF(u){const e=n=>u().update(ed(n)).digest(),t=u();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>u(),e}function lO(u=32){if(q9&&typeof q9.getRandomValues=="function")return q9.getRandomValues(new Uint8Array(u));throw new Error("crypto.getRandomValues must be defined")}const[aF,oF,sF]=[[],[],[]],cO=BigInt(0),C4=BigInt(1),EO=BigInt(2),dO=BigInt(7),fO=BigInt(256),pO=BigInt(113);for(let u=0,e=C4,t=1,n=0;u<24;u++){[t,n]=[n,(2*t+3*n)%5],aF.push(2*(5*n+t)),oF.push((u+1)*(u+2)/2%64);let r=cO;for(let i=0;i<7;i++)e=(e<>dO)*pO)%fO,e&EO&&(r^=C4<<(C4<t>32?nO(u,e,t):eO(u,e,t),c8=(u,e,t)=>t>32?rO(u,e,t):tO(u,e,t);function mO(u,e=24){const t=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let a=0;a<10;a++)t[a]=u[a]^u[a+10]^u[a+20]^u[a+30]^u[a+40];for(let a=0;a<10;a+=2){const o=(a+8)%10,s=(a+2)%10,l=t[s],c=t[s+1],E=l8(l,c,1)^t[o],d=c8(l,c,1)^t[o+1];for(let f=0;f<50;f+=10)u[a+f]^=E,u[a+f+1]^=d}let r=u[2],i=u[3];for(let a=0;a<24;a++){const o=oF[a],s=l8(r,i,o),l=c8(r,i,o),c=aF[a];r=u[c],i=u[c+1],u[c]=s,u[c+1]=l}for(let a=0;a<50;a+=10){for(let o=0;o<10;o++)t[o]=u[a+o];for(let o=0;o<10;o++)u[a+o]^=~t[(o+2)%10]&t[(o+4)%10]}u[0]^=hO[n],u[1]^=CO[n]}t.fill(0)}class Rh extends Nh{constructor(e,t,n,r=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,qE(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=iO(this.state)}keccak(){mO(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){hs(this);const{blockLen:t,state:n}=this;e=ed(e);const r=e.length;for(let i=0;i=n&&this.keccak();const a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return qE(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(nF(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:r,rounds:i,enableXOF:a}=this;return e||(e=new Rh(t,n,r,a,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=n,e.outputLen=r,e.enableXOF=a,e.destroyed=this.destroyed,e}}const gO=(u,e,t)=>iF(()=>new Rh(e,u,t)),lF=gO(1,136,256/8);function l0(u,e){const t=e||"hex",n=lF(En(u,{strict:!1})?Vr(u):u);return t==="bytes"?n:tr(n)}const AO=u=>l0(Vr(u)),jh=u=>AO(YI(u));function De(u,e,t,{strict:n}={}){return En(u,{strict:!1})?BO(u,e,t,{strict:n}):yO(u,e,t,{strict:n})}function cF(u,e){if(typeof e=="number"&&e>0&&e>Pe(u)-1)throw new Qv({offset:e,position:"start",size:Pe(u)})}function EF(u,e,t){if(typeof e=="number"&&typeof t=="number"&&Pe(u)!==t-e)throw new Qv({offset:t,position:"end",size:Pe(u)})}function yO(u,e,t,{strict:n}={}){cF(u,e);const r=u.slice(e,t);return n&&EF(r,e,t),r}function BO(u,e,t,{strict:n}={}){cF(u,e);const r=`0x${u.replace("0x","").slice((e??0)*2,(t??u.length)*2)}`;return n&&EF(r,e,t),r}function Fl(u,e){if(u.length!==e.length)throw new zI({expectedLength:u.length,givenLength:e.length});const t=vO({params:u,values:e}),n=Mh(t);return n.length===0?"0x":n}function vO({params:u,values:e}){const t=[];for(let n=0;n0?Jn([o,a]):o}}if(r)return{dynamic:!0,encoded:a}}return{dynamic:!1,encoded:Jn(i.map(({encoded:a})=>a))}}function bO(u,{param:e}){const[,t]=e.type.split("bytes"),n=Pe(u);if(!t){let r=u;return n%32!==0&&(r=Hr(r,{dir:"right",size:Math.ceil((u.length-2)/2/32)*32})),{dynamic:!0,encoded:Jn([Hr(Mu(n,{size:32})),r])}}if(n!==parseInt(t))throw new jI({expectedSize:parseInt(t),value:u});return{dynamic:!1,encoded:Hr(u,{dir:"right"})}}function wO(u){return{dynamic:!1,encoded:Hr(Jv(u))}}function xO(u,{signed:e}){return{dynamic:!1,encoded:Mu(u,{size:32,signed:e})}}function kO(u){const e=xh(u),t=Math.ceil(Pe(e)/32),n=[];for(let r=0;rr))}}function td(u){const e=u.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}const SO=u=>l0(Vr(u)),Uh=u=>De(SO(tF(u)),0,4);function Dl({abi:u,args:e=[],name:t}){const n=En(t,{strict:!1}),r=u.filter(i=>n?i.type==="function"?Uh(i)===t:i.type==="event"?jh(i)===t:!1:"name"in i&&i.name===t);if(r.length!==0){if(r.length===1)return r[0];for(const i of r){if(!("inputs"in i))continue;if(!e||e.length===0){if(!i.inputs||i.inputs.length===0)return i;continue}if(!i.inputs||i.inputs.length===0||i.inputs.length!==e.length)continue;if(e.every((o,s)=>{const l="inputs"in i&&i.inputs[s];return l?Z6(o,l):!1}))return i}return r[0]}}function Z6(u,e){const t=typeof u,n=e.type;switch(n){case"address":return ps(u);case"bool":return t==="boolean";case"function":return t==="string";case"string":return t==="string";default:return n==="tuple"&&"components"in e?Object.values(e.components).every((r,i)=>Z6(Object.values(u)[i],r)):/^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)?t==="number"||t==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(n)?t==="string"||u instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(n)?Array.isArray(u)&&u.every(r=>Z6(r,{...e,type:n.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function bl({abi:u,eventName:e,args:t}){var o;let n=u[0];if(e&&(n=Dl({abi:u,args:t,name:e}),!n))throw new o8(e,{docsPath:"/docs/contract/encodeEventTopics"});if(n.type!=="event")throw new o8(void 0,{docsPath:"/docs/contract/encodeEventTopics"});const r=ii(n),i=jh(r);let a=[];if(t&&"inputs"in n){const s=(o=n.inputs)==null?void 0:o.filter(c=>"indexed"in c&&c.indexed),l=Array.isArray(t)?t:Object.values(t).length>0?(s==null?void 0:s.map(c=>t[c.name]))??[]:[];l.length>0&&(a=(s==null?void 0:s.map((c,E)=>Array.isArray(l[E])?l[E].map((d,f)=>E8({param:c,value:l[E][f]})):l[E]?E8({param:c,value:l[E]}):null))??[])}return[i,...a]}function E8({param:u,value:e}){if(u.type==="string"||u.type==="bytes")return l0(Vr(e));if(u.type==="tuple"||u.type.match(/^(.*)\[(\d+)?\]$/))throw new KI(u.type);return Fl([u],[e])}function nd(u,{method:e}){var n,r;const t={};return u.transport.type==="fallback"&&((r=(n=u.transport).onResponse)==null||r.call(n,({method:i,response:a,status:o,transport:s})=>{o==="success"&&e===i&&(t[a]=s.request)})),i=>t[i]||u.request}async function dF(u,{address:e,abi:t,args:n,eventName:r,fromBlock:i,strict:a,toBlock:o}){const s=nd(u,{method:"eth_newFilter"}),l=r?bl({abi:t,args:n,eventName:r}):void 0,c=await u.request({method:"eth_newFilter",params:[{address:e,fromBlock:typeof i=="bigint"?Mu(i):i,toBlock:typeof o=="bigint"?Mu(o):o,topics:l}]});return{abi:t,args:n,eventName:r,id:c,request:s(c),strict:a,type:"event"}}function mt(u){return typeof u=="string"?{address:u,type:"json-rpc"}:u}function ai({abi:u,args:e,functionName:t}){let n=u[0];if(t&&(n=Dl({abi:u,args:e,name:t}),!n))throw new WE(t,{docsPath:"/docs/contract/encodeFunctionData"});if(n.type!=="function")throw new WE(void 0,{docsPath:"/docs/contract/encodeFunctionData"});const r=ii(n),i=Uh(r),a="inputs"in n&&n.inputs?Fl(n.inputs,e??[]):void 0;return Th([i,a??"0x"])}const fF={1:"An `assert` condition failed.",17:"Arithmic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},PO={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},TO={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"};function Lh(u,e){const t=e?`${e}${u.toLowerCase()}`:u.substring(2).toLowerCase(),n=l0(Wn(t),"bytes"),r=(e?t.substring(`${e}0x`.length):t).split("");for(let i=0;i<40;i+=2)n[i>>1]>>4>=8&&r[i]&&(r[i]=r[i].toUpperCase()),(n[i>>1]&15)>=8&&r[i+1]&&(r[i+1]=r[i+1].toUpperCase());return`0x${r.join("")}`}function t0(u,e){if(!ps(u))throw new v3({address:u});return Lh(u,e)}function rd(u,e){if(e==="0x"&&u.length>0)throw new ud;if(Pe(e)&&Pe(e)<32)throw new Ih({data:e,params:u,size:Pe(e)});return IO({data:e,params:u})}function IO({data:u,params:e}){const t=[];let n=0;for(let r=0;r=Pe(u))throw new Ih({data:u,params:e,size:Pe(u)});const i=e[r],{consumed:a,value:o}=Co({data:u,param:i,position:n});t.push(o),n+=a}return t}function Co({data:u,param:e,position:t}){const n=td(e.type);if(n){const[i,a]=n;return NO(u,{length:i,param:{...e,type:a},position:t})}if(e.type==="tuple")return UO(u,{param:e,position:t});if(e.type==="string")return MO(u,{position:t});if(e.type.startsWith("bytes"))return jO(u,{param:e,position:t});const r=De(u,t,t+32,{strict:!0});if(e.type.startsWith("uint")||e.type.startsWith("int"))return zO(r,{param:e});if(e.type==="address")return OO(r);if(e.type==="bool")return RO(r);throw new qI(e.type,{docsPath:"/docs/contract/decodeAbiParameters"})}function OO(u){return{consumed:32,value:Lh(De(u,-20))}}function NO(u,{param:e,length:t,position:n}){if(!t){const a=e0(De(u,n,n+32,{strict:!0})),o=e0(De(u,a,a+32,{strict:!0}));let s=0;const l=[];for(let c=0;c48?On(u,{signed:t}):e0(u,{signed:t})}}function MO(u,{position:e}){const t=e0(De(u,e,e+32,{strict:!0})),n=e0(De(u,t,t+32,{strict:!0}));return n===0?{consumed:32,value:""}:{consumed:32,value:_h(Yi(De(u,t+32,t+32+n,{strict:!0})))}}function UO(u,{param:e,position:t}){const n=e.components.length===0||e.components.some(({name:a})=>!a),r=n?[]:{};let i=0;if(HE(e)){const a=e0(De(u,t,t+32,{strict:!0}));for(let o=0;oi.type==="error"&&t===Uh(ii(i)));if(!r)throw new uF(t,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:r,args:"inputs"in r&&r.inputs&&r.inputs.length>0?rd(r.inputs,De(e,4)):void 0,errorName:r.name}}const p0=(u,e,t)=>JSON.stringify(u,(n,r)=>{const i=typeof r=="bigint"?r.toString():r;return typeof e=="function"?e(n,i):i},t);function pF({abiItem:u,args:e,includeFunctionName:t=!0,includeName:n=!1}){if("name"in u&&"inputs"in u&&u.inputs)return`${t?u.name:""}(${u.inputs.map((r,i)=>`${n&&r.name?`${r.name}: `:""}${typeof e[i]=="object"?p0(e[i]):e[i]}`).join(", ")})`}function $h(u,e="wei"){return UE(u,_I[e])}function wl(u){const e=Object.entries(u).map(([n,r])=>r===void 0||r===!1?null:[n,r]).filter(Boolean),t=e.reduce((n,[r])=>Math.max(n,r.length),0);return e.map(([n,r])=>` ${`${n}:`.padEnd(t+1)} ${r}`).join(` +`)}class $O extends gu{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(` +`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"FeeConflictError"})}}class WO extends gu{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",wl(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- a Legacy Transaction with `gasPrice`"]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSerializableTransactionError"})}}class qO extends gu{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d}){const f=wl({chain:r&&`${r==null?void 0:r.name} (id: ${r==null?void 0:r.id})`,from:t==null?void 0:t.address,to:E,value:typeof d<"u"&&`${$h(d)} ${(r==null?void 0:r.nativeCurrency.symbol)||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${_0(o)} gwei`,maxFeePerGas:typeof s<"u"&&`${_0(s)} gwei`,maxPriorityFeePerGas:typeof l<"u"&&`${_0(l)} gwei`,nonce:c});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Request Arguments:",f].filter(Boolean)}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionExecutionError"}),this.cause=e}}class hF extends gu{constructor({blockHash:e,blockNumber:t,blockTag:n,hash:r,index:i}){let a="Transaction";n&&i!==void 0&&(a=`Transaction at block time "${n}" at index "${i}"`),e&&i!==void 0&&(a=`Transaction at block hash "${e}" at index "${i}"`),t&&i!==void 0&&(a=`Transaction at block number "${t}" at index "${i}"`),r&&(a=`Transaction with hash "${r}"`),super(`${a} could not be found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionNotFoundError"})}}class CF extends gu{constructor({hash:e}){super(`Transaction receipt with hash "${e}" could not be found. The Transaction may not be processed on a block yet.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionReceiptNotFoundError"})}}class HO extends gu{constructor({hash:e}){super(`Timed out while waiting for transaction with hash "${e}" to be confirmed.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WaitForTransactionReceiptTimeoutError"})}}class mF extends gu{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d}){const f=t?mt(t):void 0,C=wl({from:f==null?void 0:f.address,to:E,value:typeof d<"u"&&`${$h(d)} ${(r==null?void 0:r.nativeCurrency.symbol)||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${_0(o)} gwei`,maxFeePerGas:typeof s<"u"&&`${_0(s)} gwei`,maxPriorityFeePerGas:typeof l<"u"&&`${_0(l)} gwei`,nonce:c});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Raw Call Arguments:",C].filter(Boolean)}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CallExecutionError"}),this.cause=e}}class Wh extends gu{constructor(e,{abi:t,args:n,contractAddress:r,docsPath:i,functionName:a,sender:o}){const s=Dl({abi:t,args:n,name:a}),l=s?pF({abiItem:s,args:n,includeFunctionName:!1,includeName:!1}):void 0,c=s?ii(s,{includeName:!0}):void 0,E=wl({address:r&&lI(r),function:c,args:l&&l!=="()"&&`${[...Array((a==null?void 0:a.length)??0).keys()].map(()=>" ").join("")}${l}`,sender:o});super(e.shortMessage||`An unknown error occurred while executing the contract function "${a}".`,{cause:e,docsPath:i,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Contract Call:",E].filter(Boolean)}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ContractFunctionExecutionError"}),this.abi=t,this.args=n,this.cause=e,this.contractAddress=r,this.functionName=a,this.sender=o}}class uf extends gu{constructor({abi:e,data:t,functionName:n,message:r}){let i,a,o,s;if(t&&t!=="0x")try{a=LO({abi:e,data:t});const{abiItem:c,errorName:E,args:d}=a;if(E==="Error")s=d[0];else if(E==="Panic"){const[f]=d;s=fF[f]}else{const f=c?ii(c,{includeName:!0}):void 0,C=c&&d?pF({abiItem:c,args:d,includeFunctionName:!1,includeName:!1}):void 0;o=[f?`Error: ${f}`:"",C&&C!=="()"?` ${[...Array((E==null?void 0:E.length)??0).keys()].map(()=>" ").join("")}${C}`:""]}}catch(c){i=c}else r&&(s=r);let l;i instanceof uF&&(l=i.signature,o=[`Unable to decode signature "${l}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${l}.`]),super(s&&s!=="execution reverted"||l?[`The contract function "${n}" reverted with the following ${l?"signature":"reason"}:`,s||l].join(` +`):`The contract function "${n}" reverted.`,{cause:i,metaMessages:o}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=a,this.reason=s,this.signature=l}}class GO extends gu{constructor({functionName:e}){super(`The contract function "${e}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${e}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ContractFunctionZeroDataError"})}}class qh extends gu{constructor({data:e,message:t}){super(t||""),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RawContractError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e}}class J4 extends gu{constructor({body:e,details:t,headers:n,status:r,url:i}){super("HTTP request failed.",{details:t,metaMessages:[r&&`Status: ${r}`,`URL: ${V2(i)}`,e&&`Request body: ${p0(e)}`].filter(Boolean)}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=e,this.headers=n,this.status=r,this.url=i}}class KO extends gu{constructor({body:e,details:t,url:n}){super("WebSocket request failed.",{details:t,metaMessages:[`URL: ${V2(n)}`,`Request body: ${p0(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WebSocketRequestError"})}}class Hh extends gu{constructor({body:e,error:t,url:n}){super("RPC Request failed.",{cause:t,details:t.message,metaMessages:[`URL: ${V2(n)}`,`Request body: ${p0(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t.code}}class ef extends gu{constructor({body:e,url:t}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${V2(t)}`,`Request body: ${p0(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TimeoutError"})}}const QO=-1;class I0 extends gu{constructor(e,{code:t,docsPath:n,metaMessages:r,shortMessage:i}){super(i,{cause:e,docsPath:n,metaMessages:r||(e==null?void 0:e.metaMessages)}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.code=e instanceof Hh?e.code:t??QO}}class zs extends I0{constructor(e,t){super(e,t),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ProviderRpcError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t.data}}class F3 extends I0{constructor(e){super(e,{code:F3.code,shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ParseRpcError"})}}Object.defineProperty(F3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class D3 extends I0{constructor(e){super(e,{code:D3.code,shortMessage:"JSON is not a valid request object."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidRequestRpcError"})}}Object.defineProperty(D3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class b3 extends I0{constructor(e){super(e,{code:b3.code,shortMessage:"The method does not exist / is not available."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"MethodNotFoundRpcError"})}}Object.defineProperty(b3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class w3 extends I0{constructor(e){super(e,{code:w3.code,shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(` +`)}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParamsRpcError"})}}Object.defineProperty(w3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class Cs extends I0{constructor(e){super(e,{code:Cs.code,shortMessage:"An internal error was received."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InternalRpcError"})}}Object.defineProperty(Cs,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class la extends I0{constructor(e){super(e,{code:la.code,shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(` +`)}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidInputRpcError"})}}Object.defineProperty(la,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class x3 extends I0{constructor(e){super(e,{code:x3.code,shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(x3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class Jr extends I0{constructor(e){super(e,{code:Jr.code,shortMessage:"Requested resource not available."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceUnavailableRpcError"})}}Object.defineProperty(Jr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class k3 extends I0{constructor(e){super(e,{code:k3.code,shortMessage:"Transaction creation failed."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionRejectedRpcError"})}}Object.defineProperty(k3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});class _3 extends I0{constructor(e){super(e,{code:_3.code,shortMessage:"Method is not implemented."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"MethodNotSupportedRpcError"})}}Object.defineProperty(_3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});class S3 extends I0{constructor(e){super(e,{code:S3.code,shortMessage:"Request exceeds defined limit."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"LimitExceededRpcError"})}}Object.defineProperty(S3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class P3 extends I0{constructor(e){super(e,{code:P3.code,shortMessage:"Version of JSON-RPC protocol is not supported."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"JsonRpcVersionUnsupportedError"})}}Object.defineProperty(P3,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class Se extends zs{constructor(e){super(e,{code:Se.code,shortMessage:"User rejected the request."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UserRejectedRequestError"})}}Object.defineProperty(Se,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class T3 extends zs{constructor(e){super(e,{code:T3.code,shortMessage:"The requested method and/or account has not been authorized by the user."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnauthorizedProviderError"})}}Object.defineProperty(T3,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class I3 extends zs{constructor(e){super(e,{code:I3.code,shortMessage:"The Provider does not support the requested method."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnsupportedProviderMethodError"})}}Object.defineProperty(I3,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class O3 extends zs{constructor(e){super(e,{code:O3.code,shortMessage:"The Provider is disconnected from all chains."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ProviderDisconnectedError"})}}Object.defineProperty(O3,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class N3 extends zs{constructor(e){super(e,{code:N3.code,shortMessage:"The Provider is not connected to the requested chain."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ChainDisconnectedError"})}}Object.defineProperty(N3,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class dn extends zs{constructor(e){super(e,{code:dn.code,shortMessage:"An error occurred when attempting to switch chain."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SwitchChainError"})}}Object.defineProperty(dn,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class VO extends I0{constructor(e){super(e,{shortMessage:"An unknown RPC error occurred."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownRpcError"})}}const JO=3;function R3(u,{abi:e,address:t,args:n,docsPath:r,functionName:i,sender:a}){const{code:o,data:s,message:l,shortMessage:c}=u instanceof qh?u:u instanceof gu?u.walk(d=>"data"in d)||u.walk():{},E=(()=>u instanceof ud?new GO({functionName:i}):[JO,Cs.code].includes(o)&&(s||l||c)?new uf({abi:e,data:typeof s=="object"?s.data:s,functionName:i,message:c??l}):u)();return new Wh(E,{abi:e,args:n,contractAddress:t,docsPath:r,functionName:i,sender:a})}class Ms extends gu{constructor({docsPath:e}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the WalletClient."].join(` +`),{docsPath:e,docsSlug:"account"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AccountNotFoundError"})}}class YO extends gu{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d}){const f=wl({from:t==null?void 0:t.address,to:E,value:typeof d<"u"&&`${$h(d)} ${(r==null?void 0:r.nativeCurrency.symbol)||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${_0(o)} gwei`,maxFeePerGas:typeof s<"u"&&`${_0(s)} gwei`,maxPriorityFeePerGas:typeof l<"u"&&`${_0(l)} gwei`,nonce:c});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Estimate Gas Arguments:",f].filter(Boolean)}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EstimateGasExecutionError"}),this.cause=e}}function Gh(u,e){const t=(u.details||"").toLowerCase(),n=u.walk(r=>r.code===uo.code);return n instanceof gu?new uo({cause:u,message:n.details}):uo.nodeMessage.test(t)?new uo({cause:u,message:u.details}):LE.nodeMessage.test(t)?new LE({cause:u,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):H6.nodeMessage.test(t)?new H6({cause:u,maxFeePerGas:e==null?void 0:e.maxFeePerGas}):G6.nodeMessage.test(t)?new G6({cause:u,nonce:e==null?void 0:e.nonce}):K6.nodeMessage.test(t)?new K6({cause:u,nonce:e==null?void 0:e.nonce}):Q6.nodeMessage.test(t)?new Q6({cause:u,nonce:e==null?void 0:e.nonce}):V6.nodeMessage.test(t)?new V6({cause:u}):J6.nodeMessage.test(t)?new J6({cause:u,gas:e==null?void 0:e.gas}):Y6.nodeMessage.test(t)?new Y6({cause:u,gas:e==null?void 0:e.gas}):X6.nodeMessage.test(t)?new X6({cause:u}):$E.nodeMessage.test(t)?new $E({cause:u,maxFeePerGas:e==null?void 0:e.maxFeePerGas,maxPriorityFeePerGas:e==null?void 0:e.maxPriorityFeePerGas}):new X2({cause:u})}function XO(u,{docsPath:e,...t}){const n=(()=>{const r=Gh(u,t);return r instanceof X2?u:r})();return new YO(n,{docsPath:e,...t})}function Kh(u,{format:e}){if(!e)return{};const t={};function n(i){const a=Object.keys(i);for(const o of a)o in u&&(t[o]=u[o]),i[o]&&typeof i[o]=="object"&&!Array.isArray(i[o])&&n(i[o])}const r=e(u||{});return n(r),t}function xl(u){const{account:e,gasPrice:t,maxFeePerGas:n,maxPriorityFeePerGas:r,to:i}=u,a=e?mt(e):void 0;if(a&&!ps(a.address))throw new v3({address:a.address});if(i&&!ps(i))throw new v3({address:i});if(typeof t<"u"&&(typeof n<"u"||typeof r<"u"))throw new $O;if(n&&n>2n**256n-1n)throw new LE({maxFeePerGas:n});if(r&&n&&r>n)throw new $E({maxFeePerGas:n,maxPriorityFeePerGas:r})}class ZO extends gu{constructor(){super("`baseFeeMultiplier` must be greater than 1."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseFeeScalarError"})}}class Qh extends gu{constructor(){super("Chain does not support EIP-1559 fees."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Eip1559FeesNotSupportedError"})}}class uN extends gu{constructor({maxPriorityFeePerGas:e}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${_0(e)} gwei).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"MaxFeePerGasTooLowError"})}}class eN extends gu{constructor({blockHash:e,blockNumber:t}){let n="Block";e&&(n=`Block at hash "${e}"`),t&&(n=`Block at number "${t}"`),super(`${n} could not be found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BlockNotFoundError"})}}async function Yr(u,{blockHash:e,blockNumber:t,blockTag:n,includeTransactions:r}={}){var c,E,d;const i=n??"latest",a=r??!1,o=t!==void 0?Mu(t):void 0;let s=null;if(e?s=await u.request({method:"eth_getBlockByHash",params:[e,a]}):s=await u.request({method:"eth_getBlockByNumber",params:[o||i,a]}),!s)throw new eN({blockHash:e,blockNumber:t});return(((d=(E=(c=u.chain)==null?void 0:c.formatters)==null?void 0:E.block)==null?void 0:d.format)||Ph)(s)}async function Vh(u){const e=await u.request({method:"eth_gasPrice"});return BigInt(e)}async function tN(u,e){return gF(u,e)}async function gF(u,e){var i,a,o;const{block:t,chain:n=u.chain,request:r}=e||{};if(typeof((i=n==null?void 0:n.fees)==null?void 0:i.defaultPriorityFee)=="function"){const s=t||await Ru(u,Yr)({});return n.fees.defaultPriorityFee({block:s,client:u,request:r})}else if(typeof((a=n==null?void 0:n.fees)==null?void 0:a.defaultPriorityFee)<"u")return(o=n==null?void 0:n.fees)==null?void 0:o.defaultPriorityFee;try{const s=await u.request({method:"eth_maxPriorityFeePerGas"});return On(s)}catch{const[s,l]=await Promise.all([t?Promise.resolve(t):Ru(u,Yr)({}),Ru(u,Vh)({})]);if(typeof s.baseFeePerGas!="bigint")throw new Qh;const c=l-s.baseFeePerGas;return c<0n?0n:c}}async function nN(u,e){return tf(u,e)}async function tf(u,e){var d,f;const{block:t,chain:n=u.chain,request:r,type:i="eip1559"}=e||{},a=await(async()=>{var C,h;return typeof((C=n==null?void 0:n.fees)==null?void 0:C.baseFeeMultiplier)=="function"?n.fees.baseFeeMultiplier({block:t,client:u,request:r}):((h=n==null?void 0:n.fees)==null?void 0:h.baseFeeMultiplier)??1.2})();if(a<1)throw new ZO;const s=10**(((d=a.toString().split(".")[1])==null?void 0:d.length)??0),l=C=>C*BigInt(Math.ceil(a*s))/BigInt(s),c=t||await Ru(u,Yr)({});if(typeof((f=n==null?void 0:n.fees)==null?void 0:f.estimateFeesPerGas)=="function")return n.fees.estimateFeesPerGas({block:t,client:u,multiply:l,request:r,type:i});if(i==="eip1559"){if(typeof c.baseFeePerGas!="bigint")throw new Qh;const C=r!=null&&r.maxPriorityFeePerGas?r.maxPriorityFeePerGas:await gF(u,{block:c,chain:n,request:r}),h=l(c.baseFeePerGas);return{maxFeePerGas:(r==null?void 0:r.maxFeePerGas)??h+C,maxPriorityFeePerGas:C}}return{gasPrice:(r==null?void 0:r.gasPrice)??l(await Ru(u,Vh)({}))}}async function AF(u,{address:e,blockTag:t="latest",blockNumber:n}){const r=await u.request({method:"eth_getTransactionCount",params:[e,n?Mu(n):t]});return e0(r)}function rN(u){if(u.type)return u.type;if(typeof u.maxFeePerGas<"u"||typeof u.maxPriorityFeePerGas<"u")return"eip1559";if(typeof u.gasPrice<"u")return typeof u.accessList<"u"?"eip2930":"legacy";throw new WO({transaction:u})}async function id(u,e){const{account:t=u.account,chain:n,gas:r,nonce:i,type:a}=e;if(!t)throw new Ms;const o=mt(t),s=await Ru(u,Yr)({blockTag:"latest"}),l={...e,from:o.address};if(typeof i>"u"&&(l.nonce=await Ru(u,AF)({address:o.address,blockTag:"pending"})),typeof a>"u")try{l.type=rN(l)}catch{l.type=typeof s.baseFeePerGas=="bigint"?"eip1559":"legacy"}if(l.type==="eip1559"){const{maxFeePerGas:c,maxPriorityFeePerGas:E}=await tf(u,{block:s,chain:n,request:l});if(typeof e.maxPriorityFeePerGas>"u"&&e.maxFeePerGas&&e.maxFeePerGas"u"&&(l.gas=await Ru(u,Jh)({...l,account:{address:o.address,type:"json-rpc"}})),xl(l),l}async function Jh(u,e){var r,i,a;const t=e.account??u.account;if(!t)throw new Ms({docsPath:"/docs/actions/public/estimateGas"});const n=mt(t);try{const{accessList:o,blockNumber:s,blockTag:l,data:c,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,to:B,value:g,...m}=n.type==="local"?await id(u,e):e,v=(s?Mu(s):void 0)||l;xl(e);const w=(a=(i=(r=u.chain)==null?void 0:r.formatters)==null?void 0:i.transactionRequest)==null?void 0:a.format,p=(w||Y2)({...Kh(m,{format:w}),from:n.address,accessList:o,data:c,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,to:B,value:g}),x=await u.request({method:"eth_estimateGas",params:v?[p,v]:[p]});return BigInt(x)}catch(o){throw XO(o,{...e,account:n,chain:u.chain})}}async function iN(u,{abi:e,address:t,args:n,functionName:r,...i}){const a=ai({abi:e,args:n,functionName:r});try{return await Ru(u,Jh)({data:a,to:t,...i})}catch(o){const s=i.account?mt(i.account):void 0;throw R3(o,{abi:e,address:t,args:n,docsPath:"/docs/contract/estimateContractGas",functionName:r,sender:s==null?void 0:s.address})}}const d8="/docs/contract/decodeEventLog";function kl({abi:u,data:e,strict:t,topics:n}){const r=t??!0,[i,...a]=n;if(!i)throw new MI({docsPath:d8});const o=u.find(C=>C.type==="event"&&i===jh(ii(C)));if(!(o&&"name"in o)||o.type!=="event")throw new UI(i,{docsPath:d8});const{name:s,inputs:l}=o,c=l==null?void 0:l.some(C=>!("name"in C&&C.name));let E=c?[]:{};const d=l.filter(C=>"indexed"in C&&C.indexed);for(let C=0;C!("indexed"in C&&C.indexed));if(f.length>0){if(e&&e!=="0x")try{const C=rd(f,e);if(C)if(c)E=[...E,...C];else for(let h=0;h0?E:void 0}}function aN({param:u,value:e}){return u.type==="string"||u.type==="bytes"||u.type==="tuple"||u.type.match(/^(.*)\[(\d+)?\]$/)?e:(rd([u],e)||[])[0]}async function Yh(u,{address:e,blockHash:t,fromBlock:n,toBlock:r,event:i,events:a,args:o,strict:s}={}){const l=s??!1,c=a??(i?[i]:void 0);let E=[];c&&(E=[c.flatMap(f=>bl({abi:[f],eventName:f.name,args:o}))],i&&(E=E[0]));let d;return t?d=await u.request({method:"eth_getLogs",params:[{address:e,topics:E,blockHash:t}]}):d=await u.request({method:"eth_getLogs",params:[{address:e,topics:E,fromBlock:typeof n=="bigint"?Mu(n):n,toBlock:typeof r=="bigint"?Mu(r):r}]}),d.map(f=>{var C;try{const{eventName:h,args:B}=c?kl({abi:c,data:f.data,topics:f.topics,strict:l}):{eventName:void 0,args:void 0};return zt(f,{args:B,eventName:h})}catch(h){let B,g;if(h instanceof sa||h instanceof js){if(l)return;B=h.abiItem.name,g=(C=h.abiItem.inputs)==null?void 0:C.some(m=>!("name"in m&&m.name))}return zt(f,{args:g?[]:{},eventName:B})}}).filter(Boolean)}async function yF(u,{abi:e,address:t,args:n,blockHash:r,eventName:i,fromBlock:a,toBlock:o,strict:s}){const l=i?Dl({abi:e,name:i}):void 0,c=l?void 0:e.filter(E=>E.type==="event");return Ru(u,Yh)({address:t,args:n,blockHash:r,event:l,events:c,fromBlock:a,toBlock:o,strict:s})}const G9="/docs/contract/decodeFunctionResult";function Us({abi:u,args:e,functionName:t,data:n}){let r=u[0];if(t&&(r=Dl({abi:u,args:e,name:t}),!r))throw new WE(t,{docsPath:G9});if(r.type!=="function")throw new WE(void 0,{docsPath:G9});if(!r.outputs)throw new LI(r.name,{docsPath:G9});const i=rd(r.outputs,n);if(i&&i.length>1)return i;if(i&&i.length===1)return i[0]}const nf=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"}],BF=[{inputs:[],name:"ResolverNotFound",type:"error"},{inputs:[],name:"ResolverWildcardNotSupported",type:"error"}],vF=[...BF,{name:"resolve",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],oN=[...BF,{name:"reverse",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolvedAddress"},{type:"address",name:"reverseResolver"},{type:"address",name:"resolver"}]}],f8=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],p8=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],sN=[{inputs:[{internalType:"address",name:"_signer",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"}],lN="0x82ad56cb";function Ls({blockNumber:u,chain:e,contract:t}){var r;const n=(r=e==null?void 0:e.contracts)==null?void 0:r[t];if(!n)throw new q6({chain:e,contract:{name:t}});if(u&&n.blockCreated&&n.blockCreated>u)throw new q6({blockNumber:u,chain:e,contract:{name:t,blockCreated:n.blockCreated}});return n.address}function cN(u,{docsPath:e,...t}){const n=(()=>{const r=Gh(u,t);return r instanceof X2?u:r})();return new mF(n,{docsPath:e,...t})}const K9=new Map;function Xh({fn:u,id:e,shouldSplitBatch:t,wait:n=0}){const r=async()=>{const l=o();i();const c=l.map(({args:E})=>E);c.length!==0&&u(c).then(E=>{l.forEach(({pendingPromise:d},f)=>{var C;return(C=d.resolve)==null?void 0:C.call(d,[E[f],E])})}).catch(E=>{l.forEach(({pendingPromise:d})=>{var f;return(f=d.reject)==null?void 0:f.call(d,E)})})},i=()=>K9.delete(e),a=()=>o().map(({args:l})=>l),o=()=>K9.get(e)||[],s=l=>K9.set(e,[...o(),l]);return{flush:i,async schedule(l){const c={},E=new Promise((C,h)=>{c.resolve=C,c.reject=h});return(t==null?void 0:t([...a(),l]))&&r(),o().length>0?(s({args:l,pendingPromise:c}),E):(s({args:l,pendingPromise:c}),setTimeout(r,n),E)}}}async function ad(u,e){var g,m,y,v;const{account:t=u.account,batch:n=!!((g=u.batch)!=null&&g.multicall),blockNumber:r,blockTag:i="latest",accessList:a,data:o,gas:s,gasPrice:l,maxFeePerGas:c,maxPriorityFeePerGas:E,nonce:d,to:f,value:C,...h}=e,B=t?mt(t):void 0;try{xl(e);const D=(r?Mu(r):void 0)||i,p=(v=(y=(m=u.chain)==null?void 0:m.formatters)==null?void 0:y.transactionRequest)==null?void 0:v.format,j=(p||Y2)({...Kh(h,{format:p}),from:B==null?void 0:B.address,accessList:a,data:o,gas:s,gasPrice:l,maxFeePerGas:c,maxPriorityFeePerGas:E,nonce:d,to:f,value:C});if(n&&EN({request:j}))try{return await dN(u,{...j,blockNumber:r,blockTag:i})}catch(Z){if(!(Z instanceof Zv)&&!(Z instanceof q6))throw Z}const O=await u.request({method:"eth_call",params:D?[j,D]:[j]});return O==="0x"?{data:void 0}:{data:O}}catch(w){const D=fN(w),{offchainLookup:p,offchainLookupSignature:x}=await qu(()=>import("./ccip-41171db5.js"),[]);if((D==null?void 0:D.slice(0,10))===x&&f)return{data:await p(u,{data:D,to:f})};throw cN(w,{...e,account:B,chain:u.chain})}}function EN({request:u}){const{data:e,to:t,...n}=u;return!(!e||e.startsWith(lN)||!t||Object.values(n).filter(r=>typeof r<"u").length>0)}async function dN(u,e){var h;const{batchSize:t=1024,wait:n=0}=typeof((h=u.batch)==null?void 0:h.multicall)=="object"?u.batch.multicall:{},{blockNumber:r,blockTag:i="latest",data:a,multicallAddress:o,to:s}=e;let l=o;if(!l){if(!u.chain)throw new Zv;l=Ls({blockNumber:r,chain:u.chain,contract:"multicall3"})}const E=(r?Mu(r):void 0)||i,{schedule:d}=Xh({id:`${u.uid}.${E}`,wait:n,shouldSplitBatch(B){return B.reduce((m,{data:y})=>m+(y.length-2),0)>t*2},fn:async B=>{const g=B.map(v=>({allowFailure:!0,callData:v.data,target:v.to})),m=ai({abi:nf,args:[g],functionName:"aggregate3"}),y=await u.request({method:"eth_call",params:[{data:m,to:l},E]});return Us({abi:nf,args:[g],functionName:"aggregate3",data:y||"0x"})}}),[{returnData:f,success:C}]=await d({data:a,to:s});if(!C)throw new qh({data:f});return f==="0x"?{data:void 0}:{data:f}}function fN(u){if(!(u instanceof gu))return;const e=u.walk();return typeof e.data=="object"?e.data.data:e.data}async function Xr(u,{abi:e,address:t,args:n,functionName:r,...i}){const a=ai({abi:e,args:n,functionName:r});try{const{data:o}=await Ru(u,ad)({data:a,to:t,...i});return Us({abi:e,args:n,functionName:r,data:o||"0x"})}catch(o){throw R3(o,{abi:e,address:t,args:n,docsPath:"/docs/contract/readContract",functionName:r})}}async function pN(u,{abi:e,address:t,args:n,dataSuffix:r,functionName:i,...a}){const o=a.account?mt(a.account):void 0,s=ai({abi:e,args:n,functionName:i});try{const{data:l}=await Ru(u,ad)({batch:!1,data:`${s}${r?r.replace("0x",""):""}`,to:t,...a});return{result:Us({abi:e,args:n,functionName:i,data:l||"0x"}),request:{abi:e,address:t,args:n,dataSuffix:r,functionName:i,...a}}}catch(l){throw R3(l,{abi:e,address:t,args:n,docsPath:"/docs/contract/simulateContract",functionName:i,sender:o==null?void 0:o.address})}}const Q9=new Map,h8=new Map;let hN=0;function $s(u,e,t){const n=++hN,r=()=>Q9.get(u)||[],i=()=>{const c=r();Q9.set(u,c.filter(E=>E.id!==n))},a=()=>{const c=h8.get(u);r().length===1&&c&&c(),i()},o=r();if(Q9.set(u,[...o,{id:n,fns:e}]),o&&o.length>0)return a;const s={};for(const c in e)s[c]=(...E)=>{const d=r();d.length!==0&&d.forEach(f=>{var C,h;return(h=(C=f.fns)[c])==null?void 0:h.call(C,...E)})};const l=t(s);return typeof l=="function"&&h8.set(u,l),a}async function GE(u){return new Promise(e=>setTimeout(e,u))}function _l(u,{emitOnBegin:e,initialWaitTime:t,interval:n}){let r=!0;const i=()=>r=!1;return(async()=>{let o;e&&(o=await u({unpoll:i}));const s=await(t==null?void 0:t(o))??n;await GE(s);const l=async()=>{r&&(await u({unpoll:i}),await GE(n),l())};l()})(),i}const CN=new Map,mN=new Map;function gN(u){const e=(r,i)=>({clear:()=>i.delete(r),get:()=>i.get(r),set:a=>i.set(r,a)}),t=e(u,CN),n=e(u,mN);return{clear:()=>{t.clear(),n.clear()},promise:t,response:n}}async function AN(u,{cacheKey:e,cacheTime:t=1/0}){const n=gN(e),r=n.response.get();if(r&&t>0&&new Date().getTime()-r.created.getTime()`blockNumber.${u}`;async function Sl(u,{cacheTime:e=u.cacheTime,maxAge:t}={}){const n=await AN(()=>u.request({method:"eth_blockNumber"}),{cacheKey:yN(u.uid),cacheTime:t??e});return BigInt(n)}async function od(u,{filter:e}){const t="strict"in e&&e.strict;return(await e.request({method:"eth_getFilterChanges",params:[e.id]})).map(r=>{var i;if(typeof r=="string")return r;try{const{eventName:a,args:o}="abi"in e&&e.abi?kl({abi:e.abi,data:r.data,topics:r.topics,strict:t}):{eventName:void 0,args:void 0};return zt(r,{args:o,eventName:a})}catch(a){let o,s;if(a instanceof sa||a instanceof js){if("strict"in e&&e.strict)return;o=a.abiItem.name,s=(i=a.abiItem.inputs)==null?void 0:i.some(l=>!("name"in l&&l.name))}return zt(r,{args:s?[]:{},eventName:o})}}).filter(Boolean)}async function sd(u,{filter:e}){return e.request({method:"eth_uninstallFilter",params:[e.id]})}function BN(u,{abi:e,address:t,args:n,batch:r=!0,eventName:i,onError:a,onLogs:o,poll:s,pollingInterval:l=u.pollingInterval,strict:c}){return(typeof s<"u"?s:u.transport.type!=="webSocket")?(()=>{const C=p0(["watchContractEvent",t,n,r,u.uid,i,l]),h=c??!1;return $s(C,{onLogs:o,onError:a},B=>{let g,m,y=!1;const v=_l(async()=>{var w;if(!y){try{m=await Ru(u,dF)({abi:e,address:t,args:n,eventName:i,strict:h})}catch{}y=!0;return}try{let D;if(m)D=await Ru(u,od)({filter:m});else{const p=await Ru(u,Sl)({});g&&g!==p?D=await Ru(u,yF)({abi:e,address:t,args:n,fromBlock:g+1n,toBlock:p,strict:h}):D=[],g=p}if(D.length===0)return;r?B.onLogs(D):D.forEach(p=>B.onLogs([p]))}catch(D){m&&D instanceof la&&(y=!1),(w=B.onError)==null||w.call(B,D)}},{emitOnBegin:!0,interval:l});return async()=>{m&&await Ru(u,sd)({filter:m}),v()}})})():(()=>{let C=!0,h=()=>C=!1;return(async()=>{try{const B=i?bl({abi:e,eventName:i,args:n}):[],{unsubscribe:g}=await u.transport.subscribe({params:["logs",{address:t,topics:B}],onData(m){var v;if(!C)return;const y=m.result;try{const{eventName:w,args:D}=kl({abi:e,data:y.data,topics:y.topics,strict:c}),p=zt(y,{args:D,eventName:w});o([p])}catch(w){let D,p;if(w instanceof sa||w instanceof js){if(c)return;D=w.abiItem.name,p=(v=w.abiItem.inputs)==null?void 0:v.some(j=>!("name"in j&&j.name))}const x=zt(y,{args:p?[]:{},eventName:D});o([x])}},onError(m){a==null||a(m)}});h=g,C||h()}catch(B){a==null||a(B)}})(),h})()}function FF({chain:u,currentChainId:e}){if(!u)throw new kI;if(e!==u.id)throw new xI({chain:u,currentChainId:e})}function vN(u,{docsPath:e,...t}){const n=(()=>{const r=Gh(u,t);return r instanceof X2?u:r})();return new qO(n,{docsPath:e,...t})}async function j3(u){const e=await u.request({method:"eth_chainId"});return e0(e)}async function Zh(u,{serializedTransaction:e}){return u.request({method:"eth_sendRawTransaction",params:[e]})}async function u5(u,e){var h,B,g,m;const{account:t=u.account,chain:n=u.chain,accessList:r,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d,...f}=e;if(!t)throw new Ms({docsPath:"/docs/actions/wallet/sendTransaction"});const C=mt(t);try{xl(e);let y;if(n!==null&&(y=await Ru(u,j3)({}),FF({currentChainId:y,chain:n})),C.type==="local"){const p=await Ru(u,id)({account:C,accessList:r,chain:n,data:i,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d,...f});y||(y=await Ru(u,j3)({}));const x=(h=n==null?void 0:n.serializers)==null?void 0:h.transaction,j=await C.signTransaction({...p,chainId:y},{serializer:x});return await Ru(u,Zh)({serializedTransaction:j})}const v=(m=(g=(B=u.chain)==null?void 0:B.formatters)==null?void 0:g.transactionRequest)==null?void 0:m.format,D=(v||Y2)({...Kh(f,{format:v}),accessList:r,data:i,from:C.address,gas:a,gasPrice:o,maxFeePerGas:s,maxPriorityFeePerGas:l,nonce:c,to:E,value:d});return await u.request({method:"eth_sendTransaction",params:[D]})}catch(y){throw vN(y,{...e,account:C,chain:e.chain||void 0})}}async function FN(u,{abi:e,address:t,args:n,dataSuffix:r,functionName:i,...a}){const o=ai({abi:e,args:n,functionName:i});return await Ru(u,u5)({data:`${o}${r?r.replace("0x",""):""}`,to:t,...a})}async function DN(u,{chain:e}){const{id:t,name:n,nativeCurrency:r,rpcUrls:i,blockExplorers:a}=e;await u.request({method:"wallet_addEthereumChain",params:[{chainId:Mu(t),chainName:n,nativeCurrency:r,rpcUrls:i.default.http,blockExplorerUrls:a?Object.values(a).map(({url:o})=>o):void 0}]})}const rf=256;let Ac=rf,yc;function bN(u=11){if(!yc||Ac+u>rf*2){yc="",Ac=0;for(let e=0;e{const g=B(h);for(const y in f)delete g[y];const m={...h,...g};return Object.assign(m,{extend:C(m)})}}return Object.assign(f,{extend:C(f)})}function bF(u,{delay:e=100,retryCount:t=2,shouldRetry:n=()=>!0}={}){return new Promise((r,i)=>{const a=async({count:o=0}={})=>{const s=async({error:l})=>{const c=typeof e=="function"?e({count:o,error:l}):e;c&&await GE(c),a({count:o+1})};try{const l=await u();r(l)}catch(l){if(o"code"in u?u.code!==-1&&u.code!==-32004&&u.code!==-32005&&u.code!==-32042&&u.code!==-32603:u instanceof J4&&u.status?u.status!==403&&u.status!==408&&u.status!==413&&u.status!==429&&u.status!==500&&u.status!==502&&u.status!==503&&u.status!==504:!1;function wN(u,{retryDelay:e=150,retryCount:t=3}={}){return async n=>bF(async()=>{try{return await u(n)}catch(r){const i=r;switch(i.code){case F3.code:throw new F3(i);case D3.code:throw new D3(i);case b3.code:throw new b3(i);case w3.code:throw new w3(i);case Cs.code:throw new Cs(i);case la.code:throw new la(i);case x3.code:throw new x3(i);case Jr.code:throw new Jr(i);case k3.code:throw new k3(i);case _3.code:throw new _3(i);case S3.code:throw new S3(i);case P3.code:throw new P3(i);case Se.code:throw new Se(i);case T3.code:throw new T3(i);case I3.code:throw new I3(i);case O3.code:throw new O3(i);case N3.code:throw new N3(i);case dn.code:throw new dn(i);case 5e3:throw new Se(i);default:throw r instanceof gu?r:new VO(i)}}},{delay:({count:r,error:i})=>{var a;if(i&&i instanceof J4){const o=(a=i==null?void 0:i.headers)==null?void 0:a.get("Retry-After");if(o!=null&&o.match(/\d/))return parseInt(o)*1e3}return~~(1<!wF(r)})}function ld({key:u,name:e,request:t,retryCount:n=3,retryDelay:r=150,timeout:i,type:a},o){return{config:{key:u,name:e,request:t,retryCount:n,retryDelay:r,timeout:i,type:a},request:wN(t,{retryCount:n,retryDelay:r}),value:o}}function Pl(u,e={}){const{key:t="custom",name:n="Custom Provider",retryDelay:r}=e;return({retryCount:i})=>ld({key:t,name:n,request:u.request.bind(u),retryCount:e.retryCount??i,retryDelay:r,type:"custom"})}function C8(u,e={}){const{key:t="fallback",name:n="Fallback",rank:r=!1,retryCount:i,retryDelay:a}=e;return({chain:o,pollingInterval:s=4e3,timeout:l})=>{let c=u,E=()=>{};const d=ld({key:t,name:n,async request({method:f,params:C}){const h=async(B=0)=>{const g=c[B]({chain:o,retryCount:0,timeout:l});try{const m=await g.request({method:f,params:C});return E({method:f,params:C,response:m,transport:g,status:"success"}),m}catch(m){if(E({error:m,method:f,params:C,transport:g,status:"error"}),wF(m)||B===c.length-1)throw m;return h(B+1)}};return h()},retryCount:i,retryDelay:a,type:"fallback"},{onResponse:f=>E=f,transports:c.map(f=>f({chain:o,retryCount:0}))});if(r){const f=typeof r=="object"?r:{};xN({chain:o,interval:f.interval??s,onTransports:C=>c=C,sampleCount:f.sampleCount,timeout:f.timeout,transports:c,weights:f.weights})}return d}}function xN({chain:u,interval:e=4e3,onTransports:t,sampleCount:n=10,timeout:r=1e3,transports:i,weights:a={}}){const{stability:o=.7,latency:s=.3}=a,l=[],c=async()=>{const E=await Promise.all(i.map(async C=>{const h=C({chain:u,retryCount:0,timeout:r}),B=Date.now();let g,m;try{await h.request({method:"net_listening"}),m=1}catch{m=0}finally{g=Date.now()}return{latency:g-B,success:m}}));l.push(E),l.length>n&&l.shift();const d=Math.max(...l.map(C=>Math.max(...C.map(({latency:h})=>h)))),f=i.map((C,h)=>{const B=l.map(w=>w[h].latency),m=1-B.reduce((w,D)=>w+D,0)/B.length/d,y=l.map(w=>w[h].success),v=y.reduce((w,D)=>w+D,0)/y.length;return v===0?[0,h]:[s*m+o*v,h]}).sort((C,h)=>h[0]-C[0]);t(f.map(([,C])=>i[C])),await GE(e),c()};c()}class xF extends gu{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro"})}}function kN(){if(typeof WebSocket<"u")return WebSocket;if(typeof globalThis.WebSocket<"u")return globalThis.WebSocket;if(typeof window.WebSocket<"u")return window.WebSocket;if(typeof self.WebSocket<"u")return self.WebSocket;throw new Error("`WebSocket` is not supported in this environment")}const m8=kN();function kF(u,{errorInstance:e=new Error("timed out"),timeout:t,signal:n}){return new Promise((r,i)=>{(async()=>{let a;try{const o=new AbortController;t>0&&(a=setTimeout(()=>{n?o.abort():i(e)},t)),r(await u({signal:o==null?void 0:o.signal}))}catch(o){o.name==="AbortError"&&i(e),i(o)}finally{clearTimeout(a)}})()})}let af=0;async function _N(u,{body:e,fetchOptions:t={},timeout:n=1e4}){var o;const{headers:r,method:i,signal:a}=t;try{const s=await kF(async({signal:c})=>await fetch(u,{...t,body:Array.isArray(e)?p0(e.map(d=>({jsonrpc:"2.0",id:d.id??af++,...d}))):p0({jsonrpc:"2.0",id:e.id??af++,...e}),headers:{...r,"Content-Type":"application/json"},method:i||"POST",signal:a||(n>0?c:void 0)}),{errorInstance:new ef({body:e,url:u}),timeout:n,signal:!0});let l;if((o=s.headers.get("Content-Type"))!=null&&o.startsWith("application/json")?l=await s.json():l=await s.text(),!s.ok)throw new J4({body:e,details:p0(l.error)||s.statusText,headers:s.headers,status:s.status,url:u});return l}catch(s){throw s instanceof J4||s instanceof ef?s:new J4({body:e,details:s.message,url:u})}}const V9=new Map;async function J9(u){let e=V9.get(u);if(e)return e;const{schedule:t}=Xh({id:u,fn:async()=>{const i=new m8(u),a=new Map,o=new Map,s=({data:c})=>{const E=JSON.parse(c),d=E.method==="eth_subscription",f=d?E.params.subscription:E.id,C=d?o:a,h=C.get(f);h&&h({data:c}),d||C.delete(f)},l=()=>{V9.delete(u),i.removeEventListener("close",l),i.removeEventListener("message",s)};return i.addEventListener("close",l),i.addEventListener("message",s),i.readyState===m8.CONNECTING&&await new Promise((c,E)=>{i&&(i.onopen=c,i.onerror=E)}),e=Object.assign(i,{requests:a,subscriptions:o}),V9.set(u,e),[e]}}),[n,[r]]=await t();return r}function SN(u,{body:e,onResponse:t}){if(u.readyState===u.CLOSED||u.readyState===u.CLOSING)throw new KO({body:e,url:u.url,details:"Socket is closed."});const n=af++,r=({data:i})=>{var o;const a=JSON.parse(i);typeof a.id=="number"&&n!==a.id||(t==null||t(a),e.method==="eth_subscribe"&&typeof a.result=="string"&&u.subscriptions.set(a.result,r),e.method==="eth_unsubscribe"&&u.subscriptions.delete((o=e.params)==null?void 0:o[0]))};return u.requests.set(n,r),u.send(JSON.stringify({jsonrpc:"2.0",...e,id:n})),u}async function PN(u,{body:e,timeout:t=1e4}){return kF(()=>new Promise(n=>mo.webSocket(u,{body:e,onResponse:n})),{errorInstance:new ef({body:e,url:u.url}),timeout:t})}const mo={http:_N,webSocket:SN,webSocketAsync:PN};function TN(u,e={}){const{batch:t,fetchOptions:n,key:r="http",name:i="HTTP JSON-RPC",retryDelay:a}=e;return({chain:o,retryCount:s,timeout:l})=>{const{batchSize:c=1e3,wait:E=0}=typeof t=="object"?t:{},d=e.retryCount??s,f=l??e.timeout??1e4,C=u||(o==null?void 0:o.rpcUrls.default.http[0]);if(!C)throw new xF;return ld({key:r,name:i,async request({method:h,params:B}){const g={method:h,params:B},{schedule:m}=Xh({id:`${u}`,wait:E,shouldSplitBatch(D){return D.length>c},fn:D=>mo.http(C,{body:D,fetchOptions:n,timeout:f})}),y=async D=>t?m(D):[await mo.http(C,{body:D,fetchOptions:n,timeout:f})],[{error:v,result:w}]=await y(g);if(v)throw new Hh({body:g,error:v,url:C});return w},retryCount:d,retryDelay:a,timeout:f,type:"http"},{fetchOptions:n,url:u})}}function e5(u,e){var n,r,i;if(!(u instanceof gu))return!1;const t=u.walk(a=>a instanceof uf);return t instanceof uf?!!(((n=t.data)==null?void 0:n.errorName)==="ResolverNotFound"||((r=t.data)==null?void 0:r.errorName)==="ResolverWildcardNotSupported"||(i=t.reason)!=null&&i.includes("Wildcard on non-extended resolvers is not supported")||e==="reverse"&&t.reason===fF[50]):!1}function _F(u){if(u.length!==66||u.indexOf("[")!==0||u.indexOf("]")!==65)return null;const e=`0x${u.slice(1,65)}`;return En(e)?e:null}function Jc(u){let e=new Uint8Array(32).fill(0);if(!u)return B3(e);const t=u.split(".");for(let n=t.length-1;n>=0;n-=1){const r=_F(t[n]),i=r?Vr(r):l0(Wn(t[n]),"bytes");e=l0(Jn([e,i]),"bytes")}return B3(e)}function IN(u){return`[${u.slice(2)}]`}function ON(u){const e=new Uint8Array(32).fill(0);return u?_F(u)||l0(Wn(u)):B3(e)}function cd(u){const e=u.replace(/^\.|\.$/gm,"");if(e.length===0)return new Uint8Array(1);const t=new Uint8Array(Wn(e).byteLength+2);let n=0;const r=e.split(".");for(let i=0;i255&&(a=Wn(IN(ON(r[i])))),t[n]=a.length,t.set(a,n+1),n+=a.length+1}return t.byteLength!==n+1?t.slice(0,n+1):t}async function NN(u,{blockNumber:e,blockTag:t,coinType:n,name:r,universalResolverAddress:i}){let a=i;if(!a){if(!u.chain)throw new Error("client chain not configured. universalResolverAddress is required.");a=Ls({blockNumber:e,chain:u.chain,contract:"ensUniversalResolver"})}try{const o=ai({abi:p8,functionName:"addr",...n!=null?{args:[Jc(r),BigInt(n)]}:{args:[Jc(r)]}}),s=await Ru(u,Xr)({address:a,abi:vF,functionName:"resolve",args:[tr(cd(r)),o],blockNumber:e,blockTag:t});if(s[0]==="0x")return null;const l=Us({abi:p8,args:n!=null?[Jc(r),BigInt(n)]:void 0,functionName:"addr",data:s[0]});return l==="0x"||Yi(l)==="0x00"?null:l}catch(o){if(e5(o,"resolve"))return null;throw o}}class RN extends gu{constructor({data:e}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(e)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarInvalidMetadataError"})}}class m4 extends gu{constructor({reason:e}){super(`ENS NFT avatar URI is invalid. ${e}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarInvalidNftUriError"})}}class t5 extends gu{constructor({uri:e}){super(`Unable to resolve ENS avatar URI "${e}". The URI may be malformed, invalid, or does not respond with a valid image.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarUriResolutionError"})}}class jN extends gu{constructor({namespace:e}){super(`ENS NFT avatar namespace "${e}" is not supported. Must be "erc721" or "erc1155".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarUnsupportedNamespaceError"})}}const zN=/(?https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?\/)?(?ipfs\/|ipns\/)?(?[\w\-.]+)(?\/.*)?/,MN=/^(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\-.]+))?(?\/.*)?$/,UN=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,LN=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function $N(u){try{const e=await fetch(u,{method:"HEAD"});if(e.status===200){const t=e.headers.get("content-type");return t==null?void 0:t.startsWith("image/")}return!1}catch(e){return typeof e=="object"&&typeof e.response<"u"||!globalThis.hasOwnProperty("Image")?!1:new Promise(t=>{const n=new Image;n.onload=()=>{t(!0)},n.onerror=()=>{t(!1)},n.src=u})}}function g8(u,e){return u?u.endsWith("/")?u.slice(0,-1):u:e}function SF({uri:u,gatewayUrls:e}){const t=UN.test(u);if(t)return{uri:u,isOnChain:!0,isEncoded:t};const n=g8(e==null?void 0:e.ipfs,"https://ipfs.io"),r=g8(e==null?void 0:e.arweave,"https://arweave.net"),i=u.match(zN),{protocol:a,subpath:o,target:s,subtarget:l=""}=(i==null?void 0:i.groups)||{},c=a==="ipns:/"||o==="ipns/",E=a==="ipfs:/"||o==="ipfs/"||MN.test(u);if(u.startsWith("http")&&!c&&!E){let f=u;return e!=null&&e.arweave&&(f=u.replace(/https:\/\/arweave.net/g,e==null?void 0:e.arweave)),{uri:f,isOnChain:!1,isEncoded:!1}}if((c||E)&&s)return{uri:`${n}/${c?"ipns":"ipfs"}/${s}${l}`,isOnChain:!1,isEncoded:!1};if(a==="ar:/"&&s)return{uri:`${r}/${s}${l||""}`,isOnChain:!1,isEncoded:!1};let d=u.replace(LN,"");if(d.startsWith("r.json());return await n5({gatewayUrls:u,uri:PF(t)})}catch{throw new t5({uri:e})}}async function n5({gatewayUrls:u,uri:e}){const{uri:t,isOnChain:n}=SF({uri:e,gatewayUrls:u});if(n||await $N(t))return t;throw new t5({uri:e})}function qN(u){let e=u;e.startsWith("did:nft:")&&(e=e.replace("did:nft:","").replace(/_/g,"/"));const[t,n,r]=e.split("/"),[i,a]=t.split(":"),[o,s]=n.split(":");if(!i||i.toLowerCase()!=="eip155")throw new m4({reason:"Only EIP-155 supported"});if(!a)throw new m4({reason:"Chain ID not found"});if(!s)throw new m4({reason:"Contract address not found"});if(!r)throw new m4({reason:"Token ID not found"});if(!o)throw new m4({reason:"ERC namespace not found"});return{chainID:parseInt(a),namespace:o.toLowerCase(),contractAddress:s,tokenID:r}}async function HN(u,{nft:e}){if(e.namespace==="erc721")return Xr(u,{address:e.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(e.tokenID)]});if(e.namespace==="erc1155")return Xr(u,{address:e.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(e.tokenID)]});throw new jN({namespace:e.namespace})}async function GN(u,{gatewayUrls:e,record:t}){return/eip155:/i.test(t)?KN(u,{gatewayUrls:e,record:t}):n5({uri:t,gatewayUrls:e})}async function KN(u,{gatewayUrls:e,record:t}){const n=qN(t),r=await HN(u,{nft:n}),{uri:i,isOnChain:a,isEncoded:o}=SF({uri:r,gatewayUrls:e});if(a&&(i.includes("data:application/json;base64,")||i.startsWith("{"))){const l=o?atob(i.replace("data:application/json;base64,","")):i,c=JSON.parse(l);return n5({uri:PF(c),gatewayUrls:e})}let s=n.tokenID;return n.namespace==="erc1155"&&(s=s.replace("0x","").padStart(64,"0")),WN({gatewayUrls:e,uri:i.replace(/(?:0x)?{id}/,s)})}async function TF(u,{blockNumber:e,blockTag:t,name:n,key:r,universalResolverAddress:i}){let a=i;if(!a){if(!u.chain)throw new Error("client chain not configured. universalResolverAddress is required.");a=Ls({blockNumber:e,chain:u.chain,contract:"ensUniversalResolver"})}try{const o=await Ru(u,Xr)({address:a,abi:vF,functionName:"resolve",args:[tr(cd(n)),ai({abi:f8,functionName:"text",args:[Jc(n),r]})],blockNumber:e,blockTag:t});if(o[0]==="0x")return null;const s=Us({abi:f8,functionName:"text",data:o[0]});return s===""?null:s}catch(o){if(e5(o,"resolve"))return null;throw o}}async function QN(u,{blockNumber:e,blockTag:t,gatewayUrls:n,name:r,universalResolverAddress:i}){const a=await Ru(u,TF)({blockNumber:e,blockTag:t,key:"avatar",name:r,universalResolverAddress:i});if(!a)return null;try{return await GN(u,{record:a,gatewayUrls:n})}catch{return null}}async function VN(u,{address:e,blockNumber:t,blockTag:n,universalResolverAddress:r}){let i=r;if(!i){if(!u.chain)throw new Error("client chain not configured. universalResolverAddress is required.");i=Ls({blockNumber:t,chain:u.chain,contract:"ensUniversalResolver"})}const a=`${e.toLowerCase().substring(2)}.addr.reverse`;try{return(await Ru(u,Xr)({address:i,abi:oN,functionName:"reverse",args:[tr(cd(a))],blockNumber:t,blockTag:n}))[0]}catch(o){if(e5(o,"reverse"))return null;throw o}}async function JN(u,{blockNumber:e,blockTag:t,name:n,universalResolverAddress:r}){let i=r;if(!i){if(!u.chain)throw new Error("client chain not configured. universalResolverAddress is required.");i=Ls({blockNumber:e,chain:u.chain,contract:"ensUniversalResolver"})}const[a]=await Ru(u,Xr)({address:i,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[tr(cd(n))],blockNumber:e,blockTag:t});return a}async function YN(u){const e=nd(u,{method:"eth_newBlockFilter"}),t=await u.request({method:"eth_newBlockFilter"});return{id:t,request:e(t),type:"block"}}async function IF(u,{address:e,args:t,event:n,events:r,fromBlock:i,strict:a,toBlock:o}={}){const s=r??(n?[n]:void 0),l=nd(u,{method:"eth_newFilter"});let c=[];s&&(c=[s.flatMap(d=>bl({abi:[d],eventName:d.name,args:t}))],n&&(c=c[0]));const E=await u.request({method:"eth_newFilter",params:[{address:e,fromBlock:typeof i=="bigint"?Mu(i):i,toBlock:typeof o=="bigint"?Mu(o):o,...c.length?{topics:c}:{}}]});return{abi:s,args:t,eventName:n?n.name:void 0,fromBlock:i,id:E,request:l(E),strict:a,toBlock:o,type:"event"}}async function OF(u){const e=nd(u,{method:"eth_newPendingTransactionFilter"}),t=await u.request({method:"eth_newPendingTransactionFilter"});return{id:t,request:e(t),type:"transaction"}}async function XN(u,{address:e,blockNumber:t,blockTag:n="latest"}){const r=t?Mu(t):void 0,i=await u.request({method:"eth_getBalance",params:[e,r||n]});return BigInt(i)}async function ZN(u,{blockHash:e,blockNumber:t,blockTag:n="latest"}={}){const r=t!==void 0?Mu(t):void 0;let i;return e?i=await u.request({method:"eth_getBlockTransactionCountByHash",params:[e]}):i=await u.request({method:"eth_getBlockTransactionCountByNumber",params:[r||n]}),e0(i)}async function uR(u,{address:e,blockNumber:t,blockTag:n="latest"}){const r=t!==void 0?Mu(t):void 0,i=await u.request({method:"eth_getCode",params:[e,r||n]});if(i!=="0x")return i}function eR(u){var e;return{baseFeePerGas:u.baseFeePerGas.map(t=>BigInt(t)),gasUsedRatio:u.gasUsedRatio,oldestBlock:BigInt(u.oldestBlock),reward:(e=u.reward)==null?void 0:e.map(t=>t.map(n=>BigInt(n)))}}async function tR(u,{blockCount:e,blockNumber:t,blockTag:n="latest",rewardPercentiles:r}){const i=t?Mu(t):void 0,a=await u.request({method:"eth_feeHistory",params:[Mu(e),i||n,r]});return eR(a)}async function nR(u,{filter:e}){const t=e.strict??!1;return(await e.request({method:"eth_getFilterLogs",params:[e.id]})).map(r=>{var i;try{const{eventName:a,args:o}="abi"in e&&e.abi?kl({abi:e.abi,data:r.data,topics:r.topics,strict:t}):{eventName:void 0,args:void 0};return zt(r,{args:o,eventName:a})}catch(a){let o,s;if(a instanceof sa||a instanceof js){if("strict"in e&&e.strict)return;o=a.abiItem.name,s=(i=a.abiItem.inputs)==null?void 0:i.some(l=>!("name"in l&&l.name))}return zt(r,{args:s?[]:{},eventName:o})}}).filter(Boolean)}const rR=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,iR=/^(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)?$/;function aR({domain:u,message:e,primaryType:t,types:n}){const r=typeof u>"u"?{}:u,i={EIP712Domain:UF({domain:r}),...n};MF({domain:r,message:e,primaryType:t,types:i});const a=["0x1901"];return r&&a.push(oR({domain:r,types:i})),t!=="EIP712Domain"&&a.push(NF({data:e,primaryType:t,types:i})),l0(Jn(a))}function oR({domain:u,types:e}){return NF({data:u,primaryType:"EIP712Domain",types:e})}function NF({data:u,primaryType:e,types:t}){const n=RF({data:u,primaryType:e,types:t});return l0(n)}function RF({data:u,primaryType:e,types:t}){const n=[{type:"bytes32"}],r=[sR({primaryType:e,types:t})];for(const i of t[e]){const[a,o]=zF({types:t,name:i.name,type:i.type,value:u[i.name]});n.push(a),r.push(o)}return Fl(n,r)}function sR({primaryType:u,types:e}){const t=tr(lR({primaryType:u,types:e}));return l0(t)}function lR({primaryType:u,types:e}){let t="";const n=jF({primaryType:u,types:e});n.delete(u);const r=[u,...Array.from(n).sort()];for(const i of r)t+=`${i}(${e[i].map(({name:a,type:o})=>`${o} ${a}`).join(",")})`;return t}function jF({primaryType:u,types:e},t=new Set){const n=u.match(/^\w*/u),r=n==null?void 0:n[0];if(t.has(r)||e[r]===void 0)return t;t.add(r);for(const i of e[r])jF({primaryType:i.type,types:e},t);return t}function zF({types:u,name:e,type:t,value:n}){if(u[t]!==void 0)return[{type:"bytes32"},l0(RF({data:n,primaryType:t,types:u}))];if(t==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},l0(n)];if(t==="string")return[{type:"bytes32"},l0(tr(n))];if(t.lastIndexOf("]")===t.length-1){const r=t.slice(0,t.lastIndexOf("[")),i=n.map(a=>zF({name:e,type:r,types:u,value:a}));return[{type:"bytes32"},l0(Fl(i.map(([a])=>a),i.map(([,a])=>a)))]}return[{type:t},n]}function MF({domain:u,message:e,primaryType:t,types:n}){const r=n,i=(a,o)=>{for(const s of a){const{name:l,type:c}=s,E=c,d=o[l],f=E.match(iR);if(f&&(typeof d=="number"||typeof d=="bigint")){const[B,g,m]=f;Mu(d,{signed:g==="int",size:parseInt(m)/8})}if(E==="address"&&typeof d=="string"&&!ps(d))throw new v3({address:d});const C=E.match(rR);if(C){const[B,g]=C;if(g&&Pe(d)!==parseInt(g))throw new $I({expectedSize:parseInt(g),givenSize:Pe(d)})}const h=r[E];h&&i(h,d)}};if(r.EIP712Domain&&u&&i(r.EIP712Domain,u),t!=="EIP712Domain"){const a=r[t];i(a,e)}}function UF({domain:u}){return[typeof(u==null?void 0:u.name)=="string"&&{name:"name",type:"string"},(u==null?void 0:u.version)&&{name:"version",type:"string"},typeof(u==null?void 0:u.chainId)=="number"&&{name:"chainId",type:"uint256"},(u==null?void 0:u.verifyingContract)&&{name:"verifyingContract",type:"address"},(u==null?void 0:u.salt)&&{name:"salt",type:"bytes32"}].filter(Boolean)}const Y9="/docs/contract/encodeDeployData";function LF({abi:u,args:e,bytecode:t}){if(!e||e.length===0)return t;const n=u.find(i=>"type"in i&&i.type==="constructor");if(!n)throw new NI({docsPath:Y9});if(!("inputs"in n))throw new a8({docsPath:Y9});if(!n.inputs||n.inputs.length===0)throw new a8({docsPath:Y9});const r=Fl(n.inputs,e);return Th([t,r])}function cR(u,e){const t=(()=>typeof u=="string"?Wn(u):u.raw instanceof Uint8Array?u.raw:Vr(u.raw))(),n=Wn(`Ethereum Signed Message: +${t.length}`);return l0(Jn([n,t]),e)}function ER(u){return u.map(e=>({...e,value:BigInt(e.value)}))}function dR(u){return{...u,balance:u.balance?BigInt(u.balance):void 0,nonce:u.nonce?e0(u.nonce):void 0,storageProof:u.storageProof?ER(u.storageProof):void 0}}async function fR(u,{address:e,blockNumber:t,blockTag:n,storageKeys:r}){const i=n??"latest",a=t!==void 0?Mu(t):void 0,o=await u.request({method:"eth_getProof",params:[e,r,a||i]});return dR(o)}async function pR(u,{address:e,blockNumber:t,blockTag:n="latest",slot:r}){const i=t!==void 0?Mu(t):void 0;return await u.request({method:"eth_getStorageAt",params:[e,r,i||n]})}async function r5(u,{blockHash:e,blockNumber:t,blockTag:n,hash:r,index:i}){var c,E,d;const a=n||"latest",o=t!==void 0?Mu(t):void 0;let s=null;if(r?s=await u.request({method:"eth_getTransactionByHash",params:[r]}):e?s=await u.request({method:"eth_getTransactionByBlockHashAndIndex",params:[e,Mu(i)]}):(o||a)&&(s=await u.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[o||a,Mu(i)]})),!s)throw new hF({blockHash:e,blockNumber:t,blockTag:a,hash:r,index:i});return(((d=(E=(c=u.chain)==null?void 0:c.formatters)==null?void 0:E.transaction)==null?void 0:d.format)||J2)(s)}async function hR(u,{hash:e,transactionReceipt:t}){const[n,r]=await Promise.all([Ru(u,Sl)({}),e?Ru(u,r5)({hash:e}):void 0]),i=(t==null?void 0:t.blockNumber)||(r==null?void 0:r.blockNumber);return i?n-i+1n:0n}async function of(u,{hash:e}){var r,i,a;const t=await u.request({method:"eth_getTransactionReceipt",params:[e]});if(!t)throw new CF({hash:e});return(((a=(i=(r=u.chain)==null?void 0:r.formatters)==null?void 0:i.transactionReceipt)==null?void 0:a.format)||Xv)(t)}async function CR(u,e){var h;const{allowFailure:t=!0,batchSize:n,blockNumber:r,blockTag:i,contracts:a,multicallAddress:o}=e,s=n??(typeof((h=u.batch)==null?void 0:h.multicall)=="object"&&u.batch.multicall.batchSize||1024);let l=o;if(!l){if(!u.chain)throw new Error("client chain not configured. multicallAddress is required.");l=Ls({blockNumber:r,chain:u.chain,contract:"multicall3"})}const c=[[]];let E=0,d=0;for(let B=0;B0&&d>s&&c[E].length>0&&(E++,d=(w.length-2)/2,c[E]=[]),c[E]=[...c[E],{allowFailure:!0,callData:w,target:m}]}catch(w){const D=R3(w,{abi:g,address:m,args:y,docsPath:"/docs/contract/multicall",functionName:v});if(!t)throw D;c[E]=[...c[E],{allowFailure:!0,callData:"0x",target:m}]}}const f=await Promise.allSettled(c.map(B=>Ru(u,Xr)({abi:nf,address:l,args:[B],blockNumber:r,blockTag:i,functionName:"aggregate3"}))),C=[];for(let B=0;Bu instanceof Uint8Array,AR=Array.from({length:256},(u,e)=>e.toString(16).padStart(2,"0"));function ms(u){if(!dd(u))throw new Error("Uint8Array expected");let e="";for(let t=0;tn+r.length,0));let t=0;return u.forEach(n=>{if(!dd(n))throw new Error("Uint8Array expected");e.set(n,t),t+=n.length}),e}function qF(u,e){if(u.length!==e.length)return!1;for(let t=0;t$F;u>>=Ed,e+=1);return e}function FR(u,e){return u>>BigInt(e)&Ed}const DR=(u,e,t)=>u|(t?Ed:$F)<(gR<new Uint8Array(u),A8=u=>Uint8Array.from(u);function HF(u,e,t){if(typeof u!="number"||u<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=X9(u),r=X9(u),i=0;const a=()=>{n.fill(1),r.fill(0),i=0},o=(...E)=>t(r,n,...E),s=(E=X9())=>{r=o(A8([0]),E),n=o(),E.length!==0&&(r=o(A8([1]),E),n=o())},l=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let E=0;const d=[];for(;E{a(),s(E);let f;for(;!(f=d(l()));)s();return a(),f}}const bR={bigint:u=>typeof u=="bigint",function:u=>typeof u=="function",boolean:u=>typeof u=="boolean",string:u=>typeof u=="string",stringOrUint8Array:u=>typeof u=="string"||u instanceof Uint8Array,isSafeInteger:u=>Number.isSafeInteger(u),array:u=>Array.isArray(u),field:(u,e)=>e.Fp.isValid(u),hash:u=>typeof u=="function"&&Number.isSafeInteger(u.outputLen)};function Tl(u,e,t={}){const n=(r,i,a)=>{const o=bR[i];if(typeof o!="function")throw new Error(`Invalid validator "${i}", expected function`);const s=u[r];if(!(a&&s===void 0)&&!o(s,u))throw new Error(`Invalid param ${String(r)}=${s} (${typeof s}), expected ${i}`)};for(const[r,i]of Object.entries(e))n(r,i,!1);for(const[r,i]of Object.entries(t))n(r,i,!0);return u}const wR=Object.freeze(Object.defineProperty({__proto__:null,bitGet:FR,bitLen:vR,bitMask:s5,bitSet:DR,bytesToHex:ms,bytesToNumberBE:Xi,bytesToNumberLE:a5,concatBytes:z3,createHmacDrbg:HF,ensureBytes:bt,equalBytes:qF,hexToBytes:gs,hexToNumber:i5,numberToBytesBE:As,numberToBytesLE:o5,numberToHexUnpadded:WF,numberToVarBytesBE:yR,utf8ToBytes:BR,validateObject:Tl},Symbol.toStringTag,{value:"Module"}));function xR(u,e){const t=En(u)?Vr(u):u,n=En(e)?Vr(e):e;return qF(t,n)}async function GF(u,{address:e,hash:t,signature:n,...r}){const i=En(n)?n:tr(n);try{const{data:a}=await Ru(u,ad)({data:LF({abi:sN,args:[e,t,i],bytecode:mR}),...r});return xR(a??"0x0","0x1")}catch(a){if(a instanceof mF)return!1;throw a}}async function kR(u,{address:e,message:t,signature:n,...r}){const i=cR(t);return GF(u,{address:e,hash:i,signature:n,...r})}async function _R(u,{address:e,signature:t,message:n,primaryType:r,types:i,domain:a,...o}){const s=aR({message:n,primaryType:r,types:i,domain:a});return GF(u,{address:e,hash:s,signature:t,...o})}function KF(u,{emitOnBegin:e=!1,emitMissed:t=!1,onBlockNumber:n,onError:r,poll:i,pollingInterval:a=u.pollingInterval}){const o=typeof i<"u"?i:u.transport.type!=="webSocket";let s;return o?(()=>{const E=p0(["watchBlockNumber",u.uid,e,t,a]);return $s(E,{onBlockNumber:n,onError:r},d=>_l(async()=>{var f;try{const C=await Ru(u,Sl)({cacheTime:0});if(s){if(C===s)return;if(C-s>1&&t)for(let h=s+1n;hs)&&(d.onBlockNumber(C,s),s=C)}catch(C){(f=d.onError)==null||f.call(d,C)}},{emitOnBegin:e,interval:a}))})():(()=>{let E=!0,d=()=>E=!1;return(async()=>{try{const{unsubscribe:f}=await u.transport.subscribe({params:["newHeads"],onData(C){var B;if(!E)return;const h=On((B=C.result)==null?void 0:B.number);n(h,s),s=h},onError(C){r==null||r(C)}});d=f,E||d()}catch(f){r==null||r(f)}})(),d})()}async function SR(u,{confirmations:e=1,hash:t,onReplaced:n,pollingInterval:r=u.pollingInterval,timeout:i}){const a=p0(["waitForTransactionReceipt",u.uid,t]);let o,s,l,c=!1;return new Promise((E,d)=>{i&&setTimeout(()=>d(new HO({hash:t})),i);const f=$s(a,{onReplaced:n,resolve:E,reject:d},C=>{const h=Ru(u,KF)({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:r,async onBlockNumber(B){if(c)return;let g=B;const m=y=>{h(),y(),f()};try{if(l){if(e>1&&(!l.blockNumber||g-l.blockNumber+1nC.resolve(l));return}if(o||(c=!0,await bF(async()=>{o=await Ru(u,r5)({hash:t}),o.blockNumber&&(g=o.blockNumber)},{delay:({count:y})=>~~(1<1&&(!l.blockNumber||g-l.blockNumber+1nC.resolve(l))}catch(y){if(o&&(y instanceof hF||y instanceof CF))try{s=o;const w=(await Ru(u,Yr)({blockNumber:g,includeTransactions:!0})).transactions.find(({from:p,nonce:x})=>p===s.from&&x===s.nonce);if(!w||(l=await Ru(u,of)({hash:w.hash}),e>1&&(!l.blockNumber||g-l.blockNumber+1n{var p;(p=C.onReplaced)==null||p.call(C,{reason:D,replacedTransaction:s,transaction:w,transactionReceipt:l}),C.resolve(l)})}catch(v){m(()=>C.reject(v))}else m(()=>C.reject(y))}}})})})}function PR(u,{blockTag:e="latest",emitMissed:t=!1,emitOnBegin:n=!1,onBlock:r,onError:i,includeTransactions:a,poll:o,pollingInterval:s=u.pollingInterval}){const l=typeof o<"u"?o:u.transport.type!=="webSocket",c=a??!1;let E;return l?(()=>{const C=p0(["watchBlocks",u.uid,t,n,c,s]);return $s(C,{onBlock:r,onError:i},h=>_l(async()=>{var B;try{const g=await Ru(u,Yr)({blockTag:e,includeTransactions:c});if(g.number&&(E!=null&&E.number)){if(g.number===E.number)return;if(g.number-E.number>1&&t)for(let m=(E==null?void 0:E.number)+1n;mE.number)&&(h.onBlock(g,E),E=g)}catch(g){(B=h.onError)==null||B.call(h,g)}},{emitOnBegin:n,interval:s}))})():(()=>{let C=!0,h=()=>C=!1;return(async()=>{try{const{unsubscribe:B}=await u.transport.subscribe({params:["newHeads"],onData(g){var v,w,D;if(!C)return;const y=(((D=(w=(v=u.chain)==null?void 0:v.formatters)==null?void 0:w.block)==null?void 0:D.format)||Ph)(g.result);r(y,E),E=y},onError(g){i==null||i(g)}});h=B,C||h()}catch(B){i==null||i(B)}})(),h})()}function TR(u,{address:e,args:t,batch:n=!0,event:r,events:i,onError:a,onLogs:o,poll:s,pollingInterval:l=u.pollingInterval,strict:c}){const E=typeof s<"u"?s:u.transport.type!=="webSocket",d=c??!1;return E?(()=>{const h=p0(["watchEvent",e,t,n,u.uid,r,l]);return $s(h,{onLogs:o,onError:a},B=>{let g,m,y=!1;const v=_l(async()=>{var w;if(!y){try{m=await Ru(u,IF)({address:e,args:t,event:r,events:i,strict:d})}catch{}y=!0;return}try{let D;if(m)D=await Ru(u,od)({filter:m});else{const p=await Ru(u,Sl)({});g&&g!==p?D=await Ru(u,Yh)({address:e,args:t,event:r,events:i,fromBlock:g+1n,toBlock:p}):D=[],g=p}if(D.length===0)return;n?B.onLogs(D):D.forEach(p=>B.onLogs([p]))}catch(D){m&&D instanceof la&&(y=!1),(w=B.onError)==null||w.call(B,D)}},{emitOnBegin:!0,interval:l});return async()=>{m&&await Ru(u,sd)({filter:m}),v()}})})():(()=>{let h=!0,B=()=>h=!1;return(async()=>{try{const g=i??(r?[r]:void 0);let m=[];g&&(m=[g.flatMap(v=>bl({abi:[v],eventName:v.name,args:t}))],r&&(m=m[0]));const{unsubscribe:y}=await u.transport.subscribe({params:["logs",{address:e,topics:m}],onData(v){var D;if(!h)return;const w=v.result;try{const{eventName:p,args:x}=kl({abi:g,data:w.data,topics:w.topics,strict:d}),j=zt(w,{args:x,eventName:p});o([j])}catch(p){let x,j;if(p instanceof sa||p instanceof js){if(c)return;x=p.abiItem.name,j=(D=p.abiItem.inputs)==null?void 0:D.some(Z=>!("name"in Z&&Z.name))}const O=zt(w,{args:j?[]:{},eventName:x});o([O])}},onError(v){a==null||a(v)}});B=y,h||B()}catch(g){a==null||a(g)}})(),B})()}function IR(u,{batch:e=!0,onError:t,onTransactions:n,poll:r,pollingInterval:i=u.pollingInterval}){return(typeof r<"u"?r:u.transport.type!=="webSocket")?(()=>{const l=p0(["watchPendingTransactions",u.uid,e,i]);return $s(l,{onTransactions:n,onError:t},c=>{let E;const d=_l(async()=>{var f;try{if(!E)try{E=await Ru(u,OF)({});return}catch(h){throw d(),h}const C=await Ru(u,od)({filter:E});if(C.length===0)return;e?c.onTransactions(C):C.forEach(h=>c.onTransactions([h]))}catch(C){(f=c.onError)==null||f.call(c,C)}},{emitOnBegin:!0,interval:i});return async()=>{E&&await Ru(u,sd)({filter:E}),d()}})})():(()=>{let l=!0,c=()=>l=!1;return(async()=>{try{const{unsubscribe:E}=await u.transport.subscribe({params:["newPendingTransactions"],onData(d){if(!l)return;const f=d.result;n([f])},onError(d){t==null||t(d)}});c=E,l||c()}catch(E){t==null||t(E)}})(),c})()}function OR(u){return{call:e=>ad(u,e),createBlockFilter:()=>YN(u),createContractEventFilter:e=>dF(u,e),createEventFilter:e=>IF(u,e),createPendingTransactionFilter:()=>OF(u),estimateContractGas:e=>iN(u,e),estimateGas:e=>Jh(u,e),getBalance:e=>XN(u,e),getBlock:e=>Yr(u,e),getBlockNumber:e=>Sl(u,e),getBlockTransactionCount:e=>ZN(u,e),getBytecode:e=>uR(u,e),getChainId:()=>j3(u),getContractEvents:e=>yF(u,e),getEnsAddress:e=>NN(u,e),getEnsAvatar:e=>QN(u,e),getEnsName:e=>VN(u,e),getEnsResolver:e=>JN(u,e),getEnsText:e=>TF(u,e),getFeeHistory:e=>tR(u,e),estimateFeesPerGas:e=>nN(u,e),getFilterChanges:e=>od(u,e),getFilterLogs:e=>nR(u,e),getGasPrice:()=>Vh(u),getLogs:e=>Yh(u,e),getProof:e=>fR(u,e),estimateMaxPriorityFeePerGas:e=>tN(u,e),getStorageAt:e=>pR(u,e),getTransaction:e=>r5(u,e),getTransactionConfirmations:e=>hR(u,e),getTransactionCount:e=>AF(u,e),getTransactionReceipt:e=>of(u,e),multicall:e=>CR(u,e),prepareTransactionRequest:e=>id(u,e),readContract:e=>Xr(u,e),sendRawTransaction:e=>Zh(u,e),simulateContract:e=>pN(u,e),verifyMessage:e=>kR(u,e),verifyTypedData:e=>_R(u,e),uninstallFilter:e=>sd(u,e),waitForTransactionReceipt:e=>SR(u,e),watchBlocks:e=>PR(u,e),watchBlockNumber:e=>KF(u,e),watchContractEvent:e=>BN(u,e),watchEvent:e=>TR(u,e),watchPendingTransactions:e=>IR(u,e)}}function y8(u){const{key:e="public",name:t="Public Client"}=u;return DF({...u,key:e,name:t,type:"publicClient"}).extend(OR)}function NR(u,{abi:e,args:t,bytecode:n,...r}){const i=LF({abi:e,args:t,bytecode:n});return u5(u,{...r,data:i})}async function RR(u){var t;return((t=u.account)==null?void 0:t.type)==="local"?[u.account.address]:(await u.request({method:"eth_accounts"})).map(n=>Lh(n))}async function jR(u){return await u.request({method:"wallet_getPermissions"})}async function zR(u){return(await u.request({method:"eth_requestAccounts"})).map(t=>t0(t))}async function MR(u,e){return u.request({method:"wallet_requestPermissions",params:[e]})}async function UR(u,{account:e=u.account,message:t}){if(!e)throw new Ms({docsPath:"/docs/actions/wallet/signMessage"});const n=mt(e);if(n.type==="local")return n.signMessage({message:t});const r=(()=>typeof t=="string"?xh(t):t.raw instanceof Uint8Array?tr(t.raw):t.raw)();return u.request({method:"personal_sign",params:[r,n.address]})}async function LR(u,e){var l,c,E,d;const{account:t=u.account,chain:n=u.chain,...r}=e;if(!t)throw new Ms({docsPath:"/docs/actions/wallet/signTransaction"});const i=mt(t);xl({account:i,...e});const a=await Ru(u,j3)({});n!==null&&FF({currentChainId:a,chain:n});const o=(n==null?void 0:n.formatters)||((l=u.chain)==null?void 0:l.formatters),s=((c=o==null?void 0:o.transactionRequest)==null?void 0:c.format)||Y2;return i.type==="local"?i.signTransaction({...r,chainId:a},{serializer:(d=(E=u.chain)==null?void 0:E.serializers)==null?void 0:d.transaction}):await u.request({method:"eth_signTransaction",params:[{...s(r),chainId:Mu(a),from:i.address}]})}async function $R(u,{account:e=u.account,domain:t,message:n,primaryType:r,types:i}){if(!e)throw new Ms({docsPath:"/docs/actions/wallet/signTypedData"});const a=mt(e),o={EIP712Domain:UF({domain:t}),...i};if(MF({domain:t,message:n,primaryType:r,types:o}),a.type==="local")return a.signTypedData({domain:t,primaryType:r,types:o,message:n});const s=p0({domain:t??{},primaryType:r,types:o,message:n},(l,c)=>En(c)?c.toLowerCase():c);return u.request({method:"eth_signTypedData_v4",params:[a.address,s]})}async function WR(u,{id:e}){await u.request({method:"wallet_switchEthereumChain",params:[{chainId:Mu(e)}]})}async function qR(u,e){return await u.request({method:"wallet_watchAsset",params:e})}function HR(u){return{addChain:e=>DN(u,e),deployContract:e=>NR(u,e),getAddresses:()=>RR(u),getChainId:()=>j3(u),getPermissions:()=>jR(u),prepareTransactionRequest:e=>id(u,e),requestAddresses:()=>zR(u),requestPermissions:e=>MR(u,e),sendRawTransaction:e=>Zh(u,e),sendTransaction:e=>u5(u,e),signMessage:e=>UR(u,e),signTransaction:e=>LR(u,e),signTypedData:e=>$R(u,e),switchChain:e=>WR(u,e),watchAsset:e=>qR(u,e),writeContract:e=>FN(u,e)}}function Il(u){const{key:e="wallet",name:t="Wallet Client",transport:n}=u;return DF({...u,key:e,name:t,transport:i=>n({...i,retryCount:0}),type:"walletClient"}).extend(HR)}function GR(u,e={}){const{key:t="webSocket",name:n="WebSocket JSON-RPC",retryDelay:r}=e;return({chain:i,retryCount:a,timeout:o})=>{var E;const s=e.retryCount??a,l=o??e.timeout??1e4,c=u||((E=i==null?void 0:i.rpcUrls.default.webSocket)==null?void 0:E[0]);if(!c)throw new xF;return ld({key:t,name:n,async request({method:d,params:f}){const C={method:d,params:f},h=await J9(c),{error:B,result:g}=await mo.webSocketAsync(h,{body:C,timeout:l});if(B)throw new Hh({body:C,error:B,url:c});return g},retryCount:s,retryDelay:r,timeout:l,type:"webSocket"},{getSocket(){return J9(c)},async subscribe({params:d,onData:f,onError:C}){const h=await J9(c),{result:B}=await new Promise((g,m)=>mo.webSocket(h,{body:{method:"eth_subscribe",params:d},onResponse(y){if(y.error){m(y.error),C==null||C(y.error);return}if(typeof y.id=="number"){g(y);return}y.method==="eth_subscription"&&f(y.params)}}));return{subscriptionId:B,async unsubscribe(){return new Promise(g=>mo.webSocket(h,{body:{method:"eth_unsubscribe",params:[B]},onResponse:g}))}}}})}}function KR(u,e,t,n){if(typeof u.setBigUint64=="function")return u.setBigUint64(e,t,n);const r=BigInt(32),i=BigInt(4294967295),a=Number(t>>r&i),o=Number(t&i),s=n?4:0,l=n?0:4;u.setUint32(e+s,a,n),u.setUint32(e+l,o,n)}class QR extends Nh{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=H9(this.buffer)}update(e){hs(this);const{view:t,buffer:n,blockLen:r}=this;e=ed(e);const i=e.length;for(let a=0;ar-a&&(this.process(n,0),a=0);for(let E=a;Ec.length)throw new Error("_sha2: outputLen bigger than state");for(let E=0;Eu&e^~u&t,JR=(u,e,t)=>u&e^u&t^e&t,YR=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),sr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),lr=new Uint32Array(64);class XR extends QR{constructor(){super(64,32,8,!1),this.A=sr[0]|0,this.B=sr[1]|0,this.C=sr[2]|0,this.D=sr[3]|0,this.E=sr[4]|0,this.F=sr[5]|0,this.G=sr[6]|0,this.H=sr[7]|0}get(){const{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}process(e,t){for(let E=0;E<16;E++,t+=4)lr[E]=e.getUint32(t,!1);for(let E=16;E<64;E++){const d=lr[E-15],f=lr[E-2],C=Ht(d,7)^Ht(d,18)^d>>>3,h=Ht(f,17)^Ht(f,19)^f>>>10;lr[E]=h+lr[E-7]+C+lr[E-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:l,H:c}=this;for(let E=0;E<64;E++){const d=Ht(o,6)^Ht(o,11)^Ht(o,25),f=c+d+VR(o,s,l)+YR[E]+lr[E]|0,h=(Ht(n,2)^Ht(n,13)^Ht(n,22))+JR(n,r,i)|0;c=l,l=s,s=o,o=a+f|0,a=i,i=r,r=n,n=f+h|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,a,o,s,l,c)}roundClean(){lr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const ZR=iF(()=>new XR);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Re=BigInt(0),Be=BigInt(1),gi=BigInt(2),uj=BigInt(3),sf=BigInt(4),B8=BigInt(5),v8=BigInt(8);BigInt(9);BigInt(16);function A0(u,e){const t=u%e;return t>=Re?t:e+t}function ej(u,e,t){if(t<=Re||e 0");if(t===Be)return Re;let n=Be;for(;e>Re;)e&Be&&(n=n*u%t),u=u*u%t,e>>=Be;return n}function J0(u,e,t){let n=u;for(;e-- >Re;)n*=n,n%=t;return n}function lf(u,e){if(u===Re||e<=Re)throw new Error(`invert: expected positive integers, got n=${u} mod=${e}`);let t=A0(u,e),n=e,r=Re,i=Be;for(;t!==Re;){const o=n/t,s=n%t,l=r-i*o;n=t,t=s,r=i,i=l}if(n!==Be)throw new Error("invert: does not exist");return A0(r,e)}function tj(u){const e=(u-Be)/gi;let t,n,r;for(t=u-Be,n=0;t%gi===Re;t/=gi,n++);for(r=gi;r(n[r]="function",n),e);return Tl(u,t)}function aj(u,e,t){if(t 0");if(t===Re)return u.ONE;if(t===Be)return e;let n=u.ONE,r=e;for(;t>Re;)t&Be&&(n=u.mul(n,r)),r=u.sqr(r),t>>=Be;return n}function oj(u,e){const t=new Array(e.length),n=e.reduce((i,a,o)=>u.is0(a)?i:(t[o]=i,u.mul(i,a)),u.ONE),r=u.inv(n);return e.reduceRight((i,a,o)=>u.is0(a)?i:(t[o]=u.mul(i,t[o]),u.mul(i,a)),r),t}function QF(u,e){const t=e!==void 0?e:u.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function sj(u,e,t=!1,n={}){if(u<=Re)throw new Error(`Expected Field ORDER > 0, got ${u}`);const{nBitLength:r,nByteLength:i}=QF(u,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const a=nj(u),o=Object.freeze({ORDER:u,BITS:r,BYTES:i,MASK:s5(r),ZERO:Re,ONE:Be,create:s=>A0(s,u),isValid:s=>{if(typeof s!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof s}`);return Re<=s&&ss===Re,isOdd:s=>(s&Be)===Be,neg:s=>A0(-s,u),eql:(s,l)=>s===l,sqr:s=>A0(s*s,u),add:(s,l)=>A0(s+l,u),sub:(s,l)=>A0(s-l,u),mul:(s,l)=>A0(s*l,u),pow:(s,l)=>aj(o,s,l),div:(s,l)=>A0(s*lf(l,u),u),sqrN:s=>s*s,addN:(s,l)=>s+l,subN:(s,l)=>s-l,mulN:(s,l)=>s*l,inv:s=>lf(s,u),sqrt:n.sqrt||(s=>a(o,s)),invertBatch:s=>oj(o,s),cmov:(s,l,c)=>c?l:s,toBytes:s=>t?o5(s,i):As(s,i),fromBytes:s=>{if(s.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${s.length}`);return t?a5(s):Xi(s)}});return Object.freeze(o)}function VF(u){if(typeof u!="bigint")throw new Error("field order must be bigint");const e=u.toString(2).length;return Math.ceil(e/8)}function JF(u){const e=VF(u);return e+Math.ceil(e/2)}function lj(u,e,t=!1){const n=u.length,r=VF(e),i=JF(e);if(n<16||n1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);const a=t?Xi(u):a5(u),o=A0(a,e-Be)+Be;return t?o5(o,r):As(o,r)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const cj=BigInt(0),Z9=BigInt(1);function Ej(u,e){const t=(r,i)=>{const a=i.negate();return r?a:i},n=r=>{const i=Math.ceil(e/r)+1,a=2**(r-1);return{windows:i,windowSize:a}};return{constTimeNegate:t,unsafeLadder(r,i){let a=u.ZERO,o=r;for(;i>cj;)i&Z9&&(a=a.add(o)),o=o.double(),i>>=Z9;return a},precomputeWindow(r,i){const{windows:a,windowSize:o}=n(i),s=[];let l=r,c=l;for(let E=0;E>=f,B>s&&(B-=d,a+=Z9);const g=h,m=h+Math.abs(B)-1,y=C%2!==0,v=B<0;B===0?c=c.add(t(y,i[g])):l=l.add(t(v,i[m]))}return{p:l,f:c}},wNAFCached(r,i,a,o){const s=r._WINDOW_SIZE||1;let l=i.get(r);return l||(l=this.precomputeWindow(r,s),s!==1&&i.set(r,o(l))),this.wNAF(s,l,a)}}}function YF(u){return ij(u.Fp),Tl(u,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...QF(u.n,u.nBitLength),...u,p:u.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function dj(u){const e=YF(u);Tl(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:t,Fp:n,a:r}=e;if(t){if(!n.eql(r,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}const{bytesToNumberBE:fj,hexToBytes:pj}=wR,wi={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(u){const{Err:e}=wi;if(u.length<2||u[0]!==2)throw new e("Invalid signature integer tag");const t=u[1],n=u.subarray(2,t+2);if(!t||n.length!==t)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:fj(n),l:u.subarray(t+2)}},toSig(u){const{Err:e}=wi,t=typeof u=="string"?pj(u):u;if(!(t instanceof Uint8Array))throw new Error("ui8a expected");let n=t.length;if(n<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==n-2)throw new e("Invalid signature: incorrect length");const{d:r,l:i}=wi._parseInt(t.subarray(2)),{d:a,l:o}=wi._parseInt(i);if(o.length)throw new e("Invalid signature: left bytes after parsing");return{r,s:a}},hexFromSig(u){const e=l=>Number.parseInt(l[0],16)&8?"00"+l:l,t=l=>{const c=l.toString(16);return c.length&1?`0${c}`:c},n=e(t(u.s)),r=e(t(u.r)),i=n.length/2,a=r.length/2,o=t(i),s=t(a);return`30${t(a+i+4)}02${s}${r}02${o}${n}`}},Nn=BigInt(0),at=BigInt(1);BigInt(2);const F8=BigInt(3);BigInt(4);function hj(u){const e=dj(u),{Fp:t}=e,n=e.toBytes||((C,h,B)=>{const g=h.toAffine();return z3(Uint8Array.from([4]),t.toBytes(g.x),t.toBytes(g.y))}),r=e.fromBytes||(C=>{const h=C.subarray(1),B=t.fromBytes(h.subarray(0,t.BYTES)),g=t.fromBytes(h.subarray(t.BYTES,2*t.BYTES));return{x:B,y:g}});function i(C){const{a:h,b:B}=e,g=t.sqr(C),m=t.mul(g,C);return t.add(t.add(m,t.mul(C,h)),B)}if(!t.eql(t.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function a(C){return typeof C=="bigint"&&Nnt.eql(y,t.ZERO);return m(B)&&m(g)?E.ZERO:new E(B,g,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(h){const B=t.invertBatch(h.map(g=>g.pz));return h.map((g,m)=>g.toAffine(B[m])).map(E.fromAffine)}static fromHex(h){const B=E.fromAffine(r(bt("pointHex",h)));return B.assertValidity(),B}static fromPrivateKey(h){return E.BASE.multiply(s(h))}_setWindowSize(h){this._WINDOW_SIZE=h,l.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:h,y:B}=this.toAffine();if(!t.isValid(h)||!t.isValid(B))throw new Error("bad point: x or y not FE");const g=t.sqr(B),m=i(h);if(!t.eql(g,m))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:h}=this.toAffine();if(t.isOdd)return!t.isOdd(h);throw new Error("Field doesn't support isOdd")}equals(h){c(h);const{px:B,py:g,pz:m}=this,{px:y,py:v,pz:w}=h,D=t.eql(t.mul(B,w),t.mul(y,m)),p=t.eql(t.mul(g,w),t.mul(v,m));return D&&p}negate(){return new E(this.px,t.neg(this.py),this.pz)}double(){const{a:h,b:B}=e,g=t.mul(B,F8),{px:m,py:y,pz:v}=this;let w=t.ZERO,D=t.ZERO,p=t.ZERO,x=t.mul(m,m),j=t.mul(y,y),O=t.mul(v,v),Z=t.mul(m,y);return Z=t.add(Z,Z),p=t.mul(m,v),p=t.add(p,p),w=t.mul(h,p),D=t.mul(g,O),D=t.add(w,D),w=t.sub(j,D),D=t.add(j,D),D=t.mul(w,D),w=t.mul(Z,w),p=t.mul(g,p),O=t.mul(h,O),Z=t.sub(x,O),Z=t.mul(h,Z),Z=t.add(Z,p),p=t.add(x,x),x=t.add(p,x),x=t.add(x,O),x=t.mul(x,Z),D=t.add(D,x),O=t.mul(y,v),O=t.add(O,O),x=t.mul(O,Z),w=t.sub(w,x),p=t.mul(O,j),p=t.add(p,p),p=t.add(p,p),new E(w,D,p)}add(h){c(h);const{px:B,py:g,pz:m}=this,{px:y,py:v,pz:w}=h;let D=t.ZERO,p=t.ZERO,x=t.ZERO;const j=e.a,O=t.mul(e.b,F8);let Z=t.mul(B,y),ou=t.mul(g,v),su=t.mul(m,w),hu=t.add(B,g),eu=t.add(y,v);hu=t.mul(hu,eu),eu=t.add(Z,ou),hu=t.sub(hu,eu),eu=t.add(B,m);let au=t.add(y,w);return eu=t.mul(eu,au),au=t.add(Z,su),eu=t.sub(eu,au),au=t.add(g,m),D=t.add(v,w),au=t.mul(au,D),D=t.add(ou,su),au=t.sub(au,D),x=t.mul(j,eu),D=t.mul(O,su),x=t.add(D,x),D=t.sub(ou,x),x=t.add(ou,x),p=t.mul(D,x),ou=t.add(Z,Z),ou=t.add(ou,Z),su=t.mul(j,su),eu=t.mul(O,eu),ou=t.add(ou,su),su=t.sub(Z,su),su=t.mul(j,su),eu=t.add(eu,su),Z=t.mul(ou,eu),p=t.add(p,Z),Z=t.mul(au,eu),D=t.mul(hu,D),D=t.sub(D,Z),Z=t.mul(hu,ou),x=t.mul(au,x),x=t.add(x,Z),new E(D,p,x)}subtract(h){return this.add(h.negate())}is0(){return this.equals(E.ZERO)}wNAF(h){return f.wNAFCached(this,l,h,B=>{const g=t.invertBatch(B.map(m=>m.pz));return B.map((m,y)=>m.toAffine(g[y])).map(E.fromAffine)})}multiplyUnsafe(h){const B=E.ZERO;if(h===Nn)return B;if(o(h),h===at)return this;const{endo:g}=e;if(!g)return f.unsafeLadder(this,h);let{k1neg:m,k1:y,k2neg:v,k2:w}=g.splitScalar(h),D=B,p=B,x=this;for(;y>Nn||w>Nn;)y&at&&(D=D.add(x)),w&at&&(p=p.add(x)),x=x.double(),y>>=at,w>>=at;return m&&(D=D.negate()),v&&(p=p.negate()),p=new E(t.mul(p.px,g.beta),p.py,p.pz),D.add(p)}multiply(h){o(h);let B=h,g,m;const{endo:y}=e;if(y){const{k1neg:v,k1:w,k2neg:D,k2:p}=y.splitScalar(B);let{p:x,f:j}=this.wNAF(w),{p:O,f:Z}=this.wNAF(p);x=f.constTimeNegate(v,x),O=f.constTimeNegate(D,O),O=new E(t.mul(O.px,y.beta),O.py,O.pz),g=x.add(O),m=j.add(Z)}else{const{p:v,f:w}=this.wNAF(B);g=v,m=w}return E.normalizeZ([g,m])[0]}multiplyAndAddUnsafe(h,B,g){const m=E.BASE,y=(w,D)=>D===Nn||D===at||!w.equals(m)?w.multiplyUnsafe(D):w.multiply(D),v=y(this,B).add(y(h,g));return v.is0()?void 0:v}toAffine(h){const{px:B,py:g,pz:m}=this,y=this.is0();h==null&&(h=y?t.ONE:t.inv(m));const v=t.mul(B,h),w=t.mul(g,h),D=t.mul(m,h);if(y)return{x:t.ZERO,y:t.ZERO};if(!t.eql(D,t.ONE))throw new Error("invZ was invalid");return{x:v,y:w}}isTorsionFree(){const{h,isTorsionFree:B}=e;if(h===at)return!0;if(B)return B(E,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h,clearCofactor:B}=e;return h===at?this:B?B(E,this):this.multiplyUnsafe(e.h)}toRawBytes(h=!0){return this.assertValidity(),n(E,this,h)}toHex(h=!0){return ms(this.toRawBytes(h))}}E.BASE=new E(e.Gx,e.Gy,t.ONE),E.ZERO=new E(t.ZERO,t.ONE,t.ZERO);const d=e.nBitLength,f=Ej(E,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:E,normPrivateKeyToScalar:s,weierstrassEquation:i,isWithinCurveOrder:a}}function Cj(u){const e=YF(u);return Tl(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function mj(u){const e=Cj(u),{Fp:t,n}=e,r=t.BYTES+1,i=2*t.BYTES+1;function a(eu){return Nnms(As(eu,e.nByteLength));function C(eu){const au=n>>at;return eu>au}function h(eu){return C(eu)?o(-eu):eu}const B=(eu,au,nu)=>Xi(eu.slice(au,nu));class g{constructor(au,nu,W){this.r=au,this.s=nu,this.recovery=W,this.assertValidity()}static fromCompact(au){const nu=e.nByteLength;return au=bt("compactSignature",au,nu*2),new g(B(au,0,nu),B(au,nu,2*nu))}static fromDER(au){const{r:nu,s:W}=wi.toSig(bt("DER",au));return new g(nu,W)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(au){return new g(this.r,this.s,au)}recoverPublicKey(au){const{r:nu,s:W,recovery:iu}=this,lu=p(bt("msgHash",au));if(iu==null||![0,1,2,3].includes(iu))throw new Error("recovery id invalid");const cu=iu===2||iu===3?nu+e.n:nu;if(cu>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");const pu=iu&1?"03":"02",fu=l.fromHex(pu+f(cu)),J=s(cu),_u=o(-lu*J),Du=o(W*J),xu=l.BASE.multiplyAndAddUnsafe(fu,_u,Du);if(!xu)throw new Error("point at infinify");return xu.assertValidity(),xu}hasHighS(){return C(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return gs(this.toDERHex())}toDERHex(){return wi.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return gs(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}const m={isValidPrivateKey(eu){try{return c(eu),!0}catch{return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const eu=JF(e.n);return lj(e.randomBytes(eu),e.n)},precompute(eu=8,au=l.BASE){return au._setWindowSize(eu),au.multiply(BigInt(3)),au}};function y(eu,au=!0){return l.fromPrivateKey(eu).toRawBytes(au)}function v(eu){const au=eu instanceof Uint8Array,nu=typeof eu=="string",W=(au||nu)&&eu.length;return au?W===r||W===i:nu?W===2*r||W===2*i:eu instanceof l}function w(eu,au,nu=!0){if(v(eu))throw new Error("first arg must be private key");if(!v(au))throw new Error("second arg must be public key");return l.fromHex(au).multiply(c(eu)).toRawBytes(nu)}const D=e.bits2int||function(eu){const au=Xi(eu),nu=eu.length*8-e.nBitLength;return nu>0?au>>BigInt(nu):au},p=e.bits2int_modN||function(eu){return o(D(eu))},x=s5(e.nBitLength);function j(eu){if(typeof eu!="bigint")throw new Error("bigint expected");if(!(Nn<=eu&&euIu in nu))throw new Error("sign() legacy options not supported");const{hash:W,randomBytes:iu}=e;let{lowS:lu,prehash:cu,extraEntropy:pu}=nu;lu==null&&(lu=!0),eu=bt("msgHash",eu),cu&&(eu=bt("prehashed msgHash",W(eu)));const fu=p(eu),J=c(au),_u=[j(J),j(fu)];if(pu!=null){const Iu=pu===!0?iu(t.BYTES):pu;_u.push(bt("extraEntropy",Iu))}const Du=z3(..._u),xu=fu;function bu(Iu){const S=D(Iu);if(!d(S))return;const T=s(S),I=l.BASE.multiply(S).toAffine(),L=o(I.x);if(L===Nn)return;const U=o(T*o(xu+L*J));if(U===Nn)return;let q=(I.x===L?0:2)|Number(I.y&at),Y=U;return lu&&C(U)&&(Y=h(U),q^=1),new g(L,Y,q)}return{seed:Du,k2sig:bu}}const Z={lowS:e.lowS,prehash:!1},ou={lowS:e.lowS,prehash:!1};function su(eu,au,nu=Z){const{seed:W,k2sig:iu}=O(eu,au,nu),lu=e;return HF(lu.hash.outputLen,lu.nByteLength,lu.hmac)(W,iu)}l.BASE._setWindowSize(8);function hu(eu,au,nu,W=ou){var I;const iu=eu;if(au=bt("msgHash",au),nu=bt("publicKey",nu),"strict"in W)throw new Error("options.strict was renamed to lowS");const{lowS:lu,prehash:cu}=W;let pu,fu;try{if(typeof iu=="string"||iu instanceof Uint8Array)try{pu=g.fromDER(iu)}catch(L){if(!(L instanceof wi.Err))throw L;pu=g.fromCompact(iu)}else if(typeof iu=="object"&&typeof iu.r=="bigint"&&typeof iu.s=="bigint"){const{r:L,s:U}=iu;pu=new g(L,U)}else throw new Error("PARSE");fu=l.fromHex(nu)}catch(L){if(L.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(lu&&pu.hasHighS())return!1;cu&&(au=e.hash(au));const{r:J,s:_u}=pu,Du=p(au),xu=s(_u),bu=o(Du*xu),Iu=o(J*xu),S=(I=l.BASE.multiplyAndAddUnsafe(fu,bu,Iu))==null?void 0:I.toAffine();return S?o(S.x)===J:!1}return{CURVE:e,getPublicKey:y,getSharedSecret:w,sign:su,verify:hu,ProjectivePoint:l,Signature:g,utils:m}}let XF=class extends Nh{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,XI(e);const n=ed(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let a=0;anew XF(u,e).update(t).digest();ZF.create=(u,e)=>new XF(u,e);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function gj(u){return{hash:u,hmac:(e,...t)=>ZF(u,e,sO(...t)),randomBytes:lO}}function Aj(u,e){const t=n=>mj({...u,...gj(n)});return Object.freeze({...t(e),create:t})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const uD=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),D8=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),yj=BigInt(1),cf=BigInt(2),b8=(u,e)=>(u+e/cf)/e;function Bj(u){const e=uD,t=BigInt(3),n=BigInt(6),r=BigInt(11),i=BigInt(22),a=BigInt(23),o=BigInt(44),s=BigInt(88),l=u*u*u%e,c=l*l*u%e,E=J0(c,t,e)*c%e,d=J0(E,t,e)*c%e,f=J0(d,cf,e)*l%e,C=J0(f,r,e)*f%e,h=J0(C,i,e)*C%e,B=J0(h,o,e)*h%e,g=J0(B,s,e)*B%e,m=J0(g,o,e)*h%e,y=J0(m,t,e)*c%e,v=J0(y,a,e)*C%e,w=J0(v,n,e)*l%e,D=J0(w,cf,e);if(!Ef.eql(Ef.sqr(D),u))throw new Error("Cannot find square root");return D}const Ef=sj(uD,void 0,void 0,{sqrt:Bj}),Er=Aj({a:BigInt(0),b:BigInt(7),Fp:Ef,n:D8,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:u=>{const e=D8,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-yj*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),r=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,a=BigInt("0x100000000000000000000000000000000"),o=b8(i*u,e),s=b8(-n*u,e);let l=A0(u-o*t-s*r,e),c=A0(-o*n-s*i,e);const E=l>a,d=c>a;if(E&&(l=e-l),d&&(c=e-c),l>a||c>a)throw new Error("splitScalar: Endomorphism failed, k="+u);return{k1neg:E,k1:l,k2neg:d,k2:c}}}},ZR);BigInt(0);Er.ProjectivePoint;const vj=wh({id:5,network:"goerli",name:"Goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-goerli.g.alchemy.com/v2"],webSocket:["wss://eth-goerli.g.alchemy.com/v2"]},infura:{http:["https://goerli.infura.io/v3"],webSocket:["wss://goerli.infura.io/ws/v3"]},default:{http:["https://rpc.ankr.com/eth_goerli"]},public:{http:["https://rpc.ankr.com/eth_goerli"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli.etherscan.io"},default:{name:"Etherscan",url:"https://goerli.etherscan.io"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0x56522D00C410a43BFfDF00a9A569489297385790",blockCreated:8765204},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:6507670}},testnet:!0}),l5=wh({id:1,network:"homestead",name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://eth-mainnet.g.alchemy.com/v2"],webSocket:["wss://eth-mainnet.g.alchemy.com/v2"]},infura:{http:["https://mainnet.infura.io/v3"],webSocket:["wss://mainnet.infura.io/ws/v3"]},default:{http:["https://cloudflare-eth.com"]},public:{http:["https://cloudflare-eth.com"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://etherscan.io"},default:{name:"Etherscan",url:"https://etherscan.io"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc0497E381f536Be9ce14B0dD3817cBcAe57d2F62",blockCreated:16966585},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),Fj=wh({id:420,name:"Optimism Goerli",network:"optimism-goerli",nativeCurrency:{name:"Goerli Ether",symbol:"ETH",decimals:18},rpcUrls:{alchemy:{http:["https://opt-goerli.g.alchemy.com/v2"],webSocket:["wss://opt-goerli.g.alchemy.com/v2"]},infura:{http:["https://optimism-goerli.infura.io/v3"],webSocket:["wss://optimism-goerli.infura.io/ws/v3"]},default:{http:["https://goerli.optimism.io"]},public:{http:["https://goerli.optimism.io"]}},blockExplorers:{etherscan:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"},default:{name:"Etherscan",url:"https://goerli-optimism.etherscan.io"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:49461}},testnet:!0},{formatters:bI});var eD=class extends Error{constructor({chainId:u,connectorId:e}){super(`Chain "${u}" not configured for connector "${e}".`),this.name="ChainNotConfiguredForConnectorError"}},B0=class extends Error{constructor(){super(...arguments),this.name="ConnectorNotFoundError",this.message="Connector not found"}};function ca(u){return typeof u=="string"?Number.parseInt(u,u.trim().substring(0,2)==="0x"?16:10):typeof u=="bigint"?Number(u):u}var tD={exports:{}};(function(u){var e=Object.prototype.hasOwnProperty,t="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(t=!1));function r(s,l,c){this.fn=s,this.context=l,this.once=c||!1}function i(s,l,c,E,d){if(typeof c!="function")throw new TypeError("The listener must be a function");var f=new r(c,E||s,d),C=t?t+l:l;return s._events[C]?s._events[C].fn?s._events[C]=[s._events[C],f]:s._events[C].push(f):(s._events[C]=f,s._eventsCount++),s}function a(s,l){--s._eventsCount===0?s._events=new n:delete s._events[l]}function o(){this._events=new n,this._eventsCount=0}o.prototype.eventNames=function(){var l=[],c,E;if(this._eventsCount===0)return l;for(E in c=this._events)e.call(c,E)&&l.push(t?E.slice(1):E);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(c)):l},o.prototype.listeners=function(l){var c=t?t+l:l,E=this._events[c];if(!E)return[];if(E.fn)return[E.fn];for(var d=0,f=E.length,C=new Array(f);d{if(!e.has(u))throw TypeError("Cannot "+t)},Hu=(u,e,t)=>(c5(u,e,"read from private field"),t?t.call(u):e.get(u)),xe=(u,e,t)=>{if(e.has(u))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(u):e.set(u,t)},Yn=(u,e,t,n)=>(c5(u,e,"write to private field"),n?n.call(u,t):e.set(u,t),t),be=(u,e,t)=>(c5(u,e,"access private method"),t),Ol=class extends bj{constructor({chains:u=[l5,vj],options:e}){super(),this.chains=u,this.options=e}getBlockExplorerUrls(u){const{default:e,...t}=u.blockExplorers??{};if(e)return[e.url,...Object.values(t).map(n=>n.url)]}isChainUnsupported(u){return!this.chains.some(e=>e.id===u)}setStorage(u){this.storage=u}};function wj(u){var t;if(!u)return"Injected";const e=n=>{if(n.isApexWallet)return"Apex Wallet";if(n.isAvalanche)return"Core Wallet";if(n.isBackpack)return"Backpack";if(n.isBifrost)return"Bifrost Wallet";if(n.isBitKeep)return"BitKeep";if(n.isBitski)return"Bitski";if(n.isBlockWallet)return"BlockWallet";if(n.isBraveWallet)return"Brave Wallet";if(n.isCoin98)return"Coin98 Wallet";if(n.isCoinbaseWallet)return"Coinbase Wallet";if(n.isDawn)return"Dawn Wallet";if(n.isDefiant)return"Defiant";if(n.isDesig)return"Desig Wallet";if(n.isEnkrypt)return"Enkrypt";if(n.isExodus)return"Exodus";if(n.isFordefi)return"Fordefi";if(n.isFrame)return"Frame";if(n.isFrontier)return"Frontier Wallet";if(n.isGamestop)return"GameStop Wallet";if(n.isHaqqWallet)return"HAQQ Wallet";if(n.isHyperPay)return"HyperPay Wallet";if(n.isImToken)return"ImToken";if(n.isHaloWallet)return"Halo Wallet";if(n.isKuCoinWallet)return"KuCoin Wallet";if(n.isMathWallet)return"MathWallet";if(n.isNovaWallet)return"Nova Wallet";if(n.isOkxWallet||n.isOKExWallet)return"OKX Wallet";if(n.isOneInchIOSWallet||n.isOneInchAndroidWallet)return"1inch Wallet";if(n.isOpera)return"Opera";if(n.isPhantom)return"Phantom";if(n.isPortal)return"Ripio Portal";if(n.isRabby)return"Rabby Wallet";if(n.isRainbow)return"Rainbow";if(n.isStatus)return"Status";if(n.isSubWallet)return"SubWallet";if(n.isTalisman)return"Talisman";if(n.isTally)return"Taho";if(n.isTokenPocket)return"TokenPocket";if(n.isTokenary)return"Tokenary";if(n.isTrust||n.isTrustWallet)return"Trust Wallet";if(n.isTTWallet)return"TTWallet";if(n.isXDEFI)return"XDEFI Wallet";if(n.isZeal)return"Zeal";if(n.isZerion)return"Zerion";if(n.isMetaMask)return"MetaMask"};if((t=u.providers)!=null&&t.length){const n=new Set;let r=1;for(const a of u.providers){let o=e(a);o||(o=`Unknown Wallet #${r}`,r+=1),n.add(o)}const i=[...n];return i.length?i:i[0]??"Injected"}return e(u)??"Injected"}var Yc,ys=class extends Ol{constructor({chains:u,options:e}={}){const t={shimDisconnect:!0,getProvider(){if(typeof window>"u")return;const r=window.ethereum;return r!=null&&r.providers?r.providers[0]:r},...e};super({chains:u,options:t}),this.id="injected",xe(this,Yc,void 0),this.shimDisconnectKey=`${this.id}.shimDisconnect`,this.onAccountsChanged=r=>{r.length===0?this.emit("disconnect"):this.emit("change",{account:t0(r[0])})},this.onChainChanged=r=>{const i=ca(r),a=this.isChainUnsupported(i);this.emit("change",{chain:{id:i,unsupported:a}})},this.onDisconnect=async r=>{var i;r.code===1013&&await this.getProvider()&&await this.getAccount()||(this.emit("disconnect"),this.options.shimDisconnect&&((i=this.storage)==null||i.removeItem(this.shimDisconnectKey)))};const n=t.getProvider();if(typeof t.name=="string")this.name=t.name;else if(n){const r=wj(n);t.name?this.name=t.name(r):typeof r=="string"?this.name=r:this.name=r[0]}else this.name="Injected";this.ready=!!n}async connect({chainId:u}={}){var e;try{const t=await this.getProvider();if(!t)throw new B0;t.on&&(t.on("accountsChanged",this.onAccountsChanged),t.on("chainChanged",this.onChainChanged),t.on("disconnect",this.onDisconnect)),this.emit("message",{type:"connecting"});const n=await t.request({method:"eth_requestAccounts"}),r=t0(n[0]);let i=await this.getChainId(),a=this.isChainUnsupported(i);return u&&i!==u&&(i=(await this.switchChain(u)).id,a=this.isChainUnsupported(i)),this.options.shimDisconnect&&((e=this.storage)==null||e.setItem(this.shimDisconnectKey,!0)),{account:r,chain:{id:i,unsupported:a}}}catch(t){throw this.isUserRejectedRequestError(t)?new Se(t):t.code===-32002?new Jr(t):t}}async disconnect(){var e;const u=await this.getProvider();u!=null&&u.removeListener&&(u.removeListener("accountsChanged",this.onAccountsChanged),u.removeListener("chainChanged",this.onChainChanged),u.removeListener("disconnect",this.onDisconnect),this.options.shimDisconnect&&((e=this.storage)==null||e.removeItem(this.shimDisconnectKey)))}async getAccount(){const u=await this.getProvider();if(!u)throw new B0;const e=await u.request({method:"eth_accounts"});return t0(e[0])}async getChainId(){const u=await this.getProvider();if(!u)throw new B0;return u.request({method:"eth_chainId"}).then(ca)}async getProvider(){const u=this.options.getProvider();return u&&Yn(this,Yc,u),Hu(this,Yc)}async getWalletClient({chainId:u}={}){const[e,t]=await Promise.all([this.getProvider(),this.getAccount()]),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Il({account:t,chain:n,transport:Pl(e)})}async isAuthorized(){var u;try{if(this.options.shimDisconnect&&!((u=this.storage)!=null&&u.getItem(this.shimDisconnectKey)))return!1;if(!await this.getProvider())throw new B0;return!!await this.getAccount()}catch{return!1}}async switchChain(u){var n,r,i;const e=await this.getProvider();if(!e)throw new B0;const t=Mu(u);try{return await Promise.all([e.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]}),new Promise(a=>this.on("change",({chain:o})=>{(o==null?void 0:o.id)===u&&a()}))]),this.chains.find(a=>a.id===u)??{id:u,name:`Chain ${t}`,network:`${t}`,nativeCurrency:{name:"Ether",decimals:18,symbol:"ETH"},rpcUrls:{default:{http:[""]},public:{http:[""]}}}}catch(a){const o=this.chains.find(s=>s.id===u);if(!o)throw new eD({chainId:u,connectorId:this.id});if(a.code===4902||((r=(n=a==null?void 0:a.data)==null?void 0:n.originalError)==null?void 0:r.code)===4902)try{if(await e.request({method:"wallet_addEthereumChain",params:[{chainId:t,chainName:o.name,nativeCurrency:o.nativeCurrency,rpcUrls:[((i=o.rpcUrls.public)==null?void 0:i.http[0])??""],blockExplorerUrls:this.getBlockExplorerUrls(o)}]}),await this.getChainId()!==u)throw new Se(new Error("User rejected switch after adding network."));return o}catch(s){throw new Se(s)}throw this.isUserRejectedRequestError(a)?new Se(a):new dn(a)}}async watchAsset({address:u,decimals:e=18,image:t,symbol:n}){const r=await this.getProvider();if(!r)throw new B0;return r.request({method:"wallet_watchAsset",params:{type:"ERC20",options:{address:u,decimals:e,image:t,symbol:n}}})}isUserRejectedRequestError(u){return u.code===4001}};Yc=new WeakMap;var E5=(u,e,t)=>{if(!e.has(u))throw TypeError("Cannot "+t)},u1=(u,e,t)=>(E5(u,e,"read from private field"),t?t.call(u):e.get(u)),e1=(u,e,t)=>{if(e.has(u))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(u):e.set(u,t)},Bc=(u,e,t,n)=>(E5(u,e,"write to private field"),n?n.call(u,t):e.set(u,t),t),xj=(u,e,t)=>(E5(u,e,"access private method"),t);const kj=u=>(e,t,n)=>{const r=n.subscribe;return n.subscribe=(a,o,s)=>{let l=a;if(o){const c=(s==null?void 0:s.equalityFn)||Object.is;let E=a(n.getState());l=d=>{const f=a(d);if(!c(E,f)){const C=E;o(E=f,C)}},s!=null&&s.fireImmediately&&o(E,E)}return r(l)},u(e,t,n)},_j=kj;function Sj(u,e){let t;try{t=u()}catch{return}return{getItem:r=>{var i;const a=s=>s===null?null:JSON.parse(s,e==null?void 0:e.reviver),o=(i=t.getItem(r))!=null?i:null;return o instanceof Promise?o.then(a):a(o)},setItem:(r,i)=>t.setItem(r,JSON.stringify(i,e==null?void 0:e.replacer)),removeItem:r=>t.removeItem(r)}}const M3=u=>e=>{try{const t=u(e);return t instanceof Promise?t:{then(n){return M3(n)(t)},catch(n){return this}}}catch(t){return{then(n){return this},catch(n){return M3(n)(t)}}}},Pj=(u,e)=>(t,n,r)=>{let i={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:B=>B,version:0,merge:(B,g)=>({...g,...B}),...e},a=!1;const o=new Set,s=new Set;let l;try{l=i.getStorage()}catch{}if(!l)return u((...B)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),t(...B)},n,r);const c=M3(i.serialize),E=()=>{const B=i.partialize({...n()});let g;const m=c({state:B,version:i.version}).then(y=>l.setItem(i.name,y)).catch(y=>{g=y});if(g)throw g;return m},d=r.setState;r.setState=(B,g)=>{d(B,g),E()};const f=u((...B)=>{t(...B),E()},n,r);let C;const h=()=>{var B;if(!l)return;a=!1,o.forEach(m=>m(n()));const g=((B=i.onRehydrateStorage)==null?void 0:B.call(i,n()))||void 0;return M3(l.getItem.bind(l))(i.name).then(m=>{if(m)return i.deserialize(m)}).then(m=>{if(m)if(typeof m.version=="number"&&m.version!==i.version){if(i.migrate)return i.migrate(m.state,m.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return m.state}).then(m=>{var y;return C=i.merge(m,(y=n())!=null?y:f),t(C,!0),E()}).then(()=>{g==null||g(C,void 0),a=!0,s.forEach(m=>m(C))}).catch(m=>{g==null||g(void 0,m)})};return r.persist={setOptions:B=>{i={...i,...B},B.getStorage&&(l=B.getStorage())},clearStorage:()=>{l==null||l.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>h(),hasHydrated:()=>a,onHydrate:B=>(o.add(B),()=>{o.delete(B)}),onFinishHydration:B=>(s.add(B),()=>{s.delete(B)})},h(),C||f},Tj=(u,e)=>(t,n,r)=>{let i={storage:Sj(()=>localStorage),partialize:h=>h,version:0,merge:(h,B)=>({...B,...h}),...e},a=!1;const o=new Set,s=new Set;let l=i.storage;if(!l)return u((...h)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),t(...h)},n,r);const c=()=>{const h=i.partialize({...n()});return l.setItem(i.name,{state:h,version:i.version})},E=r.setState;r.setState=(h,B)=>{E(h,B),c()};const d=u((...h)=>{t(...h),c()},n,r);let f;const C=()=>{var h,B;if(!l)return;a=!1,o.forEach(m=>{var y;return m((y=n())!=null?y:d)});const g=((B=i.onRehydrateStorage)==null?void 0:B.call(i,(h=n())!=null?h:d))||void 0;return M3(l.getItem.bind(l))(i.name).then(m=>{if(m)if(typeof m.version=="number"&&m.version!==i.version){if(i.migrate)return i.migrate(m.state,m.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return m.state}).then(m=>{var y;return f=i.merge(m,(y=n())!=null?y:d),t(f,!0),c()}).then(()=>{g==null||g(f,void 0),f=n(),a=!0,s.forEach(m=>m(f))}).catch(m=>{g==null||g(void 0,m)})};return r.persist={setOptions:h=>{i={...i,...h},h.storage&&(l=h.storage)},clearStorage:()=>{l==null||l.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>C(),hasHydrated:()=>a,onHydrate:h=>(o.add(h),()=>{o.delete(h)}),onFinishHydration:h=>(s.add(h),()=>{s.delete(h)})},i.skipHydration||C(),f||d},Ij=(u,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?Pj(u,e):Tj(u,e),Oj=Ij,w8=u=>{let e;const t=new Set,n=(s,l)=>{const c=typeof s=="function"?s(e):s;if(!Object.is(c,e)){const E=e;e=l??typeof c!="object"?c:Object.assign({},e,c),t.forEach(d=>d(e,E))}},r=()=>e,o={setState:n,getState:r,subscribe:s=>(t.add(s),()=>t.delete(s)),destroy:()=>{t.clear()}};return e=u(n,r,o),o},Nj=u=>u?w8(u):w8;function nD(u,e){if(Object.is(u,e))return!0;if(typeof u!="object"||u===null||typeof e!="object"||e===null)return!1;if(u instanceof Map&&e instanceof Map){if(u.size!==e.size)return!1;for(const[n,r]of u)if(!Object.is(r,e.get(n)))return!1;return!0}if(u instanceof Set&&e instanceof Set){if(u.size!==e.size)return!1;for(const n of u)if(!e.has(n))return!1;return!0}const t=Object.keys(u);if(t.length!==Object.keys(e).length)return!1;for(let n=0;nh===E.id)||(s=[...s,C.chain]),l[E.id]=[...l[E.id]||[],...C.rpcUrls.http],C.rpcUrls.webSocket&&(c[E.id]=[...c[E.id]||[],...C.rpcUrls.webSocket]))}if(!d)throw new Error([`Could not find valid provider configuration for chain "${E.name}". `,"You may need to add `jsonRpcProvider` to `configureChains` with the chain's RPC URLs.","Read more: https://wagmi.sh/core/providers/jsonRpc"].join(` -`))}return{chains:s,publicClient:({chainId:E})=>{const d=s.find(h=>h.id===E)??u[0],f=l[d.id];if(!f||!f[0])throw new Error(`No providers configured for chain "${d.id}"`);const C=A8({batch:t,chain:d,transport:h8(f.map(h=>PN(h,{timeout:o})),{rank:r,retryCount:i,retryDelay:a}),pollingInterval:n});return Object.assign(C,{chains:s})},webSocketPublicClient:({chainId:E})=>{const d=s.find(h=>h.id===E)??u[0],f=c[d.id];if(!f||!f[0])return;const C=A8({batch:t,chain:d,transport:h8(f.map(h=>HR(h,{timeout:o})),{rank:r,retryCount:i,retryDelay:a}),pollingInterval:n});return Object.assign(C,{chains:s})}}}var Rj=class extends Error{constructor({activeChain:u,targetChain:e}){super(`Chain mismatch: Expected "${e}", received "${u}".`),this.name="ChainMismatchError"}},jj=class extends Error{constructor({chainId:u,connectorId:e}){super(`Chain "${u}" not configured${e?` for connector "${e}"`:""}.`),this.name="ChainNotConfigured"}},zj=class extends Error{constructor(){super(...arguments),this.name="ConnectorAlreadyConnectedError",this.message="Connector already connected"}},Mj=class extends Error{constructor(){super(...arguments),this.name="ConfigChainsNotFound",this.message="No chains were found on the wagmi config. Some functions that require a chain may not work."}},Uj=class extends Error{constructor({connector:u}){super(`"${u.name}" does not support programmatic chain switching.`),this.name="SwitchChainNotSupportedError"}};function GE(u,e){if(u===e)return!0;if(u&&e&&typeof u=="object"&&typeof e=="object"){if(u.constructor!==e.constructor)return!1;let t,n;if(Array.isArray(u)&&Array.isArray(e)){if(t=u.length,t!=e.length)return!1;for(n=t;n--!==0;)if(!GE(u[n],e[n]))return!1;return!0}if(u.valueOf!==Object.prototype.valueOf)return u.valueOf()===e.valueOf();if(u.toString!==Object.prototype.toString)return u.toString()===e.toString();const r=Object.keys(u);if(t=r.length,t!==Object.keys(e).length)return!1;for(n=t;n--!==0;)if(!Object.prototype.hasOwnProperty.call(e,r[n]))return!1;for(n=t;n--!==0;){const i=r[n];if(i&&!GE(u[i],e[i]))return!1}return!0}return u!==u&&e!==e}var Ef=(u,{find:e,replace:t})=>u&&e(u)?t(u):typeof u!="object"?u:Array.isArray(u)?u.map(n=>Ef(n,{find:e,replace:t})):u instanceof Object?Object.entries(u).reduce((n,[r,i])=>({...n,[r]:Ef(i,{find:e,replace:t})}),{}):u;function Lj(u){const e=JSON.parse(u);return Ef(e,{find:n=>typeof n=="string"&&n.startsWith("#bigint."),replace:n=>BigInt(n.replace("#bigint.",""))})}function $j(u){return{accessList:u.accessList,account:u.account,blockNumber:u.blockNumber,blockTag:u.blockTag,data:u.data,gas:u.gas,gasPrice:u.gasPrice,maxFeePerGas:u.maxFeePerGas,maxPriorityFeePerGas:u.maxPriorityFeePerGas,nonce:u.nonce,to:u.to,value:u.value}}function Wj(u){return{accessList:u.accessList,account:u.account,data:u.data,gas:u.gas,gasPrice:u.gasPrice,maxFeePerGas:u.maxFeePerGas,maxPriorityFeePerGas:u.maxPriorityFeePerGas,nonce:u.nonce,to:u.to,value:u.value}}function w8(u){return typeof u=="number"?u:u==="wei"?0:Math.abs(SI[u])}function x8(u,e){return u.slice(0,e).join(".")||"."}function k8(u,e){const{length:t}=u;for(let n=0;n{const a=typeof i=="bigint"?`#bigint.${i.toString()}`:i;return(e==null?void 0:e(r,a))||a},n),t??void 0)}var nD={getItem:u=>"",setItem:(u,e)=>null,removeItem:u=>null};function rD({deserialize:u=Lj,key:e="wagmi",serialize:t=Hj,storage:n}){return{...n,getItem:(r,i=null)=>{const a=n.getItem(`${e}.${r}`);try{return a?u(a):i}catch(o){return console.warn(o),i}},setItem:(r,i)=>{if(i===null)n.removeItem(`${e}.${r}`);else try{n.setItem(`${e}.${r}`,t(i))}catch(a){console.error(a)}},removeItem:r=>n.removeItem(`${e}.${r}`)}}var _8="store",Ia,x4,df,iD,Gj=class{constructor({autoConnect:u=!1,connectors:e=[new As],publicClient:t,storage:n=rD({storage:typeof window<"u"?window.localStorage:nD}),logger:r={warn:console.warn},webSocketPublicClient:i}){var l,c;u1(this,df),this.publicClients=new Map,this.webSocketPublicClients=new Map,u1(this,Ia,void 0),u1(this,x4,void 0),this.args={autoConnect:u,connectors:e,logger:r,publicClient:t,storage:n,webSocketPublicClient:i};let a="disconnected",o;if(u)try{const E=n.getItem(_8),d=(l=E==null?void 0:E.state)==null?void 0:l.data;a=d!=null&&d.account?"reconnecting":"connecting",o=(c=d==null?void 0:d.chain)==null?void 0:c.id}catch{}const s=typeof e=="function"?e():e;s.forEach(E=>E.setStorage(n)),this.store=Oj(kj(Ij(()=>({connectors:s,publicClient:this.getPublicClient({chainId:o}),status:a,webSocketPublicClient:this.getWebSocketPublicClient({chainId:o})}),{name:_8,storage:n,partialize:E=>{var d,f;return{...u&&{data:{account:(d=E==null?void 0:E.data)==null?void 0:d.account,chain:(f=E==null?void 0:E.data)==null?void 0:f.chain}},chains:E==null?void 0:E.chains}},version:2}))),this.storage=n,yc(this,x4,n==null?void 0:n.getItem("wallet")),wj(this,df,iD).call(this),u&&typeof window<"u"&&setTimeout(async()=>await this.autoConnect(),0)}get chains(){return this.store.getState().chains}get connectors(){return this.store.getState().connectors}get connector(){return this.store.getState().connector}get data(){return this.store.getState().data}get error(){return this.store.getState().error}get lastUsedChainId(){var u,e;return(e=(u=this.data)==null?void 0:u.chain)==null?void 0:e.id}get publicClient(){return this.store.getState().publicClient}get status(){return this.store.getState().status}get subscribe(){return this.store.subscribe}get webSocketPublicClient(){return this.store.getState().webSocketPublicClient}setState(u){const e=typeof u=="function"?u(this.store.getState()):u;this.store.setState(e,!0)}clearState(){this.setState(u=>({...u,chains:void 0,connector:void 0,data:void 0,error:void 0,status:"disconnected"}))}async destroy(){var u,e;this.connector&&await((e=(u=this.connector).disconnect)==null?void 0:e.call(u)),yc(this,Ia,!1),this.clearState(),this.store.destroy()}async autoConnect(){if(Z9(this,Ia))return;yc(this,Ia,!0),this.setState(t=>{var n;return{...t,status:(n=t.data)!=null&&n.account?"reconnecting":"connecting"}});const u=Z9(this,x4)?[...this.connectors].sort(t=>t.id===Z9(this,x4)?-1:1):this.connectors;let e=!1;for(const t of u){if(!t.ready||!t.isAuthorized||!await t.isAuthorized())continue;const r=await t.connect();this.setState(i=>({...i,connector:t,chains:t==null?void 0:t.chains,data:r,status:"connected"})),e=!0;break}return e||this.setState(t=>({...t,data:void 0,status:"disconnected"})),yc(this,Ia,!1),this.data}setConnectors(u){this.args={...this.args,connectors:u};const e=typeof u=="function"?u():u;e.forEach(t=>t.setStorage(this.args.storage)),this.setState(t=>({...t,connectors:e}))}getPublicClient({chainId:u}={}){let e=this.publicClients.get(-1);if(e&&(e==null?void 0:e.chain.id)===u||(e=this.publicClients.get(u??-1),e))return e;const{publicClient:t}=this.args;return e=typeof t=="function"?t({chainId:u}):t,this.publicClients.set(u??-1,e),e}setPublicClient(u){var t,n;const e=(n=(t=this.data)==null?void 0:t.chain)==null?void 0:n.id;this.args={...this.args,publicClient:u},this.publicClients.clear(),this.setState(r=>({...r,publicClient:this.getPublicClient({chainId:e})}))}getWebSocketPublicClient({chainId:u}={}){let e=this.webSocketPublicClients.get(-1);if(e&&(e==null?void 0:e.chain.id)===u||(e=this.webSocketPublicClients.get(u??-1),e))return e;const{webSocketPublicClient:t}=this.args;return e=typeof t=="function"?t({chainId:u}):t,e&&this.webSocketPublicClients.set(u??-1,e),e}setWebSocketPublicClient(u){var t,n;const e=(n=(t=this.data)==null?void 0:t.chain)==null?void 0:n.id;this.args={...this.args,webSocketPublicClient:u},this.webSocketPublicClients.clear(),this.setState(r=>({...r,webSocketPublicClient:this.getWebSocketPublicClient({chainId:e})}))}setLastUsedConnector(u=null){var e;(e=this.storage)==null||e.setItem("wallet",u)}};Ia=new WeakMap;x4=new WeakMap;df=new WeakSet;iD=function(){const u=o=>{this.setState(s=>({...s,data:{...s.data,...o}}))},e=()=>{this.clearState()},t=o=>{this.setState(s=>({...s,error:o}))};this.store.subscribe(({connector:o})=>o,(o,s)=>{var l,c,E,d,f,C;(l=s==null?void 0:s.off)==null||l.call(s,"change",u),(c=s==null?void 0:s.off)==null||c.call(s,"disconnect",e),(E=s==null?void 0:s.off)==null||E.call(s,"error",t),o&&((d=o.on)==null||d.call(o,"change",u),(f=o.on)==null||f.call(o,"disconnect",e),(C=o.on)==null||C.call(o,"error",t))});const{publicClient:n,webSocketPublicClient:r}=this.args;(typeof n=="function"||typeof r=="function")&&this.store.subscribe(({data:o})=>{var s;return(s=o==null?void 0:o.chain)==null?void 0:s.id},o=>{this.setState(s=>({...s,publicClient:this.getPublicClient({chainId:o}),webSocketPublicClient:this.getWebSocketPublicClient({chainId:o})}))})};var ff;function Kj(u){const e=new Gj(u);return ff=e,e}function G0(){if(!ff)throw new Error("No wagmi config found. Ensure you have set up a config: https://wagmi.sh/react/config");return ff}async function Qj({chainId:u,connector:e}){const t=G0(),n=t.connector;if(n&&e.id===n.id)throw new zj;try{t.setState(i=>({...i,status:"connecting"}));const r=await e.connect({chainId:u});return t.setLastUsedConnector(e.id),t.setState(i=>({...i,connector:e,chains:e==null?void 0:e.chains,data:r,status:"connected"})),t.storage.setItem("connected",!0),{...r,connector:e}}catch(r){throw t.setState(i=>({...i,status:i.connector?"connected":"disconnected"})),r}}async function Vj(){const u=G0();u.connector&&await u.connector.disconnect(),u.clearState(),u.storage.removeItem("connected")}var Jj=[{type:"event",name:"Approval",inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}]},{type:"event",name:"Transfer",inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]},{type:"function",name:"name",stateMutability:"view",inputs:[],outputs:[{name:"",type:"string"}]},{type:"function",name:"symbol",stateMutability:"view",inputs:[],outputs:[{name:"",type:"string"}]},{type:"function",name:"totalSupply",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"transfer",stateMutability:"nonpayable",inputs:[{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"transferFrom",stateMutability:"nonpayable",inputs:[{name:"sender",type:"address"},{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]}],Yj=[{type:"event",name:"Approval",inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}]},{type:"event",name:"Transfer",inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]},{type:"function",name:"name",stateMutability:"view",inputs:[],outputs:[{name:"",type:"bytes32"}]},{type:"function",name:"symbol",stateMutability:"view",inputs:[],outputs:[{name:"",type:"bytes32"}]},{type:"function",name:"totalSupply",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"transfer",stateMutability:"nonpayable",inputs:[{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"transferFrom",stateMutability:"nonpayable",inputs:[{name:"sender",type:"address"},{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]}];function ht({chainId:u}={}){const e=G0();return u&&e.getPublicClient({chainId:u})||e.publicClient}async function E5({chainId:u}={}){var n,r;return await((r=(n=G0().connector)==null?void 0:n.getWalletClient)==null?void 0:r.call(n,{chainId:u}))||null}function pf({chainId:u}={}){const e=G0();return u&&e.getWebSocketPublicClient({chainId:u})||e.webSocketPublicClient}function Xj(u,e){const t=G0(),n=async()=>e(ht(u));return t.subscribe(({publicClient:i})=>i,n)}function Zj(u,e){const t=G0(),n=async()=>e(pf(u));return t.subscribe(({webSocketPublicClient:i})=>i,n)}async function uz({abi:u,address:e,args:t,chainId:n,dataSuffix:r,functionName:i,walletClient:a,...o}){const s=ht({chainId:n}),l=a??await E5({chainId:n});if(!l)throw new y0;n&&sD({chainId:n});const{account:c,accessList:E,blockNumber:d,blockTag:f,gas:C,gasPrice:h,maxFeePerGas:B,maxPriorityFeePerGas:g,nonce:m,value:y}=$j(o),{result:v,request:w}=await s.simulateContract({abi:u,address:e,functionName:i,args:t,account:c||l.account,accessList:E,blockNumber:d,blockTag:f,dataSuffix:r,gas:C,gasPrice:h,maxFeePerGas:B,maxPriorityFeePerGas:g,nonce:m,value:y}),D=u.filter(p=>"name"in p&&p.name===i);return{mode:"prepared",request:{...w,abi:D,chainId:n},result:v}}async function ez({chainId:u,contracts:e,blockNumber:t,blockTag:n,...r}){const i=ht({chainId:u});if(!i.chains)throw new Mj;if(u&&i.chain.id!==u)throw new jj({chainId:u});return i.multicall({allowFailure:r.allowFailure??!0,blockNumber:t,blockTag:n,contracts:e})}async function aD({address:u,account:e,chainId:t,abi:n,args:r,functionName:i,blockNumber:a,blockTag:o}){return ht({chainId:t}).readContract({abi:n,address:u,account:e,functionName:i,args:r,blockNumber:a,blockTag:o})}async function tz({contracts:u,blockNumber:e,blockTag:t,...n}){const{allowFailure:r=!0}=n;try{const i=ht(),a=u.reduce((c,E,d)=>{const f=E.chainId??i.chain.id;return{...c,[f]:[...c[f]||[],{contract:E,index:d}]}},{}),o=()=>Object.entries(a).map(([c,E])=>ez({allowFailure:r,chainId:parseInt(c),contracts:E.map(({contract:d})=>d),blockNumber:e,blockTag:t})),s=(await Promise.all(o())).flat(),l=Object.values(a).flatMap(c=>c.map(({index:E})=>E));return s.reduce((c,E,d)=>(c&&(c[l[d]]=E),c),[])}catch(i){if(i instanceof $h)throw i;const a=()=>u.map(o=>aD({...o,blockNumber:e,blockTag:t}));return r?(await Promise.allSettled(a())).map(o=>o.status==="fulfilled"?{result:o.value,status:"success"}:{error:o.reason,result:void 0,status:"failure"}):await Promise.all(a())}}async function S8(u){const e=await E5({chainId:u.chainId});if(!e)throw new y0;u.chainId&&sD({chainId:u.chainId});let t;if(u.mode==="prepared")t=u.request;else{const{chainId:r,mode:i,...a}=u;t=(await uz(a)).request}return{hash:await e.writeContract({...t,chain:u.chainId?{id:u.chainId}:null})}}async function nz({address:u,chainId:e,formatUnits:t,token:n}){const r=G0(),i=ht({chainId:e});if(n){const l=async({abi:c})=>{const E={abi:c,address:n,chainId:e},[d,f,C]=await tz({allowFailure:!1,contracts:[{...E,functionName:"balanceOf",args:[u]},{...E,functionName:"decimals"},{...E,functionName:"symbol"}]});return{decimals:f,formatted:ME(d??"0",w8(t??f)),symbol:C,value:d}};try{return await l({abi:Jj})}catch(c){if(c instanceof $h){const{symbol:E,...d}=await l({abi:Yj});return{symbol:kh(Ji(E,{dir:"right"})),...d}}throw c}}const a=[...r.publicClient.chains||[],...r.chains??[]],o=await i.getBalance({address:u}),s=a.find(l=>l.id===i.chain.id);return{decimals:(s==null?void 0:s.nativeCurrency.decimals)??18,formatted:ME(o??"0",w8(t??18)),symbol:(s==null?void 0:s.nativeCurrency.symbol)??"ETH",value:o}}function oD(){const{data:u,connector:e,status:t}=G0();switch(t){case"connected":return{address:u==null?void 0:u.account,connector:e,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:t};case"reconnecting":return{address:u==null?void 0:u.account,connector:e,isConnected:!!(u!=null&&u.account),isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:t};case"connecting":return{address:u==null?void 0:u.account,connector:e,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:t};case"disconnected":return{address:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:t}}}function d5(){var r,i,a,o;const u=G0(),e=(i=(r=u.data)==null?void 0:r.chain)==null?void 0:i.id,t=u.chains??[],n=[...((a=u.publicClient)==null?void 0:a.chains)||[],...t].find(s=>s.id===e)??{id:e,name:`Chain ${e}`,network:`${e}`,nativeCurrency:{name:"Ether",decimals:18,symbol:"ETH"},rpcUrls:{default:{http:[""]},public:{http:[""]}}};return{chain:e?{...n,...(o=u.data)==null?void 0:o.chain,id:e}:void 0,chains:t}}async function rz(u){const e=await E5();if(!e)throw new y0;return await e.signMessage({message:u.message})}async function iz({chainId:u}){const{connector:e}=G0();if(!e)throw new y0;if(!e.switchChain)throw new Uj({connector:e});return e.switchChain(u)}function az(u,{selector:e=t=>t}={}){const t=G0(),n=()=>u(oD());return t.subscribe(({data:i,connector:a,status:o})=>e({address:i==null?void 0:i.account,connector:a,status:o}),n,{equalityFn:tD})}function oz(u,{selector:e=t=>t}={}){const t=G0(),n=()=>u(d5());return t.subscribe(({data:i,chains:a})=>{var o;return e({chainId:(o=i==null?void 0:i.chain)==null?void 0:o.id,chains:a})},n,{equalityFn:tD})}async function sz({name:u,chainId:e}){const{normalize:t}=await Wu(()=>import("./index-3b7ee9e6.js"),[]);return await ht({chainId:e}).getEnsAvatar({name:t(u)})}async function lz({address:u,chainId:e}){return ht({chainId:e}).getEnsName({address:e0(u)})}async function cz({chainId:u}={}){return await ht({chainId:u}).getBlockNumber()}async function Ez({chainId:u,confirmations:e=1,hash:t,onReplaced:n,timeout:r=0}){const i=ht({chainId:u}),a=await i.waitForTransactionReceipt({hash:t,confirmations:e,onReplaced:n,timeout:r});if(a.status==="reverted"){const o=await i.getTransaction({hash:a.transactionHash}),s=await i.call({...o,gasPrice:o.type!=="eip1559"?o.gasPrice:void 0,maxFeePerGas:o.type==="eip1559"?o.maxFeePerGas:void 0,maxPriorityFeePerGas:o.type==="eip1559"?o.maxPriorityFeePerGas:void 0}),l=kh(`0x${s.substring(138)}`);throw new Error(l)}return a}function sD({chainId:u}){var r,i;const{chain:e,chains:t}=d5(),n=e==null?void 0:e.id;if(n&&u!==n)throw new Rj({activeChain:((r=t.find(a=>a.id===n))==null?void 0:r.name)??`Chain ${n}`,targetChain:((i=t.find(a=>a.id===u))==null?void 0:i.name)??`Chain ${u}`})}var lD={exports:{}},cD={};/** +`))}return{chains:s,publicClient:({chainId:E})=>{const d=s.find(h=>h.id===E)??u[0],f=l[d.id];if(!f||!f[0])throw new Error(`No providers configured for chain "${d.id}"`);const C=y8({batch:t,chain:d,transport:C8(f.map(h=>TN(h,{timeout:o})),{rank:r,retryCount:i,retryDelay:a}),pollingInterval:n});return Object.assign(C,{chains:s})},webSocketPublicClient:({chainId:E})=>{const d=s.find(h=>h.id===E)??u[0],f=c[d.id];if(!f||!f[0])return;const C=y8({batch:t,chain:d,transport:C8(f.map(h=>GR(h,{timeout:o})),{rank:r,retryCount:i,retryDelay:a}),pollingInterval:n});return Object.assign(C,{chains:s})}}}var jj=class extends Error{constructor({activeChain:u,targetChain:e}){super(`Chain mismatch: Expected "${e}", received "${u}".`),this.name="ChainMismatchError"}},zj=class extends Error{constructor({chainId:u,connectorId:e}){super(`Chain "${u}" not configured${e?` for connector "${e}"`:""}.`),this.name="ChainNotConfigured"}},Mj=class extends Error{constructor(){super(...arguments),this.name="ConnectorAlreadyConnectedError",this.message="Connector already connected"}},Uj=class extends Error{constructor(){super(...arguments),this.name="ConfigChainsNotFound",this.message="No chains were found on the wagmi config. Some functions that require a chain may not work."}},Lj=class extends Error{constructor({connector:u}){super(`"${u.name}" does not support programmatic chain switching.`),this.name="SwitchChainNotSupportedError"}};function KE(u,e){if(u===e)return!0;if(u&&e&&typeof u=="object"&&typeof e=="object"){if(u.constructor!==e.constructor)return!1;let t,n;if(Array.isArray(u)&&Array.isArray(e)){if(t=u.length,t!=e.length)return!1;for(n=t;n--!==0;)if(!KE(u[n],e[n]))return!1;return!0}if(u.valueOf!==Object.prototype.valueOf)return u.valueOf()===e.valueOf();if(u.toString!==Object.prototype.toString)return u.toString()===e.toString();const r=Object.keys(u);if(t=r.length,t!==Object.keys(e).length)return!1;for(n=t;n--!==0;)if(!Object.prototype.hasOwnProperty.call(e,r[n]))return!1;for(n=t;n--!==0;){const i=r[n];if(i&&!KE(u[i],e[i]))return!1}return!0}return u!==u&&e!==e}var df=(u,{find:e,replace:t})=>u&&e(u)?t(u):typeof u!="object"?u:Array.isArray(u)?u.map(n=>df(n,{find:e,replace:t})):u instanceof Object?Object.entries(u).reduce((n,[r,i])=>({...n,[r]:df(i,{find:e,replace:t})}),{}):u;function $j(u){const e=JSON.parse(u);return df(e,{find:n=>typeof n=="string"&&n.startsWith("#bigint."),replace:n=>BigInt(n.replace("#bigint.",""))})}function Wj(u){return{accessList:u.accessList,account:u.account,blockNumber:u.blockNumber,blockTag:u.blockTag,data:u.data,gas:u.gas,gasPrice:u.gasPrice,maxFeePerGas:u.maxFeePerGas,maxPriorityFeePerGas:u.maxPriorityFeePerGas,nonce:u.nonce,to:u.to,value:u.value}}function qj(u){return{accessList:u.accessList,account:u.account,data:u.data,gas:u.gas,gasPrice:u.gasPrice,maxFeePerGas:u.maxFeePerGas,maxPriorityFeePerGas:u.maxPriorityFeePerGas,nonce:u.nonce,to:u.to,value:u.value}}function x8(u){return typeof u=="number"?u:u==="wei"?0:Math.abs(PI[u])}function k8(u,e){return u.slice(0,e).join(".")||"."}function _8(u,e){const{length:t}=u;for(let n=0;n{const a=typeof i=="bigint"?`#bigint.${i.toString()}`:i;return(e==null?void 0:e(r,a))||a},n),t??void 0)}var rD={getItem:u=>"",setItem:(u,e)=>null,removeItem:u=>null};function iD({deserialize:u=$j,key:e="wagmi",serialize:t=Gj,storage:n}){return{...n,getItem:(r,i=null)=>{const a=n.getItem(`${e}.${r}`);try{return a?u(a):i}catch(o){return console.warn(o),i}},setItem:(r,i)=>{if(i===null)n.removeItem(`${e}.${r}`);else try{n.setItem(`${e}.${r}`,t(i))}catch(a){console.error(a)}},removeItem:r=>n.removeItem(`${e}.${r}`)}}var S8="store",Oa,k4,ff,aD,Kj=class{constructor({autoConnect:u=!1,connectors:e=[new ys],publicClient:t,storage:n=iD({storage:typeof window<"u"?window.localStorage:rD}),logger:r={warn:console.warn},webSocketPublicClient:i}){var l,c;e1(this,ff),this.publicClients=new Map,this.webSocketPublicClients=new Map,e1(this,Oa,void 0),e1(this,k4,void 0),this.args={autoConnect:u,connectors:e,logger:r,publicClient:t,storage:n,webSocketPublicClient:i};let a="disconnected",o;if(u)try{const E=n.getItem(S8),d=(l=E==null?void 0:E.state)==null?void 0:l.data;a=d!=null&&d.account?"reconnecting":"connecting",o=(c=d==null?void 0:d.chain)==null?void 0:c.id}catch{}const s=typeof e=="function"?e():e;s.forEach(E=>E.setStorage(n)),this.store=Nj(_j(Oj(()=>({connectors:s,publicClient:this.getPublicClient({chainId:o}),status:a,webSocketPublicClient:this.getWebSocketPublicClient({chainId:o})}),{name:S8,storage:n,partialize:E=>{var d,f;return{...u&&{data:{account:(d=E==null?void 0:E.data)==null?void 0:d.account,chain:(f=E==null?void 0:E.data)==null?void 0:f.chain}},chains:E==null?void 0:E.chains}},version:2}))),this.storage=n,Bc(this,k4,n==null?void 0:n.getItem("wallet")),xj(this,ff,aD).call(this),u&&typeof window<"u"&&setTimeout(async()=>await this.autoConnect(),0)}get chains(){return this.store.getState().chains}get connectors(){return this.store.getState().connectors}get connector(){return this.store.getState().connector}get data(){return this.store.getState().data}get error(){return this.store.getState().error}get lastUsedChainId(){var u,e;return(e=(u=this.data)==null?void 0:u.chain)==null?void 0:e.id}get publicClient(){return this.store.getState().publicClient}get status(){return this.store.getState().status}get subscribe(){return this.store.subscribe}get webSocketPublicClient(){return this.store.getState().webSocketPublicClient}setState(u){const e=typeof u=="function"?u(this.store.getState()):u;this.store.setState(e,!0)}clearState(){this.setState(u=>({...u,chains:void 0,connector:void 0,data:void 0,error:void 0,status:"disconnected"}))}async destroy(){var u,e;this.connector&&await((e=(u=this.connector).disconnect)==null?void 0:e.call(u)),Bc(this,Oa,!1),this.clearState(),this.store.destroy()}async autoConnect(){if(u1(this,Oa))return;Bc(this,Oa,!0),this.setState(t=>{var n;return{...t,status:(n=t.data)!=null&&n.account?"reconnecting":"connecting"}});const u=u1(this,k4)?[...this.connectors].sort(t=>t.id===u1(this,k4)?-1:1):this.connectors;let e=!1;for(const t of u){if(!t.ready||!t.isAuthorized||!await t.isAuthorized())continue;const r=await t.connect();this.setState(i=>({...i,connector:t,chains:t==null?void 0:t.chains,data:r,status:"connected"})),e=!0;break}return e||this.setState(t=>({...t,data:void 0,status:"disconnected"})),Bc(this,Oa,!1),this.data}setConnectors(u){this.args={...this.args,connectors:u};const e=typeof u=="function"?u():u;e.forEach(t=>t.setStorage(this.args.storage)),this.setState(t=>({...t,connectors:e}))}getPublicClient({chainId:u}={}){let e=this.publicClients.get(-1);if(e&&(e==null?void 0:e.chain.id)===u||(e=this.publicClients.get(u??-1),e))return e;const{publicClient:t}=this.args;return e=typeof t=="function"?t({chainId:u}):t,this.publicClients.set(u??-1,e),e}setPublicClient(u){var t,n;const e=(n=(t=this.data)==null?void 0:t.chain)==null?void 0:n.id;this.args={...this.args,publicClient:u},this.publicClients.clear(),this.setState(r=>({...r,publicClient:this.getPublicClient({chainId:e})}))}getWebSocketPublicClient({chainId:u}={}){let e=this.webSocketPublicClients.get(-1);if(e&&(e==null?void 0:e.chain.id)===u||(e=this.webSocketPublicClients.get(u??-1),e))return e;const{webSocketPublicClient:t}=this.args;return e=typeof t=="function"?t({chainId:u}):t,e&&this.webSocketPublicClients.set(u??-1,e),e}setWebSocketPublicClient(u){var t,n;const e=(n=(t=this.data)==null?void 0:t.chain)==null?void 0:n.id;this.args={...this.args,webSocketPublicClient:u},this.webSocketPublicClients.clear(),this.setState(r=>({...r,webSocketPublicClient:this.getWebSocketPublicClient({chainId:e})}))}setLastUsedConnector(u=null){var e;(e=this.storage)==null||e.setItem("wallet",u)}};Oa=new WeakMap;k4=new WeakMap;ff=new WeakSet;aD=function(){const u=o=>{this.setState(s=>({...s,data:{...s.data,...o}}))},e=()=>{this.clearState()},t=o=>{this.setState(s=>({...s,error:o}))};this.store.subscribe(({connector:o})=>o,(o,s)=>{var l,c,E,d,f,C;(l=s==null?void 0:s.off)==null||l.call(s,"change",u),(c=s==null?void 0:s.off)==null||c.call(s,"disconnect",e),(E=s==null?void 0:s.off)==null||E.call(s,"error",t),o&&((d=o.on)==null||d.call(o,"change",u),(f=o.on)==null||f.call(o,"disconnect",e),(C=o.on)==null||C.call(o,"error",t))});const{publicClient:n,webSocketPublicClient:r}=this.args;(typeof n=="function"||typeof r=="function")&&this.store.subscribe(({data:o})=>{var s;return(s=o==null?void 0:o.chain)==null?void 0:s.id},o=>{this.setState(s=>({...s,publicClient:this.getPublicClient({chainId:o}),webSocketPublicClient:this.getWebSocketPublicClient({chainId:o})}))})};var pf;function Qj(u){const e=new Kj(u);return pf=e,e}function K0(){if(!pf)throw new Error("No wagmi config found. Ensure you have set up a config: https://wagmi.sh/react/config");return pf}async function Vj({chainId:u,connector:e}){const t=K0(),n=t.connector;if(n&&e.id===n.id)throw new Mj;try{t.setState(i=>({...i,status:"connecting"}));const r=await e.connect({chainId:u});return t.setLastUsedConnector(e.id),t.setState(i=>({...i,connector:e,chains:e==null?void 0:e.chains,data:r,status:"connected"})),t.storage.setItem("connected",!0),{...r,connector:e}}catch(r){throw t.setState(i=>({...i,status:i.connector?"connected":"disconnected"})),r}}async function Jj(){const u=K0();u.connector&&await u.connector.disconnect(),u.clearState(),u.storage.removeItem("connected")}var Yj=[{type:"event",name:"Approval",inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}]},{type:"event",name:"Transfer",inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]},{type:"function",name:"name",stateMutability:"view",inputs:[],outputs:[{name:"",type:"string"}]},{type:"function",name:"symbol",stateMutability:"view",inputs:[],outputs:[{name:"",type:"string"}]},{type:"function",name:"totalSupply",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"transfer",stateMutability:"nonpayable",inputs:[{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"transferFrom",stateMutability:"nonpayable",inputs:[{name:"sender",type:"address"},{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]}],Xj=[{type:"event",name:"Approval",inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}]},{type:"event",name:"Transfer",inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}]},{type:"function",name:"allowance",stateMutability:"view",inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"approve",stateMutability:"nonpayable",inputs:[{name:"spender",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"balanceOf",stateMutability:"view",inputs:[{name:"account",type:"address"}],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"decimals",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint8"}]},{type:"function",name:"name",stateMutability:"view",inputs:[],outputs:[{name:"",type:"bytes32"}]},{type:"function",name:"symbol",stateMutability:"view",inputs:[],outputs:[{name:"",type:"bytes32"}]},{type:"function",name:"totalSupply",stateMutability:"view",inputs:[],outputs:[{name:"",type:"uint256"}]},{type:"function",name:"transfer",stateMutability:"nonpayable",inputs:[{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]},{type:"function",name:"transferFrom",stateMutability:"nonpayable",inputs:[{name:"sender",type:"address"},{name:"recipient",type:"address"},{name:"amount",type:"uint256"}],outputs:[{name:"",type:"bool"}]}];function Ct({chainId:u}={}){const e=K0();return u&&e.getPublicClient({chainId:u})||e.publicClient}async function d5({chainId:u}={}){var n,r;return await((r=(n=K0().connector)==null?void 0:n.getWalletClient)==null?void 0:r.call(n,{chainId:u}))||null}function hf({chainId:u}={}){const e=K0();return u&&e.getWebSocketPublicClient({chainId:u})||e.webSocketPublicClient}function Zj(u,e){const t=K0(),n=async()=>e(Ct(u));return t.subscribe(({publicClient:i})=>i,n)}function uz(u,e){const t=K0(),n=async()=>e(hf(u));return t.subscribe(({webSocketPublicClient:i})=>i,n)}async function ez({abi:u,address:e,args:t,chainId:n,dataSuffix:r,functionName:i,walletClient:a,...o}){const s=Ct({chainId:n}),l=a??await d5({chainId:n});if(!l)throw new B0;n&&lD({chainId:n});const{account:c,accessList:E,blockNumber:d,blockTag:f,gas:C,gasPrice:h,maxFeePerGas:B,maxPriorityFeePerGas:g,nonce:m,value:y}=Wj(o),{result:v,request:w}=await s.simulateContract({abi:u,address:e,functionName:i,args:t,account:c||l.account,accessList:E,blockNumber:d,blockTag:f,dataSuffix:r,gas:C,gasPrice:h,maxFeePerGas:B,maxPriorityFeePerGas:g,nonce:m,value:y}),D=u.filter(p=>"name"in p&&p.name===i);return{mode:"prepared",request:{...w,abi:D,chainId:n},result:v}}async function tz({chainId:u,contracts:e,blockNumber:t,blockTag:n,...r}){const i=Ct({chainId:u});if(!i.chains)throw new Uj;if(u&&i.chain.id!==u)throw new zj({chainId:u});return i.multicall({allowFailure:r.allowFailure??!0,blockNumber:t,blockTag:n,contracts:e})}async function oD({address:u,account:e,chainId:t,abi:n,args:r,functionName:i,blockNumber:a,blockTag:o}){return Ct({chainId:t}).readContract({abi:n,address:u,account:e,functionName:i,args:r,blockNumber:a,blockTag:o})}async function nz({contracts:u,blockNumber:e,blockTag:t,...n}){const{allowFailure:r=!0}=n;try{const i=Ct(),a=u.reduce((c,E,d)=>{const f=E.chainId??i.chain.id;return{...c,[f]:[...c[f]||[],{contract:E,index:d}]}},{}),o=()=>Object.entries(a).map(([c,E])=>tz({allowFailure:r,chainId:parseInt(c),contracts:E.map(({contract:d})=>d),blockNumber:e,blockTag:t})),s=(await Promise.all(o())).flat(),l=Object.values(a).flatMap(c=>c.map(({index:E})=>E));return s.reduce((c,E,d)=>(c&&(c[l[d]]=E),c),[])}catch(i){if(i instanceof Wh)throw i;const a=()=>u.map(o=>oD({...o,blockNumber:e,blockTag:t}));return r?(await Promise.allSettled(a())).map(o=>o.status==="fulfilled"?{result:o.value,status:"success"}:{error:o.reason,result:void 0,status:"failure"}):await Promise.all(a())}}async function P8(u){const e=await d5({chainId:u.chainId});if(!e)throw new B0;u.chainId&&lD({chainId:u.chainId});let t;if(u.mode==="prepared")t=u.request;else{const{chainId:r,mode:i,...a}=u;t=(await ez(a)).request}return{hash:await e.writeContract({...t,chain:u.chainId?{id:u.chainId}:null})}}async function rz({address:u,chainId:e,formatUnits:t,token:n}){const r=K0(),i=Ct({chainId:e});if(n){const l=async({abi:c})=>{const E={abi:c,address:n,chainId:e},[d,f,C]=await nz({allowFailure:!1,contracts:[{...E,functionName:"balanceOf",args:[u]},{...E,functionName:"decimals"},{...E,functionName:"symbol"}]});return{decimals:f,formatted:UE(d??"0",x8(t??f)),symbol:C,value:d}};try{return await l({abi:Yj})}catch(c){if(c instanceof Wh){const{symbol:E,...d}=await l({abi:Xj});return{symbol:_h(Yi(E,{dir:"right"})),...d}}throw c}}const a=[...r.publicClient.chains||[],...r.chains??[]],o=await i.getBalance({address:u}),s=a.find(l=>l.id===i.chain.id);return{decimals:(s==null?void 0:s.nativeCurrency.decimals)??18,formatted:UE(o??"0",x8(t??18)),symbol:(s==null?void 0:s.nativeCurrency.symbol)??"ETH",value:o}}function sD(){const{data:u,connector:e,status:t}=K0();switch(t){case"connected":return{address:u==null?void 0:u.account,connector:e,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:t};case"reconnecting":return{address:u==null?void 0:u.account,connector:e,isConnected:!!(u!=null&&u.account),isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:t};case"connecting":return{address:u==null?void 0:u.account,connector:e,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:t};case"disconnected":return{address:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:t}}}function f5(){var r,i,a,o;const u=K0(),e=(i=(r=u.data)==null?void 0:r.chain)==null?void 0:i.id,t=u.chains??[],n=[...((a=u.publicClient)==null?void 0:a.chains)||[],...t].find(s=>s.id===e)??{id:e,name:`Chain ${e}`,network:`${e}`,nativeCurrency:{name:"Ether",decimals:18,symbol:"ETH"},rpcUrls:{default:{http:[""]},public:{http:[""]}}};return{chain:e?{...n,...(o=u.data)==null?void 0:o.chain,id:e}:void 0,chains:t}}async function iz(u){const e=await d5();if(!e)throw new B0;return await e.signMessage({message:u.message})}async function az({chainId:u}){const{connector:e}=K0();if(!e)throw new B0;if(!e.switchChain)throw new Lj({connector:e});return e.switchChain(u)}function oz(u,{selector:e=t=>t}={}){const t=K0(),n=()=>u(sD());return t.subscribe(({data:i,connector:a,status:o})=>e({address:i==null?void 0:i.account,connector:a,status:o}),n,{equalityFn:nD})}function sz(u,{selector:e=t=>t}={}){const t=K0(),n=()=>u(f5());return t.subscribe(({data:i,chains:a})=>{var o;return e({chainId:(o=i==null?void 0:i.chain)==null?void 0:o.id,chains:a})},n,{equalityFn:nD})}async function lz({name:u,chainId:e}){const{normalize:t}=await qu(()=>import("./index-8bf9f197.js"),[]);return await Ct({chainId:e}).getEnsAvatar({name:t(u)})}async function cz({address:u,chainId:e}){return Ct({chainId:e}).getEnsName({address:t0(u)})}async function Ez({chainId:u}={}){return await Ct({chainId:u}).getBlockNumber()}async function dz({chainId:u,confirmations:e=1,hash:t,onReplaced:n,timeout:r=0}){const i=Ct({chainId:u}),a=await i.waitForTransactionReceipt({hash:t,confirmations:e,onReplaced:n,timeout:r});if(a.status==="reverted"){const o=await i.getTransaction({hash:a.transactionHash}),s=await i.call({...o,gasPrice:o.type!=="eip1559"?o.gasPrice:void 0,maxFeePerGas:o.type==="eip1559"?o.maxFeePerGas:void 0,maxPriorityFeePerGas:o.type==="eip1559"?o.maxPriorityFeePerGas:void 0}),l=_h(`0x${s.substring(138)}`);throw new Error(l)}return a}function lD({chainId:u}){var r,i;const{chain:e,chains:t}=f5(),n=e==null?void 0:e.id;if(n&&u!==n)throw new jj({activeChain:((r=t.find(a=>a.id===n))==null?void 0:r.name)??`Chain ${n}`,targetChain:((i=t.find(a=>a.id===u))==null?void 0:i.name)??`Chain ${u}`})}var cD={exports:{}},ED={};/** * @license React * use-sync-external-store-shim/with-selector.production.min.js * @@ -88,9 +88,9 @@ ${t.length}`);return s0(Vn([n,t]),e)}function cR(u){return u.map(e=>({...e,value * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var dd=M,dz=Dh;function fz(u,e){return u===e&&(u!==0||1/u===1/e)||u!==u&&e!==e}var pz=typeof Object.is=="function"?Object.is:fz,hz=dz.useSyncExternalStore,Cz=dd.useRef,mz=dd.useEffect,gz=dd.useMemo,Az=dd.useDebugValue;cD.useSyncExternalStoreWithSelector=function(u,e,t,n,r){var i=Cz(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=gz(function(){function s(f){if(!l){if(l=!0,c=f,f=n(f),r!==void 0&&a.hasValue){var C=a.value;if(r(C,f))return E=C}return E=f}if(C=E,pz(c,f))return C;var h=n(f);return r!==void 0&&r(C,h)?C:(c=f,E=h)}var l=!1,c,E,d=t===void 0?null:t;return[function(){return s(e())},d===null?void 0:function(){return s(d())}]},[e,t,n,r]);var o=hz(u,i[0],i[1]);return mz(function(){a.hasValue=!0,a.value=o},[o]),Az(o),o};lD.exports=cD;var f5=lD.exports;function yz({queryClient:u=new Sy({defaultOptions:{queries:{cacheTime:1e3*60*60*24,networkMode:"offlineFirst",refetchOnWindowFocus:!1,retry:0},mutations:{networkMode:"offlineFirst"}}}),storage:e=rD({storage:typeof window<"u"&&window.localStorage?window.localStorage:nD}),persister:t=typeof window<"u"?sS({key:"cache",storage:e,serialize:r=>r,deserialize:r=>r}):void 0,...n}){const r=Kj({...n,storage:e});return t&&aI({queryClient:u,persister:t,dehydrateOptions:{shouldDehydrateQuery:i=>i.cacheTime!==0&&i.queryKey[0].persist!==!1}}),Object.assign(r,{queryClient:u})}var ED=M.createContext(void 0),fd=M.createContext(void 0);function Bz({children:u,config:e}){return M.createElement(ED.Provider,{children:M.createElement(Lv,{children:u,client:e.queryClient,context:fd}),value:e})}function pd(){const u=M.useContext(ED);if(!u)throw new Error(["`useConfig` must be used within `WagmiConfig`.\n","Read more: https://wagmi.sh/react/WagmiConfig"].join(` -`));return u}var vz=Dh.useSyncExternalStore;function Fz(u){return Array.isArray(u)}function Dz(u){if(!P8(u))return!1;const e=u.constructor;if(typeof e>"u")return!0;const t=e.prototype;return!(!P8(t)||!t.hasOwnProperty("isPrototypeOf"))}function P8(u){return Object.prototype.toString.call(u)==="[object Object]"}function bz(u,e,t){return Fz(u)?typeof e=="function"?{...t,queryKey:u,queryFn:e}:{...e,queryKey:u}:u}function wz(u){return JSON.stringify(u,(e,t)=>Dz(t)?Object.keys(t).sort().reduce((n,r)=>(n[r]=t[r],n),{}):typeof t=="bigint"?t.toString():t)}function xz(u,e){return typeof u=="function"?u(...e):!!u}function kz(u,e){const t={};return Object.keys(u).forEach(n=>{Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:()=>(e.trackedProps.add(n),u[n])})}),t}function _z(u,e){const t=K2({context:u.context}),n=Wv(),r=qv(),i=t.defaultQueryOptions({...u,queryKeyHashFn:wz});i._optimisticResults=n?"isRestoring":"optimistic",i.onError&&(i.onError=ne.batchCalls(i.onError)),i.onSuccess&&(i.onSuccess=ne.batchCalls(i.onSuccess)),i.onSettled&&(i.onSettled=ne.batchCalls(i.onSettled)),i.suspense&&typeof i.staleTime!="number"&&(i.staleTime=1e3),(i.suspense||i.useErrorBoundary)&&(r.isReset()||(i.retryOnMount=!1));const[a]=M.useState(()=>new e(t,i)),o=a.getOptimisticResult(i);if(vz(M.useCallback(E=>n?()=>{}:a.subscribe(ne.batchCalls(E)),[a,n]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),M.useEffect(()=>{r.clearReset()},[r]),M.useEffect(()=>{a.setOptions(i,{listeners:!1})},[i,a]),i.suspense&&o.isLoading&&o.isFetching&&!n)throw a.fetchOptimistic(i).then(({data:E})=>{var d,f;(d=i.onSuccess)==null||d.call(i,E),(f=i.onSettled)==null||f.call(i,E,null)}).catch(E=>{var d,f;r.clearReset(),(d=i.onError)==null||d.call(i,E),(f=i.onSettled)==null||f.call(i,void 0,E)});if(o.isError&&!r.isReset()&&!o.isFetching&&xz(i.useErrorBoundary,[o.error,a.getCurrentQuery()]))throw o.error;const s=o.status==="loading"&&o.fetchStatus==="idle"?"idle":o.status,l=s==="idle",c=s==="loading"&&o.fetchStatus==="fetching";return{...o,defaultedOptions:i,isIdle:l,isLoading:c,observer:a,status:s}}function Ol(u,e,t){const n=Fy(u,e,t);return eI({context:fd,...n})}function $s(u,e,t){const n=bz(u,e,t),r=_z({context:fd,...n},Py),i={data:r.data,error:r.error,fetchStatus:r.fetchStatus,isError:r.isError,isFetched:r.isFetched,isFetchedAfterMount:r.isFetchedAfterMount,isFetching:r.isFetching,isIdle:r.isIdle,isLoading:r.isLoading,isRefetching:r.isRefetching,isSuccess:r.isSuccess,refetch:r.refetch,status:r.status,internal:{dataUpdatedAt:r.dataUpdatedAt,errorUpdatedAt:r.errorUpdatedAt,failureCount:r.failureCount,isFetchedAfterMount:r.isFetchedAfterMount,isLoadingError:r.isLoadingError,isPaused:r.isPaused,isPlaceholderData:r.isPlaceholderData,isPreviousData:r.isPreviousData,isRefetchError:r.isRefetchError,isStale:r.isStale,remove:r.remove}};return r.defaultedOptions.notifyOnChangeProps?i:kz(i,r.observer)}var dD=()=>K2({context:fd});function Nl({chainId:u}={}){return f5.useSyncExternalStoreWithSelector(e=>Xj({chainId:u},e),()=>ht({chainId:u}),()=>ht({chainId:u}),e=>e,(e,t)=>e.uid===t.uid)}function fD({chainId:u}={}){return f5.useSyncExternalStoreWithSelector(e=>Zj({chainId:u},e),()=>pf({chainId:u}),()=>pf({chainId:u}),e=>e,(e,t)=>(e==null?void 0:e.uid)===(t==null?void 0:t.uid))}function Ws({chainId:u}={}){return Nl({chainId:u}).chain.id}function Sz(){const[,u]=M.useReducer(e=>e+1,0);return u}function T8({chainId:u,scopeKey:e}){return[{entity:"blockNumber",chainId:u,scopeKey:e}]}function Pz({queryKey:[{chainId:u}]}){return cz({chainId:u})}function p5({cacheTime:u=0,chainId:e,enabled:t=!0,scopeKey:n,staleTime:r,suspense:i,watch:a=!1,onBlock:o,onError:s,onSettled:l,onSuccess:c}={}){const E=Ws({chainId:e}),d=Nl({chainId:E}),f=fD({chainId:E}),C=dD();return M.useEffect(()=>!t||!a&&!o?void 0:(f??d).watchBlockNumber({onBlockNumber:g=>{a&&C.setQueryData(T8({chainId:E,scopeKey:n}),g),o&&o(g)},emitOnBegin:!0}),[E,n,o,d,C,a,f,t]),$s(T8({scopeKey:n,chainId:E}),Pz,{cacheTime:u,enabled:t,staleTime:r,suspense:i,onError:s,onSettled:l,onSuccess:c})}function pD({chainId:u,enabled:e,queryKey:t}){const n=dD(),r=M.useCallback(()=>n.invalidateQueries({queryKey:t},{cancelRefetch:!1}),[n,t]);p5({chainId:u,enabled:e,onBlock:e?r:void 0,scopeKey:e?void 0:"idle"})}var e1=u=>typeof u=="object"&&!Array.isArray(u);function hD(u,e,t=e,n=GE){const r=M.useRef([]),i=f5.useSyncExternalStoreWithSelector(u,e,t,a=>a,(a,o)=>{if(e1(a)&&e1(o)&&r.current.length){for(const s of r.current)if(!n(a[s],o[s]))return!1;return!0}return n(a,o)});if(e1(i)){const a={...i};return Object.defineProperties(a,Object.entries(a).reduce((o,[s,l])=>({...o,[s]:{configurable:!1,enumerable:!0,get:()=>(r.current.includes(s)||r.current.push(s),l)}}),{})),a}return i}function K0({onConnect:u,onDisconnect:e}={}){const t=pd(),n=M.useCallback(o=>az(o),[t]),r=hD(n,oD),i=M.useRef(),a=i.current;return M.useEffect(()=>{(a==null?void 0:a.status)!=="connected"&&r.status==="connected"&&(u==null||u({address:r.address,connector:r.connector,isReconnected:(a==null?void 0:a.status)==="reconnecting"||(a==null?void 0:a.status)===void 0})),(a==null?void 0:a.status)==="connected"&&r.status==="disconnected"&&(e==null||e()),i.current=r},[u,e,a,r]),r}function Tz({address:u,chainId:e,formatUnits:t,scopeKey:n,token:r}){return[{entity:"balance",address:u,chainId:e,formatUnits:t,scopeKey:n,token:r}]}function Iz({queryKey:[{address:u,chainId:e,formatUnits:t,token:n}]}){if(!u)throw new Error("address is required");return nz({address:u,chainId:e,formatUnits:t,token:n})}function CD({address:u,cacheTime:e,chainId:t,enabled:n=!0,formatUnits:r,scopeKey:i,staleTime:a,suspense:o,token:s,watch:l,onError:c,onSettled:E,onSuccess:d}={}){const f=Ws({chainId:t}),C=M.useMemo(()=>Tz({address:u,chainId:f,formatUnits:r,scopeKey:i,token:s}),[u,f,r,i,s]),h=$s(C,Iz,{cacheTime:e,enabled:!!(n&&u),staleTime:a,suspense:o,onError:c,onSettled:E,onSuccess:d});return pD({chainId:f,enabled:!!(n&&l&&u),queryKey:C}),h}var Oz=u=>[{entity:"connect",...u}],Nz=u=>{const{connector:e,chainId:t}=u;if(!e)throw new Error("connector is required");return Qj({connector:e,chainId:t})};function Rz({chainId:u,connector:e,onError:t,onMutate:n,onSettled:r,onSuccess:i}={}){const a=pd(),{data:o,error:s,isError:l,isIdle:c,isLoading:E,isSuccess:d,mutate:f,mutateAsync:C,reset:h,status:B,variables:g}=Ol(Oz({connector:e,chainId:u}),Nz,{onError:t,onMutate:n,onSettled:r,onSuccess:i}),m=M.useCallback(v=>f({chainId:(v==null?void 0:v.chainId)??u,connector:(v==null?void 0:v.connector)??e}),[u,e,f]),y=M.useCallback(v=>C({chainId:(v==null?void 0:v.chainId)??u,connector:(v==null?void 0:v.connector)??e}),[u,e,C]);return{connect:m,connectAsync:y,connectors:a.connectors,data:o,error:s,isError:l,isIdle:c,isLoading:E,isSuccess:d,pendingConnector:g==null?void 0:g.connector,reset:h,status:B,variables:g}}var jz=[{entity:"disconnect"}],zz=()=>Vj();function h5({onError:u,onMutate:e,onSettled:t,onSuccess:n}={}){const{error:r,isError:i,isIdle:a,isLoading:o,isSuccess:s,mutate:l,mutateAsync:c,reset:E,status:d}=Ol(jz,zz,{...u?{onError(f,C,h){u(f,h)}}:{},onMutate:e,...t?{onSettled(f,C,h,B){t(C,B)}}:{},...n?{onSuccess(f,C,h){n(h)}}:{}});return{disconnect:l,disconnectAsync:c,error:r,isError:i,isIdle:a,isLoading:o,isSuccess:s,reset:E,status:d}}function ma(){const u=pd(),e=M.useCallback(t=>oz(t),[u]);return hD(e,d5)}var Mz=u=>[{entity:"signMessage",...u}],Uz=u=>{const{message:e}=u;if(!e)throw new Error("message is required");return rz({message:e})};function Lz({message:u,onError:e,onMutate:t,onSettled:n,onSuccess:r}={}){const{data:i,error:a,isError:o,isIdle:s,isLoading:l,isSuccess:c,mutate:E,mutateAsync:d,reset:f,status:C,variables:h}=Ol(Mz({message:u}),Uz,{onError:e,onMutate:t,onSettled:n,onSuccess:r}),B=M.useCallback(m=>E(m||{message:u}),[u,E]),g=M.useCallback(m=>d(m||{message:u}),[u,d]);return{data:i,error:a,isError:o,isIdle:s,isLoading:l,isSuccess:c,reset:f,signMessage:B,signMessageAsync:g,status:C,variables:h}}var $z=u=>[{entity:"switchNetwork",...u}],Wz=u=>{const{chainId:e}=u;if(!e)throw new Error("chainId is required");return iz({chainId:e})};function qz({chainId:u,throwForSwitchChainNotSupported:e,onError:t,onMutate:n,onSettled:r,onSuccess:i}={}){var x;const a=pd(),o=Sz(),{data:s,error:l,isError:c,isIdle:E,isLoading:d,isSuccess:f,mutate:C,mutateAsync:h,reset:B,status:g,variables:m}=Ol($z({chainId:u}),Wz,{onError:t,onMutate:n,onSettled:r,onSuccess:i}),y=M.useCallback(j=>C({chainId:j??u}),[u,C]),v=M.useCallback(j=>h({chainId:j??u}),[u,h]);M.useEffect(()=>a.subscribe(({chains:O,connector:uu})=>({chains:O,connector:uu}),o),[a,o]);let w,D;const p=!!((x=a.connector)!=null&&x.switchChain);return(e||p)&&(w=y,D=v),{chains:a.chains??[],data:s,error:l,isError:c,isIdle:E,isLoading:d,isSuccess:f,pendingChainId:m==null?void 0:m.chainId,reset:B,status:g,switchNetwork:w,switchNetworkAsync:D,variables:m}}function Hz({address:u,chainId:e,abi:t,listener:n,eventName:r}={}){const i=Nl({chainId:e}),a=fD({chainId:e}),o=M.useRef();return M.useEffect(()=>{if(!t||!u||!r)return;const s=a||i;return o.current=s.watchContractEvent({abi:t,address:u,eventName:r,onLogs:n}),o.current},[t,u,r,i.uid,a==null?void 0:a.uid]),o.current}function Gz({account:u,address:e,args:t,blockNumber:n,blockTag:r,chainId:i,functionName:a,scopeKey:o}){return[{entity:"readContract",account:u,address:e,args:t,blockNumber:n,blockTag:r,chainId:i,functionName:a,scopeKey:o}]}function Kz({abi:u}){return async({queryKey:[{account:e,address:t,args:n,blockNumber:r,blockTag:i,chainId:a,functionName:o}]})=>{if(!u)throw new Error("abi is required");if(!t)throw new Error("address is required");return await aD({account:e,address:t,args:n,blockNumber:r,blockTag:i,chainId:a,abi:u,functionName:o})??null}}function Oa({abi:u,address:e,account:t,args:n,blockNumber:r,blockTag:i,cacheOnBlock:a=!1,cacheTime:o,chainId:s,enabled:l=!0,functionName:c,isDataEqual:E,keepPreviousData:d,onError:f,onSettled:C,onSuccess:h,scopeKey:B,select:g,staleTime:m,structuralSharing:y=(D,p)=>GE(D,p)?D:Pp(D,p),suspense:v,watch:w}={}){const D=Ws({chainId:s}),{data:p}=p5({chainId:D,enabled:w||a,scopeKey:w||a?void 0:"idle",watch:w}),x=r??p,j=M.useMemo(()=>Gz({account:t,address:e,args:n,blockNumber:a?x:void 0,blockTag:i,chainId:D,functionName:c,scopeKey:B}),[t,e,n,x,i,a,D,c,B]),O=M.useMemo(()=>{let uu=!!(l&&u&&e&&c);return a&&(uu=!!(uu&&x)),uu},[u,e,x,a,l,c]);return pD({chainId:D,enabled:!!(O&&w&&!a),queryKey:j}),$s(j,Kz({abi:u}),{cacheTime:o,enabled:O,isDataEqual:E,keepPreviousData:d,select:g,staleTime:m,structuralSharing:y,suspense:v,onError:f,onSettled:C,onSuccess:h})}function Qz({address:u,abi:e,functionName:t,...n}){const{args:r,accessList:i,account:a,dataSuffix:o,gas:s,gasPrice:l,maxFeePerGas:c,maxPriorityFeePerGas:E,nonce:d,request:f,value:C}=n;return[{entity:"writeContract",address:u,args:r,abi:e,accessList:i,account:a,dataSuffix:o,functionName:t,gas:s,gasPrice:l,maxFeePerGas:c,maxPriorityFeePerGas:E,nonce:d,request:f,value:C}]}function Vz(u){if(u.mode==="prepared"){if(!u.request)throw new Error("request is required");return S8({mode:"prepared",request:u.request})}if(!u.address)throw new Error("address is required");if(!u.abi)throw new Error("abi is required");if(!u.functionName)throw new Error("functionName is required");return S8({address:u.address,args:u.args,chainId:u.chainId,abi:u.abi,functionName:u.functionName,accessList:u.accessList,account:u.account,dataSuffix:u.dataSuffix,gas:u.gas,gasPrice:u.gasPrice,maxFeePerGas:u.maxFeePerGas,maxPriorityFeePerGas:u.maxPriorityFeePerGas,nonce:u.nonce,value:u.value})}function Jz(u){const{address:e,abi:t,args:n,chainId:r,functionName:i,mode:a,request:o,dataSuffix:s}=u,{accessList:l,account:c,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,value:B}=Wj(u),{data:g,error:m,isError:y,isIdle:v,isLoading:w,isSuccess:D,mutate:p,mutateAsync:x,reset:j,status:O,variables:uu}=Ol(Qz({address:e,abi:t,functionName:i,chainId:r,mode:a,args:n,accessList:l,account:c,dataSuffix:s,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,request:o,value:B}),Vz,{onError:u.onError,onMutate:u.onMutate,onSettled:u.onSettled,onSuccess:u.onSuccess}),ou=M.useMemo(()=>u.mode==="prepared"?o?()=>p({mode:"prepared",request:u.request,chainId:u.chainId}):void 0:hu=>p({address:e,args:n,abi:t,functionName:i,chainId:r,accessList:l,account:c,dataSuffix:s,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,value:B,...hu}),[l,c,t,e,n,r,u.chainId,u.mode,u.request,s,i,E,d,f,C,p,h,o,B]),su=M.useMemo(()=>u.mode==="prepared"?o?()=>x({mode:"prepared",request:u.request}):void 0:hu=>x({address:e,args:n,abi:t,chainId:r,functionName:i,accessList:l,account:c,dataSuffix:s,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,value:B,...hu}),[l,c,t,e,n,r,u.mode,u.request,s,i,E,d,f,C,x,h,o,B]);return{data:g,error:m,isError:y,isIdle:v,isLoading:w,isSuccess:D,reset:j,status:O,variables:uu,write:ou,writeAsync:su}}function Yz({name:u,chainId:e,scopeKey:t}){return[{entity:"ensAvatar",name:u,chainId:e,scopeKey:t}]}function Xz({queryKey:[{name:u,chainId:e}]}){if(!u)throw new Error("name is required");return sz({name:u,chainId:e})}function Zz({cacheTime:u,chainId:e,enabled:t=!0,name:n,scopeKey:r,staleTime:i=1e3*60*60*24,suspense:a,onError:o,onSettled:s,onSuccess:l}={}){const c=Ws({chainId:e});return $s(Yz({name:n,chainId:c,scopeKey:r}),Xz,{cacheTime:u,enabled:!!(t&&n&&c),staleTime:i,suspense:a,onError:o,onSettled:s,onSuccess:l})}function uM({address:u,chainId:e,scopeKey:t}){return[{entity:"ensName",address:u,chainId:e,scopeKey:t}]}function eM({queryKey:[{address:u,chainId:e}]}){if(!u)throw new Error("address is required");return lz({address:u,chainId:e})}function tM({address:u,cacheTime:e,chainId:t,enabled:n=!0,scopeKey:r,staleTime:i=1e3*60*60*24,suspense:a,onError:o,onSettled:s,onSuccess:l}={}){const c=Ws({chainId:t});return $s(uM({address:u,chainId:c,scopeKey:r}),eM,{cacheTime:e,enabled:!!(n&&u&&c),staleTime:i,suspense:a,onError:o,onSettled:s,onSuccess:l})}function nM({confirmations:u,chainId:e,hash:t,scopeKey:n,timeout:r}){return[{entity:"waitForTransaction",confirmations:u,chainId:e,hash:t,scopeKey:n,timeout:r}]}function rM({onReplaced:u}){return({queryKey:[{chainId:e,confirmations:t,hash:n,timeout:r}]})=>{if(!n)throw new Error("hash is required");return Ez({chainId:e,confirmations:t,hash:n,onReplaced:u,timeout:r})}}function iM({chainId:u,confirmations:e,hash:t,timeout:n,cacheTime:r,enabled:i=!0,scopeKey:a,staleTime:o,suspense:s,onError:l,onReplaced:c,onSettled:E,onSuccess:d}={}){const f=Ws({chainId:u});return $s(nM({chainId:f,confirmations:e,hash:t,scopeKey:a,timeout:n}),rM({onReplaced:c}),{cacheTime:r,enabled:!!(i&&t),staleTime:o,suspense:s,onError:l,onSettled:E,onSuccess:d})}function mD(u){var e,t,n="";if(typeof u=="string"||typeof u=="number")n+=u;else if(typeof u=="object")if(Array.isArray(u))for(e=0;e-1}var rL=nL,iL=gd;function aL(u,e){var t=this.__data__,n=iL(t,u);return n<0?(++this.size,t.push([u,e])):t[n][1]=e,this}var oL=aL,sL=qU,lL=XU,cL=eL,EL=rL,dL=oL;function Hs(u){var e=-1,t=u==null?0:u.length;for(this.clear();++e-1&&u%1==0&&u-1&&u%1==0&&u<=N$}var D5=R$,j$=y5,z$=F5,M$=dn,U$=Bd,L$=D5,$$=Ul;function W$(u,e,t){e=j$(e,u);for(var n=-1,r=e.length,i=!1;++n-1}var NW=OW;function RW(u,e,t){for(var n=-1,r=u==null?0:u.length;++n=tq){var l=e?null:uq(u);if(l)return eq(l);a=!1,r=ZW,s=new JW}else s=e?[]:o;u:for(;++n{const o=[],s=[];return o.push(a),a||o.push(i.locale),i.enableFallback&&o.push(i.defaultLocale),o.filter(Boolean).map(l=>l.toString()).forEach(function(l){if(s.includes(l)||s.push(l),!i.enableFallback)return;const c=l.split("-");c.length===3&&s.push(`${c[0]}-${c[1]}`),s.push(c[0])}),(0,t.default)(s)};u.defaultLocaleResolver=n;class r{constructor(a){this.i18n=a,this.registry={},this.register("default",u.defaultLocaleResolver)}register(a,o){if(typeof o!="function"){const s=o;o=()=>s}this.registry[a]=o}get(a){let o=this.registry[a]||this.registry[this.i18n.locale]||this.registry.default;return typeof o=="function"&&(o=o(this.i18n,a)),o instanceof Array||(o=[o]),o}}u.Locales=r})(b5);var x5={};const mu=(u,e)=>e?"other":u==1?"one":"other",nr=(u,e)=>e?"other":u==0||u==1?"one":"other",Qs=(u,e)=>e?"other":u>=0&&u<=1?"one":"other",mt=(u,e)=>{const t=String(u).split("."),n=!t[1];return e?"other":u==1&&n?"one":"other"},Xu=(u,e)=>"other",rr=(u,e)=>e?"other":u==1?"one":u==2?"two":"other",sq=mu,lq=nr,cq=Qs,Eq=mu,dq=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-2);return e?"other":u==0?"zero":u==1?"one":u==2?"two":r>=3&&r<=10?"few":r>=11&&r<=99?"many":"other"},fq=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-2);return e?"other":u==0?"zero":u==1?"one":u==2?"two":r>=3&&r<=10?"few":r>=11&&r<=99?"many":"other"},pq=(u,e)=>e?u==1||u==5||u==7||u==8||u==9||u==10?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u>=0&&u<=1?"one":"other",hq=mu,Cq=mt,mq=(u,e)=>{const t=String(u).split("."),n=t[0],r=n.slice(-1),i=n.slice(-2),a=n.slice(-3);return e?r==1||r==2||r==5||r==7||r==8||i==20||i==50||i==70||i==80?"one":r==3||r==4||a==100||a==200||a==300||a==400||a==500||a==600||a==700||a==800||a==900?"few":n==0||r==6||i==40||i==60||i==90?"many":"other":u==1?"one":"other"},gq=(u,e)=>u==1?"one":"other",Aq=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2);return e?(r==2||r==3)&&i!=12&&i!=13?"few":"other":r==1&&i!=11?"one":r>=2&&r<=4&&(i<12||i>14)?"few":n&&r==0||r>=5&&r<=9||i>=11&&i<=14?"many":"other"},yq=mu,Bq=mu,vq=mu,Fq=nr,Dq=Xu,bq=(u,e)=>e?u==1||u==5||u==7||u==8||u==9||u==10?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u>=0&&u<=1?"one":"other",wq=Xu,xq=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2),a=n&&t[0].slice(-6);return e?"other":r==1&&i!=11&&i!=71&&i!=91?"one":r==2&&i!=12&&i!=72&&i!=92?"two":(r==3||r==4||r==9)&&(i<10||i>19)&&(i<70||i>79)&&(i<90||i>99)?"few":u!=0&&n&&a==0?"many":"other"},kq=mu,_q=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?"other":i&&a==1&&o!=11||s==1&&l!=11?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(l<12||l>14)?"few":"other"},Sq=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?u==1||u==3?"one":u==2?"two":u==4?"few":"other":u==1&&r?"one":n!=0&&i==0&&r?"many":"other"},Pq=mu,Tq=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=r.slice(-1);return e?"other":i&&(n==1||n==2||n==3)||i&&a!=4&&a!=6&&a!=9||!i&&o!=4&&o!=6&&o!=9?"one":"other"},Iq=mu,Oq=mu,Nq=mu,Rq=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1];return e?"other":u==1&&r?"one":n>=2&&n<=4&&r?"few":r?"other":"many"},jq=(u,e)=>e?u==0||u==7||u==8||u==9?"zero":u==1?"one":u==2?"two":u==3||u==4?"few":u==5||u==6?"many":"other":u==0?"zero":u==1?"one":u==2?"two":u==3?"few":u==6?"many":"other",zq=(u,e)=>{const t=String(u).split("."),n=t[0],r=Number(t[0])==u;return e?"other":u==1||!r&&(n==0||n==1)?"one":"other"},Mq=mt,Uq=Qs,Lq=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-2),o=r.slice(-2);return e?"other":i&&a==1||o==1?"one":i&&a==2||o==2?"two":i&&(a==3||a==4)||o==3||o==4?"few":"other"},$q=mu,Wq=Xu,qq=mu,Hq=mu,Gq=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u,i=r&&t[0].slice(-1),a=r&&t[0].slice(-2);return e?i==1&&a!=11?"one":i==2&&a!=12?"two":i==3&&a!=13?"few":"other":u==1&&n?"one":"other"},Kq=mu,Qq=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?"other":u==1?"one":n!=0&&i==0&&r?"many":"other"},Vq=mt,Jq=mu,Yq=Qs,Xq=(u,e)=>e?"other":u>=0&&u<2?"one":"other",Zq=mt,uH=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=r.slice(-1);return e?u==1?"one":"other":i&&(n==1||n==2||n==3)||i&&a!=4&&a!=6&&a!=9||!i&&o!=4&&o!=6&&o!=9?"one":"other"},eH=mu,tH=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?u==1?"one":"other":u>=0&&u<2?"one":n!=0&&i==0&&r?"many":"other"},nH=mu,rH=mt,iH=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?u==1?"one":"other":u==1?"one":u==2?"two":n&&u>=3&&u<=6?"few":n&&u>=7&&u<=10?"many":"other"},aH=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?u==1||u==11?"one":u==2||u==12?"two":u==3||u==13?"few":"other":u==1||u==11?"one":u==2||u==12?"two":n&&u>=3&&u<=10||n&&u>=13&&u<=19?"few":"other"},oH=mt,sH=mu,lH=(u,e)=>e?u==1?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u>=0&&u<=1?"one":"other",cH=nr,EH=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return e?"other":r&&i==1?"one":r&&i==2?"two":r&&(a==0||a==20||a==40||a==60||a==80)?"few":r?"other":"many"},dH=mu,fH=mu,pH=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1];return e?"other":n==1&&r||n==0&&!r?"one":n==2&&r?"two":"other"},hH=(u,e)=>e?u==1?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u>=0&&u<=1?"one":"other",CH=Xu,mH=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?"other":i&&a==1&&o!=11||s==1&&l!=11?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(l<12||l>14)?"few":"other"},gH=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-2),o=r.slice(-2);return e?"other":i&&a==1||o==1?"one":i&&a==2||o==2?"two":i&&(a==3||a==4)||o==3||o==4?"few":"other"},AH=(u,e)=>e?u==1||u==5?"one":"other":u==1?"one":"other",yH=(u,e)=>e?u==1?"one":"other":u>=0&&u<2?"one":"other",BH=mt,vH=Xu,FH=Xu,DH=Xu,bH=mt,wH=(u,e)=>{const t=String(u).split("."),n=t[0],r=(t[1]||"").replace(/0+$/,""),i=Number(t[0])==u,a=n.slice(-1),o=n.slice(-2);return e?"other":i&&a==1&&o!=11||r%10==1&&r%100!=11?"one":"other"},xH=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?u==11||u==8||u==80||u==800?"many":"other":u==1&&r?"one":n!=0&&i==0&&r?"many":"other"},kH=rr,_H=Xu,SH=Xu,PH=mu,TH=mu,IH=Xu,OH=Xu,NH=(u,e)=>{const t=String(u).split("."),n=t[0],r=n.slice(-2);return e?n==1?"one":n==0||r>=2&&r<=20||r==40||r==60||r==80?"many":"other":u==1?"one":"other"},RH=(u,e)=>e?"other":u>=0&&u<2?"one":"other",jH=mu,zH=mu,MH=Xu,UH=Xu,LH=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1);return e?r==6||r==9||n&&r==0&&u!=0?"many":"other":u==1?"one":"other"},$H=mu,WH=mu,qH=Xu,HH=Qs,GH=Xu,KH=mu,QH=mu,VH=(u,e)=>e?"other":u==0?"zero":u==1?"one":"other",JH=mu,YH=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-2),i=n&&t[0].slice(-3),a=n&&t[0].slice(-5),o=n&&t[0].slice(-6);return e?n&&u>=1&&u<=4||r>=1&&r<=4||r>=21&&r<=24||r>=41&&r<=44||r>=61&&r<=64||r>=81&&r<=84?"one":u==5||r==5?"many":"other":u==0?"zero":u==1?"one":r==2||r==22||r==42||r==62||r==82||n&&i==0&&(a>=1e3&&a<=2e4||a==4e4||a==6e4||a==8e4)||u!=0&&o==1e5?"two":r==3||r==23||r==43||r==63||r==83?"few":u!=1&&(r==1||r==21||r==41||r==61||r==81)?"many":"other"},XH=mu,ZH=(u,e)=>{const t=String(u).split("."),n=t[0];return e?"other":u==0?"zero":(n==0||n==1)&&u!=0?"one":"other"},uG=mu,eG=mu,tG=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u;return e?u==11||u==8||r&&u>=80&&u<=89||r&&u>=800&&u<=899?"many":"other":u==1&&n?"one":"other"},nG=Xu,rG=nr,iG=(u,e)=>e&&u==1?"one":"other",aG=(u,e)=>{const t=String(u).split("."),n=t[1]||"",r=Number(t[0])==u,i=r&&t[0].slice(-1),a=r&&t[0].slice(-2);return e?"other":i==1&&(a<11||a>19)?"one":i>=2&&i<=9&&(a<11||a>19)?"few":n!=0?"many":"other"},oG=(u,e)=>{const t=String(u).split("."),n=t[1]||"",r=n.length,i=Number(t[0])==u,a=i&&t[0].slice(-1),o=i&&t[0].slice(-2),s=n.slice(-2),l=n.slice(-1);return e?"other":i&&a==0||o>=11&&o<=19||r==2&&s>=11&&s<=19?"zero":a==1&&o!=11||r==2&&l==1&&s!=11||r!=2&&l==1?"one":"other"},sG=mu,lG=nr,cG=mu,EG=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?a==1&&o!=11?"one":a==2&&o!=12?"two":(a==7||a==8)&&o!=17&&o!=18?"many":"other":i&&a==1&&o!=11||s==1&&l!=11?"one":"other"},dG=mu,fG=mu,pG=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u,i=r&&t[0].slice(-2);return e?u==1?"one":"other":u==1&&n?"one":!n||u==0||u!=1&&i>=1&&i<=19?"few":"other"},hG=(u,e)=>e?u==1?"one":u==2||u==3?"two":u==4?"few":"other":u==1?"one":"other",CG=(u,e)=>e&&u==1?"one":"other",mG=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-2);return e?"other":u==1?"one":u==2?"two":u==0||r>=3&&r<=10?"few":r>=11&&r<=19?"many":"other"},gG=Xu,AG=mu,yG=rr,BG=mu,vG=mu,FG=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?n&&u>=1&&u<=4?"one":"other":u==1?"one":"other"},DG=mt,bG=mu,wG=mu,xG=mu,kG=Xu,_G=mu,SG=nr,PG=mu,TG=mu,IG=mu,OG=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?u==1||u==5||n&&u>=7&&u<=9?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u==1?"one":"other"},NG=mu,RG=Xu,jG=nr,zG=mu,MG=Qs,UG=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return e?"other":u==1&&r?"one":r&&i>=2&&i<=4&&(a<12||a>14)?"few":r&&n!=1&&(i==0||i==1)||r&&i>=5&&i<=9||r&&a>=12&&a<=14?"many":"other"},LG=(u,e)=>{const t=String(u).split("."),n=t[1]||"",r=n.length,i=Number(t[0])==u,a=i&&t[0].slice(-1),o=i&&t[0].slice(-2),s=n.slice(-2),l=n.slice(-1);return e?"other":i&&a==0||o>=11&&o<=19||r==2&&s>=11&&s<=19?"zero":a==1&&o!=11||r==2&&l==1&&s!=11||r!=2&&l==1?"one":"other"},$G=mu,WG=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?"other":n==0||n==1?"one":n!=0&&i==0&&r?"many":"other"},qG=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?"other":u==1&&r?"one":n!=0&&i==0&&r?"many":"other"},HG=mu,GG=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u,i=r&&t[0].slice(-2);return e?u==1?"one":"other":u==1&&n?"one":!n||u==0||u!=1&&i>=1&&i<=19?"few":"other"},KG=mu,QG=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return e?"other":r&&i==1&&a!=11?"one":r&&i>=2&&i<=4&&(a<12||a>14)?"few":r&&i==0||r&&i>=5&&i<=9||r&&a>=11&&a<=14?"many":"other"},VG=mu,JG=Xu,YG=mu,XG=rr,ZG=(u,e)=>{const t=String(u).split("."),n=!t[1];return e?u==11||u==8||u==80||u==800?"many":"other":u==1&&n?"one":"other"},uK=(u,e)=>{const t=String(u).split("."),n=!t[1];return e?u==11||u==8||u==80||u==800?"many":"other":u==1&&n?"one":"other"},eK=mu,tK=mu,nK=rr,rK=mu,iK=Xu,aK=Xu,oK=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?"other":i&&a==1&&o!=11||s==1&&l!=11?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(l<12||l>14)?"few":"other"},sK=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?"other":u>=0&&u<=1?"one":n&&u>=2&&u<=10?"few":"other"},lK=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"";return e?"other":u==0||u==1||n==0&&r==1?"one":"other"},cK=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1];return e?"other":u==1&&r?"one":n>=2&&n<=4&&r?"few":r?"other":"many"},EK=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-2);return e?"other":r&&i==1?"one":r&&i==2?"two":r&&(i==3||i==4)||!r?"few":"other"},dK=rr,fK=rr,pK=rr,hK=rr,CK=rr,mK=mu,gK=mu,AK=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2);return e?u==1?"one":r==4&&i!=14?"many":"other":u==1?"one":"other"},yK=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?"other":i&&a==1&&o!=11||s==1&&l!=11?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(l<12||l>14)?"few":"other"},BK=mu,vK=mu,FK=mu,DK=Xu,bK=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u,i=r&&t[0].slice(-1),a=r&&t[0].slice(-2);return e?(i==1||i==2)&&a!=11&&a!=12?"one":"other":u==1&&n?"one":"other"},wK=mt,xK=mu,kK=mu,_K=mu,SK=mu,PK=Xu,TK=nr,IK=mu,OK=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1);return e?r==6||r==9||u==10?"few":"other":u==1?"one":"other"},NK=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=r.slice(-1);return e?u==1?"one":"other":i&&(n==1||n==2||n==3)||i&&a!=4&&a!=6&&a!=9||!i&&o!=4&&o!=6&&o!=9?"one":"other"},RK=mu,jK=Xu,zK=Xu,MK=mu,UK=mu,LK=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?"other":u==0||u==1||n&&u>=11&&u<=99?"one":"other"},$K=mu,WK=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=Number(t[0])==u,a=i&&t[0].slice(-1),o=i&&t[0].slice(-2),s=n.slice(-1),l=n.slice(-2);return e?a==3&&o!=13?"few":"other":r&&s==1&&l!=11?"one":r&&s>=2&&s<=4&&(l<12||l>14)?"few":r&&s==0||r&&s>=5&&s<=9||r&&l>=11&&l<=14?"many":"other"},qK=Xu,HK=mt,GK=mu,KK=mu,QK=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?u==11||u==8||u==80||u==800?"many":"other":u==1&&r?"one":n!=0&&i==0&&r?"many":"other"},VK=(u,e)=>e&&u==1?"one":"other",JK=mu,YK=mu,XK=nr,ZK=mu,uQ=Xu,eQ=mu,tQ=mu,nQ=mt,rQ=Xu,iQ=Xu,aQ=Xu,oQ=Qs,sQ=Object.freeze(Object.defineProperty({__proto__:null,af:sq,ak:lq,am:cq,an:Eq,ar:dq,ars:fq,as:pq,asa:hq,ast:Cq,az:mq,bal:gq,be:Aq,bem:yq,bez:Bq,bg:vq,bho:Fq,bm:Dq,bn:bq,bo:wq,br:xq,brx:kq,bs:_q,ca:Sq,ce:Pq,ceb:Tq,cgg:Iq,chr:Oq,ckb:Nq,cs:Rq,cy:jq,da:zq,de:Mq,doi:Uq,dsb:Lq,dv:$q,dz:Wq,ee:qq,el:Hq,en:Gq,eo:Kq,es:Qq,et:Vq,eu:Jq,fa:Yq,ff:Xq,fi:Zq,fil:uH,fo:eH,fr:tH,fur:nH,fy:rH,ga:iH,gd:aH,gl:oH,gsw:sH,gu:lH,guw:cH,gv:EH,ha:dH,haw:fH,he:pH,hi:hH,hnj:CH,hr:mH,hsb:gH,hu:AH,hy:yH,ia:BH,id:vH,ig:FH,ii:DH,io:bH,is:wH,it:xH,iu:kH,ja:_H,jbo:SH,jgo:PH,jmc:TH,jv:IH,jw:OH,ka:NH,kab:RH,kaj:jH,kcg:zH,kde:MH,kea:UH,kk:LH,kkj:$H,kl:WH,km:qH,kn:HH,ko:GH,ks:KH,ksb:QH,ksh:VH,ku:JH,kw:YH,ky:XH,lag:ZH,lb:uG,lg:eG,lij:tG,lkt:nG,ln:rG,lo:iG,lt:aG,lv:oG,mas:sG,mg:lG,mgo:cG,mk:EG,ml:dG,mn:fG,mo:pG,mr:hG,ms:CG,mt:mG,my:gG,nah:AG,naq:yG,nb:BG,nd:vG,ne:FG,nl:DG,nn:bG,nnh:wG,no:xG,nqo:kG,nr:_G,nso:SG,ny:PG,nyn:TG,om:IG,or:OG,os:NG,osa:RG,pa:jG,pap:zG,pcm:MG,pl:UG,prg:LG,ps:$G,pt:WG,pt_PT:qG,rm:HG,ro:GG,rof:KG,ru:QG,rwk:VG,sah:JG,saq:YG,sat:XG,sc:ZG,scn:uK,sd:eK,sdh:tK,se:nK,seh:rK,ses:iK,sg:aK,sh:oK,shi:sK,si:lK,sk:cK,sl:EK,sma:dK,smi:fK,smj:pK,smn:hK,sms:CK,sn:mK,so:gK,sq:AK,sr:yK,ss:BK,ssy:vK,st:FK,su:DK,sv:bK,sw:wK,syr:xK,ta:kK,te:_K,teo:SK,th:PK,ti:TK,tig:IK,tk:OK,tl:NK,tn:RK,to:jK,tpi:zK,tr:MK,ts:UK,tzm:LK,ug:$K,uk:WK,und:qK,ur:HK,uz:GK,ve:KK,vec:QK,vi:VK,vo:JK,vun:YK,wa:XK,wae:ZK,wo:uQ,xh:eQ,xog:tQ,yi:nQ,yo:rQ,yue:iQ,zh:aQ,zu:oQ},Symbol.toStringTag,{value:"Module"})),lQ=Dp(sQ);(function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.Pluralization=u.defaultPluralizer=u.useMakePlural=void 0;const e=lQ;function t({pluralizer:r,includeZero:i=!0,ordinal:a=!1}){return function(o,s){return[i&&s===0?"zero":"",r(s,a)].filter(Boolean)}}u.useMakePlural=t,u.defaultPluralizer=t({pluralizer:e.en,includeZero:!0});class n{constructor(i){this.i18n=i,this.registry={},this.register("default",u.defaultPluralizer)}register(i,a){this.registry[i]=a}get(i){return this.registry[i]||this.registry[this.i18n.locale]||this.registry.default}}u.Pluralization=n})(x5);var k5={},_5={},vd={};function cQ(u,e,t){var n=-1,r=u.length;e<0&&(e=-e>r?0:r+e),t=t>r?r:t,t<0&&(t+=r),r=e>t?0:t-e>>>0,e>>>=0;for(var i=Array(r);++n=n?u:dQ(u,e,t)}var pQ=fQ,hQ="\\ud800-\\udfff",CQ="\\u0300-\\u036f",mQ="\\ufe20-\\ufe2f",gQ="\\u20d0-\\u20ff",AQ=CQ+mQ+gQ,yQ="\\ufe0e\\ufe0f",BQ="\\u200d",vQ=RegExp("["+BQ+hQ+AQ+yQ+"]");function FQ(u){return vQ.test(u)}var ND=FQ;function DQ(u){return u.split("")}var bQ=DQ,RD="\\ud800-\\udfff",wQ="\\u0300-\\u036f",xQ="\\ufe20-\\ufe2f",kQ="\\u20d0-\\u20ff",_Q=wQ+xQ+kQ,SQ="\\ufe0e\\ufe0f",PQ="["+RD+"]",hf="["+_Q+"]",Cf="\\ud83c[\\udffb-\\udfff]",TQ="(?:"+hf+"|"+Cf+")",jD="[^"+RD+"]",zD="(?:\\ud83c[\\udde6-\\uddff]){2}",MD="[\\ud800-\\udbff][\\udc00-\\udfff]",IQ="\\u200d",UD=TQ+"?",LD="["+SQ+"]?",OQ="(?:"+IQ+"(?:"+[jD,zD,MD].join("|")+")"+LD+UD+")*",NQ=LD+UD+OQ,RQ="(?:"+[jD+hf+"?",hf,zD,MD,PQ].join("|")+")",jQ=RegExp(Cf+"(?="+Cf+")|"+RQ+NQ,"g");function zQ(u){return u.match(jQ)||[]}var MQ=zQ,UQ=bQ,LQ=ND,$Q=MQ;function WQ(u){return LQ(u)?$Q(u):UQ(u)}var qQ=WQ,HQ=pQ,GQ=ND,KQ=qQ,QQ=Ks;function VQ(u){return function(e){e=QQ(e);var t=GQ(e)?KQ(e):void 0,n=t?t[0]:e.charAt(0),r=t?HQ(t,1).join(""):e.slice(1);return n[u]()+r}}var JQ=VQ,YQ=JQ,XQ=YQ("toUpperCase"),ZQ=XQ,uV=Ks,eV=ZQ;function tV(u){return eV(uV(u).toLowerCase())}var nV=tV;function rV(u,e,t,n){var r=-1,i=u==null?0:u.length;for(n&&i&&(t=u[++r]);++r(e[(0,mJ.default)(t)]=u[t],e),{}):{}}vd.camelCaseKeys=gJ;var Fd={},ai={};Object.defineProperty(ai,"__esModule",{value:!0});ai.isSet=void 0;function AJ(u){return u!=null}ai.isSet=AJ;Object.defineProperty(Fd,"__esModule",{value:!0});Fd.createTranslationOptions=void 0;const V8=ai;function yJ(u,e,t){let n=[{scope:e}];if((0,V8.isSet)(t.defaults)&&(n=n.concat(t.defaults)),(0,V8.isSet)(t.defaultValue)){const r=typeof t.defaultValue=="function"?t.defaultValue(u,e,t):t.defaultValue;n.push({message:r}),delete t.defaultValue}return n}Fd.createTranslationOptions=yJ;var Vs={},eb={exports:{}};(function(u){(function(e){var t,n=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,r=Math.ceil,i=Math.floor,a="[BigNumber Error] ",o=a+"Number primitive has more than 15 significant digits: ",s=1e14,l=14,c=9007199254740991,E=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],d=1e7,f=1e9;function C(D){var p,x,j,O=J.prototype={constructor:J,toString:null,valueOf:null},uu=new J(1),ou=20,su=4,hu=-7,eu=21,au=-1e7,nu=1e7,W=!1,iu=1,lu=0,cu={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},pu="0123456789abcdefghijklmnopqrstuvwxyz",fu=!0;function J(S,T){var I,L,U,q,Y,$,H,V,G=this;if(!(G instanceof J))return new J(S,T);if(T==null){if(S&&S._isBigNumber===!0){G.s=S.s,!S.c||S.e>nu?G.c=G.e=null:S.e=10;Y/=10,q++);q>nu?G.c=G.e=null:(G.e=q,G.c=[S]);return}V=String(S)}else{if(!n.test(V=String(S)))return j(G,V,$);G.s=V.charCodeAt(0)==45?(V=V.slice(1),-1):1}(q=V.indexOf("."))>-1&&(V=V.replace(".","")),(Y=V.search(/e/i))>0?(q<0&&(q=Y),q+=+V.slice(Y+1),V=V.substring(0,Y)):q<0&&(q=V.length)}else{if(m(T,2,pu.length,"Base"),T==10&&fu)return G=new J(S),bu(G,ou+G.e+1,su);if(V=String(S),$=typeof S=="number"){if(S*0!=0)return j(G,V,$,T);if(G.s=1/S<0?(V=V.slice(1),-1):1,J.DEBUG&&V.replace(/^0\.0*|\./,"").length>15)throw Error(o+S)}else G.s=V.charCodeAt(0)===45?(V=V.slice(1),-1):1;for(I=pu.slice(0,T),q=Y=0,H=V.length;Yq){q=H;continue}}else if(!U&&(V==V.toUpperCase()&&(V=V.toLowerCase())||V==V.toLowerCase()&&(V=V.toUpperCase()))){U=!0,Y=-1,q=0;continue}return j(G,String(S),$,T)}$=!1,V=x(V,T,10,G.s),(q=V.indexOf("."))>-1?V=V.replace(".",""):q=V.length}for(Y=0;V.charCodeAt(Y)===48;Y++);for(H=V.length;V.charCodeAt(--H)===48;);if(V=V.slice(Y,++H)){if(H-=Y,$&&J.DEBUG&&H>15&&(S>c||S!==i(S)))throw Error(o+G.s*S);if((q=q-Y-1)>nu)G.c=G.e=null;else if(q=-f&&U<=f&&U===i(U)){if(L[0]===0){if(U===0&&L.length===1)return!0;break u}if(T=(U+1)%l,T<1&&(T+=l),String(L[0]).length==T){for(T=0;T=s||I!==i(I))break u;if(I!==0)return!0}}}else if(L===null&&U===null&&(q===null||q===1||q===-1))return!0;throw Error(a+"Invalid BigNumber: "+S)},J.maximum=J.max=function(){return Du(arguments,-1)},J.minimum=J.min=function(){return Du(arguments,1)},J.random=function(){var S=9007199254740992,T=Math.random()*S&2097151?function(){return i(Math.random()*S)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(I){var L,U,q,Y,$,H=0,V=[],G=new J(uu);if(I==null?I=ou:m(I,0,f),Y=r(I/l),W)if(crypto.getRandomValues){for(L=crypto.getRandomValues(new Uint32Array(Y*=2));H>>11),$>=9e15?(U=crypto.getRandomValues(new Uint32Array(2)),L[H]=U[0],L[H+1]=U[1]):(V.push($%1e14),H+=2);H=Y/2}else if(crypto.randomBytes){for(L=crypto.randomBytes(Y*=7);H=9e15?crypto.randomBytes(7).copy(L,H):(V.push($%1e14),H+=7);H=Y/7}else throw W=!1,Error(a+"crypto unavailable");if(!W)for(;H=10;$/=10,H++);HU-1&&($[Y+1]==null&&($[Y+1]=0),$[Y+1]+=$[Y]/U|0,$[Y]%=U)}return $.reverse()}return function(I,L,U,q,Y){var $,H,V,G,ru,Cu,Au,Tu,Nu=I.indexOf("."),$u=ou,k=su;for(Nu>=0&&(G=lu,lu=0,I=I.replace(".",""),Tu=new J(L),Cu=Tu.pow(I.length-Nu),lu=G,Tu.c=T(w(B(Cu.c),Cu.e,"0"),10,U,S),Tu.e=Tu.c.length),Au=T(I,L,U,Y?($=pu,S):($=S,pu)),V=G=Au.length;Au[--G]==0;Au.pop());if(!Au[0])return $.charAt(0);if(Nu<0?--V:(Cu.c=Au,Cu.e=V,Cu.s=q,Cu=p(Cu,Tu,$u,k,U),Au=Cu.c,ru=Cu.r,V=Cu.e),H=V+$u+1,Nu=Au[H],G=U/2,ru=ru||H<0||Au[H+1]!=null,ru=k<4?(Nu!=null||ru)&&(k==0||k==(Cu.s<0?3:2)):Nu>G||Nu==G&&(k==4||ru||k==6&&Au[H-1]&1||k==(Cu.s<0?8:7)),H<1||!Au[0])I=ru?w($.charAt(1),-$u,$.charAt(0)):$.charAt(0);else{if(Au.length=H,ru)for(--U;++Au[--H]>U;)Au[H]=0,H||(++V,Au=[1].concat(Au));for(G=Au.length;!Au[--G];);for(Nu=0,I="";Nu<=G;I+=$.charAt(Au[Nu++]));I=w(I,V,$.charAt(0))}return I}}(),p=function(){function S(L,U,q){var Y,$,H,V,G=0,ru=L.length,Cu=U%d,Au=U/d|0;for(L=L.slice();ru--;)H=L[ru]%d,V=L[ru]/d|0,Y=Au*H+V*Cu,$=Cu*H+Y%d*d+G,G=($/q|0)+(Y/d|0)+Au*V,L[ru]=$%q;return G&&(L=[G].concat(L)),L}function T(L,U,q,Y){var $,H;if(q!=Y)H=q>Y?1:-1;else for($=H=0;$U[$]?1:-1;break}return H}function I(L,U,q,Y){for(var $=0;q--;)L[q]-=$,$=L[q]1;L.splice(0,1));}return function(L,U,q,Y,$){var H,V,G,ru,Cu,Au,Tu,Nu,$u,k,A,F,P,z,K,Z,Fu,Pu=L.s==U.s?1:-1,Uu=L.c,Ru=U.c;if(!Uu||!Uu[0]||!Ru||!Ru[0])return new J(!L.s||!U.s||(Uu?Ru&&Uu[0]==Ru[0]:!Ru)?NaN:Uu&&Uu[0]==0||!Ru?Pu*0:Pu/0);for(Nu=new J(Pu),$u=Nu.c=[],V=L.e-U.e,Pu=q+V+1,$||($=s,V=h(L.e/l)-h(U.e/l),Pu=Pu/l|0),G=0;Ru[G]==(Uu[G]||0);G++);if(Ru[G]>(Uu[G]||0)&&V--,Pu<0)$u.push(1),ru=!0;else{for(z=Uu.length,Z=Ru.length,G=0,Pu+=2,Cu=i($/(Ru[0]+1)),Cu>1&&(Ru=S(Ru,Cu,$),Uu=S(Uu,Cu,$),Z=Ru.length,z=Uu.length),P=Z,k=Uu.slice(0,Z),A=k.length;A=$/2&&K++;do{if(Cu=0,H=T(Ru,k,Z,A),H<0){if(F=k[0],Z!=A&&(F=F*$+(k[1]||0)),Cu=i(F/K),Cu>1)for(Cu>=$&&(Cu=$-1),Au=S(Ru,Cu,$),Tu=Au.length,A=k.length;T(Au,k,Tu,A)==1;)Cu--,I(Au,Z=10;Pu/=10,G++);bu(Nu,q+(Nu.e=G+V*l-1)+1,Y,ru)}else Nu.e=V,Nu.r=+ru;return Nu}}();function _u(S,T,I,L){var U,q,Y,$,H;if(I==null?I=su:m(I,0,8),!S.c)return S.toString();if(U=S.c[0],Y=S.e,T==null)H=B(S.c),H=L==1||L==2&&(Y<=hu||Y>=eu)?v(H,Y):w(H,Y,"0");else if(S=bu(new J(S),T,I),q=S.e,H=B(S.c),$=H.length,L==1||L==2&&(T<=q||q<=hu)){for(;$$){if(--T>0)for(H+=".";T--;H+="0");}else if(T+=q-$,T>0)for(q+1==$&&(H+=".");T--;H+="0");return S.s<0&&U?"-"+H:H}function Du(S,T){for(var I,L,U=1,q=new J(S[0]);U=10;U/=10,L++);return(I=L+I*l-1)>nu?S.c=S.e=null:I=10;$/=10,U++);if(q=T-U,q<0)q+=l,Y=T,H=ru[V=0],G=i(H/Cu[U-Y-1]%10);else if(V=r((q+1)/l),V>=ru.length)if(L){for(;ru.length<=V;ru.push(0));H=G=0,U=1,q%=l,Y=q-l+1}else break u;else{for(H=$=ru[V],U=1;$>=10;$/=10,U++);q%=l,Y=q-l+U,G=Y<0?0:i(H/Cu[U-Y-1]%10)}if(L=L||T<0||ru[V+1]!=null||(Y<0?H:H%Cu[U-Y-1]),L=I<4?(G||L)&&(I==0||I==(S.s<0?3:2)):G>5||G==5&&(I==4||L||I==6&&(q>0?Y>0?H/Cu[U-Y]:0:ru[V-1])%10&1||I==(S.s<0?8:7)),T<1||!ru[0])return ru.length=0,L?(T-=S.e+1,ru[0]=Cu[(l-T%l)%l],S.e=-T||0):ru[0]=S.e=0,S;if(q==0?(ru.length=V,$=1,V--):(ru.length=V+1,$=Cu[l-q],ru[V]=Y>0?i(H/Cu[U-Y]%Cu[Y])*$:0),L)for(;;)if(V==0){for(q=1,Y=ru[0];Y>=10;Y/=10,q++);for(Y=ru[0]+=$,$=1;Y>=10;Y/=10,$++);q!=$&&(S.e++,ru[0]==s&&(ru[0]=1));break}else{if(ru[V]+=$,ru[V]!=s)break;ru[V--]=0,$=1}for(q=ru.length;ru[--q]===0;ru.pop());}S.e>nu?S.c=S.e=null:S.e=eu?v(T,I):w(T,I,"0"),S.s<0?"-"+T:T)}return O.absoluteValue=O.abs=function(){var S=new J(this);return S.s<0&&(S.s=1),S},O.comparedTo=function(S,T){return g(this,new J(S,T))},O.decimalPlaces=O.dp=function(S,T){var I,L,U,q=this;if(S!=null)return m(S,0,f),T==null?T=su:m(T,0,8),bu(new J(q),S+q.e+1,T);if(!(I=q.c))return null;if(L=((U=I.length-1)-h(this.e/l))*l,U=I[U])for(;U%10==0;U/=10,L--);return L<0&&(L=0),L},O.dividedBy=O.div=function(S,T){return p(this,new J(S,T),ou,su)},O.dividedToIntegerBy=O.idiv=function(S,T){return p(this,new J(S,T),0,1)},O.exponentiatedBy=O.pow=function(S,T){var I,L,U,q,Y,$,H,V,G,ru=this;if(S=new J(S),S.c&&!S.isInteger())throw Error(a+"Exponent not an integer: "+Iu(S));if(T!=null&&(T=new J(T)),$=S.e>14,!ru.c||!ru.c[0]||ru.c[0]==1&&!ru.e&&ru.c.length==1||!S.c||!S.c[0])return G=new J(Math.pow(+Iu(ru),$?S.s*(2-y(S)):+Iu(S))),T?G.mod(T):G;if(H=S.s<0,T){if(T.c?!T.c[0]:!T.s)return new J(NaN);L=!H&&ru.isInteger()&&T.isInteger(),L&&(ru=ru.mod(T))}else{if(S.e>9&&(ru.e>0||ru.e<-1||(ru.e==0?ru.c[0]>1||$&&ru.c[1]>=24e7:ru.c[0]<8e13||$&&ru.c[0]<=9999975e7)))return q=ru.s<0&&y(S)?-0:0,ru.e>-1&&(q=1/q),new J(H?1/q:q);lu&&(q=r(lu/l+2))}for($?(I=new J(.5),H&&(S.s=1),V=y(S)):(U=Math.abs(+Iu(S)),V=U%2),G=new J(uu);;){if(V){if(G=G.times(ru),!G.c)break;q?G.c.length>q&&(G.c.length=q):L&&(G=G.mod(T))}if(U){if(U=i(U/2),U===0)break;V=U%2}else if(S=S.times(I),bu(S,S.e+1,1),S.e>14)V=y(S);else{if(U=+Iu(S),U===0)break;V=U%2}ru=ru.times(ru),q?ru.c&&ru.c.length>q&&(ru.c.length=q):L&&(ru=ru.mod(T))}return L?G:(H&&(G=uu.div(G)),T?G.mod(T):q?bu(G,lu,su,Y):G)},O.integerValue=function(S){var T=new J(this);return S==null?S=su:m(S,0,8),bu(T,T.e+1,S)},O.isEqualTo=O.eq=function(S,T){return g(this,new J(S,T))===0},O.isFinite=function(){return!!this.c},O.isGreaterThan=O.gt=function(S,T){return g(this,new J(S,T))>0},O.isGreaterThanOrEqualTo=O.gte=function(S,T){return(T=g(this,new J(S,T)))===1||T===0},O.isInteger=function(){return!!this.c&&h(this.e/l)>this.c.length-2},O.isLessThan=O.lt=function(S,T){return g(this,new J(S,T))<0},O.isLessThanOrEqualTo=O.lte=function(S,T){return(T=g(this,new J(S,T)))===-1||T===0},O.isNaN=function(){return!this.s},O.isNegative=function(){return this.s<0},O.isPositive=function(){return this.s>0},O.isZero=function(){return!!this.c&&this.c[0]==0},O.minus=function(S,T){var I,L,U,q,Y=this,$=Y.s;if(S=new J(S,T),T=S.s,!$||!T)return new J(NaN);if($!=T)return S.s=-T,Y.plus(S);var H=Y.e/l,V=S.e/l,G=Y.c,ru=S.c;if(!H||!V){if(!G||!ru)return G?(S.s=-T,S):new J(ru?Y:NaN);if(!G[0]||!ru[0])return ru[0]?(S.s=-T,S):new J(G[0]?Y:su==3?-0:0)}if(H=h(H),V=h(V),G=G.slice(),$=H-V){for((q=$<0)?($=-$,U=G):(V=H,U=ru),U.reverse(),T=$;T--;U.push(0));U.reverse()}else for(L=(q=($=G.length)<(T=ru.length))?$:T,$=T=0;T0)for(;T--;G[I++]=0);for(T=s-1;L>$;){if(G[--L]=0;){for(I=0,Cu=F[U]%$u,Au=F[U]/$u|0,Y=H,q=U+Y;q>U;)V=A[--Y]%$u,G=A[Y]/$u|0,$=Au*V+G*Cu,V=Cu*V+$%$u*$u+Tu[q]+I,I=(V/Nu|0)+($/$u|0)+Au*G,Tu[q--]=V%Nu;Tu[q]=I}return I?++L:Tu.splice(0,1),xu(S,Tu,L)},O.negated=function(){var S=new J(this);return S.s=-S.s||null,S},O.plus=function(S,T){var I,L=this,U=L.s;if(S=new J(S,T),T=S.s,!U||!T)return new J(NaN);if(U!=T)return S.s=-T,L.minus(S);var q=L.e/l,Y=S.e/l,$=L.c,H=S.c;if(!q||!Y){if(!$||!H)return new J(U/0);if(!$[0]||!H[0])return H[0]?S:new J($[0]?L:U*0)}if(q=h(q),Y=h(Y),$=$.slice(),U=q-Y){for(U>0?(Y=q,I=H):(U=-U,I=$),I.reverse();U--;I.push(0));I.reverse()}for(U=$.length,T=H.length,U-T<0&&(I=H,H=$,$=I,T=U),U=0;T;)U=($[--T]=$[T]+H[T]+U)/s|0,$[T]=s===$[T]?0:$[T]%s;return U&&($=[U].concat($),++Y),xu(S,$,Y)},O.precision=O.sd=function(S,T){var I,L,U,q=this;if(S!=null&&S!==!!S)return m(S,1,f),T==null?T=su:m(T,0,8),bu(new J(q),S,T);if(!(I=q.c))return null;if(U=I.length-1,L=U*l+1,U=I[U]){for(;U%10==0;U/=10,L--);for(U=I[0];U>=10;U/=10,L++);}return S&&q.e+1>L&&(L=q.e+1),L},O.shiftedBy=function(S){return m(S,-c,c),this.times("1e"+S)},O.squareRoot=O.sqrt=function(){var S,T,I,L,U,q=this,Y=q.c,$=q.s,H=q.e,V=ou+4,G=new J("0.5");if($!==1||!Y||!Y[0])return new J(!$||$<0&&(!Y||Y[0])?NaN:Y?q:1/0);if($=Math.sqrt(+Iu(q)),$==0||$==1/0?(T=B(Y),(T.length+H)%2==0&&(T+="0"),$=Math.sqrt(+T),H=h((H+1)/2)-(H<0||H%2),$==1/0?T="5e"+H:(T=$.toExponential(),T=T.slice(0,T.indexOf("e")+1)+H),I=new J(T)):I=new J($+""),I.c[0]){for(H=I.e,$=H+V,$<3&&($=0);;)if(U=I,I=G.times(U.plus(p(q,U,V,1))),B(U.c).slice(0,$)===(T=B(I.c)).slice(0,$))if(I.e0&&Tu>0){for(q=Tu%$||$,G=Au.substr(0,q);q0&&(G+=V+Au.slice(q)),Cu&&(G="-"+G)}L=ru?G+(I.decimalSeparator||"")+((H=+I.fractionGroupSize)?ru.replace(new RegExp("\\d{"+H+"}\\B","g"),"$&"+(I.fractionGroupSeparator||"")):ru):G}return(I.prefix||"")+L+(I.suffix||"")},O.toFraction=function(S){var T,I,L,U,q,Y,$,H,V,G,ru,Cu,Au=this,Tu=Au.c;if(S!=null&&($=new J(S),!$.isInteger()&&($.c||$.s!==1)||$.lt(uu)))throw Error(a+"Argument "+($.isInteger()?"out of range: ":"not an integer: ")+Iu($));if(!Tu)return new J(Au);for(T=new J(uu),V=I=new J(uu),L=H=new J(uu),Cu=B(Tu),q=T.e=Cu.length-Au.e-1,T.c[0]=E[(Y=q%l)<0?l+Y:Y],S=!S||$.comparedTo(T)>0?q>0?T:V:$,Y=nu,nu=1/0,$=new J(Cu),H.c[0]=0;G=p($,T,0,1),U=I.plus(G.times(L)),U.comparedTo(S)!=1;)I=L,L=U,V=H.plus(G.times(U=V)),H=U,T=$.minus(G.times(U=T)),$=U;return U=p(S.minus(I),L,0,1),H=H.plus(U.times(V)),I=I.plus(U.times(L)),H.s=V.s=Au.s,q=q*2,ru=p(V,L,q,su).minus(Au).abs().comparedTo(p(H,I,q,su).minus(Au).abs())<1?[V,L]:[H,I],nu=Y,ru},O.toNumber=function(){return+Iu(this)},O.toPrecision=function(S,T){return S!=null&&m(S,1,f),_u(this,S,T,2)},O.toString=function(S){var T,I=this,L=I.s,U=I.e;return U===null?L?(T="Infinity",L<0&&(T="-"+T)):T="NaN":(S==null?T=U<=hu||U>=eu?v(B(I.c),U):w(B(I.c),U,"0"):S===10&&fu?(I=bu(new J(I),ou+U+1,su),T=w(B(I.c),I.e,"0")):(m(S,2,pu.length,"Base"),T=x(w(B(I.c),U,"0"),10,S,L,!0)),L<0&&I.c[0]&&(T="-"+T)),T},O.valueOf=O.toJSON=function(){return Iu(this)},O._isBigNumber=!0,D!=null&&J.set(D),J}function h(D){var p=D|0;return D>0||D===p?p:p-1}function B(D){for(var p,x,j=1,O=D.length,uu=D[0]+"";jeu^x?1:-1;for(su=(hu=O.length)<(eu=uu.length)?hu:eu,ou=0;ouuu[ou]^x?1:-1;return hu==eu?0:hu>eu^x?1:-1}function m(D,p,x,j){if(Dx||D!==i(D))throw Error(a+(j||"Argument")+(typeof D=="number"?Dx?" out of range: ":" not an integer: ":" not a primitive number: ")+String(D))}function y(D){var p=D.c.length-1;return h(D.e/l)==p&&D.c[p]%2!=0}function v(D,p){return(D.length>1?D.charAt(0)+"."+D.slice(1):D)+(p<0?"e":"e+")+p}function w(D,p,x){var j,O;if(p<0){for(O=x+".";++p;O+=x);D=O+D}else if(j=D.length,++p>j){for(O=x,p-=j;--p;O+=x);D+=O}else pFJ)return t;do e%2&&(t+=u),e=DJ(e/2),e&&(u+=u);while(e);return t}var wJ=bJ,xJ=vD,kJ=D5;function _J(u){return u!=null&&kJ(u.length)&&!xJ(u)}var bd=_J,SJ=md,PJ=bd,TJ=Bd,IJ=ga;function OJ(u,e,t){if(!IJ(t))return!1;var n=typeof e;return(n=="number"?PJ(t)&&TJ(e,t.length):n=="string"&&e in t)?SJ(t[e],u):!1}var S5=OJ,NJ=/\s/;function RJ(u){for(var e=u.length;e--&&NJ.test(u.charAt(e)););return e}var jJ=RJ,zJ=jJ,MJ=/^\s+/;function UJ(u){return u&&u.slice(0,zJ(u)+1).replace(MJ,"")}var LJ=UJ,$J=LJ,J8=ga,WJ=Ml,Y8=0/0,qJ=/^[-+]0x[0-9a-f]+$/i,HJ=/^0b[01]+$/i,GJ=/^0o[0-7]+$/i,KJ=parseInt;function QJ(u){if(typeof u=="number")return u;if(WJ(u))return Y8;if(J8(u)){var e=typeof u.valueOf=="function"?u.valueOf():u;u=J8(e)?e+"":e}if(typeof u!="string")return u===0?u:+u;u=$J(u);var t=HJ.test(u);return t||GJ.test(u)?KJ(u.slice(2),t?2:8):qJ.test(u)?Y8:+u}var VJ=QJ,JJ=VJ,X8=1/0,YJ=17976931348623157e292;function XJ(u){if(!u)return u===0?u:0;if(u=JJ(u),u===X8||u===-X8){var e=u<0?-1:1;return e*YJ}return u===u?u:0}var tb=XJ,ZJ=tb;function uY(u){var e=ZJ(u),t=e%1;return e===e?t?e-t:e:0}var eY=uY,tY=wJ,nY=S5,rY=eY,iY=Ks;function aY(u,e,t){return(t?nY(u,e,t):e===void 0)?e=1:e=rY(e),tY(iY(u),e)}var oY=aY,ya={},sY=Ju&&Ju.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(ya,"__esModule",{value:!0});ya.roundNumber=void 0;const lY=sY(Js),cY=Vs;function EY(u){return u.isZero()?1:Math.floor(Math.log10(u.abs().toNumber())+1)}function dY(u,{precision:e,significant:t}){return t&&e!==null&&e>0?e-EY(u):e}function fY(u,e){const t=dY(u,e);if(t===null)return u.toString();const n=(0,cY.expandRoundMode)(e.roundMode);if(t>=0)return u.toFixed(t,n);const r=Math.pow(10,Math.abs(t));return u=new lY.default(u.div(r).toFixed(0,n)).times(r),u.toString()}ya.roundNumber=fY;var nb=Ju&&Ju.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Dd,"__esModule",{value:!0});Dd.formatNumber=void 0;const Z8=nb(Js),pY=nb(oY),hY=ya;function CY(u,{formattedNumber:e,unit:t}){return u.replace("%n",e).replace("%u",t)}function mY({significand:u,whole:e,precision:t}){if(e==="0"||t===null)return u;const n=Math.max(0,t-e.length);return(u??"").substr(0,n)}function gY(u,e){var t,n,r;const i=new Z8.default(u);if(e.raise&&!i.isFinite())throw new Error(`"${u}" is not a valid numeric value`);const a=(0,hY.roundNumber)(i,e),o=new Z8.default(a),s=o.lt(0),l=o.isZero();let[c,E]=a.split(".");const d=[];let f;const C=(t=e.format)!==null&&t!==void 0?t:"%n",h=(n=e.negativeFormat)!==null&&n!==void 0?n:`-${C}`,B=s&&!l?h:C;for(c=c.replace("-","");c.length>0;)d.unshift(c.substr(Math.max(0,c.length-3),3)),c=c.substr(0,c.length-3);return c=d.join(""),f=d.join(e.delimiter),e.significant?E=mY({whole:c,significand:E,precision:e.precision}):E=E??(0,pY.default)("0",(r=e.precision)!==null&&r!==void 0?r:0),e.stripInsignificantZeros&&E&&(E=E.replace(/0+$/,"")),i.isNaN()&&(f=u.toString()),E&&i.isFinite()&&(f+=(e.separator||".")+E),CY(B,{formattedNumber:f,unit:e.unit})}Dd.formatNumber=gY;var Ys={};Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getFullScope=void 0;function AY(u,e,t){let n="";return(e instanceof String||typeof e=="string")&&(n=e),e instanceof Array&&(n=e.join(u.defaultSeparator)),t.scope&&(n=[t.scope,n].join(u.defaultSeparator)),n}Ys.getFullScope=AY;var Xs={};Object.defineProperty(Xs,"__esModule",{value:!0});Xs.inferType=void 0;function yY(u){var e,t;if(u===null)return"null";const n=typeof u;return n!=="object"?n:((t=(e=u==null?void 0:u.constructor)===null||e===void 0?void 0:e.name)===null||t===void 0?void 0:t.toLowerCase())||"object"}Xs.inferType=yY;var wd={};Object.defineProperty(wd,"__esModule",{value:!0});wd.interpolate=void 0;const BY=ai;function vY(u,e,t){t=Object.keys(t).reduce((r,i)=>(r[u.transformKey(i)]=t[i],r),{});const n=e.match(u.placeholder);if(!n)return e;for(;n.length;){let r;const i=n.shift(),a=i.replace(u.placeholder,"$1");(0,BY.isSet)(t[a])?r=t[a].toString().replace(/\$/gm,"_#$#_"):a in t?r=u.nullPlaceholder(u,i,e,t):r=u.missingPlaceholder(u,i,e,t);const o=new RegExp(i.replace(/\{/gm,"\\{").replace(/\}/gm,"\\}"));e=e.replace(o,r)}return e.replace(/_#\$#_/g,"$")}wd.interpolate=vY;var Zs={},FY=Ju&&Ju.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Zs,"__esModule",{value:!0});Zs.lookup=void 0;const DY=FY(v5),bY=ai,wY=Ys,xY=Xs;function kY(u,e,t={}){t=Object.assign({},t);const n="locale"in t?t.locale:u.locale,r=(0,xY.inferType)(n),i=u.locales.get(r==="string"?n:typeof n).slice();e=(0,wY.getFullScope)(u,e,t).split(u.defaultSeparator).map(o=>u.transformKey(o)).join(".");const a=i.map(o=>(0,DY.default)(u.translations,[o,e].join(".")));return a.push(t.defaultValue),a.find(o=>(0,bY.isSet)(o))}Zs.lookup=kY;var xd={},_Y=Ju&&Ju.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(xd,"__esModule",{value:!0});xd.numberToDelimited=void 0;const SY=_Y(Js);function PY(u,e){const t=new SY.default(u);if(!t.isFinite())return u.toString();if(!e.delimiterPattern.global)throw new Error(`options.delimiterPattern must be a globalThis regular expression; received ${e.delimiterPattern}`);let[n,r]=t.toString().split(".");return n=n.replace(e.delimiterPattern,i=>`${i}${e.delimiter}`),[n,r].filter(Boolean).join(e.separator)}xd.numberToDelimited=PY;var kd={};function TY(u,e){for(var t=-1,n=e.length,r=u.length;++t0&&t(o)?e>1?ib(o,e-1,t,n,r):jY(r,o):n||(r[r.length]=o)}return r}var ab=ib,MY=Ad;function UY(){this.__data__=new MY,this.size=0}var LY=UY;function $Y(u){var e=this.__data__,t=e.delete(u);return this.size=e.size,t}var WY=$Y;function qY(u){return this.__data__.get(u)}var HY=qY;function GY(u){return this.__data__.has(u)}var KY=GY,QY=Ad,VY=m5,JY=g5,YY=200;function XY(u,e){var t=this.__data__;if(t instanceof QY){var n=t.__data__;if(!VY||n.lengtho))return!1;var l=i.get(u),c=i.get(e);if(l&&c)return l==e&&c==u;var E=-1,d=!0,f=t&dX?new sX:void 0;for(i.set(u,e),i.set(e,u);++Ee||i&&a&&s&&!o&&!l||n&&a&&s||!t&&s||!r)return 1;if(!n&&!i&&!l&&u=o)return s;var l=t[n];return s*(l=="desc"?-1:1)}}return u.index-e.index}var y0u=A0u,a1=bD,B0u=B5,v0u=Keu,F0u=f0u,D0u=h0u,b0u=cb,w0u=y0u,x0u=_d,k0u=dn;function _0u(u,e,t){e.length?e=a1(e,function(i){return k0u(i)?function(a){return B0u(a,i.length===1?i[0]:i)}:i}):e=[x0u];var n=-1;e=a1(e,b0u(v0u));var r=F0u(u,function(i,a,o){var s=a1(e,function(l){return l(i)});return{criteria:s,index:++n,value:i}});return D0u(r,function(i,a){return w0u(i,a,t)})}var S0u=_0u;function P0u(u,e,t){switch(t.length){case 0:return u.call(e);case 1:return u.call(e,t[0]);case 2:return u.call(e,t[0],t[1]);case 3:return u.call(e,t[0],t[1],t[2])}return u.apply(e,t)}var T0u=P0u,I0u=T0u,vg=Math.max;function O0u(u,e,t){return e=vg(e===void 0?u.length-1:e,0),function(){for(var n=arguments,r=-1,i=vg(n.length-e,0),a=Array(i);++r0){if(++e>=$0u)return arguments[0]}else e=0;return u.apply(void 0,arguments)}}var G0u=H0u,K0u=L0u,Q0u=G0u,V0u=Q0u(K0u),J0u=V0u,Y0u=_d,X0u=N0u,Z0u=J0u;function utu(u,e){return Z0u(X0u(u,e,Y0u),u+"")}var etu=utu,ttu=ab,ntu=S0u,rtu=etu,Dg=S5,itu=rtu(function(u,e){if(u==null)return[];var t=e.length;return t>1&&Dg(u,e[0],e[1])?e=[]:t>2&&Dg(e[0],e[1],e[2])&&(e=[e[0]]),ntu(u,ttu(e,1),[])}),atu=itu;function otu(u,e,t){for(var n=-1,r=u.length,i=e.length,a={};++nparseInt(u,10)));function Atu(u,e,t){const n={roundMode:t.roundMode,precision:t.precision,significant:t.significant};let r;if((0,mtu.inferType)(t.units)==="string"){const E=t.units;if(r=(0,Ctu.lookup)(u,E),!r)throw new Error(`The scope "${u.locale}${u.defaultSeparator}${(0,htu.getFullScope)(u,E,{})}" couldn't be found`)}else r=t.units;let i=(0,bg.roundNumber)(new o1.default(e),n);const a=E=>(0,ftu.default)(Object.keys(E).map(d=>gtu[d]),d=>d*-1),o=(E,d)=>{const f=E.isZero()?0:Math.floor(Math.log10(E.abs().toNumber()));return a(d).find(C=>f>=C)||0},s=(E,d)=>{const f=vf[d.toString()];return E[f]||""},l=o(new o1.default(i),r),c=s(r,l);if(i=(0,bg.roundNumber)(new o1.default(i).div(Math.pow(10,l)),n),t.stripInsignificantZeros){let[E,d]=i.split(".");d=(d||"").replace(/0+$/,""),i=E,d&&(i+=`${t.separator}${d}`)}return t.format.replace("%n",i||"0").replace("%u",c).trim()}kd.numberToHuman=Atu;var Sd={},ytu=Ju&&Ju.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Sd,"__esModule",{value:!0});Sd.numberToHumanSize=void 0;const vc=ytu(Js),Btu=ya,vtu=Vs,wg=["byte","kb","mb","gb","tb","pb","eb"];function Ftu(u,e,t){const n=(0,vtu.expandRoundMode)(t.roundMode),r=1024,i=new vc.default(e).abs(),a=i.lt(r);let o;const s=(C,h)=>{const B=h.length-1,g=new vc.default(Math.log(C.toNumber())).div(Math.log(r)).integerValue(vc.default.ROUND_DOWN).toNumber();return Math.min(B,g)},l=C=>`number.human.storage_units.units.${a?"byte":C[c]}`,c=s(i,wg);a?o=i.integerValue():o=new vc.default((0,Btu.roundNumber)(i.div(Math.pow(r,c)),{significant:t.significant,precision:t.precision,roundMode:t.roundMode}));const E=u.translate("number.human.storage_units.format",{defaultValue:"%n %u"}),d=u.translate(l(wg),{count:i.integerValue().toNumber()});let f=o.toFixed(t.precision,n);return t.stripInsignificantZeros&&(f=f.replace(/(\..*?)0+$/,"$1").replace(/\.$/,"")),E.replace("%n",f).replace("%u",d)}Sd.numberToHumanSize=Ftu;var Ll={};Object.defineProperty(Ll,"__esModule",{value:!0});Ll.parseDate=void 0;function Dtu(u){if(u instanceof Date)return u;if(typeof u=="number"){const n=new Date;return n.setTime(u),n}const e=new String(u).match(/(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2})(?:[.,](\d{1,3}))?)?(Z|\+00:?00)?/);if(e){const n=e.slice(1,8).map(d=>parseInt(d,10)||0);n[1]-=1;const[r,i,a,o,s,l,c]=n;return e[8]?new Date(Date.UTC(r,i,a,o,s,l,c)):new Date(r,i,a,o,s,l,c)}u.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\d+) (\d+:\d+:\d+) ([+-]\d+) (\d+)/)&&new Date().setTime(Date.parse([RegExp.$1,RegExp.$2,RegExp.$3,RegExp.$6,RegExp.$4,RegExp.$5].join(" ")));const t=new Date;return t.setTime(Date.parse(u)),t}Ll.parseDate=Dtu;var Pd={};Object.defineProperty(Pd,"__esModule",{value:!0});Pd.pluralize=void 0;const xg=ai,btu=Zs;function wtu({i18n:u,count:e,scope:t,options:n,baseScope:r}){n=Object.assign({},n);let i,a;if(typeof t=="object"&&t?i=t:i=(0,btu.lookup)(u,t,n),!i)return u.missingTranslation.get(t,n);const s=u.pluralization.get(n.locale)(u,e),l=[];for(;s.length;){const c=s.shift();if((0,xg.isSet)(i[c])){a=i[c];break}l.push(c)}return(0,xg.isSet)(a)?(n.count=e,u.interpolate(u,a,n)):u.missingTranslation.get(r.split(u.defaultSeparator).concat([l[0]]),n)}Pd.pluralize=wtu;var Td={},xtu=ab,ktu=1/0;function _tu(u){var e=u==null?0:u.length;return e?xtu(u,ktu):[]}var Stu=_tu,mb=Ju&&Ju.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Td,"__esModule",{value:!0});Td.propertyFlatList=void 0;const Ptu=mb(ga),Ttu=mb(Stu);class Itu{constructor(e){this.target=e}call(){const e=(0,Ttu.default)(Object.keys(this.target).map(t=>this.compute(this.target[t],t)));return e.sort(),e}compute(e,t){return!Array.isArray(e)&&(0,Ptu.default)(e)?Object.keys(e).map(n=>this.compute(e[n],`${t}.${n}`)):t}}function Otu(u){return new Itu(u).call()}Td.propertyFlatList=Otu;var Id={};Object.defineProperty(Id,"__esModule",{value:!0});Id.strftime=void 0;const Ntu={meridian:{am:"AM",pm:"PM"},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbrDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],monthNames:[null,"January","February","March","April","May","June","July","August","September","October","November","December"],abbrMonthNames:[null,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]};function Rtu(u,e,t={}){const{abbrDayNames:n,dayNames:r,abbrMonthNames:i,monthNames:a,meridian:o}=Object.assign(Object.assign({},Ntu),t);if(isNaN(u.getTime()))throw new Error("strftime() requires a valid date object, but received an invalid date.");const s=u.getDay(),l=u.getDate(),c=u.getFullYear(),E=u.getMonth()+1,d=u.getHours();let f=d;const C=d>11?"pm":"am",h=u.getSeconds(),B=u.getMinutes(),g=u.getTimezoneOffset(),m=Math.floor(Math.abs(g/60)),y=Math.abs(g)-m*60,v=(g>0?"-":"+")+(m.toString().length<2?"0"+m:m)+(y.toString().length<2?"0"+y:y);return f>12?f=f-12:f===0&&(f=12),e=e.replace("%a",n[s]),e=e.replace("%A",r[s]),e=e.replace("%b",i[E]),e=e.replace("%B",a[E]),e=e.replace("%d",l.toString().padStart(2,"0")),e=e.replace("%e",l.toString()),e=e.replace("%-d",l.toString()),e=e.replace("%H",d.toString().padStart(2,"0")),e=e.replace("%-H",d.toString()),e=e.replace("%k",d.toString()),e=e.replace("%I",f.toString().padStart(2,"0")),e=e.replace("%-I",f.toString()),e=e.replace("%l",f.toString()),e=e.replace("%m",E.toString().padStart(2,"0")),e=e.replace("%-m",E.toString()),e=e.replace("%M",B.toString().padStart(2,"0")),e=e.replace("%-M",B.toString()),e=e.replace("%p",o[C]),e=e.replace("%P",o[C].toLowerCase()),e=e.replace("%S",h.toString().padStart(2,"0")),e=e.replace("%-S",h.toString()),e=e.replace("%w",s.toString()),e=e.replace("%y",c.toString().padStart(2,"0").substr(-2)),e=e.replace("%-y",c.toString().padStart(2,"0").substr(-2).replace(/^0+/,"")),e=e.replace("%Y",c.toString()),e=e.replace(/%z/i,v),e}Id.strftime=Rtu;var Od={},jtu=Math.ceil,ztu=Math.max;function Mtu(u,e,t,n){for(var r=-1,i=ztu(jtu((e-u)/(t||1)),0),a=Array(i);i--;)a[n?i:++r]=u,u+=t;return a}var Utu=Mtu,Ltu=Utu,$tu=S5,s1=tb;function Wtu(u){return function(e,t,n){return n&&typeof n!="number"&&$tu(e,t,n)&&(t=n=void 0),e=s1(e),t===void 0?(t=e,e=0):t=s1(t),n=n===void 0?et>=u&&t<=e;function Jtu(u,e,t,n={}){const r=n.scope||"datetime.distance_in_words",i=(p,x=0)=>u.t(p,{count:x,scope:r});e=(0,kg.parseDate)(e),t=(0,kg.parseDate)(t);let a=e.getTime()/1e3,o=t.getTime()/1e3;a>o&&([e,t,a,o]=[t,e,o,a]);const s=Math.round(o-a),l=Math.round((o-a)/60),E=l/60/24,d=Math.round(l/60),f=Math.round(E),C=Math.round(f/30);if(I0(0,1,l))return n.includeSeconds?I0(0,4,s)?i("less_than_x_seconds",5):I0(5,9,s)?i("less_than_x_seconds",10):I0(10,19,s)?i("less_than_x_seconds",20):I0(20,39,s)?i("half_a_minute"):I0(40,59,s)?i("less_than_x_minutes",1):i("x_minutes",1):l===0?i("less_than_x_minutes",1):i("x_minutes",l);if(I0(2,44,l))return i("x_minutes",l);if(I0(45,89,l))return i("about_x_hours",1);if(I0(90,1439,l))return i("about_x_hours",d);if(I0(1440,2519,l))return i("x_days",1);if(I0(2520,43199,l))return i("x_days",f);if(I0(43200,86399,l))return i("about_x_months",Math.round(l/43200));if(I0(86400,525599,l))return i("x_months",C);let h=e.getFullYear();e.getMonth()+1>=3&&(h+=1);let B=t.getFullYear();t.getMonth()+1<3&&(B-=1);const g=h>B?0:(0,Vtu.default)(h,B).filter(p=>new Date(p,1,29).getMonth()==1).length,m=525600,y=g*1440,v=l-y,w=Math.trunc(v/m),D=parseFloat((v/m-w).toPrecision(3));return D<.25?i("about_x_years",w):D<.75?i("over_x_years",w):i("almost_x_years",w+1)}Od.timeAgoInWords=Jtu;(function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.timeAgoInWords=u.strftime=u.roundNumber=u.propertyFlatList=u.pluralize=u.parseDate=u.numberToHumanSize=u.numberToHuman=u.numberToDelimited=u.lookup=u.isSet=u.interpolate=u.inferType=u.getFullScope=u.formatNumber=u.expandRoundMode=u.createTranslationOptions=u.camelCaseKeys=void 0;var e=vd;Object.defineProperty(u,"camelCaseKeys",{enumerable:!0,get:function(){return e.camelCaseKeys}});var t=Fd;Object.defineProperty(u,"createTranslationOptions",{enumerable:!0,get:function(){return t.createTranslationOptions}});var n=Vs;Object.defineProperty(u,"expandRoundMode",{enumerable:!0,get:function(){return n.expandRoundMode}});var r=Dd;Object.defineProperty(u,"formatNumber",{enumerable:!0,get:function(){return r.formatNumber}});var i=Ys;Object.defineProperty(u,"getFullScope",{enumerable:!0,get:function(){return i.getFullScope}});var a=Xs;Object.defineProperty(u,"inferType",{enumerable:!0,get:function(){return a.inferType}});var o=wd;Object.defineProperty(u,"interpolate",{enumerable:!0,get:function(){return o.interpolate}});var s=ai;Object.defineProperty(u,"isSet",{enumerable:!0,get:function(){return s.isSet}});var l=Zs;Object.defineProperty(u,"lookup",{enumerable:!0,get:function(){return l.lookup}});var c=xd;Object.defineProperty(u,"numberToDelimited",{enumerable:!0,get:function(){return c.numberToDelimited}});var E=kd;Object.defineProperty(u,"numberToHuman",{enumerable:!0,get:function(){return E.numberToHuman}});var d=Sd;Object.defineProperty(u,"numberToHumanSize",{enumerable:!0,get:function(){return d.numberToHumanSize}});var f=Ll;Object.defineProperty(u,"parseDate",{enumerable:!0,get:function(){return f.parseDate}});var C=Pd;Object.defineProperty(u,"pluralize",{enumerable:!0,get:function(){return C.pluralize}});var h=Td;Object.defineProperty(u,"propertyFlatList",{enumerable:!0,get:function(){return h.propertyFlatList}});var B=ya;Object.defineProperty(u,"roundNumber",{enumerable:!0,get:function(){return B.roundNumber}});var g=Id;Object.defineProperty(u,"strftime",{enumerable:!0,get:function(){return g.strftime}});var m=Od;Object.defineProperty(u,"timeAgoInWords",{enumerable:!0,get:function(){return m.timeAgoInWords}})})(_5);(function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.MissingTranslation=u.errorStrategy=u.messageStrategy=u.guessStrategy=void 0;const e=_5,t=function(a,o){o instanceof Array&&(o=o.join(a.defaultSeparator));const s=o.split(a.defaultSeparator).slice(-1)[0];return a.missingTranslationPrefix+s.replace("_"," ").replace(/([a-z])([A-Z])/g,(l,c,E)=>`${c} ${E.toLowerCase()}`)};u.guessStrategy=t;const n=(a,o,s)=>{const l=(0,e.getFullScope)(a,o,s),c="locale"in s?s.locale:a.locale,E=(0,e.inferType)(c);return`[missing "${[E=="string"?c:E,l].join(a.defaultSeparator)}" translation]`};u.messageStrategy=n;const r=(a,o,s)=>{const l=(0,e.getFullScope)(a,o,s),c=[a.locale,l].join(a.defaultSeparator);throw new Error(`Missing translation: ${c}`)};u.errorStrategy=r;class i{constructor(o){this.i18n=o,this.registry={},this.register("guess",u.guessStrategy),this.register("message",u.messageStrategy),this.register("error",u.errorStrategy)}register(o,s){this.registry[o]=s}get(o,s){var l;return this.registry[(l=s.missingBehavior)!==null&&l!==void 0?l:this.i18n.missingBehavior](this.i18n,o,s)}}u.MissingTranslation=i})(k5);var Ytu=Ju&&Ju.__awaiter||function(u,e,t,n){function r(i){return i instanceof t?i:new t(function(a){a(i)})}return new(t||(t=Promise))(function(i,a){function o(c){try{l(n.next(c))}catch(E){a(E)}}function s(c){try{l(n.throw(c))}catch(E){a(E)}}function l(c){c.done?i(c.value):r(c.value).then(o,s)}l((n=n.apply(u,e||[])).next())})},Nd=Ju&&Ju.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(hd,"__esModule",{value:!0});hd.I18n=void 0;const _g=Nd(v5),Xtu=Nd(K$),Ztu=Nd(cW),unu=Nd(fW),enu=b5,tnu=x5,nnu=k5,ju=_5,l1={defaultLocale:"en",availableLocales:["en"],locale:"en",defaultSeparator:".",placeholder:/(?:\{\{|%\{)(.*?)(?:\}\}?)/gm,enableFallback:!1,missingBehavior:"message",missingTranslationPrefix:"",missingPlaceholder:(u,e)=>`[missing "${e}" value]`,nullPlaceholder:(u,e,t,n)=>u.missingPlaceholder(u,e,t,n),transformKey:u=>u};class rnu{constructor(e={},t={}){this._locale=l1.locale,this._defaultLocale=l1.defaultLocale,this._version=0,this.onChangeHandlers=[],this.translations={},this.availableLocales=[],this.t=this.translate,this.p=this.pluralize,this.l=this.localize,this.distanceOfTimeInWords=this.timeAgoInWords;const{locale:n,enableFallback:r,missingBehavior:i,missingTranslationPrefix:a,missingPlaceholder:o,nullPlaceholder:s,defaultLocale:l,defaultSeparator:c,placeholder:E,transformKey:d}=Object.assign(Object.assign({},l1),t);this.locale=n,this.defaultLocale=l,this.defaultSeparator=c,this.enableFallback=r,this.locale=n,this.missingBehavior=i,this.missingTranslationPrefix=a,this.missingPlaceholder=o,this.nullPlaceholder=s,this.placeholder=E,this.pluralization=new tnu.Pluralization(this),this.locales=new enu.Locales(this),this.missingTranslation=new nnu.MissingTranslation(this),this.transformKey=d,this.interpolate=ju.interpolate,this.store(e)}store(e){(0,ju.propertyFlatList)(e).forEach(n=>(0,unu.default)(this.translations,n,(0,_g.default)(e,n),Object)),this.hasChanged()}get locale(){return this._locale||this.defaultLocale||"en"}set locale(e){if(typeof e!="string")throw new Error(`Expected newLocale to be a string; got ${(0,ju.inferType)(e)}`);const t=this._locale!==e;this._locale=e,t&&this.hasChanged()}get defaultLocale(){return this._defaultLocale||"en"}set defaultLocale(e){if(typeof e!="string")throw new Error(`Expected newLocale to be a string; got ${(0,ju.inferType)(e)}`);const t=this._defaultLocale!==e;this._defaultLocale=e,t&&this.hasChanged()}translate(e,t){t=Object.assign({},t);const n=(0,ju.createTranslationOptions)(this,e,t);let r;return n.some(a=>((0,ju.isSet)(a.scope)?r=(0,ju.lookup)(this,a.scope,t):(0,ju.isSet)(a.message)&&(r=a.message),r!=null))?(typeof r=="string"?r=this.interpolate(this,r,t):typeof r=="object"&&r&&(0,ju.isSet)(t.count)&&(r=(0,ju.pluralize)({i18n:this,count:t.count||0,scope:r,options:t,baseScope:(0,ju.getFullScope)(this,e,t)})),t&&r instanceof Array&&(r=r.map(a=>typeof a=="string"?(0,ju.interpolate)(this,a,t):a)),r):this.missingTranslation.get(e,t)}pluralize(e,t,n){return(0,ju.pluralize)({i18n:this,count:e,scope:t,options:Object.assign({},n),baseScope:(0,ju.getFullScope)(this,t,n??{})})}localize(e,t,n){if(n=Object.assign({},n),t==null)return"";switch(e){case"currency":return this.numberToCurrency(t);case"number":return(0,ju.formatNumber)(t,Object.assign({delimiter:",",precision:3,separator:".",significant:!1,stripInsignificantZeros:!1},(0,ju.lookup)(this,"number.format")));case"percentage":return this.numberToPercentage(t);default:{let r;return e.match(/^(date|time)/)?r=this.toTime(e,t):r=t.toString(),(0,ju.interpolate)(this,r,n)}}}toTime(e,t){const n=(0,ju.parseDate)(t),r=(0,ju.lookup)(this,e);return n.toString().match(/invalid/i)||!r?n.toString():this.strftime(n,r)}numberToCurrency(e,t={}){return(0,ju.formatNumber)(e,Object.assign(Object.assign(Object.assign({delimiter:",",format:"%u%n",precision:2,separator:".",significant:!1,stripInsignificantZeros:!1,unit:"$"},(0,ju.camelCaseKeys)(this.get("number.format"))),(0,ju.camelCaseKeys)(this.get("number.currency.format"))),t))}numberToPercentage(e,t={}){return(0,ju.formatNumber)(e,Object.assign(Object.assign(Object.assign({delimiter:"",format:"%n%",precision:3,stripInsignificantZeros:!1,separator:".",significant:!1},(0,ju.camelCaseKeys)(this.get("number.format"))),(0,ju.camelCaseKeys)(this.get("number.percentage.format"))),t))}numberToHumanSize(e,t={}){return(0,ju.numberToHumanSize)(this,e,Object.assign(Object.assign(Object.assign({delimiter:"",precision:3,significant:!0,stripInsignificantZeros:!0,units:{billion:"Billion",million:"Million",quadrillion:"Quadrillion",thousand:"Thousand",trillion:"Trillion",unit:""}},(0,ju.camelCaseKeys)(this.get("number.human.format"))),(0,ju.camelCaseKeys)(this.get("number.human.storage_units"))),t))}numberToHuman(e,t={}){return(0,ju.numberToHuman)(this,e,Object.assign(Object.assign(Object.assign({delimiter:"",separator:".",precision:3,significant:!0,stripInsignificantZeros:!0,format:"%n %u",roundMode:"default",units:{billion:"Billion",million:"Million",quadrillion:"Quadrillion",thousand:"Thousand",trillion:"Trillion",unit:""}},(0,ju.camelCaseKeys)(this.get("number.human.format"))),(0,ju.camelCaseKeys)(this.get("number.human.decimal_units"))),t))}numberToRounded(e,t){return(0,ju.formatNumber)(e,Object.assign({unit:"",precision:3,significant:!1,separator:".",delimiter:"",stripInsignificantZeros:!1},t))}numberToDelimited(e,t={}){return(0,ju.numberToDelimited)(e,Object.assign({delimiterPattern:/(\d)(?=(\d\d\d)+(?!\d))/g,delimiter:",",separator:"."},t))}withLocale(e,t){return Ytu(this,void 0,void 0,function*(){const n=this.locale;try{this.locale=e,yield t()}finally{this.locale=n}})}strftime(e,t,n={}){return(0,ju.strftime)(e,t,Object.assign(Object.assign(Object.assign({},(0,ju.camelCaseKeys)((0,ju.lookup)(this,"date"))),{meridian:{am:(0,ju.lookup)(this,"time.am")||"AM",pm:(0,ju.lookup)(this,"time.pm")||"PM"}}),n))}update(e,t,n={strict:!1}){if(n.strict&&!(0,Xtu.default)(this.translations,e))throw new Error(`The path "${e}" is not currently defined`);const r=(0,_g.default)(this.translations,e),i=(0,ju.inferType)(r),a=(0,ju.inferType)(t);if(n.strict&&i!==a)throw new Error(`The current type for "${e}" is "${i}", but you're trying to override it with "${a}"`);let o;a==="object"?o=Object.assign(Object.assign({},r),t):o=t,(0,Ztu.default)(this.translations,e,o),this.hasChanged()}toSentence(e,t={}){const{wordsConnector:n,twoWordsConnector:r,lastWordConnector:i}=Object.assign(Object.assign({wordsConnector:", ",twoWordsConnector:" and ",lastWordConnector:", and "},(0,ju.camelCaseKeys)((0,ju.lookup)(this,"support.array"))),t),a=e.length;switch(a){case 0:return"";case 1:return`${e[0]}`;case 2:return e.join(r);default:return[e.slice(0,a-1).join(n),i,e[a-1]].join("")}}timeAgoInWords(e,t,n={}){return(0,ju.timeAgoInWords)(this,e,t,n)}onChange(e){return this.onChangeHandlers.push(e),()=>{this.onChangeHandlers.splice(this.onChangeHandlers.indexOf(e),1)}}get version(){return this._version}formatNumber(e,t){return(0,ju.formatNumber)(e,t)}get(e){return(0,ju.lookup)(this,e)}runCallbacks(){this.onChangeHandlers.forEach(e=>e(this))}hasChanged(){this._version+=1,this.runCallbacks()}}hd.I18n=rnu;var gb={};Object.defineProperty(gb,"__esModule",{value:!0});(function(u){var e=Ju&&Ju.__createBinding||(Object.create?function(o,s,l,c){c===void 0&&(c=l);var E=Object.getOwnPropertyDescriptor(s,l);(!E||("get"in E?!s.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return s[l]}}),Object.defineProperty(o,c,E)}:function(o,s,l,c){c===void 0&&(c=l),o[c]=s[l]}),t=Ju&&Ju.__exportStar||function(o,s){for(var l in o)l!=="default"&&!Object.prototype.hasOwnProperty.call(s,l)&&e(s,o,l)};Object.defineProperty(u,"__esModule",{value:!0}),u.useMakePlural=u.Pluralization=u.MissingTranslation=u.Locales=u.I18n=void 0;var n=hd;Object.defineProperty(u,"I18n",{enumerable:!0,get:function(){return n.I18n}});var r=b5;Object.defineProperty(u,"Locales",{enumerable:!0,get:function(){return r.Locales}});var i=k5;Object.defineProperty(u,"MissingTranslation",{enumerable:!0,get:function(){return i.MissingTranslation}});var a=x5;Object.defineProperty(u,"Pluralization",{enumerable:!0,get:function(){return a.Pluralization}}),Object.defineProperty(u,"useMakePlural",{enumerable:!0,get:function(){return a.useMakePlural}}),t(gb,u)})(AD);var Ff=function(u,e){return Ff=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])},Ff(u,e)};function Ab(u,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Ff(u,e);function t(){this.constructor=u}u.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var st=function(){return st=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;o--)(a=u[o])&&(i=(r<3?a(i):r>3?a(e,t,i):a(e,t))||i);return r>3&&i&&Object.defineProperty(e,t,i),i}function Bb(u,e){return function(t,n){e(t,n,u)}}function inu(u,e,t,n,r,i){function a(g){if(g!==void 0&&typeof g!="function")throw new TypeError("Function expected");return g}for(var o=n.kind,s=o==="getter"?"get":o==="setter"?"set":"value",l=!e&&u?n.static?u:u.prototype:null,c=e||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),E,d=!1,f=t.length-1;f>=0;f--){var C={};for(var h in n)C[h]=h==="access"?{}:n[h];for(var h in n.access)C.access[h]=n.access[h];C.addInitializer=function(g){if(d)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(g||null))};var B=(0,t[f])(o==="accessor"?{get:c.get,set:c.set}:c[s],C);if(o==="accessor"){if(B===void 0)continue;if(B===null||typeof B!="object")throw new TypeError("Object expected");(E=a(B.get))&&(c.get=E),(E=a(B.set))&&(c.set=E),(E=a(B.init))&&r.unshift(E)}else(E=a(B))&&(o==="field"?r.unshift(E):c[s]=E)}l&&Object.defineProperty(l,n.name,c),d=!0}function anu(u,e,t){for(var n=arguments.length>2,r=0;r0&&i[i.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!i||l[1]>i[0]&&l[1]=u.length&&(u=void 0),{value:u&&u[n++],done:!u}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function I5(u,e){var t=typeof Symbol=="function"&&u[Symbol.iterator];if(!t)return u;var n=t.call(u),r,i=[],a;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)i.push(r.value)}catch(o){a={error:o}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(a)throw a.error}}return i}function wb(){for(var u=[],e=0;e1||o(d,f)})})}function o(d,f){try{s(n[d](f))}catch(C){E(i[0][3],C)}}function s(d){d.value instanceof ys?Promise.resolve(d.value.v).then(l,c):E(i[0][2],d)}function l(d){o("next",d)}function c(d){o("throw",d)}function E(d,f){d(f),i.shift(),i.length&&o(i[0][0],i[0][1])}}function _b(u){var e,t;return e={},n("next"),n("throw",function(r){throw r}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(r,i){e[r]=u[r]?function(a){return(t=!t)?{value:ys(u[r](a)),done:!1}:i?i(a):a}:i}}function Sb(u){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=u[Symbol.asyncIterator],t;return e?e.call(u):(u=typeof YE=="function"?YE(u):u[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=u[i]&&function(a){return new Promise(function(o,s){a=u[i](a),r(o,s,a.done,a.value)})}}function r(i,a,o,s){Promise.resolve(s).then(function(l){i({value:l,done:o})},a)}}function Pb(u,e){return Object.defineProperty?Object.defineProperty(u,"raw",{value:e}):u.raw=e,u}var lnu=Object.create?function(u,e){Object.defineProperty(u,"default",{enumerable:!0,value:e})}:function(u,e){u.default=e};function Tb(u){if(u&&u.__esModule)return u;var e={};if(u!=null)for(var t in u)t!=="default"&&Object.prototype.hasOwnProperty.call(u,t)&&jd(e,u,t);return lnu(e,u),e}function Ib(u){return u&&u.__esModule?u:{default:u}}function Ob(u,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?u!==e||!n:!e.has(u))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(u):n?n.value:e.get(u)}function Nb(u,e,t,n,r){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?u!==e||!r:!e.has(u))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?r.call(u,t):r?r.value=t:e.set(u,t),t}function Rb(u,e){if(e===null||typeof e!="object"&&typeof e!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof u=="function"?e===u:u.has(e)}function jb(u,e,t){if(e!=null){if(typeof e!="object"&&typeof e!="function")throw new TypeError("Object expected.");var n;if(t){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=e[Symbol.asyncDispose]}if(n===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=e[Symbol.dispose]}if(typeof n!="function")throw new TypeError("Object not disposable.");u.stack.push({value:e,dispose:n,async:t})}else t&&u.stack.push({async:!0});return e}var cnu=typeof SuppressedError=="function"?SuppressedError:function(u,e,t){var n=new Error(t);return n.name="SuppressedError",n.error=u,n.suppressed=e,n};function zb(u){function e(n){u.error=u.hasError?new cnu(n,u.error,"An error was suppressed during disposal."):n,u.hasError=!0}function t(){for(;u.stack.length;){var n=u.stack.pop();try{var r=n.dispose&&n.dispose.call(n.value);if(n.async)return Promise.resolve(r).then(t,function(i){return e(i),t()})}catch(i){e(i)}}if(u.hasError)throw u.error}return t()}const Enu={__extends:Ab,__assign:st,__rest:Rd,__decorate:yb,__param:Bb,__metadata:vb,__awaiter:Fb,__generator:Db,__createBinding:jd,__exportStar:bb,__values:YE,__read:I5,__spread:wb,__spreadArrays:xb,__spreadArray:O5,__await:ys,__asyncGenerator:kb,__asyncDelegator:_b,__asyncValues:Sb,__makeTemplateObject:Pb,__importStar:Tb,__importDefault:Ib,__classPrivateFieldGet:Ob,__classPrivateFieldSet:Nb,__classPrivateFieldIn:Rb,__addDisposableResource:jb,__disposeResources:zb},F6u=Object.freeze(Object.defineProperty({__proto__:null,__addDisposableResource:jb,get __assign(){return st},__asyncDelegator:_b,__asyncGenerator:kb,__asyncValues:Sb,__await:ys,__awaiter:Fb,__classPrivateFieldGet:Ob,__classPrivateFieldIn:Rb,__classPrivateFieldSet:Nb,__createBinding:jd,__decorate:yb,__disposeResources:zb,__esDecorate:inu,__exportStar:bb,__extends:Ab,__generator:Db,__importDefault:Ib,__importStar:Tb,__makeTemplateObject:Pb,__metadata:vb,__param:Bb,__propKey:onu,__read:I5,__rest:Rd,__runInitializers:anu,__setFunctionName:snu,__spread:wb,__spreadArray:O5,__spreadArrays:xb,__values:YE,default:Enu},Symbol.toStringTag,{value:"Module"}));var Yc="right-scroll-bar-position",Xc="width-before-scroll-bar",dnu="with-scroll-bars-hidden",fnu="--removed-body-scroll-bar-size";function pnu(u,e){return typeof u=="function"?u(e):u&&(u.current=e),u}function hnu(u,e){var t=M.useState(function(){return{value:u,callback:e,facade:{get current(){return t.value},set current(n){var r=t.value;r!==n&&(t.value=n,t.callback(n,r))}}}})[0];return t.callback=e,t.facade}function Cnu(u,e){return hnu(e||null,function(t){return u.forEach(function(n){return pnu(n,t)})})}function mnu(u){return u}function gnu(u,e){e===void 0&&(e=mnu);var t=[],n=!1,r={read:function(){if(n)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return t.length?t[t.length-1]:u},useMedium:function(i){var a=e(i,n);return t.push(a),function(){t=t.filter(function(o){return o!==a})}},assignSyncMedium:function(i){for(n=!0;t.length;){var a=t;t=[],a.forEach(i)}t={push:function(o){return i(o)},filter:function(){return t}}},assignMedium:function(i){n=!0;var a=[];if(t.length){var o=t;t=[],o.forEach(i),a=t}var s=function(){var c=a;a=[],c.forEach(i)},l=function(){return Promise.resolve().then(s)};l(),t={push:function(c){a.push(c),l()},filter:function(c){return a=a.filter(c),t}}}};return r}function Anu(u){u===void 0&&(u={});var e=gnu(null);return e.options=st({async:!0,ssr:!1},u),e}var Mb=function(u){var e=u.sideCar,t=Rd(u,["sideCar"]);if(!e)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var n=e.read();if(!n)throw new Error("Sidecar medium not found");return M.createElement(n,st({},t))};Mb.isSideCarExport=!0;function ynu(u,e){return u.useMedium(e),Mb}var Ub=Anu(),c1=function(){},zd=M.forwardRef(function(u,e){var t=M.useRef(null),n=M.useState({onScrollCapture:c1,onWheelCapture:c1,onTouchMoveCapture:c1}),r=n[0],i=n[1],a=u.forwardProps,o=u.children,s=u.className,l=u.removeScrollBar,c=u.enabled,E=u.shards,d=u.sideCar,f=u.noIsolation,C=u.inert,h=u.allowPinchZoom,B=u.as,g=B===void 0?"div":B,m=Rd(u,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),y=d,v=Cnu([t,e]),w=st(st({},m),r);return M.createElement(M.Fragment,null,c&&M.createElement(y,{sideCar:Ub,removeScrollBar:l,shards:E,noIsolation:f,inert:C,setCallbacks:i,allowPinchZoom:!!h,lockRef:t}),a?M.cloneElement(M.Children.only(o),st(st({},w),{ref:v})):M.createElement(g,st({},w,{className:s,ref:v}),o))});zd.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};zd.classNames={fullWidth:Xc,zeroRight:Yc};var Sg,Bnu=function(){if(Sg)return Sg;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function vnu(){if(!document)return null;var u=document.createElement("style");u.type="text/css";var e=Bnu();return e&&u.setAttribute("nonce",e),u}function Fnu(u,e){u.styleSheet?u.styleSheet.cssText=e:u.appendChild(document.createTextNode(e))}function Dnu(u){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(u)}var bnu=function(){var u=0,e=null;return{add:function(t){u==0&&(e=vnu())&&(Fnu(e,t),Dnu(e)),u++},remove:function(){u--,!u&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}},wnu=function(){var u=bnu();return function(e,t){M.useEffect(function(){return u.add(e),function(){u.remove()}},[e&&t])}},Lb=function(){var u=wnu(),e=function(t){var n=t.styles,r=t.dynamic;return u(n,r),null};return e},xnu={left:0,top:0,right:0,gap:0},E1=function(u){return parseInt(u||"",10)||0},knu=function(u){var e=window.getComputedStyle(document.body),t=e[u==="padding"?"paddingLeft":"marginLeft"],n=e[u==="padding"?"paddingTop":"marginTop"],r=e[u==="padding"?"paddingRight":"marginRight"];return[E1(t),E1(n),E1(r)]},_nu=function(u){if(u===void 0&&(u="margin"),typeof window>"u")return xnu;var e=knu(u),t=document.documentElement.clientWidth,n=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,n-t+e[2]-e[0])}},Snu=Lb(),Pnu=function(u,e,t,n){var r=u.left,i=u.top,a=u.right,o=u.gap;return t===void 0&&(t="margin"),` - .`.concat(dnu,` { + */var fd=M,fz=bh;function pz(u,e){return u===e&&(u!==0||1/u===1/e)||u!==u&&e!==e}var hz=typeof Object.is=="function"?Object.is:pz,Cz=fz.useSyncExternalStore,mz=fd.useRef,gz=fd.useEffect,Az=fd.useMemo,yz=fd.useDebugValue;ED.useSyncExternalStoreWithSelector=function(u,e,t,n,r){var i=mz(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=Az(function(){function s(f){if(!l){if(l=!0,c=f,f=n(f),r!==void 0&&a.hasValue){var C=a.value;if(r(C,f))return E=C}return E=f}if(C=E,hz(c,f))return C;var h=n(f);return r!==void 0&&r(C,h)?C:(c=f,E=h)}var l=!1,c,E,d=t===void 0?null:t;return[function(){return s(e())},d===null?void 0:function(){return s(d())}]},[e,t,n,r]);var o=Cz(u,i[0],i[1]);return gz(function(){a.hasValue=!0,a.value=o},[o]),yz(o),o};cD.exports=ED;var p5=cD.exports;function Bz({queryClient:u=new Py({defaultOptions:{queries:{cacheTime:1e3*60*60*24,networkMode:"offlineFirst",refetchOnWindowFocus:!1,retry:0},mutations:{networkMode:"offlineFirst"}}}),storage:e=iD({storage:typeof window<"u"&&window.localStorage?window.localStorage:rD}),persister:t=typeof window<"u"?lS({key:"cache",storage:e,serialize:r=>r,deserialize:r=>r}):void 0,...n}){const r=Qj({...n,storage:e});return t&&oI({queryClient:u,persister:t,dehydrateOptions:{shouldDehydrateQuery:i=>i.cacheTime!==0&&i.queryKey[0].persist!==!1}}),Object.assign(r,{queryClient:u})}var dD=M.createContext(void 0),pd=M.createContext(void 0);function vz({children:u,config:e}){return M.createElement(dD.Provider,{children:M.createElement($v,{children:u,client:e.queryClient,context:pd}),value:e})}function hd(){const u=M.useContext(dD);if(!u)throw new Error(["`useConfig` must be used within `WagmiConfig`.\n","Read more: https://wagmi.sh/react/WagmiConfig"].join(` +`));return u}var Fz=bh.useSyncExternalStore;function Dz(u){return Array.isArray(u)}function bz(u){if(!T8(u))return!1;const e=u.constructor;if(typeof e>"u")return!0;const t=e.prototype;return!(!T8(t)||!t.hasOwnProperty("isPrototypeOf"))}function T8(u){return Object.prototype.toString.call(u)==="[object Object]"}function wz(u,e,t){return Dz(u)?typeof e=="function"?{...t,queryKey:u,queryFn:e}:{...e,queryKey:u}:u}function xz(u){return JSON.stringify(u,(e,t)=>bz(t)?Object.keys(t).sort().reduce((n,r)=>(n[r]=t[r],n),{}):typeof t=="bigint"?t.toString():t)}function kz(u,e){return typeof u=="function"?u(...e):!!u}function _z(u,e){const t={};return Object.keys(u).forEach(n=>{Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:()=>(e.trackedProps.add(n),u[n])})}),t}function Sz(u,e){const t=Q2({context:u.context}),n=qv(),r=Hv(),i=t.defaultQueryOptions({...u,queryKeyHashFn:xz});i._optimisticResults=n?"isRestoring":"optimistic",i.onError&&(i.onError=re.batchCalls(i.onError)),i.onSuccess&&(i.onSuccess=re.batchCalls(i.onSuccess)),i.onSettled&&(i.onSettled=re.batchCalls(i.onSettled)),i.suspense&&typeof i.staleTime!="number"&&(i.staleTime=1e3),(i.suspense||i.useErrorBoundary)&&(r.isReset()||(i.retryOnMount=!1));const[a]=M.useState(()=>new e(t,i)),o=a.getOptimisticResult(i);if(Fz(M.useCallback(E=>n?()=>{}:a.subscribe(re.batchCalls(E)),[a,n]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),M.useEffect(()=>{r.clearReset()},[r]),M.useEffect(()=>{a.setOptions(i,{listeners:!1})},[i,a]),i.suspense&&o.isLoading&&o.isFetching&&!n)throw a.fetchOptimistic(i).then(({data:E})=>{var d,f;(d=i.onSuccess)==null||d.call(i,E),(f=i.onSettled)==null||f.call(i,E,null)}).catch(E=>{var d,f;r.clearReset(),(d=i.onError)==null||d.call(i,E),(f=i.onSettled)==null||f.call(i,void 0,E)});if(o.isError&&!r.isReset()&&!o.isFetching&&kz(i.useErrorBoundary,[o.error,a.getCurrentQuery()]))throw o.error;const s=o.status==="loading"&&o.fetchStatus==="idle"?"idle":o.status,l=s==="idle",c=s==="loading"&&o.fetchStatus==="fetching";return{...o,defaultedOptions:i,isIdle:l,isLoading:c,observer:a,status:s}}function Nl(u,e,t){const n=Dy(u,e,t);return tI({context:pd,...n})}function Ws(u,e,t){const n=wz(u,e,t),r=Sz({context:pd,...n},Ty),i={data:r.data,error:r.error,fetchStatus:r.fetchStatus,isError:r.isError,isFetched:r.isFetched,isFetchedAfterMount:r.isFetchedAfterMount,isFetching:r.isFetching,isIdle:r.isIdle,isLoading:r.isLoading,isRefetching:r.isRefetching,isSuccess:r.isSuccess,refetch:r.refetch,status:r.status,internal:{dataUpdatedAt:r.dataUpdatedAt,errorUpdatedAt:r.errorUpdatedAt,failureCount:r.failureCount,isFetchedAfterMount:r.isFetchedAfterMount,isLoadingError:r.isLoadingError,isPaused:r.isPaused,isPlaceholderData:r.isPlaceholderData,isPreviousData:r.isPreviousData,isRefetchError:r.isRefetchError,isStale:r.isStale,remove:r.remove}};return r.defaultedOptions.notifyOnChangeProps?i:_z(i,r.observer)}var fD=()=>Q2({context:pd});function Rl({chainId:u}={}){return p5.useSyncExternalStoreWithSelector(e=>Zj({chainId:u},e),()=>Ct({chainId:u}),()=>Ct({chainId:u}),e=>e,(e,t)=>e.uid===t.uid)}function pD({chainId:u}={}){return p5.useSyncExternalStoreWithSelector(e=>uz({chainId:u},e),()=>hf({chainId:u}),()=>hf({chainId:u}),e=>e,(e,t)=>(e==null?void 0:e.uid)===(t==null?void 0:t.uid))}function qs({chainId:u}={}){return Rl({chainId:u}).chain.id}function Pz(){const[,u]=M.useReducer(e=>e+1,0);return u}function I8({chainId:u,scopeKey:e}){return[{entity:"blockNumber",chainId:u,scopeKey:e}]}function Tz({queryKey:[{chainId:u}]}){return Ez({chainId:u})}function h5({cacheTime:u=0,chainId:e,enabled:t=!0,scopeKey:n,staleTime:r,suspense:i,watch:a=!1,onBlock:o,onError:s,onSettled:l,onSuccess:c}={}){const E=qs({chainId:e}),d=Rl({chainId:E}),f=pD({chainId:E}),C=fD();return M.useEffect(()=>!t||!a&&!o?void 0:(f??d).watchBlockNumber({onBlockNumber:g=>{a&&C.setQueryData(I8({chainId:E,scopeKey:n}),g),o&&o(g)},emitOnBegin:!0}),[E,n,o,d,C,a,f,t]),Ws(I8({scopeKey:n,chainId:E}),Tz,{cacheTime:u,enabled:t,staleTime:r,suspense:i,onError:s,onSettled:l,onSuccess:c})}function hD({chainId:u,enabled:e,queryKey:t}){const n=fD(),r=M.useCallback(()=>n.invalidateQueries({queryKey:t},{cancelRefetch:!1}),[n,t]);h5({chainId:u,enabled:e,onBlock:e?r:void 0,scopeKey:e?void 0:"idle"})}var t1=u=>typeof u=="object"&&!Array.isArray(u);function CD(u,e,t=e,n=KE){const r=M.useRef([]),i=p5.useSyncExternalStoreWithSelector(u,e,t,a=>a,(a,o)=>{if(t1(a)&&t1(o)&&r.current.length){for(const s of r.current)if(!n(a[s],o[s]))return!1;return!0}return n(a,o)});if(t1(i)){const a={...i};return Object.defineProperties(a,Object.entries(a).reduce((o,[s,l])=>({...o,[s]:{configurable:!1,enumerable:!0,get:()=>(r.current.includes(s)||r.current.push(s),l)}}),{})),a}return i}function Q0({onConnect:u,onDisconnect:e}={}){const t=hd(),n=M.useCallback(o=>oz(o),[t]),r=CD(n,sD),i=M.useRef(),a=i.current;return M.useEffect(()=>{(a==null?void 0:a.status)!=="connected"&&r.status==="connected"&&(u==null||u({address:r.address,connector:r.connector,isReconnected:(a==null?void 0:a.status)==="reconnecting"||(a==null?void 0:a.status)===void 0})),(a==null?void 0:a.status)==="connected"&&r.status==="disconnected"&&(e==null||e()),i.current=r},[u,e,a,r]),r}function Iz({address:u,chainId:e,formatUnits:t,scopeKey:n,token:r}){return[{entity:"balance",address:u,chainId:e,formatUnits:t,scopeKey:n,token:r}]}function Oz({queryKey:[{address:u,chainId:e,formatUnits:t,token:n}]}){if(!u)throw new Error("address is required");return rz({address:u,chainId:e,formatUnits:t,token:n})}function mD({address:u,cacheTime:e,chainId:t,enabled:n=!0,formatUnits:r,scopeKey:i,staleTime:a,suspense:o,token:s,watch:l,onError:c,onSettled:E,onSuccess:d}={}){const f=qs({chainId:t}),C=M.useMemo(()=>Iz({address:u,chainId:f,formatUnits:r,scopeKey:i,token:s}),[u,f,r,i,s]),h=Ws(C,Oz,{cacheTime:e,enabled:!!(n&&u),staleTime:a,suspense:o,onError:c,onSettled:E,onSuccess:d});return hD({chainId:f,enabled:!!(n&&l&&u),queryKey:C}),h}var Nz=u=>[{entity:"connect",...u}],Rz=u=>{const{connector:e,chainId:t}=u;if(!e)throw new Error("connector is required");return Vj({connector:e,chainId:t})};function jz({chainId:u,connector:e,onError:t,onMutate:n,onSettled:r,onSuccess:i}={}){const a=hd(),{data:o,error:s,isError:l,isIdle:c,isLoading:E,isSuccess:d,mutate:f,mutateAsync:C,reset:h,status:B,variables:g}=Nl(Nz({connector:e,chainId:u}),Rz,{onError:t,onMutate:n,onSettled:r,onSuccess:i}),m=M.useCallback(v=>f({chainId:(v==null?void 0:v.chainId)??u,connector:(v==null?void 0:v.connector)??e}),[u,e,f]),y=M.useCallback(v=>C({chainId:(v==null?void 0:v.chainId)??u,connector:(v==null?void 0:v.connector)??e}),[u,e,C]);return{connect:m,connectAsync:y,connectors:a.connectors,data:o,error:s,isError:l,isIdle:c,isLoading:E,isSuccess:d,pendingConnector:g==null?void 0:g.connector,reset:h,status:B,variables:g}}var zz=[{entity:"disconnect"}],Mz=()=>Jj();function C5({onError:u,onMutate:e,onSettled:t,onSuccess:n}={}){const{error:r,isError:i,isIdle:a,isLoading:o,isSuccess:s,mutate:l,mutateAsync:c,reset:E,status:d}=Nl(zz,Mz,{...u?{onError(f,C,h){u(f,h)}}:{},onMutate:e,...t?{onSettled(f,C,h,B){t(C,B)}}:{},...n?{onSuccess(f,C,h){n(h)}}:{}});return{disconnect:l,disconnectAsync:c,error:r,isError:i,isIdle:a,isLoading:o,isSuccess:s,reset:E,status:d}}function ga(){const u=hd(),e=M.useCallback(t=>sz(t),[u]);return CD(e,f5)}var Uz=u=>[{entity:"signMessage",...u}],Lz=u=>{const{message:e}=u;if(!e)throw new Error("message is required");return iz({message:e})};function $z({message:u,onError:e,onMutate:t,onSettled:n,onSuccess:r}={}){const{data:i,error:a,isError:o,isIdle:s,isLoading:l,isSuccess:c,mutate:E,mutateAsync:d,reset:f,status:C,variables:h}=Nl(Uz({message:u}),Lz,{onError:e,onMutate:t,onSettled:n,onSuccess:r}),B=M.useCallback(m=>E(m||{message:u}),[u,E]),g=M.useCallback(m=>d(m||{message:u}),[u,d]);return{data:i,error:a,isError:o,isIdle:s,isLoading:l,isSuccess:c,reset:f,signMessage:B,signMessageAsync:g,status:C,variables:h}}var Wz=u=>[{entity:"switchNetwork",...u}],qz=u=>{const{chainId:e}=u;if(!e)throw new Error("chainId is required");return az({chainId:e})};function Hz({chainId:u,throwForSwitchChainNotSupported:e,onError:t,onMutate:n,onSettled:r,onSuccess:i}={}){var x;const a=hd(),o=Pz(),{data:s,error:l,isError:c,isIdle:E,isLoading:d,isSuccess:f,mutate:C,mutateAsync:h,reset:B,status:g,variables:m}=Nl(Wz({chainId:u}),qz,{onError:t,onMutate:n,onSettled:r,onSuccess:i}),y=M.useCallback(j=>C({chainId:j??u}),[u,C]),v=M.useCallback(j=>h({chainId:j??u}),[u,h]);M.useEffect(()=>a.subscribe(({chains:O,connector:Z})=>({chains:O,connector:Z}),o),[a,o]);let w,D;const p=!!((x=a.connector)!=null&&x.switchChain);return(e||p)&&(w=y,D=v),{chains:a.chains??[],data:s,error:l,isError:c,isIdle:E,isLoading:d,isSuccess:f,pendingChainId:m==null?void 0:m.chainId,reset:B,status:g,switchNetwork:w,switchNetworkAsync:D,variables:m}}function Gz({address:u,chainId:e,abi:t,listener:n,eventName:r}={}){const i=Rl({chainId:e}),a=pD({chainId:e}),o=M.useRef();return M.useEffect(()=>{if(!t||!u||!r)return;const s=a||i;return o.current=s.watchContractEvent({abi:t,address:u,eventName:r,onLogs:n}),o.current},[t,u,r,i.uid,a==null?void 0:a.uid]),o.current}function Kz({account:u,address:e,args:t,blockNumber:n,blockTag:r,chainId:i,functionName:a,scopeKey:o}){return[{entity:"readContract",account:u,address:e,args:t,blockNumber:n,blockTag:r,chainId:i,functionName:a,scopeKey:o}]}function Qz({abi:u}){return async({queryKey:[{account:e,address:t,args:n,blockNumber:r,blockTag:i,chainId:a,functionName:o}]})=>{if(!u)throw new Error("abi is required");if(!t)throw new Error("address is required");return await oD({account:e,address:t,args:n,blockNumber:r,blockTag:i,chainId:a,abi:u,functionName:o})??null}}function Na({abi:u,address:e,account:t,args:n,blockNumber:r,blockTag:i,cacheOnBlock:a=!1,cacheTime:o,chainId:s,enabled:l=!0,functionName:c,isDataEqual:E,keepPreviousData:d,onError:f,onSettled:C,onSuccess:h,scopeKey:B,select:g,staleTime:m,structuralSharing:y=(D,p)=>KE(D,p)?D:Tp(D,p),suspense:v,watch:w}={}){const D=qs({chainId:s}),{data:p}=h5({chainId:D,enabled:w||a,scopeKey:w||a?void 0:"idle",watch:w}),x=r??p,j=M.useMemo(()=>Kz({account:t,address:e,args:n,blockNumber:a?x:void 0,blockTag:i,chainId:D,functionName:c,scopeKey:B}),[t,e,n,x,i,a,D,c,B]),O=M.useMemo(()=>{let Z=!!(l&&u&&e&&c);return a&&(Z=!!(Z&&x)),Z},[u,e,x,a,l,c]);return hD({chainId:D,enabled:!!(O&&w&&!a),queryKey:j}),Ws(j,Qz({abi:u}),{cacheTime:o,enabled:O,isDataEqual:E,keepPreviousData:d,select:g,staleTime:m,structuralSharing:y,suspense:v,onError:f,onSettled:C,onSuccess:h})}function Vz({address:u,abi:e,functionName:t,...n}){const{args:r,accessList:i,account:a,dataSuffix:o,gas:s,gasPrice:l,maxFeePerGas:c,maxPriorityFeePerGas:E,nonce:d,request:f,value:C}=n;return[{entity:"writeContract",address:u,args:r,abi:e,accessList:i,account:a,dataSuffix:o,functionName:t,gas:s,gasPrice:l,maxFeePerGas:c,maxPriorityFeePerGas:E,nonce:d,request:f,value:C}]}function Jz(u){if(u.mode==="prepared"){if(!u.request)throw new Error("request is required");return P8({mode:"prepared",request:u.request})}if(!u.address)throw new Error("address is required");if(!u.abi)throw new Error("abi is required");if(!u.functionName)throw new Error("functionName is required");return P8({address:u.address,args:u.args,chainId:u.chainId,abi:u.abi,functionName:u.functionName,accessList:u.accessList,account:u.account,dataSuffix:u.dataSuffix,gas:u.gas,gasPrice:u.gasPrice,maxFeePerGas:u.maxFeePerGas,maxPriorityFeePerGas:u.maxPriorityFeePerGas,nonce:u.nonce,value:u.value})}function Yz(u){const{address:e,abi:t,args:n,chainId:r,functionName:i,mode:a,request:o,dataSuffix:s}=u,{accessList:l,account:c,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,value:B}=qj(u),{data:g,error:m,isError:y,isIdle:v,isLoading:w,isSuccess:D,mutate:p,mutateAsync:x,reset:j,status:O,variables:Z}=Nl(Vz({address:e,abi:t,functionName:i,chainId:r,mode:a,args:n,accessList:l,account:c,dataSuffix:s,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,request:o,value:B}),Jz,{onError:u.onError,onMutate:u.onMutate,onSettled:u.onSettled,onSuccess:u.onSuccess}),ou=M.useMemo(()=>u.mode==="prepared"?o?()=>p({mode:"prepared",request:u.request,chainId:u.chainId}):void 0:hu=>p({address:e,args:n,abi:t,functionName:i,chainId:r,accessList:l,account:c,dataSuffix:s,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,value:B,...hu}),[l,c,t,e,n,r,u.chainId,u.mode,u.request,s,i,E,d,f,C,p,h,o,B]),su=M.useMemo(()=>u.mode==="prepared"?o?()=>x({mode:"prepared",request:u.request}):void 0:hu=>x({address:e,args:n,abi:t,chainId:r,functionName:i,accessList:l,account:c,dataSuffix:s,gas:E,gasPrice:d,maxFeePerGas:f,maxPriorityFeePerGas:C,nonce:h,value:B,...hu}),[l,c,t,e,n,r,u.mode,u.request,s,i,E,d,f,C,x,h,o,B]);return{data:g,error:m,isError:y,isIdle:v,isLoading:w,isSuccess:D,reset:j,status:O,variables:Z,write:ou,writeAsync:su}}function Xz({name:u,chainId:e,scopeKey:t}){return[{entity:"ensAvatar",name:u,chainId:e,scopeKey:t}]}function Zz({queryKey:[{name:u,chainId:e}]}){if(!u)throw new Error("name is required");return lz({name:u,chainId:e})}function uM({cacheTime:u,chainId:e,enabled:t=!0,name:n,scopeKey:r,staleTime:i=1e3*60*60*24,suspense:a,onError:o,onSettled:s,onSuccess:l}={}){const c=qs({chainId:e});return Ws(Xz({name:n,chainId:c,scopeKey:r}),Zz,{cacheTime:u,enabled:!!(t&&n&&c),staleTime:i,suspense:a,onError:o,onSettled:s,onSuccess:l})}function eM({address:u,chainId:e,scopeKey:t}){return[{entity:"ensName",address:u,chainId:e,scopeKey:t}]}function tM({queryKey:[{address:u,chainId:e}]}){if(!u)throw new Error("address is required");return cz({address:u,chainId:e})}function nM({address:u,cacheTime:e,chainId:t,enabled:n=!0,scopeKey:r,staleTime:i=1e3*60*60*24,suspense:a,onError:o,onSettled:s,onSuccess:l}={}){const c=qs({chainId:t});return Ws(eM({address:u,chainId:c,scopeKey:r}),tM,{cacheTime:e,enabled:!!(n&&u&&c),staleTime:i,suspense:a,onError:o,onSettled:s,onSuccess:l})}function rM({confirmations:u,chainId:e,hash:t,scopeKey:n,timeout:r}){return[{entity:"waitForTransaction",confirmations:u,chainId:e,hash:t,scopeKey:n,timeout:r}]}function iM({onReplaced:u}){return({queryKey:[{chainId:e,confirmations:t,hash:n,timeout:r}]})=>{if(!n)throw new Error("hash is required");return dz({chainId:e,confirmations:t,hash:n,onReplaced:u,timeout:r})}}function aM({chainId:u,confirmations:e,hash:t,timeout:n,cacheTime:r,enabled:i=!0,scopeKey:a,staleTime:o,suspense:s,onError:l,onReplaced:c,onSettled:E,onSuccess:d}={}){const f=qs({chainId:u});return Ws(rM({chainId:f,confirmations:e,hash:t,scopeKey:a,timeout:n}),iM({onReplaced:c}),{cacheTime:r,enabled:!!(i&&t),staleTime:o,suspense:s,onError:l,onSettled:E,onSuccess:d})}function gD(u){var e,t,n="";if(typeof u=="string"||typeof u=="number")n+=u;else if(typeof u=="object")if(Array.isArray(u))for(e=0;e-1}var iL=rL,aL=Ad;function oL(u,e){var t=this.__data__,n=aL(t,u);return n<0?(++this.size,t.push([u,e])):t[n][1]=e,this}var sL=oL,lL=HU,cL=ZU,EL=tL,dL=iL,fL=sL;function Gs(u){var e=-1,t=u==null?0:u.length;for(this.clear();++e-1&&u%1==0&&u-1&&u%1==0&&u<=R$}var b5=j$,z$=B5,M$=D5,U$=fn,L$=vd,$$=b5,W$=Ll;function q$(u,e,t){e=z$(e,u);for(var n=-1,r=e.length,i=!1;++n-1}var RW=NW;function jW(u,e,t){for(var n=-1,r=u==null?0:u.length;++n=nq){var l=e?null:eq(u);if(l)return tq(l);a=!1,r=uq,s=new YW}else s=e?[]:o;u:for(;++n{const o=[],s=[];return o.push(a),a||o.push(i.locale),i.enableFallback&&o.push(i.defaultLocale),o.filter(Boolean).map(l=>l.toString()).forEach(function(l){if(s.includes(l)||s.push(l),!i.enableFallback)return;const c=l.split("-");c.length===3&&s.push(`${c[0]}-${c[1]}`),s.push(c[0])}),(0,t.default)(s)};u.defaultLocaleResolver=n;class r{constructor(a){this.i18n=a,this.registry={},this.register("default",u.defaultLocaleResolver)}register(a,o){if(typeof o!="function"){const s=o;o=()=>s}this.registry[a]=o}get(a){let o=this.registry[a]||this.registry[this.i18n.locale]||this.registry.default;return typeof o=="function"&&(o=o(this.i18n,a)),o instanceof Array||(o=[o]),o}}u.Locales=r})(w5);var k5={};const mu=(u,e)=>e?"other":u==1?"one":"other",rr=(u,e)=>e?"other":u==0||u==1?"one":"other",Vs=(u,e)=>e?"other":u>=0&&u<=1?"one":"other",gt=(u,e)=>{const t=String(u).split("."),n=!t[1];return e?"other":u==1&&n?"one":"other"},Zu=(u,e)=>"other",ir=(u,e)=>e?"other":u==1?"one":u==2?"two":"other",lq=mu,cq=rr,Eq=Vs,dq=mu,fq=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-2);return e?"other":u==0?"zero":u==1?"one":u==2?"two":r>=3&&r<=10?"few":r>=11&&r<=99?"many":"other"},pq=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-2);return e?"other":u==0?"zero":u==1?"one":u==2?"two":r>=3&&r<=10?"few":r>=11&&r<=99?"many":"other"},hq=(u,e)=>e?u==1||u==5||u==7||u==8||u==9||u==10?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u>=0&&u<=1?"one":"other",Cq=mu,mq=gt,gq=(u,e)=>{const t=String(u).split("."),n=t[0],r=n.slice(-1),i=n.slice(-2),a=n.slice(-3);return e?r==1||r==2||r==5||r==7||r==8||i==20||i==50||i==70||i==80?"one":r==3||r==4||a==100||a==200||a==300||a==400||a==500||a==600||a==700||a==800||a==900?"few":n==0||r==6||i==40||i==60||i==90?"many":"other":u==1?"one":"other"},Aq=(u,e)=>u==1?"one":"other",yq=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2);return e?(r==2||r==3)&&i!=12&&i!=13?"few":"other":r==1&&i!=11?"one":r>=2&&r<=4&&(i<12||i>14)?"few":n&&r==0||r>=5&&r<=9||i>=11&&i<=14?"many":"other"},Bq=mu,vq=mu,Fq=mu,Dq=rr,bq=Zu,wq=(u,e)=>e?u==1||u==5||u==7||u==8||u==9||u==10?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u>=0&&u<=1?"one":"other",xq=Zu,kq=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2),a=n&&t[0].slice(-6);return e?"other":r==1&&i!=11&&i!=71&&i!=91?"one":r==2&&i!=12&&i!=72&&i!=92?"two":(r==3||r==4||r==9)&&(i<10||i>19)&&(i<70||i>79)&&(i<90||i>99)?"few":u!=0&&n&&a==0?"many":"other"},_q=mu,Sq=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?"other":i&&a==1&&o!=11||s==1&&l!=11?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(l<12||l>14)?"few":"other"},Pq=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?u==1||u==3?"one":u==2?"two":u==4?"few":"other":u==1&&r?"one":n!=0&&i==0&&r?"many":"other"},Tq=mu,Iq=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=r.slice(-1);return e?"other":i&&(n==1||n==2||n==3)||i&&a!=4&&a!=6&&a!=9||!i&&o!=4&&o!=6&&o!=9?"one":"other"},Oq=mu,Nq=mu,Rq=mu,jq=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1];return e?"other":u==1&&r?"one":n>=2&&n<=4&&r?"few":r?"other":"many"},zq=(u,e)=>e?u==0||u==7||u==8||u==9?"zero":u==1?"one":u==2?"two":u==3||u==4?"few":u==5||u==6?"many":"other":u==0?"zero":u==1?"one":u==2?"two":u==3?"few":u==6?"many":"other",Mq=(u,e)=>{const t=String(u).split("."),n=t[0],r=Number(t[0])==u;return e?"other":u==1||!r&&(n==0||n==1)?"one":"other"},Uq=gt,Lq=Vs,$q=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-2),o=r.slice(-2);return e?"other":i&&a==1||o==1?"one":i&&a==2||o==2?"two":i&&(a==3||a==4)||o==3||o==4?"few":"other"},Wq=mu,qq=Zu,Hq=mu,Gq=mu,Kq=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u,i=r&&t[0].slice(-1),a=r&&t[0].slice(-2);return e?i==1&&a!=11?"one":i==2&&a!=12?"two":i==3&&a!=13?"few":"other":u==1&&n?"one":"other"},Qq=mu,Vq=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?"other":u==1?"one":n!=0&&i==0&&r?"many":"other"},Jq=gt,Yq=mu,Xq=Vs,Zq=(u,e)=>e?"other":u>=0&&u<2?"one":"other",uH=gt,eH=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=r.slice(-1);return e?u==1?"one":"other":i&&(n==1||n==2||n==3)||i&&a!=4&&a!=6&&a!=9||!i&&o!=4&&o!=6&&o!=9?"one":"other"},tH=mu,nH=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?u==1?"one":"other":u>=0&&u<2?"one":n!=0&&i==0&&r?"many":"other"},rH=mu,iH=gt,aH=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?u==1?"one":"other":u==1?"one":u==2?"two":n&&u>=3&&u<=6?"few":n&&u>=7&&u<=10?"many":"other"},oH=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?u==1||u==11?"one":u==2||u==12?"two":u==3||u==13?"few":"other":u==1||u==11?"one":u==2||u==12?"two":n&&u>=3&&u<=10||n&&u>=13&&u<=19?"few":"other"},sH=gt,lH=mu,cH=(u,e)=>e?u==1?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u>=0&&u<=1?"one":"other",EH=rr,dH=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return e?"other":r&&i==1?"one":r&&i==2?"two":r&&(a==0||a==20||a==40||a==60||a==80)?"few":r?"other":"many"},fH=mu,pH=mu,hH=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1];return e?"other":n==1&&r||n==0&&!r?"one":n==2&&r?"two":"other"},CH=(u,e)=>e?u==1?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u>=0&&u<=1?"one":"other",mH=Zu,gH=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?"other":i&&a==1&&o!=11||s==1&&l!=11?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(l<12||l>14)?"few":"other"},AH=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-2),o=r.slice(-2);return e?"other":i&&a==1||o==1?"one":i&&a==2||o==2?"two":i&&(a==3||a==4)||o==3||o==4?"few":"other"},yH=(u,e)=>e?u==1||u==5?"one":"other":u==1?"one":"other",BH=(u,e)=>e?u==1?"one":"other":u>=0&&u<2?"one":"other",vH=gt,FH=Zu,DH=Zu,bH=Zu,wH=gt,xH=(u,e)=>{const t=String(u).split("."),n=t[0],r=(t[1]||"").replace(/0+$/,""),i=Number(t[0])==u,a=n.slice(-1),o=n.slice(-2);return e?"other":i&&a==1&&o!=11||r%10==1&&r%100!=11?"one":"other"},kH=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?u==11||u==8||u==80||u==800?"many":"other":u==1&&r?"one":n!=0&&i==0&&r?"many":"other"},_H=ir,SH=Zu,PH=Zu,TH=mu,IH=mu,OH=Zu,NH=Zu,RH=(u,e)=>{const t=String(u).split("."),n=t[0],r=n.slice(-2);return e?n==1?"one":n==0||r>=2&&r<=20||r==40||r==60||r==80?"many":"other":u==1?"one":"other"},jH=(u,e)=>e?"other":u>=0&&u<2?"one":"other",zH=mu,MH=mu,UH=Zu,LH=Zu,$H=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1);return e?r==6||r==9||n&&r==0&&u!=0?"many":"other":u==1?"one":"other"},WH=mu,qH=mu,HH=Zu,GH=Vs,KH=Zu,QH=mu,VH=mu,JH=(u,e)=>e?"other":u==0?"zero":u==1?"one":"other",YH=mu,XH=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-2),i=n&&t[0].slice(-3),a=n&&t[0].slice(-5),o=n&&t[0].slice(-6);return e?n&&u>=1&&u<=4||r>=1&&r<=4||r>=21&&r<=24||r>=41&&r<=44||r>=61&&r<=64||r>=81&&r<=84?"one":u==5||r==5?"many":"other":u==0?"zero":u==1?"one":r==2||r==22||r==42||r==62||r==82||n&&i==0&&(a>=1e3&&a<=2e4||a==4e4||a==6e4||a==8e4)||u!=0&&o==1e5?"two":r==3||r==23||r==43||r==63||r==83?"few":u!=1&&(r==1||r==21||r==41||r==61||r==81)?"many":"other"},ZH=mu,uG=(u,e)=>{const t=String(u).split("."),n=t[0];return e?"other":u==0?"zero":(n==0||n==1)&&u!=0?"one":"other"},eG=mu,tG=mu,nG=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u;return e?u==11||u==8||r&&u>=80&&u<=89||r&&u>=800&&u<=899?"many":"other":u==1&&n?"one":"other"},rG=Zu,iG=rr,aG=(u,e)=>e&&u==1?"one":"other",oG=(u,e)=>{const t=String(u).split("."),n=t[1]||"",r=Number(t[0])==u,i=r&&t[0].slice(-1),a=r&&t[0].slice(-2);return e?"other":i==1&&(a<11||a>19)?"one":i>=2&&i<=9&&(a<11||a>19)?"few":n!=0?"many":"other"},sG=(u,e)=>{const t=String(u).split("."),n=t[1]||"",r=n.length,i=Number(t[0])==u,a=i&&t[0].slice(-1),o=i&&t[0].slice(-2),s=n.slice(-2),l=n.slice(-1);return e?"other":i&&a==0||o>=11&&o<=19||r==2&&s>=11&&s<=19?"zero":a==1&&o!=11||r==2&&l==1&&s!=11||r!=2&&l==1?"one":"other"},lG=mu,cG=rr,EG=mu,dG=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?a==1&&o!=11?"one":a==2&&o!=12?"two":(a==7||a==8)&&o!=17&&o!=18?"many":"other":i&&a==1&&o!=11||s==1&&l!=11?"one":"other"},fG=mu,pG=mu,hG=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u,i=r&&t[0].slice(-2);return e?u==1?"one":"other":u==1&&n?"one":!n||u==0||u!=1&&i>=1&&i<=19?"few":"other"},CG=(u,e)=>e?u==1?"one":u==2||u==3?"two":u==4?"few":"other":u==1?"one":"other",mG=(u,e)=>e&&u==1?"one":"other",gG=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-2);return e?"other":u==1?"one":u==2?"two":u==0||r>=3&&r<=10?"few":r>=11&&r<=19?"many":"other"},AG=Zu,yG=mu,BG=ir,vG=mu,FG=mu,DG=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?n&&u>=1&&u<=4?"one":"other":u==1?"one":"other"},bG=gt,wG=mu,xG=mu,kG=mu,_G=Zu,SG=mu,PG=rr,TG=mu,IG=mu,OG=mu,NG=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?u==1||u==5||n&&u>=7&&u<=9?"one":u==2||u==3?"two":u==4?"few":u==6?"many":"other":u==1?"one":"other"},RG=mu,jG=Zu,zG=rr,MG=mu,UG=Vs,LG=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return e?"other":u==1&&r?"one":r&&i>=2&&i<=4&&(a<12||a>14)?"few":r&&n!=1&&(i==0||i==1)||r&&i>=5&&i<=9||r&&a>=12&&a<=14?"many":"other"},$G=(u,e)=>{const t=String(u).split("."),n=t[1]||"",r=n.length,i=Number(t[0])==u,a=i&&t[0].slice(-1),o=i&&t[0].slice(-2),s=n.slice(-2),l=n.slice(-1);return e?"other":i&&a==0||o>=11&&o<=19||r==2&&s>=11&&s<=19?"zero":a==1&&o!=11||r==2&&l==1&&s!=11||r!=2&&l==1?"one":"other"},WG=mu,qG=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?"other":n==0||n==1?"one":n!=0&&i==0&&r?"many":"other"},HG=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?"other":u==1&&r?"one":n!=0&&i==0&&r?"many":"other"},GG=mu,KG=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u,i=r&&t[0].slice(-2);return e?u==1?"one":"other":u==1&&n?"one":!n||u==0||u!=1&&i>=1&&i<=19?"few":"other"},QG=mu,VG=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return e?"other":r&&i==1&&a!=11?"one":r&&i>=2&&i<=4&&(a<12||a>14)?"few":r&&i==0||r&&i>=5&&i<=9||r&&a>=11&&a<=14?"many":"other"},JG=mu,YG=Zu,XG=mu,ZG=ir,uK=(u,e)=>{const t=String(u).split("."),n=!t[1];return e?u==11||u==8||u==80||u==800?"many":"other":u==1&&n?"one":"other"},eK=(u,e)=>{const t=String(u).split("."),n=!t[1];return e?u==11||u==8||u==80||u==800?"many":"other":u==1&&n?"one":"other"},tK=mu,nK=mu,rK=ir,iK=mu,aK=Zu,oK=Zu,sK=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?"other":i&&a==1&&o!=11||s==1&&l!=11?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(l<12||l>14)?"few":"other"},lK=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?"other":u>=0&&u<=1?"one":n&&u>=2&&u<=10?"few":"other"},cK=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"";return e?"other":u==0||u==1||n==0&&r==1?"one":"other"},EK=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1];return e?"other":u==1&&r?"one":n>=2&&n<=4&&r?"few":r?"other":"many"},dK=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-2);return e?"other":r&&i==1?"one":r&&i==2?"two":r&&(i==3||i==4)||!r?"few":"other"},fK=ir,pK=ir,hK=ir,CK=ir,mK=ir,gK=mu,AK=mu,yK=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2);return e?u==1?"one":r==4&&i!=14?"many":"other":u==1?"one":"other"},BK=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),l=r.slice(-2);return e?"other":i&&a==1&&o!=11||s==1&&l!=11?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(l<12||l>14)?"few":"other"},vK=mu,FK=mu,DK=mu,bK=Zu,wK=(u,e)=>{const t=String(u).split("."),n=!t[1],r=Number(t[0])==u,i=r&&t[0].slice(-1),a=r&&t[0].slice(-2);return e?(i==1||i==2)&&a!=11&&a!=12?"one":"other":u==1&&n?"one":"other"},xK=gt,kK=mu,_K=mu,SK=mu,PK=mu,TK=Zu,IK=rr,OK=mu,NK=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u,r=n&&t[0].slice(-1);return e?r==6||r==9||u==10?"few":"other":u==1?"one":"other"},RK=(u,e)=>{const t=String(u).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=r.slice(-1);return e?u==1?"one":"other":i&&(n==1||n==2||n==3)||i&&a!=4&&a!=6&&a!=9||!i&&o!=4&&o!=6&&o!=9?"one":"other"},jK=mu,zK=Zu,MK=Zu,UK=mu,LK=mu,$K=(u,e)=>{const t=String(u).split("."),n=Number(t[0])==u;return e?"other":u==0||u==1||n&&u>=11&&u<=99?"one":"other"},WK=mu,qK=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=Number(t[0])==u,a=i&&t[0].slice(-1),o=i&&t[0].slice(-2),s=n.slice(-1),l=n.slice(-2);return e?a==3&&o!=13?"few":"other":r&&s==1&&l!=11?"one":r&&s>=2&&s<=4&&(l<12||l>14)?"few":r&&s==0||r&&s>=5&&s<=9||r&&l>=11&&l<=14?"many":"other"},HK=Zu,GK=gt,KK=mu,QK=mu,VK=(u,e)=>{const t=String(u).split("."),n=t[0],r=!t[1],i=n.slice(-6);return e?u==11||u==8||u==80||u==800?"many":"other":u==1&&r?"one":n!=0&&i==0&&r?"many":"other"},JK=(u,e)=>e&&u==1?"one":"other",YK=mu,XK=mu,ZK=rr,uQ=mu,eQ=Zu,tQ=mu,nQ=mu,rQ=gt,iQ=Zu,aQ=Zu,oQ=Zu,sQ=Vs,lQ=Object.freeze(Object.defineProperty({__proto__:null,af:lq,ak:cq,am:Eq,an:dq,ar:fq,ars:pq,as:hq,asa:Cq,ast:mq,az:gq,bal:Aq,be:yq,bem:Bq,bez:vq,bg:Fq,bho:Dq,bm:bq,bn:wq,bo:xq,br:kq,brx:_q,bs:Sq,ca:Pq,ce:Tq,ceb:Iq,cgg:Oq,chr:Nq,ckb:Rq,cs:jq,cy:zq,da:Mq,de:Uq,doi:Lq,dsb:$q,dv:Wq,dz:qq,ee:Hq,el:Gq,en:Kq,eo:Qq,es:Vq,et:Jq,eu:Yq,fa:Xq,ff:Zq,fi:uH,fil:eH,fo:tH,fr:nH,fur:rH,fy:iH,ga:aH,gd:oH,gl:sH,gsw:lH,gu:cH,guw:EH,gv:dH,ha:fH,haw:pH,he:hH,hi:CH,hnj:mH,hr:gH,hsb:AH,hu:yH,hy:BH,ia:vH,id:FH,ig:DH,ii:bH,io:wH,is:xH,it:kH,iu:_H,ja:SH,jbo:PH,jgo:TH,jmc:IH,jv:OH,jw:NH,ka:RH,kab:jH,kaj:zH,kcg:MH,kde:UH,kea:LH,kk:$H,kkj:WH,kl:qH,km:HH,kn:GH,ko:KH,ks:QH,ksb:VH,ksh:JH,ku:YH,kw:XH,ky:ZH,lag:uG,lb:eG,lg:tG,lij:nG,lkt:rG,ln:iG,lo:aG,lt:oG,lv:sG,mas:lG,mg:cG,mgo:EG,mk:dG,ml:fG,mn:pG,mo:hG,mr:CG,ms:mG,mt:gG,my:AG,nah:yG,naq:BG,nb:vG,nd:FG,ne:DG,nl:bG,nn:wG,nnh:xG,no:kG,nqo:_G,nr:SG,nso:PG,ny:TG,nyn:IG,om:OG,or:NG,os:RG,osa:jG,pa:zG,pap:MG,pcm:UG,pl:LG,prg:$G,ps:WG,pt:qG,pt_PT:HG,rm:GG,ro:KG,rof:QG,ru:VG,rwk:JG,sah:YG,saq:XG,sat:ZG,sc:uK,scn:eK,sd:tK,sdh:nK,se:rK,seh:iK,ses:aK,sg:oK,sh:sK,shi:lK,si:cK,sk:EK,sl:dK,sma:fK,smi:pK,smj:hK,smn:CK,sms:mK,sn:gK,so:AK,sq:yK,sr:BK,ss:vK,ssy:FK,st:DK,su:bK,sv:wK,sw:xK,syr:kK,ta:_K,te:SK,teo:PK,th:TK,ti:IK,tig:OK,tk:NK,tl:RK,tn:jK,to:zK,tpi:MK,tr:UK,ts:LK,tzm:$K,ug:WK,uk:qK,und:HK,ur:GK,uz:KK,ve:QK,vec:VK,vi:JK,vo:YK,vun:XK,wa:ZK,wae:uQ,wo:eQ,xh:tQ,xog:nQ,yi:rQ,yo:iQ,yue:aQ,zh:oQ,zu:sQ},Symbol.toStringTag,{value:"Module"})),cQ=bp(lQ);(function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.Pluralization=u.defaultPluralizer=u.useMakePlural=void 0;const e=cQ;function t({pluralizer:r,includeZero:i=!0,ordinal:a=!1}){return function(o,s){return[i&&s===0?"zero":"",r(s,a)].filter(Boolean)}}u.useMakePlural=t,u.defaultPluralizer=t({pluralizer:e.en,includeZero:!0});class n{constructor(i){this.i18n=i,this.registry={},this.register("default",u.defaultPluralizer)}register(i,a){this.registry[i]=a}get(i){return this.registry[i]||this.registry[this.i18n.locale]||this.registry.default}}u.Pluralization=n})(k5);var _5={},S5={},Fd={};function EQ(u,e,t){var n=-1,r=u.length;e<0&&(e=-e>r?0:r+e),t=t>r?r:t,t<0&&(t+=r),r=e>t?0:t-e>>>0,e>>>=0;for(var i=Array(r);++n=n?u:fQ(u,e,t)}var hQ=pQ,CQ="\\ud800-\\udfff",mQ="\\u0300-\\u036f",gQ="\\ufe20-\\ufe2f",AQ="\\u20d0-\\u20ff",yQ=mQ+gQ+AQ,BQ="\\ufe0e\\ufe0f",vQ="\\u200d",FQ=RegExp("["+vQ+CQ+yQ+BQ+"]");function DQ(u){return FQ.test(u)}var RD=DQ;function bQ(u){return u.split("")}var wQ=bQ,jD="\\ud800-\\udfff",xQ="\\u0300-\\u036f",kQ="\\ufe20-\\ufe2f",_Q="\\u20d0-\\u20ff",SQ=xQ+kQ+_Q,PQ="\\ufe0e\\ufe0f",TQ="["+jD+"]",Cf="["+SQ+"]",mf="\\ud83c[\\udffb-\\udfff]",IQ="(?:"+Cf+"|"+mf+")",zD="[^"+jD+"]",MD="(?:\\ud83c[\\udde6-\\uddff]){2}",UD="[\\ud800-\\udbff][\\udc00-\\udfff]",OQ="\\u200d",LD=IQ+"?",$D="["+PQ+"]?",NQ="(?:"+OQ+"(?:"+[zD,MD,UD].join("|")+")"+$D+LD+")*",RQ=$D+LD+NQ,jQ="(?:"+[zD+Cf+"?",Cf,MD,UD,TQ].join("|")+")",zQ=RegExp(mf+"(?="+mf+")|"+jQ+RQ,"g");function MQ(u){return u.match(zQ)||[]}var UQ=MQ,LQ=wQ,$Q=RD,WQ=UQ;function qQ(u){return $Q(u)?WQ(u):LQ(u)}var HQ=qQ,GQ=hQ,KQ=RD,QQ=HQ,VQ=Qs;function JQ(u){return function(e){e=VQ(e);var t=KQ(e)?QQ(e):void 0,n=t?t[0]:e.charAt(0),r=t?GQ(t,1).join(""):e.slice(1);return n[u]()+r}}var YQ=JQ,XQ=YQ,ZQ=XQ("toUpperCase"),uV=ZQ,eV=Qs,tV=uV;function nV(u){return tV(eV(u).toLowerCase())}var rV=nV;function iV(u,e,t,n){var r=-1,i=u==null?0:u.length;for(n&&i&&(t=u[++r]);++r(e[(0,gJ.default)(t)]=u[t],e),{}):{}}Fd.camelCaseKeys=AJ;var Dd={},oi={};Object.defineProperty(oi,"__esModule",{value:!0});oi.isSet=void 0;function yJ(u){return u!=null}oi.isSet=yJ;Object.defineProperty(Dd,"__esModule",{value:!0});Dd.createTranslationOptions=void 0;const J8=oi;function BJ(u,e,t){let n=[{scope:e}];if((0,J8.isSet)(t.defaults)&&(n=n.concat(t.defaults)),(0,J8.isSet)(t.defaultValue)){const r=typeof t.defaultValue=="function"?t.defaultValue(u,e,t):t.defaultValue;n.push({message:r}),delete t.defaultValue}return n}Dd.createTranslationOptions=BJ;var Js={},tb={exports:{}};(function(u){(function(e){var t,n=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,r=Math.ceil,i=Math.floor,a="[BigNumber Error] ",o=a+"Number primitive has more than 15 significant digits: ",s=1e14,l=14,c=9007199254740991,E=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],d=1e7,f=1e9;function C(D){var p,x,j,O=J.prototype={constructor:J,toString:null,valueOf:null},Z=new J(1),ou=20,su=4,hu=-7,eu=21,au=-1e7,nu=1e7,W=!1,iu=1,lu=0,cu={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},pu="0123456789abcdefghijklmnopqrstuvwxyz",fu=!0;function J(S,T){var I,L,U,q,Y,$,H,V,G=this;if(!(G instanceof J))return new J(S,T);if(T==null){if(S&&S._isBigNumber===!0){G.s=S.s,!S.c||S.e>nu?G.c=G.e=null:S.e=10;Y/=10,q++);q>nu?G.c=G.e=null:(G.e=q,G.c=[S]);return}V=String(S)}else{if(!n.test(V=String(S)))return j(G,V,$);G.s=V.charCodeAt(0)==45?(V=V.slice(1),-1):1}(q=V.indexOf("."))>-1&&(V=V.replace(".","")),(Y=V.search(/e/i))>0?(q<0&&(q=Y),q+=+V.slice(Y+1),V=V.substring(0,Y)):q<0&&(q=V.length)}else{if(m(T,2,pu.length,"Base"),T==10&&fu)return G=new J(S),bu(G,ou+G.e+1,su);if(V=String(S),$=typeof S=="number"){if(S*0!=0)return j(G,V,$,T);if(G.s=1/S<0?(V=V.slice(1),-1):1,J.DEBUG&&V.replace(/^0\.0*|\./,"").length>15)throw Error(o+S)}else G.s=V.charCodeAt(0)===45?(V=V.slice(1),-1):1;for(I=pu.slice(0,T),q=Y=0,H=V.length;Yq){q=H;continue}}else if(!U&&(V==V.toUpperCase()&&(V=V.toLowerCase())||V==V.toLowerCase()&&(V=V.toUpperCase()))){U=!0,Y=-1,q=0;continue}return j(G,String(S),$,T)}$=!1,V=x(V,T,10,G.s),(q=V.indexOf("."))>-1?V=V.replace(".",""):q=V.length}for(Y=0;V.charCodeAt(Y)===48;Y++);for(H=V.length;V.charCodeAt(--H)===48;);if(V=V.slice(Y,++H)){if(H-=Y,$&&J.DEBUG&&H>15&&(S>c||S!==i(S)))throw Error(o+G.s*S);if((q=q-Y-1)>nu)G.c=G.e=null;else if(q=-f&&U<=f&&U===i(U)){if(L[0]===0){if(U===0&&L.length===1)return!0;break u}if(T=(U+1)%l,T<1&&(T+=l),String(L[0]).length==T){for(T=0;T=s||I!==i(I))break u;if(I!==0)return!0}}}else if(L===null&&U===null&&(q===null||q===1||q===-1))return!0;throw Error(a+"Invalid BigNumber: "+S)},J.maximum=J.max=function(){return Du(arguments,-1)},J.minimum=J.min=function(){return Du(arguments,1)},J.random=function(){var S=9007199254740992,T=Math.random()*S&2097151?function(){return i(Math.random()*S)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(I){var L,U,q,Y,$,H=0,V=[],G=new J(Z);if(I==null?I=ou:m(I,0,f),Y=r(I/l),W)if(crypto.getRandomValues){for(L=crypto.getRandomValues(new Uint32Array(Y*=2));H>>11),$>=9e15?(U=crypto.getRandomValues(new Uint32Array(2)),L[H]=U[0],L[H+1]=U[1]):(V.push($%1e14),H+=2);H=Y/2}else if(crypto.randomBytes){for(L=crypto.randomBytes(Y*=7);H=9e15?crypto.randomBytes(7).copy(L,H):(V.push($%1e14),H+=7);H=Y/7}else throw W=!1,Error(a+"crypto unavailable");if(!W)for(;H=10;$/=10,H++);HU-1&&($[Y+1]==null&&($[Y+1]=0),$[Y+1]+=$[Y]/U|0,$[Y]%=U)}return $.reverse()}return function(I,L,U,q,Y){var $,H,V,G,ru,Cu,Au,Tu,Nu=I.indexOf("."),Wu=ou,k=su;for(Nu>=0&&(G=lu,lu=0,I=I.replace(".",""),Tu=new J(L),Cu=Tu.pow(I.length-Nu),lu=G,Tu.c=T(w(B(Cu.c),Cu.e,"0"),10,U,S),Tu.e=Tu.c.length),Au=T(I,L,U,Y?($=pu,S):($=S,pu)),V=G=Au.length;Au[--G]==0;Au.pop());if(!Au[0])return $.charAt(0);if(Nu<0?--V:(Cu.c=Au,Cu.e=V,Cu.s=q,Cu=p(Cu,Tu,Wu,k,U),Au=Cu.c,ru=Cu.r,V=Cu.e),H=V+Wu+1,Nu=Au[H],G=U/2,ru=ru||H<0||Au[H+1]!=null,ru=k<4?(Nu!=null||ru)&&(k==0||k==(Cu.s<0?3:2)):Nu>G||Nu==G&&(k==4||ru||k==6&&Au[H-1]&1||k==(Cu.s<0?8:7)),H<1||!Au[0])I=ru?w($.charAt(1),-Wu,$.charAt(0)):$.charAt(0);else{if(Au.length=H,ru)for(--U;++Au[--H]>U;)Au[H]=0,H||(++V,Au=[1].concat(Au));for(G=Au.length;!Au[--G];);for(Nu=0,I="";Nu<=G;I+=$.charAt(Au[Nu++]));I=w(I,V,$.charAt(0))}return I}}(),p=function(){function S(L,U,q){var Y,$,H,V,G=0,ru=L.length,Cu=U%d,Au=U/d|0;for(L=L.slice();ru--;)H=L[ru]%d,V=L[ru]/d|0,Y=Au*H+V*Cu,$=Cu*H+Y%d*d+G,G=($/q|0)+(Y/d|0)+Au*V,L[ru]=$%q;return G&&(L=[G].concat(L)),L}function T(L,U,q,Y){var $,H;if(q!=Y)H=q>Y?1:-1;else for($=H=0;$U[$]?1:-1;break}return H}function I(L,U,q,Y){for(var $=0;q--;)L[q]-=$,$=L[q]1;L.splice(0,1));}return function(L,U,q,Y,$){var H,V,G,ru,Cu,Au,Tu,Nu,Wu,k,A,F,P,z,K,uu,Fu,Pu=L.s==U.s?1:-1,Lu=L.c,ju=U.c;if(!Lu||!Lu[0]||!ju||!ju[0])return new J(!L.s||!U.s||(Lu?ju&&Lu[0]==ju[0]:!ju)?NaN:Lu&&Lu[0]==0||!ju?Pu*0:Pu/0);for(Nu=new J(Pu),Wu=Nu.c=[],V=L.e-U.e,Pu=q+V+1,$||($=s,V=h(L.e/l)-h(U.e/l),Pu=Pu/l|0),G=0;ju[G]==(Lu[G]||0);G++);if(ju[G]>(Lu[G]||0)&&V--,Pu<0)Wu.push(1),ru=!0;else{for(z=Lu.length,uu=ju.length,G=0,Pu+=2,Cu=i($/(ju[0]+1)),Cu>1&&(ju=S(ju,Cu,$),Lu=S(Lu,Cu,$),uu=ju.length,z=Lu.length),P=uu,k=Lu.slice(0,uu),A=k.length;A=$/2&&K++;do{if(Cu=0,H=T(ju,k,uu,A),H<0){if(F=k[0],uu!=A&&(F=F*$+(k[1]||0)),Cu=i(F/K),Cu>1)for(Cu>=$&&(Cu=$-1),Au=S(ju,Cu,$),Tu=Au.length,A=k.length;T(Au,k,Tu,A)==1;)Cu--,I(Au,uu=10;Pu/=10,G++);bu(Nu,q+(Nu.e=G+V*l-1)+1,Y,ru)}else Nu.e=V,Nu.r=+ru;return Nu}}();function _u(S,T,I,L){var U,q,Y,$,H;if(I==null?I=su:m(I,0,8),!S.c)return S.toString();if(U=S.c[0],Y=S.e,T==null)H=B(S.c),H=L==1||L==2&&(Y<=hu||Y>=eu)?v(H,Y):w(H,Y,"0");else if(S=bu(new J(S),T,I),q=S.e,H=B(S.c),$=H.length,L==1||L==2&&(T<=q||q<=hu)){for(;$$){if(--T>0)for(H+=".";T--;H+="0");}else if(T+=q-$,T>0)for(q+1==$&&(H+=".");T--;H+="0");return S.s<0&&U?"-"+H:H}function Du(S,T){for(var I,L,U=1,q=new J(S[0]);U=10;U/=10,L++);return(I=L+I*l-1)>nu?S.c=S.e=null:I=10;$/=10,U++);if(q=T-U,q<0)q+=l,Y=T,H=ru[V=0],G=i(H/Cu[U-Y-1]%10);else if(V=r((q+1)/l),V>=ru.length)if(L){for(;ru.length<=V;ru.push(0));H=G=0,U=1,q%=l,Y=q-l+1}else break u;else{for(H=$=ru[V],U=1;$>=10;$/=10,U++);q%=l,Y=q-l+U,G=Y<0?0:i(H/Cu[U-Y-1]%10)}if(L=L||T<0||ru[V+1]!=null||(Y<0?H:H%Cu[U-Y-1]),L=I<4?(G||L)&&(I==0||I==(S.s<0?3:2)):G>5||G==5&&(I==4||L||I==6&&(q>0?Y>0?H/Cu[U-Y]:0:ru[V-1])%10&1||I==(S.s<0?8:7)),T<1||!ru[0])return ru.length=0,L?(T-=S.e+1,ru[0]=Cu[(l-T%l)%l],S.e=-T||0):ru[0]=S.e=0,S;if(q==0?(ru.length=V,$=1,V--):(ru.length=V+1,$=Cu[l-q],ru[V]=Y>0?i(H/Cu[U-Y]%Cu[Y])*$:0),L)for(;;)if(V==0){for(q=1,Y=ru[0];Y>=10;Y/=10,q++);for(Y=ru[0]+=$,$=1;Y>=10;Y/=10,$++);q!=$&&(S.e++,ru[0]==s&&(ru[0]=1));break}else{if(ru[V]+=$,ru[V]!=s)break;ru[V--]=0,$=1}for(q=ru.length;ru[--q]===0;ru.pop());}S.e>nu?S.c=S.e=null:S.e=eu?v(T,I):w(T,I,"0"),S.s<0?"-"+T:T)}return O.absoluteValue=O.abs=function(){var S=new J(this);return S.s<0&&(S.s=1),S},O.comparedTo=function(S,T){return g(this,new J(S,T))},O.decimalPlaces=O.dp=function(S,T){var I,L,U,q=this;if(S!=null)return m(S,0,f),T==null?T=su:m(T,0,8),bu(new J(q),S+q.e+1,T);if(!(I=q.c))return null;if(L=((U=I.length-1)-h(this.e/l))*l,U=I[U])for(;U%10==0;U/=10,L--);return L<0&&(L=0),L},O.dividedBy=O.div=function(S,T){return p(this,new J(S,T),ou,su)},O.dividedToIntegerBy=O.idiv=function(S,T){return p(this,new J(S,T),0,1)},O.exponentiatedBy=O.pow=function(S,T){var I,L,U,q,Y,$,H,V,G,ru=this;if(S=new J(S),S.c&&!S.isInteger())throw Error(a+"Exponent not an integer: "+Iu(S));if(T!=null&&(T=new J(T)),$=S.e>14,!ru.c||!ru.c[0]||ru.c[0]==1&&!ru.e&&ru.c.length==1||!S.c||!S.c[0])return G=new J(Math.pow(+Iu(ru),$?S.s*(2-y(S)):+Iu(S))),T?G.mod(T):G;if(H=S.s<0,T){if(T.c?!T.c[0]:!T.s)return new J(NaN);L=!H&&ru.isInteger()&&T.isInteger(),L&&(ru=ru.mod(T))}else{if(S.e>9&&(ru.e>0||ru.e<-1||(ru.e==0?ru.c[0]>1||$&&ru.c[1]>=24e7:ru.c[0]<8e13||$&&ru.c[0]<=9999975e7)))return q=ru.s<0&&y(S)?-0:0,ru.e>-1&&(q=1/q),new J(H?1/q:q);lu&&(q=r(lu/l+2))}for($?(I=new J(.5),H&&(S.s=1),V=y(S)):(U=Math.abs(+Iu(S)),V=U%2),G=new J(Z);;){if(V){if(G=G.times(ru),!G.c)break;q?G.c.length>q&&(G.c.length=q):L&&(G=G.mod(T))}if(U){if(U=i(U/2),U===0)break;V=U%2}else if(S=S.times(I),bu(S,S.e+1,1),S.e>14)V=y(S);else{if(U=+Iu(S),U===0)break;V=U%2}ru=ru.times(ru),q?ru.c&&ru.c.length>q&&(ru.c.length=q):L&&(ru=ru.mod(T))}return L?G:(H&&(G=Z.div(G)),T?G.mod(T):q?bu(G,lu,su,Y):G)},O.integerValue=function(S){var T=new J(this);return S==null?S=su:m(S,0,8),bu(T,T.e+1,S)},O.isEqualTo=O.eq=function(S,T){return g(this,new J(S,T))===0},O.isFinite=function(){return!!this.c},O.isGreaterThan=O.gt=function(S,T){return g(this,new J(S,T))>0},O.isGreaterThanOrEqualTo=O.gte=function(S,T){return(T=g(this,new J(S,T)))===1||T===0},O.isInteger=function(){return!!this.c&&h(this.e/l)>this.c.length-2},O.isLessThan=O.lt=function(S,T){return g(this,new J(S,T))<0},O.isLessThanOrEqualTo=O.lte=function(S,T){return(T=g(this,new J(S,T)))===-1||T===0},O.isNaN=function(){return!this.s},O.isNegative=function(){return this.s<0},O.isPositive=function(){return this.s>0},O.isZero=function(){return!!this.c&&this.c[0]==0},O.minus=function(S,T){var I,L,U,q,Y=this,$=Y.s;if(S=new J(S,T),T=S.s,!$||!T)return new J(NaN);if($!=T)return S.s=-T,Y.plus(S);var H=Y.e/l,V=S.e/l,G=Y.c,ru=S.c;if(!H||!V){if(!G||!ru)return G?(S.s=-T,S):new J(ru?Y:NaN);if(!G[0]||!ru[0])return ru[0]?(S.s=-T,S):new J(G[0]?Y:su==3?-0:0)}if(H=h(H),V=h(V),G=G.slice(),$=H-V){for((q=$<0)?($=-$,U=G):(V=H,U=ru),U.reverse(),T=$;T--;U.push(0));U.reverse()}else for(L=(q=($=G.length)<(T=ru.length))?$:T,$=T=0;T0)for(;T--;G[I++]=0);for(T=s-1;L>$;){if(G[--L]=0;){for(I=0,Cu=F[U]%Wu,Au=F[U]/Wu|0,Y=H,q=U+Y;q>U;)V=A[--Y]%Wu,G=A[Y]/Wu|0,$=Au*V+G*Cu,V=Cu*V+$%Wu*Wu+Tu[q]+I,I=(V/Nu|0)+($/Wu|0)+Au*G,Tu[q--]=V%Nu;Tu[q]=I}return I?++L:Tu.splice(0,1),xu(S,Tu,L)},O.negated=function(){var S=new J(this);return S.s=-S.s||null,S},O.plus=function(S,T){var I,L=this,U=L.s;if(S=new J(S,T),T=S.s,!U||!T)return new J(NaN);if(U!=T)return S.s=-T,L.minus(S);var q=L.e/l,Y=S.e/l,$=L.c,H=S.c;if(!q||!Y){if(!$||!H)return new J(U/0);if(!$[0]||!H[0])return H[0]?S:new J($[0]?L:U*0)}if(q=h(q),Y=h(Y),$=$.slice(),U=q-Y){for(U>0?(Y=q,I=H):(U=-U,I=$),I.reverse();U--;I.push(0));I.reverse()}for(U=$.length,T=H.length,U-T<0&&(I=H,H=$,$=I,T=U),U=0;T;)U=($[--T]=$[T]+H[T]+U)/s|0,$[T]=s===$[T]?0:$[T]%s;return U&&($=[U].concat($),++Y),xu(S,$,Y)},O.precision=O.sd=function(S,T){var I,L,U,q=this;if(S!=null&&S!==!!S)return m(S,1,f),T==null?T=su:m(T,0,8),bu(new J(q),S,T);if(!(I=q.c))return null;if(U=I.length-1,L=U*l+1,U=I[U]){for(;U%10==0;U/=10,L--);for(U=I[0];U>=10;U/=10,L++);}return S&&q.e+1>L&&(L=q.e+1),L},O.shiftedBy=function(S){return m(S,-c,c),this.times("1e"+S)},O.squareRoot=O.sqrt=function(){var S,T,I,L,U,q=this,Y=q.c,$=q.s,H=q.e,V=ou+4,G=new J("0.5");if($!==1||!Y||!Y[0])return new J(!$||$<0&&(!Y||Y[0])?NaN:Y?q:1/0);if($=Math.sqrt(+Iu(q)),$==0||$==1/0?(T=B(Y),(T.length+H)%2==0&&(T+="0"),$=Math.sqrt(+T),H=h((H+1)/2)-(H<0||H%2),$==1/0?T="5e"+H:(T=$.toExponential(),T=T.slice(0,T.indexOf("e")+1)+H),I=new J(T)):I=new J($+""),I.c[0]){for(H=I.e,$=H+V,$<3&&($=0);;)if(U=I,I=G.times(U.plus(p(q,U,V,1))),B(U.c).slice(0,$)===(T=B(I.c)).slice(0,$))if(I.e0&&Tu>0){for(q=Tu%$||$,G=Au.substr(0,q);q0&&(G+=V+Au.slice(q)),Cu&&(G="-"+G)}L=ru?G+(I.decimalSeparator||"")+((H=+I.fractionGroupSize)?ru.replace(new RegExp("\\d{"+H+"}\\B","g"),"$&"+(I.fractionGroupSeparator||"")):ru):G}return(I.prefix||"")+L+(I.suffix||"")},O.toFraction=function(S){var T,I,L,U,q,Y,$,H,V,G,ru,Cu,Au=this,Tu=Au.c;if(S!=null&&($=new J(S),!$.isInteger()&&($.c||$.s!==1)||$.lt(Z)))throw Error(a+"Argument "+($.isInteger()?"out of range: ":"not an integer: ")+Iu($));if(!Tu)return new J(Au);for(T=new J(Z),V=I=new J(Z),L=H=new J(Z),Cu=B(Tu),q=T.e=Cu.length-Au.e-1,T.c[0]=E[(Y=q%l)<0?l+Y:Y],S=!S||$.comparedTo(T)>0?q>0?T:V:$,Y=nu,nu=1/0,$=new J(Cu),H.c[0]=0;G=p($,T,0,1),U=I.plus(G.times(L)),U.comparedTo(S)!=1;)I=L,L=U,V=H.plus(G.times(U=V)),H=U,T=$.minus(G.times(U=T)),$=U;return U=p(S.minus(I),L,0,1),H=H.plus(U.times(V)),I=I.plus(U.times(L)),H.s=V.s=Au.s,q=q*2,ru=p(V,L,q,su).minus(Au).abs().comparedTo(p(H,I,q,su).minus(Au).abs())<1?[V,L]:[H,I],nu=Y,ru},O.toNumber=function(){return+Iu(this)},O.toPrecision=function(S,T){return S!=null&&m(S,1,f),_u(this,S,T,2)},O.toString=function(S){var T,I=this,L=I.s,U=I.e;return U===null?L?(T="Infinity",L<0&&(T="-"+T)):T="NaN":(S==null?T=U<=hu||U>=eu?v(B(I.c),U):w(B(I.c),U,"0"):S===10&&fu?(I=bu(new J(I),ou+U+1,su),T=w(B(I.c),I.e,"0")):(m(S,2,pu.length,"Base"),T=x(w(B(I.c),U,"0"),10,S,L,!0)),L<0&&I.c[0]&&(T="-"+T)),T},O.valueOf=O.toJSON=function(){return Iu(this)},O._isBigNumber=!0,D!=null&&J.set(D),J}function h(D){var p=D|0;return D>0||D===p?p:p-1}function B(D){for(var p,x,j=1,O=D.length,Z=D[0]+"";jeu^x?1:-1;for(su=(hu=O.length)<(eu=Z.length)?hu:eu,ou=0;ouZ[ou]^x?1:-1;return hu==eu?0:hu>eu^x?1:-1}function m(D,p,x,j){if(Dx||D!==i(D))throw Error(a+(j||"Argument")+(typeof D=="number"?Dx?" out of range: ":" not an integer: ":" not a primitive number: ")+String(D))}function y(D){var p=D.c.length-1;return h(D.e/l)==p&&D.c[p]%2!=0}function v(D,p){return(D.length>1?D.charAt(0)+"."+D.slice(1):D)+(p<0?"e":"e+")+p}function w(D,p,x){var j,O;if(p<0){for(O=x+".";++p;O+=x);D=O+D}else if(j=D.length,++p>j){for(O=x,p-=j;--p;O+=x);D+=O}else pDJ)return t;do e%2&&(t+=u),e=bJ(e/2),e&&(u+=u);while(e);return t}var xJ=wJ,kJ=FD,_J=b5;function SJ(u){return u!=null&&_J(u.length)&&!kJ(u)}var wd=SJ,PJ=gd,TJ=wd,IJ=vd,OJ=Aa;function NJ(u,e,t){if(!OJ(t))return!1;var n=typeof e;return(n=="number"?TJ(t)&&IJ(e,t.length):n=="string"&&e in t)?PJ(t[e],u):!1}var P5=NJ,RJ=/\s/;function jJ(u){for(var e=u.length;e--&&RJ.test(u.charAt(e)););return e}var zJ=jJ,MJ=zJ,UJ=/^\s+/;function LJ(u){return u&&u.slice(0,MJ(u)+1).replace(UJ,"")}var $J=LJ,WJ=$J,Y8=Aa,qJ=Ul,X8=0/0,HJ=/^[-+]0x[0-9a-f]+$/i,GJ=/^0b[01]+$/i,KJ=/^0o[0-7]+$/i,QJ=parseInt;function VJ(u){if(typeof u=="number")return u;if(qJ(u))return X8;if(Y8(u)){var e=typeof u.valueOf=="function"?u.valueOf():u;u=Y8(e)?e+"":e}if(typeof u!="string")return u===0?u:+u;u=WJ(u);var t=GJ.test(u);return t||KJ.test(u)?QJ(u.slice(2),t?2:8):HJ.test(u)?X8:+u}var JJ=VJ,YJ=JJ,Z8=1/0,XJ=17976931348623157e292;function ZJ(u){if(!u)return u===0?u:0;if(u=YJ(u),u===Z8||u===-Z8){var e=u<0?-1:1;return e*XJ}return u===u?u:0}var nb=ZJ,uY=nb;function eY(u){var e=uY(u),t=e%1;return e===e?t?e-t:e:0}var tY=eY,nY=xJ,rY=P5,iY=tY,aY=Qs;function oY(u,e,t){return(t?rY(u,e,t):e===void 0)?e=1:e=iY(e),nY(aY(u),e)}var sY=oY,Ba={},lY=Yu&&Yu.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Ba,"__esModule",{value:!0});Ba.roundNumber=void 0;const cY=lY(Ys),EY=Js;function dY(u){return u.isZero()?1:Math.floor(Math.log10(u.abs().toNumber())+1)}function fY(u,{precision:e,significant:t}){return t&&e!==null&&e>0?e-dY(u):e}function pY(u,e){const t=fY(u,e);if(t===null)return u.toString();const n=(0,EY.expandRoundMode)(e.roundMode);if(t>=0)return u.toFixed(t,n);const r=Math.pow(10,Math.abs(t));return u=new cY.default(u.div(r).toFixed(0,n)).times(r),u.toString()}Ba.roundNumber=pY;var rb=Yu&&Yu.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(bd,"__esModule",{value:!0});bd.formatNumber=void 0;const ug=rb(Ys),hY=rb(sY),CY=Ba;function mY(u,{formattedNumber:e,unit:t}){return u.replace("%n",e).replace("%u",t)}function gY({significand:u,whole:e,precision:t}){if(e==="0"||t===null)return u;const n=Math.max(0,t-e.length);return(u??"").substr(0,n)}function AY(u,e){var t,n,r;const i=new ug.default(u);if(e.raise&&!i.isFinite())throw new Error(`"${u}" is not a valid numeric value`);const a=(0,CY.roundNumber)(i,e),o=new ug.default(a),s=o.lt(0),l=o.isZero();let[c,E]=a.split(".");const d=[];let f;const C=(t=e.format)!==null&&t!==void 0?t:"%n",h=(n=e.negativeFormat)!==null&&n!==void 0?n:`-${C}`,B=s&&!l?h:C;for(c=c.replace("-","");c.length>0;)d.unshift(c.substr(Math.max(0,c.length-3),3)),c=c.substr(0,c.length-3);return c=d.join(""),f=d.join(e.delimiter),e.significant?E=gY({whole:c,significand:E,precision:e.precision}):E=E??(0,hY.default)("0",(r=e.precision)!==null&&r!==void 0?r:0),e.stripInsignificantZeros&&E&&(E=E.replace(/0+$/,"")),i.isNaN()&&(f=u.toString()),E&&i.isFinite()&&(f+=(e.separator||".")+E),mY(B,{formattedNumber:f,unit:e.unit})}bd.formatNumber=AY;var Xs={};Object.defineProperty(Xs,"__esModule",{value:!0});Xs.getFullScope=void 0;function yY(u,e,t){let n="";return(e instanceof String||typeof e=="string")&&(n=e),e instanceof Array&&(n=e.join(u.defaultSeparator)),t.scope&&(n=[t.scope,n].join(u.defaultSeparator)),n}Xs.getFullScope=yY;var Zs={};Object.defineProperty(Zs,"__esModule",{value:!0});Zs.inferType=void 0;function BY(u){var e,t;if(u===null)return"null";const n=typeof u;return n!=="object"?n:((t=(e=u==null?void 0:u.constructor)===null||e===void 0?void 0:e.name)===null||t===void 0?void 0:t.toLowerCase())||"object"}Zs.inferType=BY;var xd={};Object.defineProperty(xd,"__esModule",{value:!0});xd.interpolate=void 0;const vY=oi;function FY(u,e,t){t=Object.keys(t).reduce((r,i)=>(r[u.transformKey(i)]=t[i],r),{});const n=e.match(u.placeholder);if(!n)return e;for(;n.length;){let r;const i=n.shift(),a=i.replace(u.placeholder,"$1");(0,vY.isSet)(t[a])?r=t[a].toString().replace(/\$/gm,"_#$#_"):a in t?r=u.nullPlaceholder(u,i,e,t):r=u.missingPlaceholder(u,i,e,t);const o=new RegExp(i.replace(/\{/gm,"\\{").replace(/\}/gm,"\\}"));e=e.replace(o,r)}return e.replace(/_#\$#_/g,"$")}xd.interpolate=FY;var u4={},DY=Yu&&Yu.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(u4,"__esModule",{value:!0});u4.lookup=void 0;const bY=DY(F5),wY=oi,xY=Xs,kY=Zs;function _Y(u,e,t={}){t=Object.assign({},t);const n="locale"in t?t.locale:u.locale,r=(0,kY.inferType)(n),i=u.locales.get(r==="string"?n:typeof n).slice();e=(0,xY.getFullScope)(u,e,t).split(u.defaultSeparator).map(o=>u.transformKey(o)).join(".");const a=i.map(o=>(0,bY.default)(u.translations,[o,e].join(".")));return a.push(t.defaultValue),a.find(o=>(0,wY.isSet)(o))}u4.lookup=_Y;var kd={},SY=Yu&&Yu.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(kd,"__esModule",{value:!0});kd.numberToDelimited=void 0;const PY=SY(Ys);function TY(u,e){const t=new PY.default(u);if(!t.isFinite())return u.toString();if(!e.delimiterPattern.global)throw new Error(`options.delimiterPattern must be a globalThis regular expression; received ${e.delimiterPattern}`);let[n,r]=t.toString().split(".");return n=n.replace(e.delimiterPattern,i=>`${i}${e.delimiter}`),[n,r].filter(Boolean).join(e.separator)}kd.numberToDelimited=TY;var _d={};function IY(u,e){for(var t=-1,n=e.length,r=u.length;++t0&&t(o)?e>1?ab(o,e-1,t,n,r):zY(r,o):n||(r[r.length]=o)}return r}var ob=ab,UY=yd;function LY(){this.__data__=new UY,this.size=0}var $Y=LY;function WY(u){var e=this.__data__,t=e.delete(u);return this.size=e.size,t}var qY=WY;function HY(u){return this.__data__.get(u)}var GY=HY;function KY(u){return this.__data__.has(u)}var QY=KY,VY=yd,JY=g5,YY=A5,XY=200;function ZY(u,e){var t=this.__data__;if(t instanceof VY){var n=t.__data__;if(!JY||n.lengtho))return!1;var l=i.get(u),c=i.get(e);if(l&&c)return l==e&&c==u;var E=-1,d=!0,f=t&fX?new lX:void 0;for(i.set(u,e),i.set(e,u);++Ee||i&&a&&s&&!o&&!l||n&&a&&s||!t&&s||!r)return 1;if(!n&&!i&&!l&&u=o)return s;var l=t[n];return s*(l=="desc"?-1:1)}}return u.index-e.index}var B0u=y0u,o1=wD,v0u=v5,F0u=Qeu,D0u=p0u,b0u=C0u,w0u=Eb,x0u=B0u,k0u=Sd,_0u=fn;function S0u(u,e,t){e.length?e=o1(e,function(i){return _0u(i)?function(a){return v0u(a,i.length===1?i[0]:i)}:i}):e=[k0u];var n=-1;e=o1(e,w0u(F0u));var r=D0u(u,function(i,a,o){var s=o1(e,function(l){return l(i)});return{criteria:s,index:++n,value:i}});return b0u(r,function(i,a){return x0u(i,a,t)})}var P0u=S0u;function T0u(u,e,t){switch(t.length){case 0:return u.call(e);case 1:return u.call(e,t[0]);case 2:return u.call(e,t[0],t[1]);case 3:return u.call(e,t[0],t[1],t[2])}return u.apply(e,t)}var I0u=T0u,O0u=I0u,Fg=Math.max;function N0u(u,e,t){return e=Fg(e===void 0?u.length-1:e,0),function(){for(var n=arguments,r=-1,i=Fg(n.length-e,0),a=Array(i);++r0){if(++e>=W0u)return arguments[0]}else e=0;return u.apply(void 0,arguments)}}var K0u=G0u,Q0u=$0u,V0u=K0u,J0u=V0u(Q0u),Y0u=J0u,X0u=Sd,Z0u=R0u,utu=Y0u;function etu(u,e){return utu(Z0u(u,e,X0u),u+"")}var ttu=etu,ntu=ob,rtu=P0u,itu=ttu,bg=P5,atu=itu(function(u,e){if(u==null)return[];var t=e.length;return t>1&&bg(u,e[0],e[1])?e=[]:t>2&&bg(e[0],e[1],e[2])&&(e=[e[0]]),rtu(u,ntu(e,1),[])}),otu=atu;function stu(u,e,t){for(var n=-1,r=u.length,i=e.length,a={};++nparseInt(u,10)));function ytu(u,e,t){const n={roundMode:t.roundMode,precision:t.precision,significant:t.significant};let r;if((0,gtu.inferType)(t.units)==="string"){const E=t.units;if(r=(0,mtu.lookup)(u,E),!r)throw new Error(`The scope "${u.locale}${u.defaultSeparator}${(0,Ctu.getFullScope)(u,E,{})}" couldn't be found`)}else r=t.units;let i=(0,wg.roundNumber)(new s1.default(e),n);const a=E=>(0,ptu.default)(Object.keys(E).map(d=>Atu[d]),d=>d*-1),o=(E,d)=>{const f=E.isZero()?0:Math.floor(Math.log10(E.abs().toNumber()));return a(d).find(C=>f>=C)||0},s=(E,d)=>{const f=Ff[d.toString()];return E[f]||""},l=o(new s1.default(i),r),c=s(r,l);if(i=(0,wg.roundNumber)(new s1.default(i).div(Math.pow(10,l)),n),t.stripInsignificantZeros){let[E,d]=i.split(".");d=(d||"").replace(/0+$/,""),i=E,d&&(i+=`${t.separator}${d}`)}return t.format.replace("%n",i||"0").replace("%u",c).trim()}_d.numberToHuman=ytu;var Pd={},Btu=Yu&&Yu.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Pd,"__esModule",{value:!0});Pd.numberToHumanSize=void 0;const Fc=Btu(Ys),vtu=Ba,Ftu=Js,xg=["byte","kb","mb","gb","tb","pb","eb"];function Dtu(u,e,t){const n=(0,Ftu.expandRoundMode)(t.roundMode),r=1024,i=new Fc.default(e).abs(),a=i.lt(r);let o;const s=(C,h)=>{const B=h.length-1,g=new Fc.default(Math.log(C.toNumber())).div(Math.log(r)).integerValue(Fc.default.ROUND_DOWN).toNumber();return Math.min(B,g)},l=C=>`number.human.storage_units.units.${a?"byte":C[c]}`,c=s(i,xg);a?o=i.integerValue():o=new Fc.default((0,vtu.roundNumber)(i.div(Math.pow(r,c)),{significant:t.significant,precision:t.precision,roundMode:t.roundMode}));const E=u.translate("number.human.storage_units.format",{defaultValue:"%n %u"}),d=u.translate(l(xg),{count:i.integerValue().toNumber()});let f=o.toFixed(t.precision,n);return t.stripInsignificantZeros&&(f=f.replace(/(\..*?)0+$/,"$1").replace(/\.$/,"")),E.replace("%n",f).replace("%u",d)}Pd.numberToHumanSize=Dtu;var $l={};Object.defineProperty($l,"__esModule",{value:!0});$l.parseDate=void 0;function btu(u){if(u instanceof Date)return u;if(typeof u=="number"){const n=new Date;return n.setTime(u),n}const e=new String(u).match(/(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2})(?:[.,](\d{1,3}))?)?(Z|\+00:?00)?/);if(e){const n=e.slice(1,8).map(d=>parseInt(d,10)||0);n[1]-=1;const[r,i,a,o,s,l,c]=n;return e[8]?new Date(Date.UTC(r,i,a,o,s,l,c)):new Date(r,i,a,o,s,l,c)}u.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\d+) (\d+:\d+:\d+) ([+-]\d+) (\d+)/)&&new Date().setTime(Date.parse([RegExp.$1,RegExp.$2,RegExp.$3,RegExp.$6,RegExp.$4,RegExp.$5].join(" ")));const t=new Date;return t.setTime(Date.parse(u)),t}$l.parseDate=btu;var Td={};Object.defineProperty(Td,"__esModule",{value:!0});Td.pluralize=void 0;const kg=oi,wtu=u4;function xtu({i18n:u,count:e,scope:t,options:n,baseScope:r}){n=Object.assign({},n);let i,a;if(typeof t=="object"&&t?i=t:i=(0,wtu.lookup)(u,t,n),!i)return u.missingTranslation.get(t,n);const s=u.pluralization.get(n.locale)(u,e),l=[];for(;s.length;){const c=s.shift();if((0,kg.isSet)(i[c])){a=i[c];break}l.push(c)}return(0,kg.isSet)(a)?(n.count=e,u.interpolate(u,a,n)):u.missingTranslation.get(r.split(u.defaultSeparator).concat([l[0]]),n)}Td.pluralize=xtu;var Id={},ktu=ob,_tu=1/0;function Stu(u){var e=u==null?0:u.length;return e?ktu(u,_tu):[]}var Ptu=Stu,gb=Yu&&Yu.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Id,"__esModule",{value:!0});Id.propertyFlatList=void 0;const Ttu=gb(Aa),Itu=gb(Ptu);class Otu{constructor(e){this.target=e}call(){const e=(0,Itu.default)(Object.keys(this.target).map(t=>this.compute(this.target[t],t)));return e.sort(),e}compute(e,t){return!Array.isArray(e)&&(0,Ttu.default)(e)?Object.keys(e).map(n=>this.compute(e[n],`${t}.${n}`)):t}}function Ntu(u){return new Otu(u).call()}Id.propertyFlatList=Ntu;var Od={};Object.defineProperty(Od,"__esModule",{value:!0});Od.strftime=void 0;const Rtu={meridian:{am:"AM",pm:"PM"},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbrDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],monthNames:[null,"January","February","March","April","May","June","July","August","September","October","November","December"],abbrMonthNames:[null,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]};function jtu(u,e,t={}){const{abbrDayNames:n,dayNames:r,abbrMonthNames:i,monthNames:a,meridian:o}=Object.assign(Object.assign({},Rtu),t);if(isNaN(u.getTime()))throw new Error("strftime() requires a valid date object, but received an invalid date.");const s=u.getDay(),l=u.getDate(),c=u.getFullYear(),E=u.getMonth()+1,d=u.getHours();let f=d;const C=d>11?"pm":"am",h=u.getSeconds(),B=u.getMinutes(),g=u.getTimezoneOffset(),m=Math.floor(Math.abs(g/60)),y=Math.abs(g)-m*60,v=(g>0?"-":"+")+(m.toString().length<2?"0"+m:m)+(y.toString().length<2?"0"+y:y);return f>12?f=f-12:f===0&&(f=12),e=e.replace("%a",n[s]),e=e.replace("%A",r[s]),e=e.replace("%b",i[E]),e=e.replace("%B",a[E]),e=e.replace("%d",l.toString().padStart(2,"0")),e=e.replace("%e",l.toString()),e=e.replace("%-d",l.toString()),e=e.replace("%H",d.toString().padStart(2,"0")),e=e.replace("%-H",d.toString()),e=e.replace("%k",d.toString()),e=e.replace("%I",f.toString().padStart(2,"0")),e=e.replace("%-I",f.toString()),e=e.replace("%l",f.toString()),e=e.replace("%m",E.toString().padStart(2,"0")),e=e.replace("%-m",E.toString()),e=e.replace("%M",B.toString().padStart(2,"0")),e=e.replace("%-M",B.toString()),e=e.replace("%p",o[C]),e=e.replace("%P",o[C].toLowerCase()),e=e.replace("%S",h.toString().padStart(2,"0")),e=e.replace("%-S",h.toString()),e=e.replace("%w",s.toString()),e=e.replace("%y",c.toString().padStart(2,"0").substr(-2)),e=e.replace("%-y",c.toString().padStart(2,"0").substr(-2).replace(/^0+/,"")),e=e.replace("%Y",c.toString()),e=e.replace(/%z/i,v),e}Od.strftime=jtu;var Nd={},ztu=Math.ceil,Mtu=Math.max;function Utu(u,e,t,n){for(var r=-1,i=Mtu(ztu((e-u)/(t||1)),0),a=Array(i);i--;)a[n?i:++r]=u,u+=t;return a}var Ltu=Utu,$tu=Ltu,Wtu=P5,l1=nb;function qtu(u){return function(e,t,n){return n&&typeof n!="number"&&Wtu(e,t,n)&&(t=n=void 0),e=l1(e),t===void 0?(t=e,e=0):t=l1(t),n=n===void 0?et>=u&&t<=e;function Ytu(u,e,t,n={}){const r=n.scope||"datetime.distance_in_words",i=(p,x=0)=>u.t(p,{count:x,scope:r});e=(0,_g.parseDate)(e),t=(0,_g.parseDate)(t);let a=e.getTime()/1e3,o=t.getTime()/1e3;a>o&&([e,t,a,o]=[t,e,o,a]);const s=Math.round(o-a),l=Math.round((o-a)/60),E=l/60/24,d=Math.round(l/60),f=Math.round(E),C=Math.round(f/30);if(O0(0,1,l))return n.includeSeconds?O0(0,4,s)?i("less_than_x_seconds",5):O0(5,9,s)?i("less_than_x_seconds",10):O0(10,19,s)?i("less_than_x_seconds",20):O0(20,39,s)?i("half_a_minute"):O0(40,59,s)?i("less_than_x_minutes",1):i("x_minutes",1):l===0?i("less_than_x_minutes",1):i("x_minutes",l);if(O0(2,44,l))return i("x_minutes",l);if(O0(45,89,l))return i("about_x_hours",1);if(O0(90,1439,l))return i("about_x_hours",d);if(O0(1440,2519,l))return i("x_days",1);if(O0(2520,43199,l))return i("x_days",f);if(O0(43200,86399,l))return i("about_x_months",Math.round(l/43200));if(O0(86400,525599,l))return i("x_months",C);let h=e.getFullYear();e.getMonth()+1>=3&&(h+=1);let B=t.getFullYear();t.getMonth()+1<3&&(B-=1);const g=h>B?0:(0,Jtu.default)(h,B).filter(p=>new Date(p,1,29).getMonth()==1).length,m=525600,y=g*1440,v=l-y,w=Math.trunc(v/m),D=parseFloat((v/m-w).toPrecision(3));return D<.25?i("about_x_years",w):D<.75?i("over_x_years",w):i("almost_x_years",w+1)}Nd.timeAgoInWords=Ytu;(function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.timeAgoInWords=u.strftime=u.roundNumber=u.propertyFlatList=u.pluralize=u.parseDate=u.numberToHumanSize=u.numberToHuman=u.numberToDelimited=u.lookup=u.isSet=u.interpolate=u.inferType=u.getFullScope=u.formatNumber=u.expandRoundMode=u.createTranslationOptions=u.camelCaseKeys=void 0;var e=Fd;Object.defineProperty(u,"camelCaseKeys",{enumerable:!0,get:function(){return e.camelCaseKeys}});var t=Dd;Object.defineProperty(u,"createTranslationOptions",{enumerable:!0,get:function(){return t.createTranslationOptions}});var n=Js;Object.defineProperty(u,"expandRoundMode",{enumerable:!0,get:function(){return n.expandRoundMode}});var r=bd;Object.defineProperty(u,"formatNumber",{enumerable:!0,get:function(){return r.formatNumber}});var i=Xs;Object.defineProperty(u,"getFullScope",{enumerable:!0,get:function(){return i.getFullScope}});var a=Zs;Object.defineProperty(u,"inferType",{enumerable:!0,get:function(){return a.inferType}});var o=xd;Object.defineProperty(u,"interpolate",{enumerable:!0,get:function(){return o.interpolate}});var s=oi;Object.defineProperty(u,"isSet",{enumerable:!0,get:function(){return s.isSet}});var l=u4;Object.defineProperty(u,"lookup",{enumerable:!0,get:function(){return l.lookup}});var c=kd;Object.defineProperty(u,"numberToDelimited",{enumerable:!0,get:function(){return c.numberToDelimited}});var E=_d;Object.defineProperty(u,"numberToHuman",{enumerable:!0,get:function(){return E.numberToHuman}});var d=Pd;Object.defineProperty(u,"numberToHumanSize",{enumerable:!0,get:function(){return d.numberToHumanSize}});var f=$l;Object.defineProperty(u,"parseDate",{enumerable:!0,get:function(){return f.parseDate}});var C=Td;Object.defineProperty(u,"pluralize",{enumerable:!0,get:function(){return C.pluralize}});var h=Id;Object.defineProperty(u,"propertyFlatList",{enumerable:!0,get:function(){return h.propertyFlatList}});var B=Ba;Object.defineProperty(u,"roundNumber",{enumerable:!0,get:function(){return B.roundNumber}});var g=Od;Object.defineProperty(u,"strftime",{enumerable:!0,get:function(){return g.strftime}});var m=Nd;Object.defineProperty(u,"timeAgoInWords",{enumerable:!0,get:function(){return m.timeAgoInWords}})})(S5);(function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.MissingTranslation=u.errorStrategy=u.messageStrategy=u.guessStrategy=void 0;const e=S5,t=function(a,o){o instanceof Array&&(o=o.join(a.defaultSeparator));const s=o.split(a.defaultSeparator).slice(-1)[0];return a.missingTranslationPrefix+s.replace("_"," ").replace(/([a-z])([A-Z])/g,(l,c,E)=>`${c} ${E.toLowerCase()}`)};u.guessStrategy=t;const n=(a,o,s)=>{const l=(0,e.getFullScope)(a,o,s),c="locale"in s?s.locale:a.locale,E=(0,e.inferType)(c);return`[missing "${[E=="string"?c:E,l].join(a.defaultSeparator)}" translation]`};u.messageStrategy=n;const r=(a,o,s)=>{const l=(0,e.getFullScope)(a,o,s),c=[a.locale,l].join(a.defaultSeparator);throw new Error(`Missing translation: ${c}`)};u.errorStrategy=r;class i{constructor(o){this.i18n=o,this.registry={},this.register("guess",u.guessStrategy),this.register("message",u.messageStrategy),this.register("error",u.errorStrategy)}register(o,s){this.registry[o]=s}get(o,s){var l;return this.registry[(l=s.missingBehavior)!==null&&l!==void 0?l:this.i18n.missingBehavior](this.i18n,o,s)}}u.MissingTranslation=i})(_5);var Xtu=Yu&&Yu.__awaiter||function(u,e,t,n){function r(i){return i instanceof t?i:new t(function(a){a(i)})}return new(t||(t=Promise))(function(i,a){function o(c){try{l(n.next(c))}catch(E){a(E)}}function s(c){try{l(n.throw(c))}catch(E){a(E)}}function l(c){c.done?i(c.value):r(c.value).then(o,s)}l((n=n.apply(u,e||[])).next())})},Rd=Yu&&Yu.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Cd,"__esModule",{value:!0});Cd.I18n=void 0;const Sg=Rd(F5),Ztu=Rd(Q$),unu=Rd(EW),enu=Rd(pW),tnu=w5,nnu=k5,rnu=_5,zu=S5,c1={defaultLocale:"en",availableLocales:["en"],locale:"en",defaultSeparator:".",placeholder:/(?:\{\{|%\{)(.*?)(?:\}\}?)/gm,enableFallback:!1,missingBehavior:"message",missingTranslationPrefix:"",missingPlaceholder:(u,e)=>`[missing "${e}" value]`,nullPlaceholder:(u,e,t,n)=>u.missingPlaceholder(u,e,t,n),transformKey:u=>u};class inu{constructor(e={},t={}){this._locale=c1.locale,this._defaultLocale=c1.defaultLocale,this._version=0,this.onChangeHandlers=[],this.translations={},this.availableLocales=[],this.t=this.translate,this.p=this.pluralize,this.l=this.localize,this.distanceOfTimeInWords=this.timeAgoInWords;const{locale:n,enableFallback:r,missingBehavior:i,missingTranslationPrefix:a,missingPlaceholder:o,nullPlaceholder:s,defaultLocale:l,defaultSeparator:c,placeholder:E,transformKey:d}=Object.assign(Object.assign({},c1),t);this.locale=n,this.defaultLocale=l,this.defaultSeparator=c,this.enableFallback=r,this.locale=n,this.missingBehavior=i,this.missingTranslationPrefix=a,this.missingPlaceholder=o,this.nullPlaceholder=s,this.placeholder=E,this.pluralization=new nnu.Pluralization(this),this.locales=new tnu.Locales(this),this.missingTranslation=new rnu.MissingTranslation(this),this.transformKey=d,this.interpolate=zu.interpolate,this.store(e)}store(e){(0,zu.propertyFlatList)(e).forEach(n=>(0,enu.default)(this.translations,n,(0,Sg.default)(e,n),Object)),this.hasChanged()}get locale(){return this._locale||this.defaultLocale||"en"}set locale(e){if(typeof e!="string")throw new Error(`Expected newLocale to be a string; got ${(0,zu.inferType)(e)}`);const t=this._locale!==e;this._locale=e,t&&this.hasChanged()}get defaultLocale(){return this._defaultLocale||"en"}set defaultLocale(e){if(typeof e!="string")throw new Error(`Expected newLocale to be a string; got ${(0,zu.inferType)(e)}`);const t=this._defaultLocale!==e;this._defaultLocale=e,t&&this.hasChanged()}translate(e,t){t=Object.assign({},t);const n=(0,zu.createTranslationOptions)(this,e,t);let r;return n.some(a=>((0,zu.isSet)(a.scope)?r=(0,zu.lookup)(this,a.scope,t):(0,zu.isSet)(a.message)&&(r=a.message),r!=null))?(typeof r=="string"?r=this.interpolate(this,r,t):typeof r=="object"&&r&&(0,zu.isSet)(t.count)&&(r=(0,zu.pluralize)({i18n:this,count:t.count||0,scope:r,options:t,baseScope:(0,zu.getFullScope)(this,e,t)})),t&&r instanceof Array&&(r=r.map(a=>typeof a=="string"?(0,zu.interpolate)(this,a,t):a)),r):this.missingTranslation.get(e,t)}pluralize(e,t,n){return(0,zu.pluralize)({i18n:this,count:e,scope:t,options:Object.assign({},n),baseScope:(0,zu.getFullScope)(this,t,n??{})})}localize(e,t,n){if(n=Object.assign({},n),t==null)return"";switch(e){case"currency":return this.numberToCurrency(t);case"number":return(0,zu.formatNumber)(t,Object.assign({delimiter:",",precision:3,separator:".",significant:!1,stripInsignificantZeros:!1},(0,zu.lookup)(this,"number.format")));case"percentage":return this.numberToPercentage(t);default:{let r;return e.match(/^(date|time)/)?r=this.toTime(e,t):r=t.toString(),(0,zu.interpolate)(this,r,n)}}}toTime(e,t){const n=(0,zu.parseDate)(t),r=(0,zu.lookup)(this,e);return n.toString().match(/invalid/i)||!r?n.toString():this.strftime(n,r)}numberToCurrency(e,t={}){return(0,zu.formatNumber)(e,Object.assign(Object.assign(Object.assign({delimiter:",",format:"%u%n",precision:2,separator:".",significant:!1,stripInsignificantZeros:!1,unit:"$"},(0,zu.camelCaseKeys)(this.get("number.format"))),(0,zu.camelCaseKeys)(this.get("number.currency.format"))),t))}numberToPercentage(e,t={}){return(0,zu.formatNumber)(e,Object.assign(Object.assign(Object.assign({delimiter:"",format:"%n%",precision:3,stripInsignificantZeros:!1,separator:".",significant:!1},(0,zu.camelCaseKeys)(this.get("number.format"))),(0,zu.camelCaseKeys)(this.get("number.percentage.format"))),t))}numberToHumanSize(e,t={}){return(0,zu.numberToHumanSize)(this,e,Object.assign(Object.assign(Object.assign({delimiter:"",precision:3,significant:!0,stripInsignificantZeros:!0,units:{billion:"Billion",million:"Million",quadrillion:"Quadrillion",thousand:"Thousand",trillion:"Trillion",unit:""}},(0,zu.camelCaseKeys)(this.get("number.human.format"))),(0,zu.camelCaseKeys)(this.get("number.human.storage_units"))),t))}numberToHuman(e,t={}){return(0,zu.numberToHuman)(this,e,Object.assign(Object.assign(Object.assign({delimiter:"",separator:".",precision:3,significant:!0,stripInsignificantZeros:!0,format:"%n %u",roundMode:"default",units:{billion:"Billion",million:"Million",quadrillion:"Quadrillion",thousand:"Thousand",trillion:"Trillion",unit:""}},(0,zu.camelCaseKeys)(this.get("number.human.format"))),(0,zu.camelCaseKeys)(this.get("number.human.decimal_units"))),t))}numberToRounded(e,t){return(0,zu.formatNumber)(e,Object.assign({unit:"",precision:3,significant:!1,separator:".",delimiter:"",stripInsignificantZeros:!1},t))}numberToDelimited(e,t={}){return(0,zu.numberToDelimited)(e,Object.assign({delimiterPattern:/(\d)(?=(\d\d\d)+(?!\d))/g,delimiter:",",separator:"."},t))}withLocale(e,t){return Xtu(this,void 0,void 0,function*(){const n=this.locale;try{this.locale=e,yield t()}finally{this.locale=n}})}strftime(e,t,n={}){return(0,zu.strftime)(e,t,Object.assign(Object.assign(Object.assign({},(0,zu.camelCaseKeys)((0,zu.lookup)(this,"date"))),{meridian:{am:(0,zu.lookup)(this,"time.am")||"AM",pm:(0,zu.lookup)(this,"time.pm")||"PM"}}),n))}update(e,t,n={strict:!1}){if(n.strict&&!(0,Ztu.default)(this.translations,e))throw new Error(`The path "${e}" is not currently defined`);const r=(0,Sg.default)(this.translations,e),i=(0,zu.inferType)(r),a=(0,zu.inferType)(t);if(n.strict&&i!==a)throw new Error(`The current type for "${e}" is "${i}", but you're trying to override it with "${a}"`);let o;a==="object"?o=Object.assign(Object.assign({},r),t):o=t,(0,unu.default)(this.translations,e,o),this.hasChanged()}toSentence(e,t={}){const{wordsConnector:n,twoWordsConnector:r,lastWordConnector:i}=Object.assign(Object.assign({wordsConnector:", ",twoWordsConnector:" and ",lastWordConnector:", and "},(0,zu.camelCaseKeys)((0,zu.lookup)(this,"support.array"))),t),a=e.length;switch(a){case 0:return"";case 1:return`${e[0]}`;case 2:return e.join(r);default:return[e.slice(0,a-1).join(n),i,e[a-1]].join("")}}timeAgoInWords(e,t,n={}){return(0,zu.timeAgoInWords)(this,e,t,n)}onChange(e){return this.onChangeHandlers.push(e),()=>{this.onChangeHandlers.splice(this.onChangeHandlers.indexOf(e),1)}}get version(){return this._version}formatNumber(e,t){return(0,zu.formatNumber)(e,t)}get(e){return(0,zu.lookup)(this,e)}runCallbacks(){this.onChangeHandlers.forEach(e=>e(this))}hasChanged(){this._version+=1,this.runCallbacks()}}Cd.I18n=inu;var Ab={};Object.defineProperty(Ab,"__esModule",{value:!0});(function(u){var e=Yu&&Yu.__createBinding||(Object.create?function(o,s,l,c){c===void 0&&(c=l);var E=Object.getOwnPropertyDescriptor(s,l);(!E||("get"in E?!s.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return s[l]}}),Object.defineProperty(o,c,E)}:function(o,s,l,c){c===void 0&&(c=l),o[c]=s[l]}),t=Yu&&Yu.__exportStar||function(o,s){for(var l in o)l!=="default"&&!Object.prototype.hasOwnProperty.call(s,l)&&e(s,o,l)};Object.defineProperty(u,"__esModule",{value:!0}),u.useMakePlural=u.Pluralization=u.MissingTranslation=u.Locales=u.I18n=void 0;var n=Cd;Object.defineProperty(u,"I18n",{enumerable:!0,get:function(){return n.I18n}});var r=w5;Object.defineProperty(u,"Locales",{enumerable:!0,get:function(){return r.Locales}});var i=_5;Object.defineProperty(u,"MissingTranslation",{enumerable:!0,get:function(){return i.MissingTranslation}});var a=k5;Object.defineProperty(u,"Pluralization",{enumerable:!0,get:function(){return a.Pluralization}}),Object.defineProperty(u,"useMakePlural",{enumerable:!0,get:function(){return a.useMakePlural}}),t(Ab,u)})(yD);var Df=function(u,e){return Df=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])},Df(u,e)};function yb(u,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Df(u,e);function t(){this.constructor=u}u.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var lt=function(){return lt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;o--)(a=u[o])&&(i=(r<3?a(i):r>3?a(e,t,i):a(e,t))||i);return r>3&&i&&Object.defineProperty(e,t,i),i}function vb(u,e){return function(t,n){e(t,n,u)}}function anu(u,e,t,n,r,i){function a(g){if(g!==void 0&&typeof g!="function")throw new TypeError("Function expected");return g}for(var o=n.kind,s=o==="getter"?"get":o==="setter"?"set":"value",l=!e&&u?n.static?u:u.prototype:null,c=e||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),E,d=!1,f=t.length-1;f>=0;f--){var C={};for(var h in n)C[h]=h==="access"?{}:n[h];for(var h in n.access)C.access[h]=n.access[h];C.addInitializer=function(g){if(d)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(g||null))};var B=(0,t[f])(o==="accessor"?{get:c.get,set:c.set}:c[s],C);if(o==="accessor"){if(B===void 0)continue;if(B===null||typeof B!="object")throw new TypeError("Object expected");(E=a(B.get))&&(c.get=E),(E=a(B.set))&&(c.set=E),(E=a(B.init))&&r.unshift(E)}else(E=a(B))&&(o==="field"?r.unshift(E):c[s]=E)}l&&Object.defineProperty(l,n.name,c),d=!0}function onu(u,e,t){for(var n=arguments.length>2,r=0;r0&&i[i.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!i||l[1]>i[0]&&l[1]=u.length&&(u=void 0),{value:u&&u[n++],done:!u}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function O5(u,e){var t=typeof Symbol=="function"&&u[Symbol.iterator];if(!t)return u;var n=t.call(u),r,i=[],a;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)i.push(r.value)}catch(o){a={error:o}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(a)throw a.error}}return i}function xb(){for(var u=[],e=0;e1||o(d,f)})})}function o(d,f){try{s(n[d](f))}catch(C){E(i[0][3],C)}}function s(d){d.value instanceof Bs?Promise.resolve(d.value.v).then(l,c):E(i[0][2],d)}function l(d){o("next",d)}function c(d){o("throw",d)}function E(d,f){d(f),i.shift(),i.length&&o(i[0][0],i[0][1])}}function Sb(u){var e,t;return e={},n("next"),n("throw",function(r){throw r}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(r,i){e[r]=u[r]?function(a){return(t=!t)?{value:Bs(u[r](a)),done:!1}:i?i(a):a}:i}}function Pb(u){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=u[Symbol.asyncIterator],t;return e?e.call(u):(u=typeof XE=="function"?XE(u):u[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=u[i]&&function(a){return new Promise(function(o,s){a=u[i](a),r(o,s,a.done,a.value)})}}function r(i,a,o,s){Promise.resolve(s).then(function(l){i({value:l,done:o})},a)}}function Tb(u,e){return Object.defineProperty?Object.defineProperty(u,"raw",{value:e}):u.raw=e,u}var cnu=Object.create?function(u,e){Object.defineProperty(u,"default",{enumerable:!0,value:e})}:function(u,e){u.default=e};function Ib(u){if(u&&u.__esModule)return u;var e={};if(u!=null)for(var t in u)t!=="default"&&Object.prototype.hasOwnProperty.call(u,t)&&zd(e,u,t);return cnu(e,u),e}function Ob(u){return u&&u.__esModule?u:{default:u}}function Nb(u,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?u!==e||!n:!e.has(u))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(u):n?n.value:e.get(u)}function Rb(u,e,t,n,r){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?u!==e||!r:!e.has(u))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?r.call(u,t):r?r.value=t:e.set(u,t),t}function jb(u,e){if(e===null||typeof e!="object"&&typeof e!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof u=="function"?e===u:u.has(e)}function zb(u,e,t){if(e!=null){if(typeof e!="object"&&typeof e!="function")throw new TypeError("Object expected.");var n;if(t){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=e[Symbol.asyncDispose]}if(n===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=e[Symbol.dispose]}if(typeof n!="function")throw new TypeError("Object not disposable.");u.stack.push({value:e,dispose:n,async:t})}else t&&u.stack.push({async:!0});return e}var Enu=typeof SuppressedError=="function"?SuppressedError:function(u,e,t){var n=new Error(t);return n.name="SuppressedError",n.error=u,n.suppressed=e,n};function Mb(u){function e(n){u.error=u.hasError?new Enu(n,u.error,"An error was suppressed during disposal."):n,u.hasError=!0}function t(){for(;u.stack.length;){var n=u.stack.pop();try{var r=n.dispose&&n.dispose.call(n.value);if(n.async)return Promise.resolve(r).then(t,function(i){return e(i),t()})}catch(i){e(i)}}if(u.hasError)throw u.error}return t()}const dnu={__extends:yb,__assign:lt,__rest:jd,__decorate:Bb,__param:vb,__metadata:Fb,__awaiter:Db,__generator:bb,__createBinding:zd,__exportStar:wb,__values:XE,__read:O5,__spread:xb,__spreadArrays:kb,__spreadArray:N5,__await:Bs,__asyncGenerator:_b,__asyncDelegator:Sb,__asyncValues:Pb,__makeTemplateObject:Tb,__importStar:Ib,__importDefault:Ob,__classPrivateFieldGet:Nb,__classPrivateFieldSet:Rb,__classPrivateFieldIn:jb,__addDisposableResource:zb,__disposeResources:Mb},D6u=Object.freeze(Object.defineProperty({__proto__:null,__addDisposableResource:zb,get __assign(){return lt},__asyncDelegator:Sb,__asyncGenerator:_b,__asyncValues:Pb,__await:Bs,__awaiter:Db,__classPrivateFieldGet:Nb,__classPrivateFieldIn:jb,__classPrivateFieldSet:Rb,__createBinding:zd,__decorate:Bb,__disposeResources:Mb,__esDecorate:anu,__exportStar:wb,__extends:yb,__generator:bb,__importDefault:Ob,__importStar:Ib,__makeTemplateObject:Tb,__metadata:Fb,__param:vb,__propKey:snu,__read:O5,__rest:jd,__runInitializers:onu,__setFunctionName:lnu,__spread:xb,__spreadArray:N5,__spreadArrays:kb,__values:XE,default:dnu},Symbol.toStringTag,{value:"Module"}));var Xc="right-scroll-bar-position",Zc="width-before-scroll-bar",fnu="with-scroll-bars-hidden",pnu="--removed-body-scroll-bar-size";function hnu(u,e){return typeof u=="function"?u(e):u&&(u.current=e),u}function Cnu(u,e){var t=M.useState(function(){return{value:u,callback:e,facade:{get current(){return t.value},set current(n){var r=t.value;r!==n&&(t.value=n,t.callback(n,r))}}}})[0];return t.callback=e,t.facade}function mnu(u,e){return Cnu(e||null,function(t){return u.forEach(function(n){return hnu(n,t)})})}function gnu(u){return u}function Anu(u,e){e===void 0&&(e=gnu);var t=[],n=!1,r={read:function(){if(n)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return t.length?t[t.length-1]:u},useMedium:function(i){var a=e(i,n);return t.push(a),function(){t=t.filter(function(o){return o!==a})}},assignSyncMedium:function(i){for(n=!0;t.length;){var a=t;t=[],a.forEach(i)}t={push:function(o){return i(o)},filter:function(){return t}}},assignMedium:function(i){n=!0;var a=[];if(t.length){var o=t;t=[],o.forEach(i),a=t}var s=function(){var c=a;a=[],c.forEach(i)},l=function(){return Promise.resolve().then(s)};l(),t={push:function(c){a.push(c),l()},filter:function(c){return a=a.filter(c),t}}}};return r}function ynu(u){u===void 0&&(u={});var e=Anu(null);return e.options=lt({async:!0,ssr:!1},u),e}var Ub=function(u){var e=u.sideCar,t=jd(u,["sideCar"]);if(!e)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var n=e.read();if(!n)throw new Error("Sidecar medium not found");return M.createElement(n,lt({},t))};Ub.isSideCarExport=!0;function Bnu(u,e){return u.useMedium(e),Ub}var Lb=ynu(),E1=function(){},Md=M.forwardRef(function(u,e){var t=M.useRef(null),n=M.useState({onScrollCapture:E1,onWheelCapture:E1,onTouchMoveCapture:E1}),r=n[0],i=n[1],a=u.forwardProps,o=u.children,s=u.className,l=u.removeScrollBar,c=u.enabled,E=u.shards,d=u.sideCar,f=u.noIsolation,C=u.inert,h=u.allowPinchZoom,B=u.as,g=B===void 0?"div":B,m=jd(u,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),y=d,v=mnu([t,e]),w=lt(lt({},m),r);return M.createElement(M.Fragment,null,c&&M.createElement(y,{sideCar:Lb,removeScrollBar:l,shards:E,noIsolation:f,inert:C,setCallbacks:i,allowPinchZoom:!!h,lockRef:t}),a?M.cloneElement(M.Children.only(o),lt(lt({},w),{ref:v})):M.createElement(g,lt({},w,{className:s,ref:v}),o))});Md.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Md.classNames={fullWidth:Zc,zeroRight:Xc};var Pg,vnu=function(){if(Pg)return Pg;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Fnu(){if(!document)return null;var u=document.createElement("style");u.type="text/css";var e=vnu();return e&&u.setAttribute("nonce",e),u}function Dnu(u,e){u.styleSheet?u.styleSheet.cssText=e:u.appendChild(document.createTextNode(e))}function bnu(u){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(u)}var wnu=function(){var u=0,e=null;return{add:function(t){u==0&&(e=Fnu())&&(Dnu(e,t),bnu(e)),u++},remove:function(){u--,!u&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}},xnu=function(){var u=wnu();return function(e,t){M.useEffect(function(){return u.add(e),function(){u.remove()}},[e&&t])}},$b=function(){var u=xnu(),e=function(t){var n=t.styles,r=t.dynamic;return u(n,r),null};return e},knu={left:0,top:0,right:0,gap:0},d1=function(u){return parseInt(u||"",10)||0},_nu=function(u){var e=window.getComputedStyle(document.body),t=e[u==="padding"?"paddingLeft":"marginLeft"],n=e[u==="padding"?"paddingTop":"marginTop"],r=e[u==="padding"?"paddingRight":"marginRight"];return[d1(t),d1(n),d1(r)]},Snu=function(u){if(u===void 0&&(u="margin"),typeof window>"u")return knu;var e=_nu(u),t=document.documentElement.clientWidth,n=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,n-t+e[2]-e[0])}},Pnu=$b(),Tnu=function(u,e,t,n){var r=u.left,i=u.top,a=u.right,o=u.gap;return t===void 0&&(t="margin"),` + .`.concat(fnu,` { overflow: hidden `).concat(n,`; padding-right: `).concat(o,"px ").concat(n,`; } @@ -107,37 +107,37 @@ ${t.length}`);return s0(Vn([n,t]),e)}function cR(u){return u.map(e=>({...e,value `),t==="padding"&&"padding-right: ".concat(o,"px ").concat(n,";")].filter(Boolean).join(""),` } - .`).concat(Yc,` { + .`).concat(Xc,` { right: `).concat(o,"px ").concat(n,`; } - .`).concat(Xc,` { + .`).concat(Zc,` { margin-right: `).concat(o,"px ").concat(n,`; } - .`).concat(Yc," .").concat(Yc,` { + .`).concat(Xc," .").concat(Xc,` { right: 0 `).concat(n,`; } - .`).concat(Xc," .").concat(Xc,` { + .`).concat(Zc," .").concat(Zc,` { margin-right: 0 `).concat(n,`; } body { - `).concat(fnu,": ").concat(o,`px; + `).concat(pnu,": ").concat(o,`px; } -`)},Tnu=function(u){var e=u.noRelative,t=u.noImportant,n=u.gapMode,r=n===void 0?"margin":n,i=M.useMemo(function(){return _nu(r)},[r]);return M.createElement(Snu,{styles:Pnu(i,!e,r,t?"":"!important")})},Df=!1;if(typeof window<"u")try{var Fc=Object.defineProperty({},"passive",{get:function(){return Df=!0,!0}});window.addEventListener("test",Fc,Fc),window.removeEventListener("test",Fc,Fc)}catch{Df=!1}var wa=Df?{passive:!1}:!1,Inu=function(u){var e=window.getComputedStyle(u);return e.overflowY!=="hidden"&&!(e.overflowY===e.overflowX&&e.overflowY==="visible")},Onu=function(u){var e=window.getComputedStyle(u);return e.overflowX!=="hidden"&&!(e.overflowY===e.overflowX&&e.overflowX==="visible")},Pg=function(u,e){var t=e;do{typeof ShadowRoot<"u"&&t instanceof ShadowRoot&&(t=t.host);var n=$b(u,t);if(n){var r=Wb(u,t),i=r[1],a=r[2];if(i>a)return!0}t=t.parentNode}while(t&&t!==document.body);return!1},Nnu=function(u){var e=u.scrollTop,t=u.scrollHeight,n=u.clientHeight;return[e,t,n]},Rnu=function(u){var e=u.scrollLeft,t=u.scrollWidth,n=u.clientWidth;return[e,t,n]},$b=function(u,e){return u==="v"?Inu(e):Onu(e)},Wb=function(u,e){return u==="v"?Nnu(e):Rnu(e)},jnu=function(u,e){return u==="h"&&e==="rtl"?-1:1},znu=function(u,e,t,n,r){var i=jnu(u,window.getComputedStyle(e).direction),a=i*n,o=t.target,s=e.contains(o),l=!1,c=a>0,E=0,d=0;do{var f=Wb(u,o),C=f[0],h=f[1],B=f[2],g=h-B-i*C;(C||g)&&$b(u,o)&&(E+=g,d+=C),o=o.parentNode}while(!s&&o!==document.body||s&&(e.contains(o)||e===o));return(c&&(r&&E===0||!r&&a>E)||!c&&(r&&d===0||!r&&-a>d))&&(l=!0),l},Dc=function(u){return"changedTouches"in u?[u.changedTouches[0].clientX,u.changedTouches[0].clientY]:[0,0]},Tg=function(u){return[u.deltaX,u.deltaY]},Ig=function(u){return u&&"current"in u?u.current:u},Mnu=function(u,e){return u[0]===e[0]&&u[1]===e[1]},Unu=function(u){return` +`)},Inu=function(u){var e=u.noRelative,t=u.noImportant,n=u.gapMode,r=n===void 0?"margin":n,i=M.useMemo(function(){return Snu(r)},[r]);return M.createElement(Pnu,{styles:Tnu(i,!e,r,t?"":"!important")})},bf=!1;if(typeof window<"u")try{var Dc=Object.defineProperty({},"passive",{get:function(){return bf=!0,!0}});window.addEventListener("test",Dc,Dc),window.removeEventListener("test",Dc,Dc)}catch{bf=!1}var xa=bf?{passive:!1}:!1,Onu=function(u){var e=window.getComputedStyle(u);return e.overflowY!=="hidden"&&!(e.overflowY===e.overflowX&&e.overflowY==="visible")},Nnu=function(u){var e=window.getComputedStyle(u);return e.overflowX!=="hidden"&&!(e.overflowY===e.overflowX&&e.overflowX==="visible")},Tg=function(u,e){var t=e;do{typeof ShadowRoot<"u"&&t instanceof ShadowRoot&&(t=t.host);var n=Wb(u,t);if(n){var r=qb(u,t),i=r[1],a=r[2];if(i>a)return!0}t=t.parentNode}while(t&&t!==document.body);return!1},Rnu=function(u){var e=u.scrollTop,t=u.scrollHeight,n=u.clientHeight;return[e,t,n]},jnu=function(u){var e=u.scrollLeft,t=u.scrollWidth,n=u.clientWidth;return[e,t,n]},Wb=function(u,e){return u==="v"?Onu(e):Nnu(e)},qb=function(u,e){return u==="v"?Rnu(e):jnu(e)},znu=function(u,e){return u==="h"&&e==="rtl"?-1:1},Mnu=function(u,e,t,n,r){var i=znu(u,window.getComputedStyle(e).direction),a=i*n,o=t.target,s=e.contains(o),l=!1,c=a>0,E=0,d=0;do{var f=qb(u,o),C=f[0],h=f[1],B=f[2],g=h-B-i*C;(C||g)&&Wb(u,o)&&(E+=g,d+=C),o=o.parentNode}while(!s&&o!==document.body||s&&(e.contains(o)||e===o));return(c&&(r&&E===0||!r&&a>E)||!c&&(r&&d===0||!r&&-a>d))&&(l=!0),l},bc=function(u){return"changedTouches"in u?[u.changedTouches[0].clientX,u.changedTouches[0].clientY]:[0,0]},Ig=function(u){return[u.deltaX,u.deltaY]},Og=function(u){return u&&"current"in u?u.current:u},Unu=function(u,e){return u[0]===e[0]&&u[1]===e[1]},Lnu=function(u){return` .block-interactivity-`.concat(u,` {pointer-events: none;} .allow-interactivity-`).concat(u,` {pointer-events: all;} -`)},Lnu=0,xa=[];function $nu(u){var e=M.useRef([]),t=M.useRef([0,0]),n=M.useRef(),r=M.useState(Lnu++)[0],i=M.useState(function(){return Lb()})[0],a=M.useRef(u);M.useEffect(function(){a.current=u},[u]),M.useEffect(function(){if(u.inert){document.body.classList.add("block-interactivity-".concat(r));var h=O5([u.lockRef.current],(u.shards||[]).map(Ig),!0).filter(Boolean);return h.forEach(function(B){return B.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),h.forEach(function(B){return B.classList.remove("allow-interactivity-".concat(r))})}}},[u.inert,u.lockRef.current,u.shards]);var o=M.useCallback(function(h,B){if("touches"in h&&h.touches.length===2)return!a.current.allowPinchZoom;var g=Dc(h),m=t.current,y="deltaX"in h?h.deltaX:m[0]-g[0],v="deltaY"in h?h.deltaY:m[1]-g[1],w,D=h.target,p=Math.abs(y)>Math.abs(v)?"h":"v";if("touches"in h&&p==="h"&&D.type==="range")return!1;var x=Pg(p,D);if(!x)return!0;if(x?w=p:(w=p==="v"?"h":"v",x=Pg(p,D)),!x)return!1;if(!n.current&&"changedTouches"in h&&(y||v)&&(n.current=w),!w)return!0;var j=n.current||w;return znu(j,B,h,j==="h"?y:v,!0)},[]),s=M.useCallback(function(h){var B=h;if(!(!xa.length||xa[xa.length-1]!==i)){var g="deltaY"in B?Tg(B):Dc(B),m=e.current.filter(function(w){return w.name===B.type&&w.target===B.target&&Mnu(w.delta,g)})[0];if(m&&m.should){B.preventDefault();return}if(!m){var y=(a.current.shards||[]).map(Ig).filter(Boolean).filter(function(w){return w.contains(B.target)}),v=y.length>0?o(B,y[0]):!a.current.noIsolation;v&&B.preventDefault()}}},[]),l=M.useCallback(function(h,B,g,m){var y={name:h,delta:B,target:g,should:m};e.current.push(y),setTimeout(function(){e.current=e.current.filter(function(v){return v!==y})},1)},[]),c=M.useCallback(function(h){t.current=Dc(h),n.current=void 0},[]),E=M.useCallback(function(h){l(h.type,Tg(h),h.target,o(h,u.lockRef.current))},[]),d=M.useCallback(function(h){l(h.type,Dc(h),h.target,o(h,u.lockRef.current))},[]);M.useEffect(function(){return xa.push(i),u.setCallbacks({onScrollCapture:E,onWheelCapture:E,onTouchMoveCapture:d}),document.addEventListener("wheel",s,wa),document.addEventListener("touchmove",s,wa),document.addEventListener("touchstart",c,wa),function(){xa=xa.filter(function(h){return h!==i}),document.removeEventListener("wheel",s,wa),document.removeEventListener("touchmove",s,wa),document.removeEventListener("touchstart",c,wa)}},[]);var f=u.removeScrollBar,C=u.inert;return M.createElement(M.Fragment,null,C?M.createElement(i,{styles:Unu(r)}):null,f?M.createElement(Tnu,{gapMode:"margin"}):null)}const Wnu=ynu(Ub,$nu);var qb=M.forwardRef(function(u,e){return M.createElement(zd,st({},u,{ref:e,sideCar:Wnu}))});qb.classNames=zd.classNames;const qnu=qb;function Og(u){var e=u.match(/^var\((.*)\)$/);return e?e[1]:u}function Hnu(u,e){var t=u;for(var n of e){if(!(n in t))throw new Error("Path ".concat(e.join(" -> ")," does not exist in object"));t=t[n]}return t}function Hb(u,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],n=u.constructor();for(var r in u){var i=u[r],a=[...t,r];typeof i=="string"||typeof i=="number"||i==null?n[r]=e(i,a):typeof i=="object"&&!Array.isArray(i)?n[r]=Hb(i,e,a):console.warn('Skipping invalid key "'.concat(a.join("."),'". Should be a string, number, null or object. Received: "').concat(Array.isArray(i)?"Array":typeof i,'"'))}return n}function Ng(u,e){var t={};if(typeof e=="object"){var n=u;Hb(e,(a,o)=>{var s=Hnu(n,o);t[Og(s)]=String(a)})}else{var r=u;for(var i in r)t[Og(i)]=r[i]}return Object.defineProperty(t,"toString",{value:function(){return Object.keys(this).map(o=>"".concat(o,":").concat(this[o])).join(";")},writable:!1}),t}var $l={},Gnu=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then},Gb={},Q0={};let N5;const Knu=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];Q0.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17};Q0.getSymbolTotalCodewords=function(e){return Knu[e]};Q0.getBCHDigit=function(u){let e=0;for(;u!==0;)e++,u>>>=1;return e};Q0.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');N5=e};Q0.isKanjiModeEnabled=function(){return typeof N5<"u"};Q0.toSJIS=function(e){return N5(e)};var Md={};(function(u){u.L={bit:1},u.M={bit:0},u.Q={bit:3},u.H={bit:2};function e(t){if(typeof t!="string")throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return u.L;case"m":case"medium":return u.M;case"q":case"quartile":return u.Q;case"h":case"high":return u.H;default:throw new Error("Unknown EC Level: "+t)}}u.isValid=function(n){return n&&typeof n.bit<"u"&&n.bit>=0&&n.bit<4},u.from=function(n,r){if(u.isValid(n))return n;try{return e(n)}catch{return r}}})(Md);function Kb(){this.buffer=[],this.length=0}Kb.prototype={get:function(u){const e=Math.floor(u/8);return(this.buffer[e]>>>7-u%8&1)===1},put:function(u,e){for(let t=0;t>>e-t-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(u){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),u&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var Qnu=Kb;function Wl(u){if(!u||u<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=u,this.data=new Uint8Array(u*u),this.reservedBit=new Uint8Array(u*u)}Wl.prototype.set=function(u,e,t,n){const r=u*this.size+e;this.data[r]=t,n&&(this.reservedBit[r]=!0)};Wl.prototype.get=function(u,e){return this.data[u*this.size+e]};Wl.prototype.xor=function(u,e,t){this.data[u*this.size+e]^=t};Wl.prototype.isReserved=function(u,e){return this.reservedBit[u*this.size+e]};var Vnu=Wl,Qb={};(function(u){const e=Q0.getSymbolSize;u.getRowColCoords=function(n){if(n===1)return[];const r=Math.floor(n/7)+2,i=e(n),a=i===145?26:Math.ceil((i-13)/(2*r-2))*2,o=[i-7];for(let s=1;s=0&&r<=7},u.from=function(r){return u.isValid(r)?parseInt(r,10):void 0},u.getPenaltyN1=function(r){const i=r.size;let a=0,o=0,s=0,l=null,c=null;for(let E=0;E=5&&(a+=e.N1+(o-5)),l=f,o=1),f=r.get(d,E),f===c?s++:(s>=5&&(a+=e.N1+(s-5)),c=f,s=1)}o>=5&&(a+=e.N1+(o-5)),s>=5&&(a+=e.N1+(s-5))}return a},u.getPenaltyN2=function(r){const i=r.size;let a=0;for(let o=0;o=10&&(o===1488||o===93)&&a++,s=s<<1&2047|r.get(c,l),c>=10&&(s===1488||s===93)&&a++}return a*e.N3},u.getPenaltyN4=function(r){let i=0;const a=r.data.length;for(let s=0;s=0;){const a=i[0];for(let s=0;s0){const i=new Uint8Array(this.degree);return i.set(n,r),i}return n};var Ynu=R5,Zb={},oi={},j5={};j5.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40};var fn={};const uw="[0-9]+",Xnu="[A-Z $%*+\\-./:]+";let M3="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";M3=M3.replace(/u/g,"\\u");const Znu="(?:(?![A-Z0-9 $%*+\\-./:]|"+M3+`)(?:.|[\r -]))+`;fn.KANJI=new RegExp(M3,"g");fn.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");fn.BYTE=new RegExp(Znu,"g");fn.NUMERIC=new RegExp(uw,"g");fn.ALPHANUMERIC=new RegExp(Xnu,"g");const uru=new RegExp("^"+M3+"$"),eru=new RegExp("^"+uw+"$"),tru=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");fn.testKanji=function(e){return uru.test(e)};fn.testNumeric=function(e){return eru.test(e)};fn.testAlphanumeric=function(e){return tru.test(e)};(function(u){const e=j5,t=fn;u.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},u.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},u.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},u.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},u.MIXED={bit:-1},u.getCharCountIndicator=function(i,a){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!e.isValid(a))throw new Error("Invalid version: "+a);return a>=1&&a<10?i.ccBits[0]:a<27?i.ccBits[1]:i.ccBits[2]},u.getBestModeForData=function(i){return t.testNumeric(i)?u.NUMERIC:t.testAlphanumeric(i)?u.ALPHANUMERIC:t.testKanji(i)?u.KANJI:u.BYTE},u.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},u.isValid=function(i){return i&&i.bit&&i.ccBits};function n(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return u.NUMERIC;case"alphanumeric":return u.ALPHANUMERIC;case"kanji":return u.KANJI;case"byte":return u.BYTE;default:throw new Error("Unknown mode: "+r)}}u.from=function(i,a){if(u.isValid(i))return i;try{return n(i)}catch{return a}}})(oi);(function(u){const e=Q0,t=Ud,n=Md,r=oi,i=j5,a=7973,o=e.getBCHDigit(a);function s(d,f,C){for(let h=1;h<=40;h++)if(f<=u.getCapacity(h,C,d))return h}function l(d,f){return r.getCharCountIndicator(d,f)+4}function c(d,f){let C=0;return d.forEach(function(h){const B=l(h.mode,f);C+=B+h.getBitsLength()}),C}function E(d,f){for(let C=1;C<=40;C++)if(c(d,C)<=u.getCapacity(C,f,r.MIXED))return C}u.from=function(f,C){return i.isValid(f)?parseInt(f,10):C},u.getCapacity=function(f,C,h){if(!i.isValid(f))throw new Error("Invalid QR Code version");typeof h>"u"&&(h=r.BYTE);const B=e.getSymbolTotalCodewords(f),g=t.getTotalCodewordsCount(f,C),m=(B-g)*8;if(h===r.MIXED)return m;const y=m-l(h,f);switch(h){case r.NUMERIC:return Math.floor(y/10*3);case r.ALPHANUMERIC:return Math.floor(y/11*2);case r.KANJI:return Math.floor(y/13);case r.BYTE:default:return Math.floor(y/8)}},u.getBestVersionForData=function(f,C){let h;const B=n.from(C,n.M);if(Array.isArray(f)){if(f.length>1)return E(f,B);if(f.length===0)return 1;h=f[0]}else h=f;return s(h.mode,h.getLength(),B)},u.getEncodedBits=function(f){if(!i.isValid(f)||f<7)throw new Error("Invalid QR Code version");let C=f<<12;for(;e.getBCHDigit(C)-o>=0;)C^=a<=0;)r^=tw<0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))};var iru=Bs;const aru=oi,d1=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function vs(u){this.mode=aru.ALPHANUMERIC,this.data=u}vs.getBitsLength=function(e){return 11*Math.floor(e/2)+6*(e%2)};vs.prototype.getLength=function(){return this.data.length};vs.prototype.getBitsLength=function(){return vs.getBitsLength(this.data.length)};vs.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=d1.indexOf(this.data[t])*45;n+=d1.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(d1.indexOf(this.data[t]),6)};var oru=vs,sru=function(e){for(var t=[],n=e.length,r=0;r=55296&&i<=56319&&n>r+1){var a=e.charCodeAt(r+1);a>=56320&&a<=57343&&(i=(i-55296)*1024+a-56320+65536,r+=1)}if(i<128){t.push(i);continue}if(i<2048){t.push(i>>6|192),t.push(i&63|128);continue}if(i<55296||i>=57344&&i<65536){t.push(i>>12|224),t.push(i>>6&63|128),t.push(i&63|128);continue}if(i>=65536&&i<=1114111){t.push(i>>18|240),t.push(i>>12&63|128),t.push(i>>6&63|128),t.push(i&63|128);continue}t.push(239,191,189)}return new Uint8Array(t).buffer};const lru=sru,cru=oi;function Fs(u){this.mode=cru.BYTE,this.data=new Uint8Array(lru(u))}Fs.getBitsLength=function(e){return e*8};Fs.prototype.getLength=function(){return this.data.length};Fs.prototype.getBitsLength=function(){return Fs.getBitsLength(this.data.length)};Fs.prototype.write=function(u){for(let e=0,t=this.data.length;e=33088&&t<=40956)t-=33088;else if(t>=57408&&t<=60351)t-=49472;else throw new Error("Invalid SJIS character: "+this.data[e]+` -Make sure your charset is UTF-8`);t=(t>>>8&255)*192+(t&255),u.put(t,13)}};var pru=Ds,rw={exports:{}};(function(u){var e={single_source_shortest_paths:function(t,n,r){var i={},a={};a[n]=0;var o=e.PriorityQueue.make();o.push(n,0);for(var s,l,c,E,d,f,C,h,B;!o.empty();){s=o.pop(),l=s.value,E=s.cost,d=t[l]||{};for(c in d)d.hasOwnProperty(c)&&(f=d[c],C=E+f,h=a[c],B=typeof a[c]>"u",(B||h>C)&&(a[c]=C,o.push(c,C),i[c]=l))}if(typeof r<"u"&&typeof a[r]>"u"){var g=["Could not find a path from ",n," to ",r,"."].join("");throw new Error(g)}return i},extract_shortest_path_from_predecessor_list:function(t,n){for(var r=[],i=n;i;)r.push(i),t[i],i=t[i];return r.reverse(),r},find_path:function(t,n,r){var i=e.single_source_shortest_paths(t,n,r);return e.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(t){var n=e.PriorityQueue,r={},i;t=t||{};for(i in n)n.hasOwnProperty(i)&&(r[i]=n[i]);return r.queue=[],r.sorter=t.sorter||n.default_sorter,r},default_sorter:function(t,n){return t.cost-n.cost},push:function(t,n){var r={value:t,cost:n};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};u.exports=e})(rw);var hru=rw.exports;(function(u){const e=oi,t=iru,n=oru,r=Eru,i=pru,a=fn,o=Q0,s=hru;function l(g){return unescape(encodeURIComponent(g)).length}function c(g,m,y){const v=[];let w;for(;(w=g.exec(y))!==null;)v.push({data:w[0],index:w.index,mode:m,length:w[0].length});return v}function E(g){const m=c(a.NUMERIC,e.NUMERIC,g),y=c(a.ALPHANUMERIC,e.ALPHANUMERIC,g);let v,w;return o.isKanjiModeEnabled()?(v=c(a.BYTE,e.BYTE,g),w=c(a.KANJI,e.KANJI,g)):(v=c(a.BYTE_KANJI,e.BYTE,g),w=[]),m.concat(y,v,w).sort(function(p,x){return p.index-x.index}).map(function(p){return{data:p.data,mode:p.mode,length:p.length}})}function d(g,m){switch(m){case e.NUMERIC:return t.getBitsLength(g);case e.ALPHANUMERIC:return n.getBitsLength(g);case e.KANJI:return i.getBitsLength(g);case e.BYTE:return r.getBitsLength(g)}}function f(g){return g.reduce(function(m,y){const v=m.length-1>=0?m[m.length-1]:null;return v&&v.mode===y.mode?(m[m.length-1].data+=y.data,m):(m.push(y),m)},[])}function C(g){const m=[];for(let y=0;y=0&&o<=6&&(s===0||s===6)||s>=0&&s<=6&&(o===0||o===6)||o>=2&&o<=4&&s>=2&&s<=4?u.set(i+o,a+s,!0,!0):u.set(i+o,a+s,!1,!0))}}function Dru(u){const e=u.size;for(let t=8;t>o&1)===1,u.set(r,i,a,!0),u.set(i,r,a,!0)}function h1(u,e,t){const n=u.size,r=Bru.getEncodedBits(e,t);let i,a;for(i=0;i<15;i++)a=(r>>i&1)===1,i<6?u.set(i,8,a,!0):i<8?u.set(i+1,8,a,!0):u.set(n-15+i,8,a,!0),i<8?u.set(8,n-i-1,a,!0):i<9?u.set(8,15-i-1+1,a,!0):u.set(8,15-i-1,a,!0);u.set(n-8,8,1,!0)}function xru(u,e){const t=u.size;let n=-1,r=t-1,i=7,a=0;for(let o=t-1;o>0;o-=2)for(o===6&&o--;;){for(let s=0;s<2;s++)if(!u.isReserved(r,o-s)){let l=!1;a>>i&1)===1),u.set(r,o-s,l),i--,i===-1&&(a++,i=7)}if(r+=n,r<0||t<=r){r-=n,n=-n;break}}}function kru(u,e,t){const n=new Cru;t.forEach(function(s){n.put(s.mode.bit,4),n.put(s.getLength(),vru.getCharCountIndicator(s.mode,u)),s.write(n)});const r=$d.getSymbolTotalCodewords(u),i=xf.getTotalCodewordsCount(u,e),a=(r-i)*8;for(n.getLengthInBits()+4<=a&&n.put(0,4);n.getLengthInBits()%8!==0;)n.putBit(0);const o=(a-n.getLengthInBits())/8;for(let s=0;sMath.abs(v)?"h":"v";if("touches"in h&&p==="h"&&D.type==="range")return!1;var x=Tg(p,D);if(!x)return!0;if(x?w=p:(w=p==="v"?"h":"v",x=Tg(p,D)),!x)return!1;if(!n.current&&"changedTouches"in h&&(y||v)&&(n.current=w),!w)return!0;var j=n.current||w;return Mnu(j,B,h,j==="h"?y:v,!0)},[]),s=M.useCallback(function(h){var B=h;if(!(!ka.length||ka[ka.length-1]!==i)){var g="deltaY"in B?Ig(B):bc(B),m=e.current.filter(function(w){return w.name===B.type&&w.target===B.target&&Unu(w.delta,g)})[0];if(m&&m.should){B.preventDefault();return}if(!m){var y=(a.current.shards||[]).map(Og).filter(Boolean).filter(function(w){return w.contains(B.target)}),v=y.length>0?o(B,y[0]):!a.current.noIsolation;v&&B.preventDefault()}}},[]),l=M.useCallback(function(h,B,g,m){var y={name:h,delta:B,target:g,should:m};e.current.push(y),setTimeout(function(){e.current=e.current.filter(function(v){return v!==y})},1)},[]),c=M.useCallback(function(h){t.current=bc(h),n.current=void 0},[]),E=M.useCallback(function(h){l(h.type,Ig(h),h.target,o(h,u.lockRef.current))},[]),d=M.useCallback(function(h){l(h.type,bc(h),h.target,o(h,u.lockRef.current))},[]);M.useEffect(function(){return ka.push(i),u.setCallbacks({onScrollCapture:E,onWheelCapture:E,onTouchMoveCapture:d}),document.addEventListener("wheel",s,xa),document.addEventListener("touchmove",s,xa),document.addEventListener("touchstart",c,xa),function(){ka=ka.filter(function(h){return h!==i}),document.removeEventListener("wheel",s,xa),document.removeEventListener("touchmove",s,xa),document.removeEventListener("touchstart",c,xa)}},[]);var f=u.removeScrollBar,C=u.inert;return M.createElement(M.Fragment,null,C?M.createElement(i,{styles:Lnu(r)}):null,f?M.createElement(Inu,{gapMode:"margin"}):null)}const qnu=Bnu(Lb,Wnu);var Hb=M.forwardRef(function(u,e){return M.createElement(Md,lt({},u,{ref:e,sideCar:qnu}))});Hb.classNames=Md.classNames;const Hnu=Hb;function Ng(u){var e=u.match(/^var\((.*)\)$/);return e?e[1]:u}function Gnu(u,e){var t=u;for(var n of e){if(!(n in t))throw new Error("Path ".concat(e.join(" -> ")," does not exist in object"));t=t[n]}return t}function Gb(u,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],n=u.constructor();for(var r in u){var i=u[r],a=[...t,r];typeof i=="string"||typeof i=="number"||i==null?n[r]=e(i,a):typeof i=="object"&&!Array.isArray(i)?n[r]=Gb(i,e,a):console.warn('Skipping invalid key "'.concat(a.join("."),'". Should be a string, number, null or object. Received: "').concat(Array.isArray(i)?"Array":typeof i,'"'))}return n}function Rg(u,e){var t={};if(typeof e=="object"){var n=u;Gb(e,(a,o)=>{var s=Gnu(n,o);t[Ng(s)]=String(a)})}else{var r=u;for(var i in r)t[Ng(i)]=r[i]}return Object.defineProperty(t,"toString",{value:function(){return Object.keys(this).map(o=>"".concat(o,":").concat(this[o])).join(";")},writable:!1}),t}var Wl={},Knu=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then},Kb={},V0={};let R5;const Qnu=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];V0.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17};V0.getSymbolTotalCodewords=function(e){return Qnu[e]};V0.getBCHDigit=function(u){let e=0;for(;u!==0;)e++,u>>>=1;return e};V0.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');R5=e};V0.isKanjiModeEnabled=function(){return typeof R5<"u"};V0.toSJIS=function(e){return R5(e)};var Ud={};(function(u){u.L={bit:1},u.M={bit:0},u.Q={bit:3},u.H={bit:2};function e(t){if(typeof t!="string")throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return u.L;case"m":case"medium":return u.M;case"q":case"quartile":return u.Q;case"h":case"high":return u.H;default:throw new Error("Unknown EC Level: "+t)}}u.isValid=function(n){return n&&typeof n.bit<"u"&&n.bit>=0&&n.bit<4},u.from=function(n,r){if(u.isValid(n))return n;try{return e(n)}catch{return r}}})(Ud);function Qb(){this.buffer=[],this.length=0}Qb.prototype={get:function(u){const e=Math.floor(u/8);return(this.buffer[e]>>>7-u%8&1)===1},put:function(u,e){for(let t=0;t>>e-t-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(u){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),u&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var Vnu=Qb;function ql(u){if(!u||u<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=u,this.data=new Uint8Array(u*u),this.reservedBit=new Uint8Array(u*u)}ql.prototype.set=function(u,e,t,n){const r=u*this.size+e;this.data[r]=t,n&&(this.reservedBit[r]=!0)};ql.prototype.get=function(u,e){return this.data[u*this.size+e]};ql.prototype.xor=function(u,e,t){this.data[u*this.size+e]^=t};ql.prototype.isReserved=function(u,e){return this.reservedBit[u*this.size+e]};var Jnu=ql,Vb={};(function(u){const e=V0.getSymbolSize;u.getRowColCoords=function(n){if(n===1)return[];const r=Math.floor(n/7)+2,i=e(n),a=i===145?26:Math.ceil((i-13)/(2*r-2))*2,o=[i-7];for(let s=1;s=0&&r<=7},u.from=function(r){return u.isValid(r)?parseInt(r,10):void 0},u.getPenaltyN1=function(r){const i=r.size;let a=0,o=0,s=0,l=null,c=null;for(let E=0;E=5&&(a+=e.N1+(o-5)),l=f,o=1),f=r.get(d,E),f===c?s++:(s>=5&&(a+=e.N1+(s-5)),c=f,s=1)}o>=5&&(a+=e.N1+(o-5)),s>=5&&(a+=e.N1+(s-5))}return a},u.getPenaltyN2=function(r){const i=r.size;let a=0;for(let o=0;o=10&&(o===1488||o===93)&&a++,s=s<<1&2047|r.get(c,l),c>=10&&(s===1488||s===93)&&a++}return a*e.N3},u.getPenaltyN4=function(r){let i=0;const a=r.data.length;for(let s=0;s=0;){const a=i[0];for(let s=0;s0){const i=new Uint8Array(this.degree);return i.set(n,r),i}return n};var Xnu=j5,uw={},si={},z5={};z5.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40};var pn={};const ew="[0-9]+",Znu="[A-Z $%*+\\-./:]+";let U3="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";U3=U3.replace(/u/g,"\\u");const uru="(?:(?![A-Z0-9 $%*+\\-./:]|"+U3+`)(?:.|[\r +]))+`;pn.KANJI=new RegExp(U3,"g");pn.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");pn.BYTE=new RegExp(uru,"g");pn.NUMERIC=new RegExp(ew,"g");pn.ALPHANUMERIC=new RegExp(Znu,"g");const eru=new RegExp("^"+U3+"$"),tru=new RegExp("^"+ew+"$"),nru=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");pn.testKanji=function(e){return eru.test(e)};pn.testNumeric=function(e){return tru.test(e)};pn.testAlphanumeric=function(e){return nru.test(e)};(function(u){const e=z5,t=pn;u.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},u.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},u.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},u.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},u.MIXED={bit:-1},u.getCharCountIndicator=function(i,a){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!e.isValid(a))throw new Error("Invalid version: "+a);return a>=1&&a<10?i.ccBits[0]:a<27?i.ccBits[1]:i.ccBits[2]},u.getBestModeForData=function(i){return t.testNumeric(i)?u.NUMERIC:t.testAlphanumeric(i)?u.ALPHANUMERIC:t.testKanji(i)?u.KANJI:u.BYTE},u.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},u.isValid=function(i){return i&&i.bit&&i.ccBits};function n(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return u.NUMERIC;case"alphanumeric":return u.ALPHANUMERIC;case"kanji":return u.KANJI;case"byte":return u.BYTE;default:throw new Error("Unknown mode: "+r)}}u.from=function(i,a){if(u.isValid(i))return i;try{return n(i)}catch{return a}}})(si);(function(u){const e=V0,t=Ld,n=Ud,r=si,i=z5,a=7973,o=e.getBCHDigit(a);function s(d,f,C){for(let h=1;h<=40;h++)if(f<=u.getCapacity(h,C,d))return h}function l(d,f){return r.getCharCountIndicator(d,f)+4}function c(d,f){let C=0;return d.forEach(function(h){const B=l(h.mode,f);C+=B+h.getBitsLength()}),C}function E(d,f){for(let C=1;C<=40;C++)if(c(d,C)<=u.getCapacity(C,f,r.MIXED))return C}u.from=function(f,C){return i.isValid(f)?parseInt(f,10):C},u.getCapacity=function(f,C,h){if(!i.isValid(f))throw new Error("Invalid QR Code version");typeof h>"u"&&(h=r.BYTE);const B=e.getSymbolTotalCodewords(f),g=t.getTotalCodewordsCount(f,C),m=(B-g)*8;if(h===r.MIXED)return m;const y=m-l(h,f);switch(h){case r.NUMERIC:return Math.floor(y/10*3);case r.ALPHANUMERIC:return Math.floor(y/11*2);case r.KANJI:return Math.floor(y/13);case r.BYTE:default:return Math.floor(y/8)}},u.getBestVersionForData=function(f,C){let h;const B=n.from(C,n.M);if(Array.isArray(f)){if(f.length>1)return E(f,B);if(f.length===0)return 1;h=f[0]}else h=f;return s(h.mode,h.getLength(),B)},u.getEncodedBits=function(f){if(!i.isValid(f)||f<7)throw new Error("Invalid QR Code version");let C=f<<12;for(;e.getBCHDigit(C)-o>=0;)C^=a<=0;)r^=nw<0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))};var aru=vs;const oru=si,f1=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function Fs(u){this.mode=oru.ALPHANUMERIC,this.data=u}Fs.getBitsLength=function(e){return 11*Math.floor(e/2)+6*(e%2)};Fs.prototype.getLength=function(){return this.data.length};Fs.prototype.getBitsLength=function(){return Fs.getBitsLength(this.data.length)};Fs.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=f1.indexOf(this.data[t])*45;n+=f1.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(f1.indexOf(this.data[t]),6)};var sru=Fs,lru=function(e){for(var t=[],n=e.length,r=0;r=55296&&i<=56319&&n>r+1){var a=e.charCodeAt(r+1);a>=56320&&a<=57343&&(i=(i-55296)*1024+a-56320+65536,r+=1)}if(i<128){t.push(i);continue}if(i<2048){t.push(i>>6|192),t.push(i&63|128);continue}if(i<55296||i>=57344&&i<65536){t.push(i>>12|224),t.push(i>>6&63|128),t.push(i&63|128);continue}if(i>=65536&&i<=1114111){t.push(i>>18|240),t.push(i>>12&63|128),t.push(i>>6&63|128),t.push(i&63|128);continue}t.push(239,191,189)}return new Uint8Array(t).buffer};const cru=lru,Eru=si;function Ds(u){this.mode=Eru.BYTE,this.data=new Uint8Array(cru(u))}Ds.getBitsLength=function(e){return e*8};Ds.prototype.getLength=function(){return this.data.length};Ds.prototype.getBitsLength=function(){return Ds.getBitsLength(this.data.length)};Ds.prototype.write=function(u){for(let e=0,t=this.data.length;e=33088&&t<=40956)t-=33088;else if(t>=57408&&t<=60351)t-=49472;else throw new Error("Invalid SJIS character: "+this.data[e]+` +Make sure your charset is UTF-8`);t=(t>>>8&255)*192+(t&255),u.put(t,13)}};var hru=bs,iw={exports:{}};(function(u){var e={single_source_shortest_paths:function(t,n,r){var i={},a={};a[n]=0;var o=e.PriorityQueue.make();o.push(n,0);for(var s,l,c,E,d,f,C,h,B;!o.empty();){s=o.pop(),l=s.value,E=s.cost,d=t[l]||{};for(c in d)d.hasOwnProperty(c)&&(f=d[c],C=E+f,h=a[c],B=typeof a[c]>"u",(B||h>C)&&(a[c]=C,o.push(c,C),i[c]=l))}if(typeof r<"u"&&typeof a[r]>"u"){var g=["Could not find a path from ",n," to ",r,"."].join("");throw new Error(g)}return i},extract_shortest_path_from_predecessor_list:function(t,n){for(var r=[],i=n;i;)r.push(i),t[i],i=t[i];return r.reverse(),r},find_path:function(t,n,r){var i=e.single_source_shortest_paths(t,n,r);return e.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(t){var n=e.PriorityQueue,r={},i;t=t||{};for(i in n)n.hasOwnProperty(i)&&(r[i]=n[i]);return r.queue=[],r.sorter=t.sorter||n.default_sorter,r},default_sorter:function(t,n){return t.cost-n.cost},push:function(t,n){var r={value:t,cost:n};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};u.exports=e})(iw);var Cru=iw.exports;(function(u){const e=si,t=aru,n=sru,r=dru,i=hru,a=pn,o=V0,s=Cru;function l(g){return unescape(encodeURIComponent(g)).length}function c(g,m,y){const v=[];let w;for(;(w=g.exec(y))!==null;)v.push({data:w[0],index:w.index,mode:m,length:w[0].length});return v}function E(g){const m=c(a.NUMERIC,e.NUMERIC,g),y=c(a.ALPHANUMERIC,e.ALPHANUMERIC,g);let v,w;return o.isKanjiModeEnabled()?(v=c(a.BYTE,e.BYTE,g),w=c(a.KANJI,e.KANJI,g)):(v=c(a.BYTE_KANJI,e.BYTE,g),w=[]),m.concat(y,v,w).sort(function(p,x){return p.index-x.index}).map(function(p){return{data:p.data,mode:p.mode,length:p.length}})}function d(g,m){switch(m){case e.NUMERIC:return t.getBitsLength(g);case e.ALPHANUMERIC:return n.getBitsLength(g);case e.KANJI:return i.getBitsLength(g);case e.BYTE:return r.getBitsLength(g)}}function f(g){return g.reduce(function(m,y){const v=m.length-1>=0?m[m.length-1]:null;return v&&v.mode===y.mode?(m[m.length-1].data+=y.data,m):(m.push(y),m)},[])}function C(g){const m=[];for(let y=0;y=0&&o<=6&&(s===0||s===6)||s>=0&&s<=6&&(o===0||o===6)||o>=2&&o<=4&&s>=2&&s<=4?u.set(i+o,a+s,!0,!0):u.set(i+o,a+s,!1,!0))}}function bru(u){const e=u.size;for(let t=8;t>o&1)===1,u.set(r,i,a,!0),u.set(i,r,a,!0)}function C1(u,e,t){const n=u.size,r=vru.getEncodedBits(e,t);let i,a;for(i=0;i<15;i++)a=(r>>i&1)===1,i<6?u.set(i,8,a,!0):i<8?u.set(i+1,8,a,!0):u.set(n-15+i,8,a,!0),i<8?u.set(8,n-i-1,a,!0):i<9?u.set(8,15-i-1+1,a,!0):u.set(8,15-i-1,a,!0);u.set(n-8,8,1,!0)}function kru(u,e){const t=u.size;let n=-1,r=t-1,i=7,a=0;for(let o=t-1;o>0;o-=2)for(o===6&&o--;;){for(let s=0;s<2;s++)if(!u.isReserved(r,o-s)){let l=!1;a>>i&1)===1),u.set(r,o-s,l),i--,i===-1&&(a++,i=7)}if(r+=n,r<0||t<=r){r-=n,n=-n;break}}}function _ru(u,e,t){const n=new mru;t.forEach(function(s){n.put(s.mode.bit,4),n.put(s.getLength(),Fru.getCharCountIndicator(s.mode,u)),s.write(n)});const r=Wd.getSymbolTotalCodewords(u),i=kf.getTotalCodewordsCount(u,e),a=(r-i)*8;for(n.getLengthInBits()+4<=a&&n.put(0,4);n.getLengthInBits()%8!==0;)n.putBit(0);const o=(a-n.getLengthInBits())/8;for(let s=0;s=7&&wru(s,e),xru(s,a),isNaN(n)&&(n=wf.getBestMask(s,h1.bind(null,s,t))),wf.applyMask(n,s),h1(s,t,n),{modules:s,version:e,errorCorrectionLevel:t,maskPattern:n,segments:r}}Gb.create=function(e,t){if(typeof e>"u"||e==="")throw new Error("No input text");let n=f1.M,r,i;return typeof t<"u"&&(n=f1.from(t.errorCorrectionLevel,f1.M),r=ZE.from(t.version),i=wf.from(t.maskPattern),t.toSJISFunc&&$d.setToSJISFunction(t.toSJISFunc)),Sru(e,r,n,i)};var iw={},z5={};(function(u){function e(t){if(typeof t=="number"&&(t=t.toString()),typeof t!="string")throw new Error("Color should be defined as hex string");let n=t.slice().replace("#","").split("");if(n.length<3||n.length===5||n.length>8)throw new Error("Invalid hex color: "+t);(n.length===3||n.length===4)&&(n=Array.prototype.concat.apply([],n.map(function(i){return[i,i]}))),n.length===6&&n.push("F","F");const r=parseInt(n.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+n.slice(0,6).join("")}}u.getOptions=function(n){n||(n={}),n.color||(n.color={});const r=typeof n.margin>"u"||n.margin===null||n.margin<0?4:n.margin,i=n.width&&n.width>=21?n.width:void 0,a=n.scale||4;return{width:i,scale:i?4:a,margin:r,color:{dark:e(n.color.dark||"#000000ff"),light:e(n.color.light||"#ffffffff")},type:n.type,rendererOpts:n.rendererOpts||{}}},u.getScale=function(n,r){return r.width&&r.width>=n+r.margin*2?r.width/(n+r.margin*2):r.scale},u.getImageWidth=function(n,r){const i=u.getScale(n,r);return Math.floor((n+r.margin*2)*i)},u.qrToImageData=function(n,r,i){const a=r.modules.size,o=r.modules.data,s=u.getScale(a,i),l=Math.floor((a+i.margin*2)*s),c=i.margin*s,E=[i.color.light,i.color.dark];for(let d=0;d=c&&f>=c&&d"u"&&(!a||!a.getContext)&&(s=a,a=void 0),a||(l=n()),s=e.getOptions(s);const c=e.getImageWidth(i.modules.size,s),E=l.getContext("2d"),d=E.createImageData(c,c);return e.qrToImageData(d.data,i,s),t(E,l,c),E.putImageData(d,0,0),l},u.renderToDataURL=function(i,a,o){let s=o;typeof s>"u"&&(!a||!a.getContext)&&(s=a,a=void 0),s||(s={});const l=u.render(i,a,s),c=s.type||"image/png",E=s.rendererOpts||{};return l.toDataURL(c,E.quality)}})(iw);var aw={};const Pru=z5;function zg(u,e){const t=u.a/255,n=e+'="'+u.hex+'"';return t<1?n+" "+e+'-opacity="'+t.toFixed(2).slice(1)+'"':n}function C1(u,e,t){let n=u+e;return typeof t<"u"&&(n+=" "+t),n}function Tru(u,e,t){let n="",r=0,i=!1,a=0;for(let o=0;o0&&s>0&&u[o-1]||(n+=i?C1("M",s+t,.5+l+t):C1("m",r,0),r=0,i=!1),s+1':"",l="',c='viewBox="0 0 '+o+" "+o+'"',d=''+s+l+` -`;return typeof n=="function"&&n(null,d),d};const Iru=Gnu,kf=Gb,ow=iw,Oru=aw;function M5(u,e,t,n,r){const i=[].slice.call(arguments,1),a=i.length,o=typeof i[a-1]=="function";if(!o&&!Iru())throw new Error("Callback required as last argument");if(o){if(a<2)throw new Error("Too few arguments provided");a===2?(r=t,t=e,e=n=void 0):a===3&&(e.getContext&&typeof r>"u"?(r=n,n=void 0):(r=n,n=t,t=e,e=void 0))}else{if(a<1)throw new Error("Too few arguments provided");return a===1?(t=e,e=n=void 0):a===2&&!e.getContext&&(n=t,t=e,e=void 0),new Promise(function(s,l){try{const c=kf.create(t,n);s(u(c,e,n))}catch(c){l(c)}})}try{const s=kf.create(t,n);r(null,u(s,e,n))}catch(s){r(s)}}$l.create=kf.create;$l.toCanvas=M5.bind(null,ow.render);$l.toDataURL=M5.bind(null,ow.renderToDataURL);$l.toString=M5.bind(null,function(u,e,t){return Oru.render(u,t)});var Nru=768,ka=nS({conditions:{defaultCondition:"smallScreen",conditionNames:["smallScreen","largeScreen"],responsiveArray:void 0}}),Rru=By({conditions:{defaultCondition:"smallScreen",conditionNames:["smallScreen","largeScreen"],responsiveArray:void 0}}),_f=oS({conditions:{defaultCondition:"base",conditionNames:["base","hover","active"],responsiveArray:void 0},styles:{background:{values:{accentColor:{conditions:{base:"ju367v9c",hover:"ju367v9d",active:"ju367v9e"},defaultClass:"ju367v9c"},accentColorForeground:{conditions:{base:"ju367v9f",hover:"ju367v9g",active:"ju367v9h"},defaultClass:"ju367v9f"},actionButtonBorder:{conditions:{base:"ju367v9i",hover:"ju367v9j",active:"ju367v9k"},defaultClass:"ju367v9i"},actionButtonBorderMobile:{conditions:{base:"ju367v9l",hover:"ju367v9m",active:"ju367v9n"},defaultClass:"ju367v9l"},actionButtonSecondaryBackground:{conditions:{base:"ju367v9o",hover:"ju367v9p",active:"ju367v9q"},defaultClass:"ju367v9o"},closeButton:{conditions:{base:"ju367v9r",hover:"ju367v9s",active:"ju367v9t"},defaultClass:"ju367v9r"},closeButtonBackground:{conditions:{base:"ju367v9u",hover:"ju367v9v",active:"ju367v9w"},defaultClass:"ju367v9u"},connectButtonBackground:{conditions:{base:"ju367v9x",hover:"ju367v9y",active:"ju367v9z"},defaultClass:"ju367v9x"},connectButtonBackgroundError:{conditions:{base:"ju367va0",hover:"ju367va1",active:"ju367va2"},defaultClass:"ju367va0"},connectButtonInnerBackground:{conditions:{base:"ju367va3",hover:"ju367va4",active:"ju367va5"},defaultClass:"ju367va3"},connectButtonText:{conditions:{base:"ju367va6",hover:"ju367va7",active:"ju367va8"},defaultClass:"ju367va6"},connectButtonTextError:{conditions:{base:"ju367va9",hover:"ju367vaa",active:"ju367vab"},defaultClass:"ju367va9"},connectionIndicator:{conditions:{base:"ju367vac",hover:"ju367vad",active:"ju367vae"},defaultClass:"ju367vac"},downloadBottomCardBackground:{conditions:{base:"ju367vaf",hover:"ju367vag",active:"ju367vah"},defaultClass:"ju367vaf"},downloadTopCardBackground:{conditions:{base:"ju367vai",hover:"ju367vaj",active:"ju367vak"},defaultClass:"ju367vai"},error:{conditions:{base:"ju367val",hover:"ju367vam",active:"ju367van"},defaultClass:"ju367val"},generalBorder:{conditions:{base:"ju367vao",hover:"ju367vap",active:"ju367vaq"},defaultClass:"ju367vao"},generalBorderDim:{conditions:{base:"ju367var",hover:"ju367vas",active:"ju367vat"},defaultClass:"ju367var"},menuItemBackground:{conditions:{base:"ju367vau",hover:"ju367vav",active:"ju367vaw"},defaultClass:"ju367vau"},modalBackdrop:{conditions:{base:"ju367vax",hover:"ju367vay",active:"ju367vaz"},defaultClass:"ju367vax"},modalBackground:{conditions:{base:"ju367vb0",hover:"ju367vb1",active:"ju367vb2"},defaultClass:"ju367vb0"},modalBorder:{conditions:{base:"ju367vb3",hover:"ju367vb4",active:"ju367vb5"},defaultClass:"ju367vb3"},modalText:{conditions:{base:"ju367vb6",hover:"ju367vb7",active:"ju367vb8"},defaultClass:"ju367vb6"},modalTextDim:{conditions:{base:"ju367vb9",hover:"ju367vba",active:"ju367vbb"},defaultClass:"ju367vb9"},modalTextSecondary:{conditions:{base:"ju367vbc",hover:"ju367vbd",active:"ju367vbe"},defaultClass:"ju367vbc"},profileAction:{conditions:{base:"ju367vbf",hover:"ju367vbg",active:"ju367vbh"},defaultClass:"ju367vbf"},profileActionHover:{conditions:{base:"ju367vbi",hover:"ju367vbj",active:"ju367vbk"},defaultClass:"ju367vbi"},profileForeground:{conditions:{base:"ju367vbl",hover:"ju367vbm",active:"ju367vbn"},defaultClass:"ju367vbl"},selectedOptionBorder:{conditions:{base:"ju367vbo",hover:"ju367vbp",active:"ju367vbq"},defaultClass:"ju367vbo"},standby:{conditions:{base:"ju367vbr",hover:"ju367vbs",active:"ju367vbt"},defaultClass:"ju367vbr"}}},borderColor:{values:{accentColor:{conditions:{base:"ju367vbu",hover:"ju367vbv",active:"ju367vbw"},defaultClass:"ju367vbu"},accentColorForeground:{conditions:{base:"ju367vbx",hover:"ju367vby",active:"ju367vbz"},defaultClass:"ju367vbx"},actionButtonBorder:{conditions:{base:"ju367vc0",hover:"ju367vc1",active:"ju367vc2"},defaultClass:"ju367vc0"},actionButtonBorderMobile:{conditions:{base:"ju367vc3",hover:"ju367vc4",active:"ju367vc5"},defaultClass:"ju367vc3"},actionButtonSecondaryBackground:{conditions:{base:"ju367vc6",hover:"ju367vc7",active:"ju367vc8"},defaultClass:"ju367vc6"},closeButton:{conditions:{base:"ju367vc9",hover:"ju367vca",active:"ju367vcb"},defaultClass:"ju367vc9"},closeButtonBackground:{conditions:{base:"ju367vcc",hover:"ju367vcd",active:"ju367vce"},defaultClass:"ju367vcc"},connectButtonBackground:{conditions:{base:"ju367vcf",hover:"ju367vcg",active:"ju367vch"},defaultClass:"ju367vcf"},connectButtonBackgroundError:{conditions:{base:"ju367vci",hover:"ju367vcj",active:"ju367vck"},defaultClass:"ju367vci"},connectButtonInnerBackground:{conditions:{base:"ju367vcl",hover:"ju367vcm",active:"ju367vcn"},defaultClass:"ju367vcl"},connectButtonText:{conditions:{base:"ju367vco",hover:"ju367vcp",active:"ju367vcq"},defaultClass:"ju367vco"},connectButtonTextError:{conditions:{base:"ju367vcr",hover:"ju367vcs",active:"ju367vct"},defaultClass:"ju367vcr"},connectionIndicator:{conditions:{base:"ju367vcu",hover:"ju367vcv",active:"ju367vcw"},defaultClass:"ju367vcu"},downloadBottomCardBackground:{conditions:{base:"ju367vcx",hover:"ju367vcy",active:"ju367vcz"},defaultClass:"ju367vcx"},downloadTopCardBackground:{conditions:{base:"ju367vd0",hover:"ju367vd1",active:"ju367vd2"},defaultClass:"ju367vd0"},error:{conditions:{base:"ju367vd3",hover:"ju367vd4",active:"ju367vd5"},defaultClass:"ju367vd3"},generalBorder:{conditions:{base:"ju367vd6",hover:"ju367vd7",active:"ju367vd8"},defaultClass:"ju367vd6"},generalBorderDim:{conditions:{base:"ju367vd9",hover:"ju367vda",active:"ju367vdb"},defaultClass:"ju367vd9"},menuItemBackground:{conditions:{base:"ju367vdc",hover:"ju367vdd",active:"ju367vde"},defaultClass:"ju367vdc"},modalBackdrop:{conditions:{base:"ju367vdf",hover:"ju367vdg",active:"ju367vdh"},defaultClass:"ju367vdf"},modalBackground:{conditions:{base:"ju367vdi",hover:"ju367vdj",active:"ju367vdk"},defaultClass:"ju367vdi"},modalBorder:{conditions:{base:"ju367vdl",hover:"ju367vdm",active:"ju367vdn"},defaultClass:"ju367vdl"},modalText:{conditions:{base:"ju367vdo",hover:"ju367vdp",active:"ju367vdq"},defaultClass:"ju367vdo"},modalTextDim:{conditions:{base:"ju367vdr",hover:"ju367vds",active:"ju367vdt"},defaultClass:"ju367vdr"},modalTextSecondary:{conditions:{base:"ju367vdu",hover:"ju367vdv",active:"ju367vdw"},defaultClass:"ju367vdu"},profileAction:{conditions:{base:"ju367vdx",hover:"ju367vdy",active:"ju367vdz"},defaultClass:"ju367vdx"},profileActionHover:{conditions:{base:"ju367ve0",hover:"ju367ve1",active:"ju367ve2"},defaultClass:"ju367ve0"},profileForeground:{conditions:{base:"ju367ve3",hover:"ju367ve4",active:"ju367ve5"},defaultClass:"ju367ve3"},selectedOptionBorder:{conditions:{base:"ju367ve6",hover:"ju367ve7",active:"ju367ve8"},defaultClass:"ju367ve6"},standby:{conditions:{base:"ju367ve9",hover:"ju367vea",active:"ju367veb"},defaultClass:"ju367ve9"}}},boxShadow:{values:{connectButton:{conditions:{base:"ju367vec",hover:"ju367ved",active:"ju367vee"},defaultClass:"ju367vec"},dialog:{conditions:{base:"ju367vef",hover:"ju367veg",active:"ju367veh"},defaultClass:"ju367vef"},profileDetailsAction:{conditions:{base:"ju367vei",hover:"ju367vej",active:"ju367vek"},defaultClass:"ju367vei"},selectedOption:{conditions:{base:"ju367vel",hover:"ju367vem",active:"ju367ven"},defaultClass:"ju367vel"},selectedWallet:{conditions:{base:"ju367veo",hover:"ju367vep",active:"ju367veq"},defaultClass:"ju367veo"},walletLogo:{conditions:{base:"ju367ver",hover:"ju367ves",active:"ju367vet"},defaultClass:"ju367ver"}}},color:{values:{accentColor:{conditions:{base:"ju367veu",hover:"ju367vev",active:"ju367vew"},defaultClass:"ju367veu"},accentColorForeground:{conditions:{base:"ju367vex",hover:"ju367vey",active:"ju367vez"},defaultClass:"ju367vex"},actionButtonBorder:{conditions:{base:"ju367vf0",hover:"ju367vf1",active:"ju367vf2"},defaultClass:"ju367vf0"},actionButtonBorderMobile:{conditions:{base:"ju367vf3",hover:"ju367vf4",active:"ju367vf5"},defaultClass:"ju367vf3"},actionButtonSecondaryBackground:{conditions:{base:"ju367vf6",hover:"ju367vf7",active:"ju367vf8"},defaultClass:"ju367vf6"},closeButton:{conditions:{base:"ju367vf9",hover:"ju367vfa",active:"ju367vfb"},defaultClass:"ju367vf9"},closeButtonBackground:{conditions:{base:"ju367vfc",hover:"ju367vfd",active:"ju367vfe"},defaultClass:"ju367vfc"},connectButtonBackground:{conditions:{base:"ju367vff",hover:"ju367vfg",active:"ju367vfh"},defaultClass:"ju367vff"},connectButtonBackgroundError:{conditions:{base:"ju367vfi",hover:"ju367vfj",active:"ju367vfk"},defaultClass:"ju367vfi"},connectButtonInnerBackground:{conditions:{base:"ju367vfl",hover:"ju367vfm",active:"ju367vfn"},defaultClass:"ju367vfl"},connectButtonText:{conditions:{base:"ju367vfo",hover:"ju367vfp",active:"ju367vfq"},defaultClass:"ju367vfo"},connectButtonTextError:{conditions:{base:"ju367vfr",hover:"ju367vfs",active:"ju367vft"},defaultClass:"ju367vfr"},connectionIndicator:{conditions:{base:"ju367vfu",hover:"ju367vfv",active:"ju367vfw"},defaultClass:"ju367vfu"},downloadBottomCardBackground:{conditions:{base:"ju367vfx",hover:"ju367vfy",active:"ju367vfz"},defaultClass:"ju367vfx"},downloadTopCardBackground:{conditions:{base:"ju367vg0",hover:"ju367vg1",active:"ju367vg2"},defaultClass:"ju367vg0"},error:{conditions:{base:"ju367vg3",hover:"ju367vg4",active:"ju367vg5"},defaultClass:"ju367vg3"},generalBorder:{conditions:{base:"ju367vg6",hover:"ju367vg7",active:"ju367vg8"},defaultClass:"ju367vg6"},generalBorderDim:{conditions:{base:"ju367vg9",hover:"ju367vga",active:"ju367vgb"},defaultClass:"ju367vg9"},menuItemBackground:{conditions:{base:"ju367vgc",hover:"ju367vgd",active:"ju367vge"},defaultClass:"ju367vgc"},modalBackdrop:{conditions:{base:"ju367vgf",hover:"ju367vgg",active:"ju367vgh"},defaultClass:"ju367vgf"},modalBackground:{conditions:{base:"ju367vgi",hover:"ju367vgj",active:"ju367vgk"},defaultClass:"ju367vgi"},modalBorder:{conditions:{base:"ju367vgl",hover:"ju367vgm",active:"ju367vgn"},defaultClass:"ju367vgl"},modalText:{conditions:{base:"ju367vgo",hover:"ju367vgp",active:"ju367vgq"},defaultClass:"ju367vgo"},modalTextDim:{conditions:{base:"ju367vgr",hover:"ju367vgs",active:"ju367vgt"},defaultClass:"ju367vgr"},modalTextSecondary:{conditions:{base:"ju367vgu",hover:"ju367vgv",active:"ju367vgw"},defaultClass:"ju367vgu"},profileAction:{conditions:{base:"ju367vgx",hover:"ju367vgy",active:"ju367vgz"},defaultClass:"ju367vgx"},profileActionHover:{conditions:{base:"ju367vh0",hover:"ju367vh1",active:"ju367vh2"},defaultClass:"ju367vh0"},profileForeground:{conditions:{base:"ju367vh3",hover:"ju367vh4",active:"ju367vh5"},defaultClass:"ju367vh3"},selectedOptionBorder:{conditions:{base:"ju367vh6",hover:"ju367vh7",active:"ju367vh8"},defaultClass:"ju367vh6"},standby:{conditions:{base:"ju367vh9",hover:"ju367vha",active:"ju367vhb"},defaultClass:"ju367vh9"}}}}},{conditions:{defaultCondition:"smallScreen",conditionNames:["smallScreen","largeScreen"],responsiveArray:void 0},styles:{alignItems:{values:{"flex-start":{conditions:{smallScreen:"ju367v0",largeScreen:"ju367v1"},defaultClass:"ju367v0"},"flex-end":{conditions:{smallScreen:"ju367v2",largeScreen:"ju367v3"},defaultClass:"ju367v2"},center:{conditions:{smallScreen:"ju367v4",largeScreen:"ju367v5"},defaultClass:"ju367v4"}}},display:{values:{none:{conditions:{smallScreen:"ju367v6",largeScreen:"ju367v7"},defaultClass:"ju367v6"},block:{conditions:{smallScreen:"ju367v8",largeScreen:"ju367v9"},defaultClass:"ju367v8"},flex:{conditions:{smallScreen:"ju367va",largeScreen:"ju367vb"},defaultClass:"ju367va"},inline:{conditions:{smallScreen:"ju367vc",largeScreen:"ju367vd"},defaultClass:"ju367vc"}}}}},{conditions:void 0,styles:{margin:{mappings:["marginTop","marginBottom","marginLeft","marginRight"]},marginX:{mappings:["marginLeft","marginRight"]},marginY:{mappings:["marginTop","marginBottom"]},padding:{mappings:["paddingTop","paddingBottom","paddingLeft","paddingRight"]},paddingX:{mappings:["paddingLeft","paddingRight"]},paddingY:{mappings:["paddingTop","paddingBottom"]},alignSelf:{values:{"flex-start":{defaultClass:"ju367ve"},"flex-end":{defaultClass:"ju367vf"},center:{defaultClass:"ju367vg"}}},backgroundSize:{values:{cover:{defaultClass:"ju367vh"}}},borderRadius:{values:{1:{defaultClass:"ju367vi"},6:{defaultClass:"ju367vj"},10:{defaultClass:"ju367vk"},13:{defaultClass:"ju367vl"},actionButton:{defaultClass:"ju367vm"},connectButton:{defaultClass:"ju367vn"},menuButton:{defaultClass:"ju367vo"},modal:{defaultClass:"ju367vp"},modalMobile:{defaultClass:"ju367vq"},"25%":{defaultClass:"ju367vr"},full:{defaultClass:"ju367vs"}}},borderStyle:{values:{solid:{defaultClass:"ju367vt"}}},borderWidth:{values:{0:{defaultClass:"ju367vu"},1:{defaultClass:"ju367vv"},2:{defaultClass:"ju367vw"},4:{defaultClass:"ju367vx"}}},cursor:{values:{pointer:{defaultClass:"ju367vy"}}},flexDirection:{values:{row:{defaultClass:"ju367vz"},column:{defaultClass:"ju367v10"}}},fontFamily:{values:{body:{defaultClass:"ju367v11"}}},fontSize:{values:{12:{defaultClass:"ju367v12"},13:{defaultClass:"ju367v13"},14:{defaultClass:"ju367v14"},16:{defaultClass:"ju367v15"},18:{defaultClass:"ju367v16"},20:{defaultClass:"ju367v17"},23:{defaultClass:"ju367v18"}}},fontWeight:{values:{regular:{defaultClass:"ju367v19"},medium:{defaultClass:"ju367v1a"},semibold:{defaultClass:"ju367v1b"},bold:{defaultClass:"ju367v1c"},heavy:{defaultClass:"ju367v1d"}}},gap:{values:{0:{defaultClass:"ju367v1e"},1:{defaultClass:"ju367v1f"},2:{defaultClass:"ju367v1g"},3:{defaultClass:"ju367v1h"},4:{defaultClass:"ju367v1i"},5:{defaultClass:"ju367v1j"},6:{defaultClass:"ju367v1k"},8:{defaultClass:"ju367v1l"},10:{defaultClass:"ju367v1m"},12:{defaultClass:"ju367v1n"},14:{defaultClass:"ju367v1o"},16:{defaultClass:"ju367v1p"},18:{defaultClass:"ju367v1q"},20:{defaultClass:"ju367v1r"},24:{defaultClass:"ju367v1s"},28:{defaultClass:"ju367v1t"},32:{defaultClass:"ju367v1u"},36:{defaultClass:"ju367v1v"},44:{defaultClass:"ju367v1w"},64:{defaultClass:"ju367v1x"},"-1":{defaultClass:"ju367v1y"}}},height:{values:{1:{defaultClass:"ju367v1z"},2:{defaultClass:"ju367v20"},4:{defaultClass:"ju367v21"},8:{defaultClass:"ju367v22"},12:{defaultClass:"ju367v23"},20:{defaultClass:"ju367v24"},24:{defaultClass:"ju367v25"},28:{defaultClass:"ju367v26"},30:{defaultClass:"ju367v27"},32:{defaultClass:"ju367v28"},34:{defaultClass:"ju367v29"},36:{defaultClass:"ju367v2a"},40:{defaultClass:"ju367v2b"},44:{defaultClass:"ju367v2c"},48:{defaultClass:"ju367v2d"},54:{defaultClass:"ju367v2e"},60:{defaultClass:"ju367v2f"},200:{defaultClass:"ju367v2g"},full:{defaultClass:"ju367v2h"},max:{defaultClass:"ju367v2i"}}},justifyContent:{values:{"flex-start":{defaultClass:"ju367v2j"},"flex-end":{defaultClass:"ju367v2k"},center:{defaultClass:"ju367v2l"},"space-between":{defaultClass:"ju367v2m"},"space-around":{defaultClass:"ju367v2n"}}},textAlign:{values:{left:{defaultClass:"ju367v2o"},center:{defaultClass:"ju367v2p"},inherit:{defaultClass:"ju367v2q"}}},marginBottom:{values:{0:{defaultClass:"ju367v2r"},1:{defaultClass:"ju367v2s"},2:{defaultClass:"ju367v2t"},3:{defaultClass:"ju367v2u"},4:{defaultClass:"ju367v2v"},5:{defaultClass:"ju367v2w"},6:{defaultClass:"ju367v2x"},8:{defaultClass:"ju367v2y"},10:{defaultClass:"ju367v2z"},12:{defaultClass:"ju367v30"},14:{defaultClass:"ju367v31"},16:{defaultClass:"ju367v32"},18:{defaultClass:"ju367v33"},20:{defaultClass:"ju367v34"},24:{defaultClass:"ju367v35"},28:{defaultClass:"ju367v36"},32:{defaultClass:"ju367v37"},36:{defaultClass:"ju367v38"},44:{defaultClass:"ju367v39"},64:{defaultClass:"ju367v3a"},"-1":{defaultClass:"ju367v3b"}}},marginLeft:{values:{0:{defaultClass:"ju367v3c"},1:{defaultClass:"ju367v3d"},2:{defaultClass:"ju367v3e"},3:{defaultClass:"ju367v3f"},4:{defaultClass:"ju367v3g"},5:{defaultClass:"ju367v3h"},6:{defaultClass:"ju367v3i"},8:{defaultClass:"ju367v3j"},10:{defaultClass:"ju367v3k"},12:{defaultClass:"ju367v3l"},14:{defaultClass:"ju367v3m"},16:{defaultClass:"ju367v3n"},18:{defaultClass:"ju367v3o"},20:{defaultClass:"ju367v3p"},24:{defaultClass:"ju367v3q"},28:{defaultClass:"ju367v3r"},32:{defaultClass:"ju367v3s"},36:{defaultClass:"ju367v3t"},44:{defaultClass:"ju367v3u"},64:{defaultClass:"ju367v3v"},"-1":{defaultClass:"ju367v3w"}}},marginRight:{values:{0:{defaultClass:"ju367v3x"},1:{defaultClass:"ju367v3y"},2:{defaultClass:"ju367v3z"},3:{defaultClass:"ju367v40"},4:{defaultClass:"ju367v41"},5:{defaultClass:"ju367v42"},6:{defaultClass:"ju367v43"},8:{defaultClass:"ju367v44"},10:{defaultClass:"ju367v45"},12:{defaultClass:"ju367v46"},14:{defaultClass:"ju367v47"},16:{defaultClass:"ju367v48"},18:{defaultClass:"ju367v49"},20:{defaultClass:"ju367v4a"},24:{defaultClass:"ju367v4b"},28:{defaultClass:"ju367v4c"},32:{defaultClass:"ju367v4d"},36:{defaultClass:"ju367v4e"},44:{defaultClass:"ju367v4f"},64:{defaultClass:"ju367v4g"},"-1":{defaultClass:"ju367v4h"}}},marginTop:{values:{0:{defaultClass:"ju367v4i"},1:{defaultClass:"ju367v4j"},2:{defaultClass:"ju367v4k"},3:{defaultClass:"ju367v4l"},4:{defaultClass:"ju367v4m"},5:{defaultClass:"ju367v4n"},6:{defaultClass:"ju367v4o"},8:{defaultClass:"ju367v4p"},10:{defaultClass:"ju367v4q"},12:{defaultClass:"ju367v4r"},14:{defaultClass:"ju367v4s"},16:{defaultClass:"ju367v4t"},18:{defaultClass:"ju367v4u"},20:{defaultClass:"ju367v4v"},24:{defaultClass:"ju367v4w"},28:{defaultClass:"ju367v4x"},32:{defaultClass:"ju367v4y"},36:{defaultClass:"ju367v4z"},44:{defaultClass:"ju367v50"},64:{defaultClass:"ju367v51"},"-1":{defaultClass:"ju367v52"}}},maxWidth:{values:{1:{defaultClass:"ju367v53"},2:{defaultClass:"ju367v54"},4:{defaultClass:"ju367v55"},8:{defaultClass:"ju367v56"},12:{defaultClass:"ju367v57"},20:{defaultClass:"ju367v58"},24:{defaultClass:"ju367v59"},28:{defaultClass:"ju367v5a"},30:{defaultClass:"ju367v5b"},32:{defaultClass:"ju367v5c"},34:{defaultClass:"ju367v5d"},36:{defaultClass:"ju367v5e"},40:{defaultClass:"ju367v5f"},44:{defaultClass:"ju367v5g"},48:{defaultClass:"ju367v5h"},54:{defaultClass:"ju367v5i"},60:{defaultClass:"ju367v5j"},200:{defaultClass:"ju367v5k"},full:{defaultClass:"ju367v5l"},max:{defaultClass:"ju367v5m"}}},minWidth:{values:{1:{defaultClass:"ju367v5n"},2:{defaultClass:"ju367v5o"},4:{defaultClass:"ju367v5p"},8:{defaultClass:"ju367v5q"},12:{defaultClass:"ju367v5r"},20:{defaultClass:"ju367v5s"},24:{defaultClass:"ju367v5t"},28:{defaultClass:"ju367v5u"},30:{defaultClass:"ju367v5v"},32:{defaultClass:"ju367v5w"},34:{defaultClass:"ju367v5x"},36:{defaultClass:"ju367v5y"},40:{defaultClass:"ju367v5z"},44:{defaultClass:"ju367v60"},48:{defaultClass:"ju367v61"},54:{defaultClass:"ju367v62"},60:{defaultClass:"ju367v63"},200:{defaultClass:"ju367v64"},full:{defaultClass:"ju367v65"},max:{defaultClass:"ju367v66"}}},overflow:{values:{hidden:{defaultClass:"ju367v67"}}},paddingBottom:{values:{0:{defaultClass:"ju367v68"},1:{defaultClass:"ju367v69"},2:{defaultClass:"ju367v6a"},3:{defaultClass:"ju367v6b"},4:{defaultClass:"ju367v6c"},5:{defaultClass:"ju367v6d"},6:{defaultClass:"ju367v6e"},8:{defaultClass:"ju367v6f"},10:{defaultClass:"ju367v6g"},12:{defaultClass:"ju367v6h"},14:{defaultClass:"ju367v6i"},16:{defaultClass:"ju367v6j"},18:{defaultClass:"ju367v6k"},20:{defaultClass:"ju367v6l"},24:{defaultClass:"ju367v6m"},28:{defaultClass:"ju367v6n"},32:{defaultClass:"ju367v6o"},36:{defaultClass:"ju367v6p"},44:{defaultClass:"ju367v6q"},64:{defaultClass:"ju367v6r"},"-1":{defaultClass:"ju367v6s"}}},paddingLeft:{values:{0:{defaultClass:"ju367v6t"},1:{defaultClass:"ju367v6u"},2:{defaultClass:"ju367v6v"},3:{defaultClass:"ju367v6w"},4:{defaultClass:"ju367v6x"},5:{defaultClass:"ju367v6y"},6:{defaultClass:"ju367v6z"},8:{defaultClass:"ju367v70"},10:{defaultClass:"ju367v71"},12:{defaultClass:"ju367v72"},14:{defaultClass:"ju367v73"},16:{defaultClass:"ju367v74"},18:{defaultClass:"ju367v75"},20:{defaultClass:"ju367v76"},24:{defaultClass:"ju367v77"},28:{defaultClass:"ju367v78"},32:{defaultClass:"ju367v79"},36:{defaultClass:"ju367v7a"},44:{defaultClass:"ju367v7b"},64:{defaultClass:"ju367v7c"},"-1":{defaultClass:"ju367v7d"}}},paddingRight:{values:{0:{defaultClass:"ju367v7e"},1:{defaultClass:"ju367v7f"},2:{defaultClass:"ju367v7g"},3:{defaultClass:"ju367v7h"},4:{defaultClass:"ju367v7i"},5:{defaultClass:"ju367v7j"},6:{defaultClass:"ju367v7k"},8:{defaultClass:"ju367v7l"},10:{defaultClass:"ju367v7m"},12:{defaultClass:"ju367v7n"},14:{defaultClass:"ju367v7o"},16:{defaultClass:"ju367v7p"},18:{defaultClass:"ju367v7q"},20:{defaultClass:"ju367v7r"},24:{defaultClass:"ju367v7s"},28:{defaultClass:"ju367v7t"},32:{defaultClass:"ju367v7u"},36:{defaultClass:"ju367v7v"},44:{defaultClass:"ju367v7w"},64:{defaultClass:"ju367v7x"},"-1":{defaultClass:"ju367v7y"}}},paddingTop:{values:{0:{defaultClass:"ju367v7z"},1:{defaultClass:"ju367v80"},2:{defaultClass:"ju367v81"},3:{defaultClass:"ju367v82"},4:{defaultClass:"ju367v83"},5:{defaultClass:"ju367v84"},6:{defaultClass:"ju367v85"},8:{defaultClass:"ju367v86"},10:{defaultClass:"ju367v87"},12:{defaultClass:"ju367v88"},14:{defaultClass:"ju367v89"},16:{defaultClass:"ju367v8a"},18:{defaultClass:"ju367v8b"},20:{defaultClass:"ju367v8c"},24:{defaultClass:"ju367v8d"},28:{defaultClass:"ju367v8e"},32:{defaultClass:"ju367v8f"},36:{defaultClass:"ju367v8g"},44:{defaultClass:"ju367v8h"},64:{defaultClass:"ju367v8i"},"-1":{defaultClass:"ju367v8j"}}},position:{values:{absolute:{defaultClass:"ju367v8k"},fixed:{defaultClass:"ju367v8l"},relative:{defaultClass:"ju367v8m"}}},right:{values:{0:{defaultClass:"ju367v8n"}}},transition:{values:{default:{defaultClass:"ju367v8o"},transform:{defaultClass:"ju367v8p"}}},userSelect:{values:{none:{defaultClass:"ju367v8q"}}},width:{values:{1:{defaultClass:"ju367v8r"},2:{defaultClass:"ju367v8s"},4:{defaultClass:"ju367v8t"},8:{defaultClass:"ju367v8u"},12:{defaultClass:"ju367v8v"},20:{defaultClass:"ju367v8w"},24:{defaultClass:"ju367v8x"},28:{defaultClass:"ju367v8y"},30:{defaultClass:"ju367v8z"},32:{defaultClass:"ju367v90"},34:{defaultClass:"ju367v91"},36:{defaultClass:"ju367v92"},40:{defaultClass:"ju367v93"},44:{defaultClass:"ju367v94"},48:{defaultClass:"ju367v95"},54:{defaultClass:"ju367v96"},60:{defaultClass:"ju367v97"},200:{defaultClass:"ju367v98"},full:{defaultClass:"ju367v99"},max:{defaultClass:"ju367v9a"}}},backdropFilter:{values:{modalOverlay:{defaultClass:"ju367v9b"}}}}}),Mg={colors:{accentColor:"var(--rk-colors-accentColor)",accentColorForeground:"var(--rk-colors-accentColorForeground)",actionButtonBorder:"var(--rk-colors-actionButtonBorder)",actionButtonBorderMobile:"var(--rk-colors-actionButtonBorderMobile)",actionButtonSecondaryBackground:"var(--rk-colors-actionButtonSecondaryBackground)",closeButton:"var(--rk-colors-closeButton)",closeButtonBackground:"var(--rk-colors-closeButtonBackground)",connectButtonBackground:"var(--rk-colors-connectButtonBackground)",connectButtonBackgroundError:"var(--rk-colors-connectButtonBackgroundError)",connectButtonInnerBackground:"var(--rk-colors-connectButtonInnerBackground)",connectButtonText:"var(--rk-colors-connectButtonText)",connectButtonTextError:"var(--rk-colors-connectButtonTextError)",connectionIndicator:"var(--rk-colors-connectionIndicator)",downloadBottomCardBackground:"var(--rk-colors-downloadBottomCardBackground)",downloadTopCardBackground:"var(--rk-colors-downloadTopCardBackground)",error:"var(--rk-colors-error)",generalBorder:"var(--rk-colors-generalBorder)",generalBorderDim:"var(--rk-colors-generalBorderDim)",menuItemBackground:"var(--rk-colors-menuItemBackground)",modalBackdrop:"var(--rk-colors-modalBackdrop)",modalBackground:"var(--rk-colors-modalBackground)",modalBorder:"var(--rk-colors-modalBorder)",modalText:"var(--rk-colors-modalText)",modalTextDim:"var(--rk-colors-modalTextDim)",modalTextSecondary:"var(--rk-colors-modalTextSecondary)",profileAction:"var(--rk-colors-profileAction)",profileActionHover:"var(--rk-colors-profileActionHover)",profileForeground:"var(--rk-colors-profileForeground)",selectedOptionBorder:"var(--rk-colors-selectedOptionBorder)",standby:"var(--rk-colors-standby)"},fonts:{body:"var(--rk-fonts-body)"},radii:{actionButton:"var(--rk-radii-actionButton)",connectButton:"var(--rk-radii-connectButton)",menuButton:"var(--rk-radii-menuButton)",modal:"var(--rk-radii-modal)",modalMobile:"var(--rk-radii-modalMobile)"},shadows:{connectButton:"var(--rk-shadows-connectButton)",dialog:"var(--rk-shadows-dialog)",profileDetailsAction:"var(--rk-shadows-profileDetailsAction)",selectedOption:"var(--rk-shadows-selectedOption)",selectedWallet:"var(--rk-shadows-selectedWallet)",walletLogo:"var(--rk-shadows-walletLogo)"},blurs:{modalOverlay:"var(--rk-blurs-modalOverlay)"}},jru={shrink:"_12cbo8i6",shrinkSm:"_12cbo8i7"},zru="_12cbo8i3 ju367v8m",Mru={grow:"_12cbo8i4",growLg:"_12cbo8i5"};function Pe({active:u,hover:e}){return[zru,e&&Mru[e],jru[u]]}var sw=M.createContext(null);function Uru(){var u;const{adapter:e}=(u=M.useContext(sw))!=null?u:{};if(!e)throw new Error("No authentication adapter found");return e}function Wd(){var u;const e=M.useContext(sw);return(u=e==null?void 0:e.status)!=null?u:null}function U5(){const u=Wd(),{isConnected:e}=K0();return e?u&&(u==="loading"||u==="unauthenticated")?u:"connected":"disconnected"}function L5(){return typeof navigator<"u"&&/android/i.test(navigator.userAgent)}function Lru(){return typeof navigator<"u"&&/iPhone|iPod/.test(navigator.userAgent)}function $ru(){return typeof navigator<"u"&&(/iPad/.test(navigator.userAgent)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)}function Ba(){return Lru()||$ru()}function qe(){return L5()||Ba()}var Wru="iekbcc0",qru={a:"iekbcca",blockquote:"iekbcc2",button:"iekbcc9",input:"iekbcc8 iekbcc5 iekbcc4",mark:"iekbcc6",ol:"iekbcc1",q:"iekbcc2",select:"iekbcc7 iekbcc5 iekbcc4",table:"iekbcc3",textarea:"iekbcc5 iekbcc4",ul:"iekbcc1"},Hru=({reset:u,...e})=>{if(!u)return _f(e);const t=qru[u],n=_f(e);return gD(Wru,t,n)},N=M.forwardRef(({as:u="div",className:e,testId:t,...n},r)=>{const i={},a={};for(const s in n)_f.properties.has(s)?i[s]=n[s]:a[s]=n[s];const o=Hru({reset:typeof u=="string"?u:"div",...i});return M.createElement(u,{className:gD(o,e),...a,"data-testid":t?`rk-${t.replace(/^rk-/,"")}`:void 0,ref:r})});N.displayName="Box";var lw=new Map,m1=new Map;async function cw(u){const e=m1.get(u);if(e)return e;const t=async()=>u().then(async r=>(lw.set(u,r),r)),n=t().catch(r=>t().catch(i=>{m1.delete(u)}));return m1.set(u,n),n}async function Xr(...u){return await Promise.all(u.map(e=>typeof e=="function"?cw(e):e))}function Gru(){const[,u]=M.useReducer(e=>e+1,0);return u}function $5(u){const e=typeof u=="function"?lw.get(u):void 0,t=Gru();return M.useEffect(()=>{typeof u=="function"&&!e&&cw(u).then(t)},[u,e,t]),typeof u=="function"?e:u}function je({alt:u,background:e,borderColor:t,borderRadius:n,boxShadow:r,height:i,src:a,width:o,testId:s}){const l=$5(a),c=l&&/^http/.test(l),[E,d]=M.useReducer(()=>!0,!1);return b.createElement(N,{"aria-label":u,borderRadius:n,boxShadow:r,height:typeof i=="string"?i:void 0,overflow:"hidden",position:"relative",role:"img",style:{background:e,height:typeof i=="number"?i:void 0,width:typeof o=="number"?o:void 0},width:typeof o=="string"?o:void 0,testId:s},b.createElement(N,{...c?{"aria-hidden":!0,as:"img",onLoad:d,src:l}:{backgroundSize:"cover"},height:"full",position:"absolute",style:{touchCallout:"none",transition:"opacity .15s linear",userSelect:"none",...c?{opacity:E?1:0}:{backgroundImage:l?`url(${l})`:void 0,backgroundRepeat:"no-repeat",opacity:l?1:0}},width:"full"}),t?b.createElement(N,{...typeof t=="object"&&"custom"in t?{style:{borderColor:t.custom}}:{borderColor:t},borderRadius:n,borderStyle:"solid",borderWidth:"1",height:"full",position:"relative",width:"full"}):null)}var Kru="_1luule42",Qru="_1luule43",Vru=u=>M.useMemo(()=>`${u}_${Math.round(Math.random()*1e9)}`,[u]),U3=({height:u=21,width:e=21})=>{const t=Vru("spinner");return b.createElement("svg",{className:Kru,fill:"none",height:u,viewBox:"0 0 21 21",width:e,xmlns:"http://www.w3.org/2000/svg"},b.createElement("clipPath",{id:t},b.createElement("path",{d:"M10.5 3C6.35786 3 3 6.35786 3 10.5C3 14.6421 6.35786 18 10.5 18C11.3284 18 12 18.6716 12 19.5C12 20.3284 11.3284 21 10.5 21C4.70101 21 0 16.299 0 10.5C0 4.70101 4.70101 0 10.5 0C16.299 0 21 4.70101 21 10.5C21 11.3284 20.3284 12 19.5 12C18.6716 12 18 11.3284 18 10.5C18 6.35786 14.6421 3 10.5 3Z"})),b.createElement("foreignObject",{clipPath:`url(#${t})`,height:"21",width:"21",x:"0",y:"0"},b.createElement("div",{className:Qru})))},Ku=["#FC5C54","#FFD95A","#E95D72","#6A87C8","#5FD0F3","#75C06B","#FFDD86","#5FC6D4","#FF949A","#FF8024","#9BA1A4","#EC66FF","#FF8CBC","#FF9A23","#C5DADB","#A8CE63","#71ABFF","#FFE279","#B6B1B6","#FF6780","#A575FF","#4D82FF","#FFB35A"],Ug=[{color:Ku[0],emoji:"🌶"},{color:Ku[1],emoji:"🤑"},{color:Ku[2],emoji:"🐙"},{color:Ku[3],emoji:"🫐"},{color:Ku[4],emoji:"🐳"},{color:Ku[0],emoji:"🤶"},{color:Ku[5],emoji:"🌲"},{color:Ku[6],emoji:"🌞"},{color:Ku[7],emoji:"🐒"},{color:Ku[8],emoji:"🐵"},{color:Ku[9],emoji:"🦊"},{color:Ku[10],emoji:"🐼"},{color:Ku[11],emoji:"🦄"},{color:Ku[12],emoji:"🐷"},{color:Ku[13],emoji:"🐧"},{color:Ku[8],emoji:"🦩"},{color:Ku[14],emoji:"👽"},{color:Ku[0],emoji:"🎈"},{color:Ku[8],emoji:"🍉"},{color:Ku[1],emoji:"🎉"},{color:Ku[15],emoji:"🐲"},{color:Ku[16],emoji:"🌎"},{color:Ku[17],emoji:"🍊"},{color:Ku[18],emoji:"🐭"},{color:Ku[19],emoji:"🍣"},{color:Ku[1],emoji:"🐥"},{color:Ku[20],emoji:"👾"},{color:Ku[15],emoji:"🥦"},{color:Ku[0],emoji:"👹"},{color:Ku[17],emoji:"🙀"},{color:Ku[4],emoji:"⛱"},{color:Ku[21],emoji:"⛵️"},{color:Ku[17],emoji:"🥳"},{color:Ku[8],emoji:"🤯"},{color:Ku[22],emoji:"🤠"}];function Jru(u){let e=0;if(u.length===0)return e;for(let t=0;t{const[n,r]=M.useState(!1);M.useEffect(()=>{if(e){const o=new Image;o.src=e,o.onload=()=>r(!0)}},[e]);const{color:i,emoji:a}=M.useMemo(()=>Yru(u),[u]);return e?n?b.createElement(N,{backgroundSize:"cover",borderRadius:"full",position:"absolute",style:{backgroundImage:`url(${e})`,backgroundPosition:"center",height:t,width:t}}):b.createElement(N,{alignItems:"center",backgroundSize:"cover",borderRadius:"full",color:"modalText",display:"flex",justifyContent:"center",position:"absolute",style:{height:t,width:t}},b.createElement(U3,null)):b.createElement(N,{alignItems:"center",display:"flex",justifyContent:"center",overflow:"hidden",style:{...!e&&{backgroundColor:i},height:t,width:t}},a)},Ew=Xru,dw=M.createContext(Ew);function fw({address:u,imageUrl:e,loading:t,size:n}){const r=M.useContext(dw);return b.createElement(N,{"aria-hidden":!0,borderRadius:"full",overflow:"hidden",position:"relative",style:{height:`${n}px`,width:`${n}px`},userSelect:"none"},b.createElement(N,{alignItems:"center",borderRadius:"full",display:"flex",justifyContent:"center",overflow:"hidden",position:"absolute",style:{fontSize:`${Math.round(n*.55)}px`,height:`${n}px`,transform:t?"scale(0.72)":void 0,transition:".25s ease",transitionDelay:t?void 0:".1s",width:`${n}px`,willChange:"transform"},userSelect:"none"},b.createElement(r,{address:u,ensImage:e,size:n})),typeof t=="boolean"&&b.createElement(N,{color:"accentColor",display:"flex",height:"full",position:"absolute",style:{opacity:t?1:0,transition:t?"0.6s ease":"0.2s ease",transitionDelay:t?".05s":void 0},width:"full"},b.createElement(U3,{height:"100%",width:"100%"})))}var Lg=()=>b.createElement("svg",{fill:"none",height:"7",width:"14",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M12.75 1.54001L8.51647 5.0038C7.77974 5.60658 6.72026 5.60658 5.98352 5.0038L1.75 1.54001",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2.5",xmlns:"http://www.w3.org/2000/svg"})),Zru={label:"اتصال المحفظة"},uiu={title:"ما هو المحفظة؟",description:"تُستخدم المحفظة لإرسال واستلام وتخزين وعرض الأصول الرقمية. إنها أيضاً طريقة جديدة لتسجيل الدخول، دون الحاجة إلى إنشاء حسابات وكلمات مرور جديدة على كل موقع.",digital_asset:{title:"دار لأصولك الرقمية",description:"تُستخدم المحافظ لإرسال واستلام وتخزين وعرض الأصول الرقمية مثل إيثيريوم والـ NFTs."},login:{title:"طريقة جديدة لتسجيل الدخول",description:"بدلاً من إنشاء حسابات وكلمات مرور جديدة على كل موقع، فقط قم بتوصيل محفظتك."},get:{label:"احصل على محفظة"},learn_more:{label:"تعلم المزيد"}},eiu={label:"اتصل",title:"اتصال بالمحفظة",new_to_ethereum:{description:"جديد في محافظ Ethereum؟",learn_more:{label:"تعلم المزيد"}},learn_more:{label:"أعرف أكثر"},recent:"الأخير",status:{opening:"جار فتح %{wallet}...",not_installed:"%{wallet} غير مثبت",not_available:"%{wallet} غير متاح",confirm:"تأكيد الاتصال في الامتداد"},secondary_action:{get:{description:"لا يوجد لديك %{wallet}؟",label:"احصل"},install:{label:"تثبيت"},retry:{label:"أعد المحاولة"}},walletconnect:{description:{full:"هل تحتاج إلى النافذة الرسمية لـ WalletConnect؟",compact:"هل تحتاج إلى النافذة لـ WalletConnect؟"},open:{label:"افتح"}}},tiu={title:"المسح باستخدام %{wallet}",fallback_title:"المسح باستخدام هاتفك"},niu={recommended:"موصى به",other:"آخر",popular:"شائع",more:"المزيد",others:"الآخرين"},riu={title:"احصل على محفظة",action:{label:"احصل"},mobile:{description:"محفظة الموبايل"},extension:{description:"ملحق المتصفح"},mobile_and_extension:{description:"محفظة موبايل وملحق"},looking_for:{title:"ليست هذه هي ما تبحث عنه؟",mobile:{description:"حدد محفظة على الشاشة الرئيسية للبدء باستخدام موفر محفظة مختلف."},desktop:{compact_description:"حدد محفظة على الشاشة الرئيسية للبدء باستخدام موفر محفظة مختلف.",wide_description:"حدد محفظة على اليسار للبدء باستخدام موفر محفظة مختلف."}}},iiu={title:"ابدأ مع %{wallet}",short_title:"احصل على %{wallet}",mobile:{title:"%{wallet} للجوال",description:"استخدم محفظة الموبايل لاستكشاف عالم Ethereum.",download:{label:"احصل على التطبيق"}},extension:{title:"%{wallet} لـ %{browser}",description:"وصول لمحفظتك مباشرة من متصفح الويب المفضل لديك.",download:{label:"أضف إلى %{browser}"}}},aiu={title:"قم بالتثبيت %{wallet}",description:"استخدم هاتفك للتحميل على iOS أو Android",continue:{label:"استمر"}},oiu={mobile:{connect:{label:"اتصل"},learn_more:{label:"تعلم المزيد"}},extension:{refresh:{label:"تحديث"},learn_more:{label:"تعلم المزيد"}}},siu={title:"تبديل الشبكات",wrong_network:"تم اكتشاف شبكة غير صحيحة، قم بالتبديل أو القطع للمتابعة.",confirm:"التأكيد في المحفظة",switching_not_supported:"محفظتك لا تدعم التبديل بين الشبكات من %{appName}. جرب التبديل بين الشبكات من داخل المحفظة بدلاً من ذلك.",switching_not_supported_fallback:"محفظتك لا تدعم تبديل الشبكات من هذا التطبيق. حاول تبديل الشبكات من داخل المحفظة بدلاً من ذلك.",disconnect:"قطع الاتصال",connected:"متصل"},liu={disconnect:{label:"قطع الاتصال"},copy_address:{label:"نسخ العنوان",copied:"تم النسخ!"},explorer:{label:"عرض المزيد على المستكشف"},transactions:{description:"%{appName} ستظهر المعاملات هنا...",description_fallback:"سوف تظهر معاملاتك هنا...",recent:{title:"المعاملات الأخيرة"},clear:{label:"مسح الكل"}}},ciu={argent:{qr_code:{step1:{description:"ضع أرجنت على شاشتك الرئيسية للوصول السريع إلى محفظتك.",title:"افتح تطبيق Argent"},step2:{description:"أنشئ محفظة واسم مستخدم، أو استورد محفظة موجودة بالفعل.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، سيظهر لك موجه الاتصال لتوصيل المحفظة الخاصة بك.",title:"اضغط على زر فحص الكود الشريطي"}}},bifrost:{qr_code:{step1:{description:"نوصي بوضع محفظة Bifrost على الشاشة الرئيسية للوصول الأسرع.",title:"افتح تطبيق محفظة Bifrost"},step2:{description:"أنشئ أو استورد محفظة باستخدام عبارة الاستعادة الخاصة بك.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، سيظهر موجه الاتصال لك لتوصيل محفظتك.",title:"اضغط على زر المسح"}}},bitget:{qr_code:{step1:{description:"نوصي بوضع محفظة Bitget على الشاشة الرئيسية للوصول الأسرع.",title:"افتح تطبيق محفظة Bitget"},step2:{description:"تأكد من عمل نسخة احتياطية لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أحد.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك موجه اتصال لتوصيل محفظتك.",title:"اضغط على زر الفحص"}},extension:{step1:{description:"نوصي بتثبيت محفظة Bitget على شريط المهام للوصول الأسرع إلى محفظتك.",title:"قم بتثبيت امتداد محفظة Bitget"},step2:{description:"تأكد من نسخ محفظتك احتياطيًا باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"أنشئ محفظة أو استورد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الامتداد.",title:"قم بتحديث متصفحك"}}},bitski:{extension:{step1:{description:"نوصي بتثبيت Bitski على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك.",title:"قم بتثبيت امتداد Bitski"},step2:{description:"تأكد من الاحتفاظ بنسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد إعداد المحفظة الخاصة بك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"تحديث المتصفح الخاص بك"}}},coin98:{qr_code:{step1:{description:"نوصي بوضع محفظة Coin98 على الشاشة الرئيسية لسرعة الوصول إلى محفظتك.",title:"افتح تطبيق محفظة Coin98"},step2:{description:"يمكنك بسهولة نسخ محفظتك الاحتياطي باستخدام ميزة النسخ الاحتياطي على هاتفك.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك مطالبة بالاتصال لتوصيل محفظتك.",title:"اضغط على زر WalletConnect"}},extension:{step1:{description:"انقر في الجزء العلوي الأيمن من المتصفح وثبت Coin98 Wallet لسهولة الوصول.",title:"قم بتثبيت امتداد Coin98 Wallet"},step2:{description:"أنشئ محفظة جديدة أو استورد واحدة موجودة بالفعل.",title:"أنشئ محفظة أو استورد محفظة"},step3:{description:"بمجرد إعداد Coin98 Wallet ، انقر أدناه لتحديث المتصفح وتحميل الامتداد.",title:"تحديث المتصفح الخاص بك"}}},coinbase:{qr_code:{step1:{description:"نوصي بوضع Coinbase Wallet على الشاشة الرئيسية لسهولة الوصول.",title:"افتح تطبيق Coinbase Wallet"},step2:{description:"يمكنك بسهولة النسخ الاحتياطي لمحفظتك باستخدام ميزة النسخ الاحتياطي السحابي.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك مطالبة بالاتصال لتوصيل محفظتك.",title:"اضغط على زر الفحص"}},extension:{step1:{description:"نوصي بتثبيت محفظة Coinbase على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك.",title:"تثبيت امتداد محفظة Coinbase"},step2:{description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد المحفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"تحديث المتصفح الخاص بك"}}},core:{qr_code:{step1:{description:"نوصي بوضع Core على الشاشة الرئيسية للوصول السريع إلى محفظتك.",title:"افتح تطبيق Core"},step2:{description:"يمكنك بسهولة النسخ الاحتياطي لمحفظتك باستخدام ميزة النسخ الاحتياطي على هاتفك.",title:"إنشاء أو استيراد المحفظة"},step3:{description:"بعد الفحص، سيظهر لك موجه الاتصال لتوصيل محفظتك.",title:"اضغط على زر WalletConnect"}},extension:{step1:{description:"نوصي بتثبيت Core على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك.",title:"قم بتثبيت امتداد Core"},step2:{description:"تأكد من عمل نسخة احتياطية لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الامتداد.",title:"تحديث متصفحك"}}},fox:{qr_code:{step1:{description:"نوصي بوضع FoxWallet على شاشتك الرئيسية للوصول الأسرع.",title:"افتح تطبيق FoxWallet"},step2:{description:"تأكد من الاحتفاظ بنسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء محفظة أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك موجه الاتصال لتتمكن من اتصال محفظتك.",title:"اضغط على زر الفحص"}}},frontier:{qr_code:{step1:{description:"نوصي بوضع Frontier Wallet على شاشتك الرئيسية للوصول الأسرع.",title:"افتح تطبيق Frontier Wallet"},step2:{description:"تأكد من نسخ محفظتك احتياطيا باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك موجه الاتصال لربط محفظتك.",title:"اضغط على زر الفحص"}},extension:{step1:{description:"نوصي بتثبيت محفظة Frontier على شريط المهام للوصول الأسرع إلى محفظتك.",title:"تثبيت امتداد محفظة Frontier"},step2:{description:"تأكد من نسخ محفظتك احتياطيا باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"قم بتحديث المتصفح الخاص بك"}}},im_token:{qr_code:{step1:{title:"افتح تطبيق imToken",description:"ضع تطبيق imToken على الشاشة الرئيسية للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"قم بإنشاء محفظة جديدة أو استيراد واحدة موجودة."},step3:{title:"اضغط على أيقونة الماسح الضوئي في الزاوية العليا اليمنى",description:"اختر الاتصال الجديد، ثم امسح الرمز الشريطي وأكد الموجه للاتصال."}}},metamask:{qr_code:{step1:{title:"افتح تطبيق MetaMask",description:"نوصي بوضع MetaMask على الشاشة الرئيسية لديك للوصول بشكل أسرع."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ الحفاظ على محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"اضغط على زر المسح",description:"بعد الفحص، ستظهر لك موجه اتصال لتوصيل محفظتك."}},extension:{step1:{title:"قم بتثبيت امتداد MetaMask",description:"نوصي بتثبيت MetaMask في شريط المهام للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ احتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"تحديث متصفحك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الامتداد."}}},okx:{qr_code:{step1:{title:"افتح تطبيق محفظة OKX",description:"نوصي بوضع محفظة OKX على الشاشة الرئيسية للوصول الأسرع."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ احتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"اضغط على زر المسح",description:"بعد الفحص، ستظهر لك مطالبة بالاتصال لتوصيل محفظتك."}},extension:{step1:{title:"قم بتثبيت امتداد محفظة OKX",description:"نوصي بتثبيت محفظة OKX على شريط المهام للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من حفظ نسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"قم بتحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},omni:{qr_code:{step1:{title:"افتح تطبيق Omni",description:"أضف Omni إلى شاشتك الرئيسية للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"إنشاء محفظة جديدة أو استيراد واحدة موجودة."},step3:{title:"اضغط على أيقونة الرمز الاستجابة السريعة وامسحها",description:"اضغط على الرمز QR على الشاشة الرئيسية الخاصة بك، امسح الرمز وأكد الموافقة للاتصال."}}},token_pocket:{qr_code:{step1:{title:"افتح تطبيق TokenPocket",description:"نوصي بوضع TokenPocket على الشاشة الرئيسية للوصول السريع."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ احتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"اضغط على زر المسح",description:"بعد الفحص، ستظهر لك رسالة موجهة للاتصال بمحفظتك."}},extension:{step1:{title:"قم بتثبيت امتداد TokenPocket",description:"نوصي بتثبيت TokenPocket على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك."},step2:{title:"قم بإنشاء محفظة أو استيراد محفظة",description:"تأكد من الاحتفاظ بنسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"قم بتحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},trust:{qr_code:{step1:{title:"افتح تطبيق Trust Wallet",description:"ضع Trust Wallet على الشاشة الرئيسية للوصول السريع إلى محفظتك."},step2:{title:"أنشئ محفظة أو استورد محفظة",description:"أنشئ محفظة جديدة أو استورد واحدة موجودة."},step3:{title:"اضغط على WalletConnect في الإعدادات",description:"اختر الاتصال الجديد، ثم امسح الرمز الشريطي QR وأكد الموجه للاتصال."}},extension:{step1:{title:"قم بتثبيت امتداد Trust Wallet",description:"انقر في الجزء العلوي الأيمن من المتصفح وثبت Trust Wallet للوصول بسهولة."},step2:{title:"أنشئ محفظة أو استورد محفظة",description:"أنشئ محفظة جديدة أو استورد واحدة موجودة."},step3:{title:"قم بتحديث متصفحك",description:"بمجرد إعداد Trust Wallet، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},uniswap:{qr_code:{step1:{title:"افتح تطبيق Uniswap",description:"أضف محفظة Uniswap إلى شاشة الرئيسية للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"قم بإنشاء محفظة جديدة أو استيراد واحدة موجودة."},step3:{title:"اضغط على الأيقونة QR واقرأ الرمز",description:"اضغط على أيقونة QR على الشاشة الرئيسية، قراءة الرمز وتأكيد الرسالة الموجهة للاتصال."}}},zerion:{qr_code:{step1:{title:"افتح تطبيق Zerion",description:"نوصي بوضع Zerion على شاشتك الرئيسية للوصول الأسرع."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من حفظ نسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"اضغط على زر المسح",description:"بعد المسح، سوف يظهر لك نافذة الاتصال لتوصيل محفظتك."}},extension:{step1:{title:"تثبيت امتداد Zerion",description:"نوصي بتثبيت Zerion على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من الاحتفاظ بنسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"قم بتحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},rainbow:{qr_code:{step1:{title:"افتح تطبيق Rainbow",description:"نوصي بوضع Rainbow على شاشة البداية للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء محفظة أو استيراد محفظة",description:"يمكنك عمل نسخة احتياطية بسهولة لمحفظتك باستخدام ميزة النسخ الاحتياطي على هاتفك."},step3:{title:"اضغط على الزر الماسح الضوئي",description:"بعد الفحص، سيظهر لك موجه اتصال لربط محفظتك."}}},enkrypt:{extension:{step1:{description:"نوصي بتثبيت محفظة Enkrypt على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك.",title:"تثبيت امتداد محفظة Enkrypt"},step2:{description:"تأكد من عمل نسخة احتياطية لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"أنشئ أو استورد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"حدث المتصفح الخاص بك"}}},frame:{extension:{step1:{description:"نوصي بتعليق Frame على شريط المهام للوصول السريع إلى محفظتك.",title:"ثبت Frame والإضافة المصاحبة"},step2:{description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"أنشئ أو استورد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"حدث المتصفح الخاص بك"}}},one_key:{extension:{step1:{title:"قم بتثبيت امتداد محفظة OneKey",description:"نوصي بتثبيت محفظة OneKey على شريط المهام للوصول السريع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ احتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"تحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الامتداد."}}},phantom:{extension:{step1:{title:"قم بتثبيت امتداد Phantom",description:"نوصي بتثبيت Phantom على شريط المهام للوصول الأسهل إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ محفظتك احتياطيًا باستخدام طريقة آمنة. لا تشارك عبارة الاستعادة السرية الخاصة بك مع أي شخص."},step3:{title:"قم بتحديث المتصفح",description:"بمجرد إعداد المحفظة، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},rabby:{extension:{step1:{title:"ثبت امتداد Rabby",description:"نوصي بتثبيت Rabby على شريط المهام للوصول الأسرع إلى محفظتك."},step2:{title:"أنشئ محفظة أو استورد محفظة",description:"تأكد من نسخ محفظتك احتياطيًا باستخدام طريقة آمنة. لا تشارك العبارة السرية مع أي شخص."},step3:{title:"قم بتحديث المتصفح",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},safeheron:{extension:{step1:{title:"قم بتثبيت إضافة النواة",description:"نوصي بتثبيت Safeheron على شريط المهام الخاص بك للوصول السريع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ محفظتك بطريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"تحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},taho:{extension:{step1:{title:"تثبيت إضافة Taho",description:"نوصي بتثبيت Taho على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء محفظة أو استيراد محفظة",description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"تحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},talisman:{extension:{step1:{title:"تثبيت إضافة Talisman",description:"نوصي بتثبيت Talisman على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء محفظة Ethereum أو استيرادها",description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارة الاستعادة الخاصة بك مع أي شخص."},step3:{title:"قم بتحديث المستعرض الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المستعرض وتحميل الإضافة."}}},xdefi:{extension:{step1:{title:"قم بتثبيت إضافة XDEFI Wallet",description:"نوصي بتثبيت XDEFI Wallet على شريط المهام للوصول الأسرع إلى محفظتك."},step2:{title:"أنشئ محفظة أو استورد محفظة",description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك العبارة السرية الخاصة بك مع أي شخص."},step3:{title:"قم بتحديث المستعرض الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}}},$g={connect_wallet:Zru,intro:uiu,connect:eiu,connect_scan:tiu,connector_group:niu,get:riu,get_options:iiu,get_mobile:aiu,get_instructions:oiu,chains:siu,profile:liu,wallet_connectors:ciu},Eiu={label:"Connect Wallet"},diu={title:"What is a Wallet?",description:"A wallet is used to send, receive, store, and display digital assets. It's also a new way to log in, without needing to create new accounts and passwords on every website.",digital_asset:{title:"A Home for your Digital Assets",description:"Wallets are used to send, receive, store, and display digital assets like Ethereum and NFTs."},login:{title:"A New Way to Log In",description:"Instead of creating new accounts and passwords on every website, just connect your wallet."},get:{label:"Get a Wallet"},learn_more:{label:"Learn More"}},fiu={label:"Connect",title:"Connect a Wallet",new_to_ethereum:{description:"New to Ethereum wallets?",learn_more:{label:"Learn More"}},learn_more:{label:"Learn more"},recent:"Recent",status:{opening:"Opening %{wallet}...",not_installed:"%{wallet} is not installed",not_available:"%{wallet} is not available",confirm:"Confirm connection in the extension"},secondary_action:{get:{description:"Don't have %{wallet}?",label:"GET"},install:{label:"INSTALL"},retry:{label:"RETRY"}},walletconnect:{description:{full:"Need the official WalletConnect modal?",compact:"Need the WalletConnect modal?"},open:{label:"OPEN"}}},piu={title:"Scan with %{wallet}",fallback_title:"Scan with your phone"},hiu={recommended:"Recommended",other:"Other",popular:"Popular",more:"More",others:"Others"},Ciu={title:"Get a Wallet",action:{label:"GET"},mobile:{description:"Mobile Wallet"},extension:{description:"Browser Extension"},mobile_and_extension:{description:"Mobile Wallet and Extension"},looking_for:{title:"Not what you're looking for?",mobile:{description:"Select a wallet on the main screen to get started with a different wallet provider."},desktop:{compact_description:"Select a wallet on the main screen to get started with a different wallet provider.",wide_description:"Select a wallet on the left to get started with a different wallet provider."}}},miu={title:"Get started with %{wallet}",short_title:"Get %{wallet}",mobile:{title:"%{wallet} for Mobile",description:"Use the mobile wallet to explore the world of Ethereum.",download:{label:"Get the app"}},extension:{title:"%{wallet} for %{browser}",description:"Access your wallet right from your favorite web browser.",download:{label:"Add to %{browser}"}}},giu={title:"Install %{wallet}",description:"Scan with your phone to download on iOS or Android",continue:{label:"Continue"}},Aiu={mobile:{connect:{label:"Connect"},learn_more:{label:"Learn More"}},extension:{refresh:{label:"Refresh"},learn_more:{label:"Learn More"}}},yiu={title:"Switch Networks",wrong_network:"Wrong network detected, switch or disconnect to continue.",confirm:"Confirm in Wallet",switching_not_supported:"Your wallet does not support switching networks from %{appName}. Try switching networks from within your wallet instead.",switching_not_supported_fallback:"Your wallet does not support switching networks from this app. Try switching networks from within your wallet instead.",disconnect:"Disconnect",connected:"Connected"},Biu={disconnect:{label:"Disconnect"},copy_address:{label:"Copy Address",copied:"Copied!"},explorer:{label:"View more on explorer"},transactions:{description:"%{appName} transactions will appear here...",description_fallback:"Your transactions will appear here...",recent:{title:"Recent Transactions"},clear:{label:"Clear All"}}},viu={argent:{qr_code:{step1:{description:"Put Argent on your home screen for faster access to your wallet.",title:"Open the Argent app"},step2:{description:"Create a wallet and username, or import an existing wallet.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the Scan QR button"}}},bifrost:{qr_code:{step1:{description:"We recommend putting Bifrost Wallet on your home screen for quicker access.",title:"Open the Bifrost Wallet app"},step2:{description:"Create or import a wallet using your recovery phrase.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}}},bitget:{qr_code:{step1:{description:"We recommend putting Bitget Wallet on your home screen for quicker access.",title:"Open the Bitget Wallet app"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}},extension:{step1:{description:"We recommend pinning Bitget Wallet to your taskbar for quicker access to your wallet.",title:"Install the Bitget Wallet extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},bitski:{extension:{step1:{description:"We recommend pinning Bitski to your taskbar for quicker access to your wallet.",title:"Install the Bitski extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},coin98:{qr_code:{step1:{description:"We recommend putting Coin98 Wallet on your home screen for faster access to your wallet.",title:"Open the Coin98 Wallet app"},step2:{description:"You can easily backup your wallet using our backup feature on your phone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the WalletConnect button"}},extension:{step1:{description:"Click at the top right of your browser and pin Coin98 Wallet for easy access.",title:"Install the Coin98 Wallet extension"},step2:{description:"Create a new wallet or import an existing one.",title:"Create or Import a wallet"},step3:{description:"Once you set up Coin98 Wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},coinbase:{qr_code:{step1:{description:"We recommend putting Coinbase Wallet on your home screen for quicker access.",title:"Open the Coinbase Wallet app"},step2:{description:"You can easily backup your wallet using the cloud backup feature.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}},extension:{step1:{description:"We recommend pinning Coinbase Wallet to your taskbar for quicker access to your wallet.",title:"Install the Coinbase Wallet extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},core:{qr_code:{step1:{description:"We recommend putting Core on your home screen for faster access to your wallet.",title:"Open the Core app"},step2:{description:"You can easily backup your wallet using our backup feature on your phone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the WalletConnect button"}},extension:{step1:{description:"We recommend pinning Core to your taskbar for quicker access to your wallet.",title:"Install the Core extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},fox:{qr_code:{step1:{description:"We recommend putting FoxWallet on your home screen for quicker access.",title:"Open the FoxWallet app"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}}},frontier:{qr_code:{step1:{description:"We recommend putting Frontier Wallet on your home screen for quicker access.",title:"Open the Frontier Wallet app"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}},extension:{step1:{description:"We recommend pinning Frontier Wallet to your taskbar for quicker access to your wallet.",title:"Install the Frontier Wallet extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},im_token:{qr_code:{step1:{title:"Open the imToken app",description:"Put imToken app on your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap Scanner Icon in top right corner",description:"Choose New Connection, then scan the QR code and confirm the prompt to connect."}}},metamask:{qr_code:{step1:{title:"Open the MetaMask app",description:"We recommend putting MetaMask on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}},extension:{step1:{title:"Install the MetaMask extension",description:"We recommend pinning MetaMask to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},okx:{qr_code:{step1:{title:"Open the OKX Wallet app",description:"We recommend putting OKX Wallet on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}},extension:{step1:{title:"Install the OKX Wallet extension",description:"We recommend pinning OKX Wallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},omni:{qr_code:{step1:{title:"Open the Omni app",description:"Add Omni to your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap the QR icon and scan",description:"Tap the QR icon on your home screen, scan the code and confirm the prompt to connect."}}},token_pocket:{qr_code:{step1:{title:"Open the TokenPocket app",description:"We recommend putting TokenPocket on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}},extension:{step1:{title:"Install the TokenPocket extension",description:"We recommend pinning TokenPocket to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},trust:{qr_code:{step1:{title:"Open the Trust Wallet app",description:"Put Trust Wallet on your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap WalletConnect in Settings",description:"Choose New Connection, then scan the QR code and confirm the prompt to connect."}},extension:{step1:{title:"Install the Trust Wallet extension",description:"Click at the top right of your browser and pin Trust Wallet for easy access."},step2:{title:"Create or Import a wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Refresh your browser",description:"Once you set up Trust Wallet, click below to refresh the browser and load up the extension."}}},uniswap:{qr_code:{step1:{title:"Open the Uniswap app",description:"Add Uniswap Wallet to your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap the QR icon and scan",description:"Tap the QR icon on your homescreen, scan the code and confirm the prompt to connect."}}},zerion:{qr_code:{step1:{title:"Open the Zerion app",description:"We recommend putting Zerion on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}},extension:{step1:{title:"Install the Zerion extension",description:"We recommend pinning Zerion to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},rainbow:{qr_code:{step1:{title:"Open the Rainbow app",description:"We recommend putting Rainbow on your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"You can easily backup your wallet using our backup feature on your phone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}}},enkrypt:{extension:{step1:{description:"We recommend pinning Enkrypt Wallet to your taskbar for quicker access to your wallet.",title:"Install the Enkrypt Wallet extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},frame:{extension:{step1:{description:"We recommend pinning Frame to your taskbar for quicker access to your wallet.",title:"Install Frame & the companion extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},one_key:{extension:{step1:{title:"Install the OneKey Wallet extension",description:"We recommend pinning OneKey Wallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},phantom:{extension:{step1:{title:"Install the Phantom extension",description:"We recommend pinning Phantom to your taskbar for easier access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret recovery phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},rabby:{extension:{step1:{title:"Install the Rabby extension",description:"We recommend pinning Rabby to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},safeheron:{extension:{step1:{title:"Install the Core extension",description:"We recommend pinning Safeheron to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},taho:{extension:{step1:{title:"Install the Taho extension",description:"We recommend pinning Taho to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},talisman:{extension:{step1:{title:"Install the Talisman extension",description:"We recommend pinning Talisman to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import an Ethereum Wallet",description:"Be sure to back up your wallet using a secure method. Never share your recovery phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},xdefi:{extension:{step1:{title:"Install the XDEFI Wallet extension",description:"We recommend pinning XDEFI Wallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},zeal:{extension:{step1:{title:"Install the Zeal extension",description:"We recommend pinning Zeal to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},safepal:{extension:{step1:{title:"Install the SafePal Wallet extension",description:"Click at the top right of your browser and pin SafePal Wallet for easy access."},step2:{title:"Create or Import a wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Refresh your browser",description:"Once you set up SafePal Wallet, click below to refresh the browser and load up the extension."}},qr_code:{step1:{title:"Open the SafePal Wallet app",description:"Put SafePal Wallet on your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap WalletConnect in Settings",description:"Choose New Connection, then scan the QR code and confirm the prompt to connect."}}},desig:{extension:{step1:{title:"Install the Desig extension",description:"We recommend pinning Desig to your taskbar for easier access to your wallet."},step2:{title:"Create a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},subwallet:{extension:{step1:{title:"Install the SubWallet extension",description:"We recommend pinning SubWallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your recovery phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}},qr_code:{step1:{title:"Open the SubWallet app",description:"We recommend putting SubWallet on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}}},clv:{extension:{step1:{title:"Install the CLV Wallet extension",description:"We recommend pinning CLV Wallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}},qr_code:{step1:{title:"Open the CLV Wallet app",description:"We recommend putting CLV Wallet on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}}},okto:{qr_code:{step1:{title:"Open the Okto app",description:"Add Okto to your home screen for quick access"},step2:{title:"Create an MPC Wallet",description:"Create an account and generate a wallet"},step3:{title:"Tap WalletConnect in Settings",description:"Tap the Scan QR icon at the top right and confirm the prompt to connect."}}}},Wg={connect_wallet:Eiu,intro:diu,connect:fiu,connect_scan:piu,connector_group:hiu,get:Ciu,get_options:miu,get_mobile:giu,get_instructions:Aiu,chains:yiu,profile:Biu,wallet_connectors:viu},Fiu={label:"Conectar la billetera"},Diu={title:"¿Qué es una billetera?",description:"Una billetera se usa para enviar, recibir, almacenar y mostrar activos digitales. También es una nueva forma de iniciar sesión, sin necesidad de crear nuevas cuentas y contraseñas en cada sitio web.",digital_asset:{title:"Un hogar para tus Activos Digitales",description:"Las carteras se utilizan para enviar, recibir, almacenar y mostrar activos digitales como Ethereum y NFTs."},login:{title:"Una nueva forma de iniciar sesión",description:"En lugar de crear nuevas cuentas y contraseñas en cada sitio web, simplemente conecta tu cartera."},get:{label:"Obtener una billetera"},learn_more:{label:"Obtener más información"}},biu={label:"Conectar",title:"Conectar una billetera",new_to_ethereum:{description:"¿Eres nuevo en las billeteras Ethereum?",learn_more:{label:"Obtener más información"}},learn_more:{label:"Obtener más información"},recent:"Reciente",status:{opening:"Abriendo %{wallet}...",not_installed:"%{wallet} no está instalado",not_available:"%{wallet} no está disponible",confirm:"Confirma la conexión en la extensión"},secondary_action:{get:{description:"¿No tienes %{wallet}?",label:"OBTENER"},install:{label:"INSTALAR"},retry:{label:"REINTENTAR"}},walletconnect:{description:{full:"¿Necesitas el modal oficial de WalletConnect?",compact:"¿Necesitas el modal de WalletConnect?"},open:{label:"ABRIR"}}},wiu={title:"Escanea con %{wallet}",fallback_title:"Escanea con tu teléfono"},xiu={recommended:"Recomendado",other:"Otro",popular:"Popular",more:"Más",others:"Otros"},kiu={title:"Obtener una billetera",action:{label:"OBTENER"},mobile:{description:"Billetera Móvil"},extension:{description:"Extensión de navegador"},mobile_and_extension:{description:"Billetera móvil y extensión"},looking_for:{title:"¿No es lo que estás buscando?",mobile:{description:"Seleccione una billetera en la pantalla principal para comenzar con un proveedor de billetera diferente."},desktop:{compact_description:"Seleccione una cartera en la pantalla principal para comenzar con un proveedor de cartera diferente.",wide_description:"Seleccione una cartera a la izquierda para comenzar con un proveedor de cartera diferente."}}},_iu={title:"Comienza con %{wallet}",short_title:"Obtener %{wallet}",mobile:{title:"%{wallet} para móvil",description:"Use la billetera móvil para explorar el mundo de Ethereum.",download:{label:"Obtener la aplicación"}},extension:{title:"%{wallet} para %{browser}",description:"Acceda a su billetera directamente desde su navegador web favorito.",download:{label:"Añadir a %{browser}"}}},Siu={title:"Instalar %{wallet}",description:"Escanee con su teléfono para descargar en iOS o Android",continue:{label:"Continuar"}},Piu={mobile:{connect:{label:"Conectar"},learn_more:{label:"Obtener más información"}},extension:{refresh:{label:"Actualizar"},learn_more:{label:"Obtener más información"}}},Tiu={title:"Cambiar redes",wrong_network:"Se detectó la red incorrecta, cambia o desconéctate para continuar.",confirm:"Confirmar en la cartera",switching_not_supported:"Tu cartera no admite cambiar las redes desde %{appName}. Intenta cambiar las redes desde tu cartera.",switching_not_supported_fallback:"Su billetera no admite el cambio de redes desde esta aplicación. Intente cambiar de red desde dentro de su billetera en su lugar.",disconnect:"Desconectar",connected:"Conectado"},Iiu={disconnect:{label:"Desconectar"},copy_address:{label:"Copiar dirección",copied:"¡Copiado!"},explorer:{label:"Ver más en el explorador"},transactions:{description:"%{appName} transacciones aparecerán aquí...",description_fallback:"Tus transacciones aparecerán aquí...",recent:{title:"Transacciones recientes"},clear:{label:"Borrar Todo"}}},Oiu={argent:{qr_code:{step1:{description:"Coloque Argent en su pantalla de inicio para un acceso más rápido a su billetera.",title:"Abra la aplicación Argent"},step2:{description:"Cree una billetera y un nombre de usuario, o importe una billetera existente.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",title:"Toque el botón Escanear QR"}}},bifrost:{qr_code:{step1:{description:"Recomendamos poner Bifrost Wallet en su pantalla de inicio para un acceso más rápido.",title:"Abra la aplicación Bifrost Wallet"},step2:{description:"Cree o importe una billetera usando su frase de recuperación.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que conecte su billetera.",title:"Toque el botón de escaneo"}}},bitget:{qr_code:{step1:{description:"Recomendamos colocar Bitget Wallet en su pantalla de inicio para un acceso más rápido.",title:"Abra la aplicación Bitget Wallet"},step2:{description:"Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que pueda conectar su billetera.",title:"Toque el botón de escanear"}},extension:{step1:{description:"Recomendamos anclar Bitget Wallet a su barra de tareas para un acceso más rápido a su billetera.",title:"Instale la extensión de la Billetera Bitget"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",title:"Refrescar tu navegador"}}},bitski:{extension:{step1:{description:"Recomendamos anclar Bitski a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala la extensión Bitski"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensión.",title:"Actualiza tu navegador"}}},coin98:{qr_code:{step1:{description:"Recomendamos poner Coin98 Wallet en la pantalla de inicio para un acceso más rápido a su billetera.",title:"Abra la aplicación Coin98 Wallet"},step2:{description:"Puede respaldar fácilmente su billetera utilizando nuestra función de respaldo en su teléfono.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que conecte su billetera.",title:"Toque el botón WalletConnect"}},extension:{step1:{description:"Haga clic en la parte superior derecha de su navegador y fije Coin98 Wallet para un fácil acceso.",title:"Instale la extensión Coin98 Wallet"},step2:{description:"Crea una nueva billetera o importa una existente.",title:"Crear o Importar una billetera"},step3:{description:"Una vez que configures Coin98 Wallet, haz clic a continuación para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},coinbase:{qr_code:{step1:{description:"Recomendamos poner Coinbase Wallet en tu pantalla de inicio para un acceso más rápido.",title:"Abre la aplicación de la Billetera Coinbase"},step2:{description:"Puedes respaldar tu billetera fácilmente utilizando la función de respaldo en la nube.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera.",title:"Pulsa el botón de escanear"}},extension:{step1:{description:"Te recomendamos anclar la Billetera Coinbase a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala la extensión de la Billetera Coinbase"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configure su billetera, haga clic abajo para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},core:{qr_code:{step1:{description:"Recomendamos poner Core en su pantalla de inicio para un acceso más rápido a su billetera.",title:"Abra la aplicación Core"},step2:{description:"Puedes respaldar fácilmente tu billetera utilizando nuestra función de respaldo en tu teléfono.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera.",title:"Toque el botón WalletConnect"}},extension:{step1:{description:"Recomendamos fijar Core a tu barra de tareas para acceder más rápido a tu billetera.",title:"Instala la extensión Core"},step2:{description:"Asegúrate de hacer una copia de seguridad de tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},fox:{qr_code:{step1:{description:"Recomendamos poner FoxWallet en tu pantalla de inicio para un acceso más rápido.",title:"Abre la aplicación FoxWallet"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá una solicitud de conexión para que conectes tu billetera.",title:"Toca el botón de escanear"}}},frontier:{qr_code:{step1:{description:"Recomendamos poner la Billetera Frontier en tu pantalla principal para un acceso más rápido.",title:"Abre la aplicación de la Billetera Frontier"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un mensaje para que conectes tu billetera.",title:"Haz clic en el botón de escaneo"}},extension:{step1:{description:"Recomendamos anclar la billetera Frontier a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala la extensión de la billetera Frontier"},step2:{description:"Asegúrese de hacer una copia de seguridad de su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configure su billetera, haga clic a continuación para actualizar el navegador y cargar la extensión.",title:"Actualizar tu navegador"}}},im_token:{qr_code:{step1:{title:"Abrir la aplicación imToken",description:"Pon la aplicación imToken en tu pantalla de inicio para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Crea una nueva billetera o importa una existente."},step3:{title:"Toca el Icono del Escáner en la esquina superior derecha",description:"Elija Nueva Conexión, luego escanee el código QR y confirme el aviso para conectar."}}},metamask:{qr_code:{step1:{title:"Abre la aplicación MetaMask",description:"Recomendamos colocar MetaMask en tu pantalla de inicio para un acceso más rápido."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Toca el botón de escanear",description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."}},extension:{step1:{title:"Instala la extensión MetaMask",description:"Recomendamos anclar MetaMask a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de hacer una copia de seguridad de tu billetera usando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Refresca tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},okx:{qr_code:{step1:{title:"Abre la aplicación OKX Wallet",description:"Recomendamos colocar OKX Wallet en tu pantalla de inicio para un acceso más rápido."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Toca el botón de escanear",description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."}},extension:{step1:{title:"Instala la extensión de Billetera OKX",description:"Recomendamos anclar la Billetera OKX a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Refresca tu navegador",description:"Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensión."}}},omni:{qr_code:{step1:{title:"Abra la aplicación Omni",description:"Agregue Omni a su pantalla de inicio para un acceso más rápido a su billetera."},step2:{title:"Crear o Importar una Billetera",description:"Crear una nueva billetera o importar una existente."},step3:{title:"Toque el icono de QR y escanee",description:"Toca el icono QR en tu pantalla principal, escanea el código y confirma el aviso para conectar."}}},token_pocket:{qr_code:{step1:{title:"Abre la aplicación TokenPocket",description:"Recomendamos colocar TokenPocket en tu pantalla principal para un acceso más rápido."},step2:{title:"Crear o importar una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Toca el botón de escaneo",description:"Después de escanear, aparecerá una solicitud de conexión para que puedas conectar tu billetera."}},extension:{step1:{title:"Instala la extensión TokenPocket",description:"Recomendamos anclar TokenPocket a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic a continuación para actualizar el navegador y cargar la extensión."}}},trust:{qr_code:{step1:{title:"Abre la aplicación Trust Wallet",description:"Ubica Trust Wallet en tu pantalla de inicio para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Crea una nueva billetera o importa una existente."},step3:{title:"Toca WalletConnect en Configuraciones",description:"Elige Nueva Conexión, luego escanea el código QR y confirma el aviso para conectar."}},extension:{step1:{title:"Instala la extensión de Trust Wallet",description:"Haz clic en la parte superior derecha de tu navegador y fija Trust Wallet para un fácil acceso."},step2:{title:"Crea o Importa una billetera",description:"Crea una nueva billetera o importa una existente."},step3:{title:"Refresca tu navegador",description:"Una vez que configures Trust Wallet, haz clic abajo para refrescar el navegador y cargar la extensión."}}},uniswap:{qr_code:{step1:{title:"Abre la aplicación Uniswap",description:"Agrega la billetera Uniswap a tu pantalla de inicio para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Crea una nueva billetera o importa una existente."},step3:{title:"Toca el icono QR y escanea",description:"Toca el icono QR en tu pantalla de inicio, escanea el código y confirma el prompt para conectar."}}},zerion:{qr_code:{step1:{title:"Abre la aplicación Zerion",description:"Recomendamos poner Zerion en tu pantalla de inicio para un acceso más rápido."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de hacer una copia de seguridad de tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Toca el botón de escanear",description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."}},extension:{step1:{title:"Instala la extensión Zerion",description:"Recomendamos anclar Zerion a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic a continuación para actualizar el navegador y cargar la extensión."}}},rainbow:{qr_code:{step1:{title:"Abre la aplicación Rainbow",description:"Recomendamos poner Rainbow en tu pantalla de inicio para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Puedes respaldar fácilmente tu billetera usando nuestra función de respaldo en tu teléfono."},step3:{title:"Toca el botón de escanear",description:"Después de escanear, aparecerá una solicitud de conexión para que conectes tu billetera."}}},enkrypt:{extension:{step1:{description:"Recomendamos anclar la Billetera Enkrypt a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala la extensión de Billetera Enkrypt"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},frame:{extension:{step1:{description:"Recomendamos anclar Frame a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala Frame y la extensión complementaria"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},one_key:{extension:{step1:{title:"Instale la extensión de Billetera OneKey",description:"Recomendamos anclar la Billetera OneKey a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic a continuación para actualizar el navegador y cargar la extensión."}}},phantom:{extension:{step1:{title:"Instala la extensión Phantom",description:"Recomendamos fijar Phantom a tu barra de tareas para un acceso más fácil a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta de recuperación con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},rabby:{extension:{step1:{title:"Instala la extensión Rabby",description:"Recomendamos anclar Rabby a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de hacer una copia de seguridad de tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para actualizar el navegador y cargar la extensión."}}},safeheron:{extension:{step1:{title:"Instala la extensión Core",description:"Recomendamos anclar Safeheron a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Refresca tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},taho:{extension:{step1:{title:"Instala la extensión de Taho",description:"Recomendamos anclar Taho a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crea o Importa una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Refresca tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},talisman:{extension:{step1:{title:"Instala la extensión de Talisman",description:"Recomendamos anclar Talisman a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crea o importa una billetera Ethereum",description:"Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase de recuperación con nadie."},step3:{title:"Recarga tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},xdefi:{extension:{step1:{title:"Instala la extensión de la billetera XDEFI",description:"Recomendamos anclar XDEFI Wallet a su barra de tareas para un acceso más rápido a su billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."},step3:{title:"Actualice su navegador",description:"Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensión."}}}},qg={connect_wallet:Fiu,intro:Diu,connect:biu,connect_scan:wiu,connector_group:xiu,get:kiu,get_options:_iu,get_mobile:Siu,get_instructions:Piu,chains:Tiu,profile:Iiu,wallet_connectors:Oiu},Niu={label:"Connecter le portefeuille"},Riu={title:"Qu'est-ce qu'un portefeuille?",description:"Un portefeuille est utilisé pour envoyer, recevoir, stocker et afficher des actifs numériques. C'est aussi une nouvelle façon de se connecter, sans avoir besoin de créer de nouveaux comptes et mots de passe sur chaque site.",digital_asset:{title:"Un foyer pour vos actifs numériques",description:"Les portefeuilles sont utilisés pour envoyer, recevoir, stocker et afficher des actifs numériques comme Ethereum et les NFTs."},login:{title:"Une nouvelle façon de se connecter",description:"Au lieu de créer de nouveaux comptes et mots de passe sur chaque site Web, connectez simplement votre portefeuille."},get:{label:"Obtenir un portefeuille"},learn_more:{label:"En savoir plus"}},jiu={label:"Connecter",title:"Connecter un portefeuille",new_to_ethereum:{description:"Nouveau aux portefeuilles Ethereum?",learn_more:{label:"En savoir plus"}},learn_more:{label:"En savoir plus"},recent:"Récents",status:{opening:"Ouverture %{wallet}...",not_installed:"%{wallet} n'est pas installé",not_available:"%{wallet} n'est pas disponible",confirm:"Confirmez la connexion dans l'extension"},secondary_action:{get:{description:"Vous n'avez pas de %{wallet}?",label:"OBTENIR"},install:{label:"INSTALLER"},retry:{label:"RÉESSAYER"}},walletconnect:{description:{full:"Vous avez besoin du modal officiel de WalletConnect ?",compact:"Besoin du modal de WalletConnect ?"},open:{label:"OUVRIR"}}},ziu={title:"Scannez avec %{wallet}",fallback_title:"Scannez avec votre téléphone"},Miu={recommended:"Recommandé",other:"Autre",popular:"Populaire",more:"Plus",others:"Autres"},Uiu={title:"Obtenez un portefeuille",action:{label:"OBTENIR"},mobile:{description:"Portefeuille mobile"},extension:{description:"Extension de navigateur"},mobile_and_extension:{description:"Portefeuille mobile et extension"},looking_for:{title:"Ce n'est pas ce que vous cherchez ?",mobile:{description:"Sélectionnez un portefeuille sur l'écran principal pour commencer avec un autre fournisseur de portefeuille."},desktop:{compact_description:"Sélectionnez un portefeuille sur l'écran principal pour commencer avec un autre fournisseur de portefeuille.",wide_description:"Sélectionnez un portefeuille sur la gauche pour commencer avec un autre fournisseur de portefeuille."}}},Liu={title:"Commencez avec %{wallet}",short_title:"Obtenez %{wallet}",mobile:{title:"%{wallet} pour mobile",description:"Utilisez le portefeuille mobile pour explorer le monde d'Ethereum.",download:{label:"Obtenez l'application"}},extension:{title:"%{wallet} pour %{browser}",description:"Accédez à votre portefeuille directement depuis votre navigateur web préféré.",download:{label:"Ajouter à %{browser}"}}},$iu={title:"Installer %{wallet}",description:"Scannez avec votre téléphone pour télécharger sur iOS ou Android",continue:{label:"Continuer"}},Wiu={mobile:{connect:{label:"Connecter"},learn_more:{label:"En savoir plus"}},extension:{refresh:{label:"Rafraîchir"},learn_more:{label:"En savoir plus"}}},qiu={title:"Changer de Réseaux",wrong_network:"Mauvais réseau détecté, changez ou déconnectez-vous pour continuer.",confirm:"Confirmer dans le portefeuille",switching_not_supported:"Votre portefeuille ne supporte pas le changement de réseaux depuis %{appName}. Essayez de changer de réseau depuis votre portefeuille.",switching_not_supported_fallback:"Votre portefeuille ne prend pas en charge le changement de réseaux à partir de cette application. Essayez de changer de réseau à partir de votre portefeuille à la place.",disconnect:"Déconnecter",connected:"Connecté"},Hiu={disconnect:{label:"Déconnecter"},copy_address:{label:"Copier l'adresse",copied:"Copié !"},explorer:{label:"Voir plus sur l'explorateur"},transactions:{description:"%{appName} transactions apparaîtront ici...",description_fallback:"Vos transactions apparaîtront ici...",recent:{title:"Transactions Récentes"},clear:{label:"Tout supprimer"}}},Giu={argent:{qr_code:{step1:{description:"Mettez Argent sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",title:"Ouvrez l'application Argent"},step2:{description:"Créez un portefeuille et un nom d'utilisateur, ou importez un portefeuille existant.",title:"Créer ou Importer un Portefeuille"},step3:{description:"Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton Scan QR"}}},bifrost:{qr_code:{step1:{description:"Nous vous recommandons de mettre le portefeuille Bifrost sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application Bifrost Wallet"},step2:{description:"Créez ou importez un portefeuille en utilisant votre phrase de récupération.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après votre scan, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}}},bitget:{qr_code:{step1:{description:"Nous vous recommandons de placer Bitget Wallet sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application Bitget Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après le scan, une incitation de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}},extension:{step1:{description:"Nous vous recommandons d'épingler Bitget Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension de portefeuille Bitget"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créez ou Importez un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},bitski:{extension:{step1:{description:"Nous recommandons d'épingler Bitski à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Bitski"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},coin98:{qr_code:{step1:{description:"Nous vous recommandons de placer Coin98 Wallet sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",title:"Ouvrez l'application Coin98 Wallet"},step2:{description:"Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après que vous ayez scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton WalletConnect"}},extension:{step1:{description:"Cliquez en haut à droite de votre navigateur et épinglez Coin98 Wallet pour un accès facile.",title:"Installez l'extension Coin98 Wallet"},step2:{description:"Créez un nouveau portefeuille ou importez-en un existant.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré Coin98 Wallet, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},coinbase:{qr_code:{step1:{description:"Nous recommandons de placer Coinbase Wallet sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application Coinbase Wallet"},step2:{description:"Vous pouvez facilement sauvegarder votre portefeuille en utilisant la fonction de sauvegarde cloud.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après avoir scanné, une invite de connexion s'affichera pour que vous puissiez connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}},extension:{step1:{description:"Nous recommandons d'épingler Coinbase Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Coinbase Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sûre. Ne partagez jamais votre phrase secrète avec quiconque.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",title:"Actualisez votre navigateur"}}},core:{qr_code:{step1:{description:"Nous recommandons de placer Core sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",title:"Ouvrez l'application Core"},step2:{description:"Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après avoir scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton WalletConnect"}},extension:{step1:{description:"Nous recommandons d'épingler Core à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Core"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",title:"Créez ou Importer un Portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},fox:{qr_code:{step1:{description:"Nous recommandons de mettre FoxWallet sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application FoxWallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après avoir scanné, une invitation à la connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}}},frontier:{qr_code:{step1:{description:"Nous vous recommandons de placer le portefeuille Frontier sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application Frontier Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après avoir scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}},extension:{step1:{description:"Nous recommandons d'épingler Frontier Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Frontier Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créez ou importez un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},im_token:{qr_code:{step1:{title:"Ouvrez l'application imToken",description:"Placez l'application imToken sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou importez un portefeuille",description:"Créez un nouveau portefeuille ou importez-en un existant ."},step3:{title:"Appuyez sur l'icône du scanner dans le coin supérieur droit",description:"Choisissez Nouvelle Connexion, puis scannez le code QR et confirmez l'invite pour vous connecter."}}},metamask:{qr_code:{step1:{title:"Ouvrez l'application MetaMask",description:"Nous vous recommandons de mettre MetaMask sur votre écran d'accueil pour un accès plus rapide."},step2:{title:"Créer ou Importer un Portefeuille",description:"Veillez à sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Appuyez sur le bouton de scan",description:"Après avoir scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."}},extension:{step1:{title:"Installez l’extension de MetaMask",description:"Nous recommandons d'épingler MetaMask à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},okx:{qr_code:{step1:{title:"Ouvrez l'application OKX Wallet",description:"Nous recommandons de mettre OKX Wallet sur votre écran d'accueil pour un accès plus rapide."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."},step3:{title:"Appuyez sur le bouton de numérisation",description:"Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."}},extension:{step1:{title:"Installez l'extension de portefeuille OKX",description:"Nous vous recommandons d'épingler le portefeuille OKX à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."}}},omni:{qr_code:{step1:{title:"Ouvrez l'application Omni",description:"Ajoutez Omni à votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un Portefeuille",description:"Créez un nouveau portefeuille ou importez-en un existant."},step3:{title:"Touchez l'icône QR et scannez",description:"Appuyez sur l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."}}},token_pocket:{qr_code:{step1:{title:"Ouvrez l'application TokenPocket",description:"Nous vous recommandons de mettre TokenPocket sur votre écran d'accueil pour un accès plus rapide."},step2:{title:"Créez ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille à l'aide d'une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Appuyez sur le bouton de scan",description:"Après votre scan, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."}},extension:{step1:{title:"Installez l'extension TokenPocket",description:"Nous recommandons d'épingler TokenPocket à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},trust:{qr_code:{step1:{title:"Ouvrez l'application Trust Wallet",description:"Placez Trust Wallet sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Créer un nouveau portefeuille ou en importer un existant."},step3:{title:"Appuyez sur WalletConnect dans les paramètres",description:"Choisissez Nouvelle Connexion, puis scannez le code QR et confirmez l'invite pour vous connecter."}},extension:{step1:{title:"Installez l'extension Trust Wallet",description:"Cliquez en haut à droite de votre navigateur et épinglez Trust Wallet pour un accès facile."},step2:{title:"Créer ou importer un portefeuille",description:"Créer un nouveau portefeuille ou en importer un existant."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré Trust Wallet, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},uniswap:{qr_code:{step1:{title:"Ouvrez l'application Uniswap",description:"Ajoutez Uniswap Wallet à votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou importez un portefeuille",description:"Créez un nouveau portefeuille ou importez-en un existant."},step3:{title:"Tapez sur l'icône QR et scannez",description:"Touchez l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."}}},zerion:{qr_code:{step1:{title:"Ouvrez l'application Zerion",description:"Nous vous recommandons de mettre Zerion sur votre écran d'accueil pour un accès plus rapide."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne."},step3:{title:"Appuyez sur le bouton de scan",description:"Une fois que vous avez scanné, une invite de connexion apparaîtra pour que vous puissiez connecter votre portefeuille."}},extension:{step1:{title:"Installer l'extension Zerion",description:"Nous recommandons d'épingler Zerion à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou Importez un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},rainbow:{qr_code:{step1:{title:"Ouvre l'application Rainbow",description:"Nous vous recommandons de mettre Rainbow sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou Importez un portefeuille",description:"Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone."},step3:{title:"Appuyez sur le bouton de scan",description:"Après avoir scanné, une invite de connexion apparaîtra pour que vous connectiez votre portefeuille."}}},enkrypt:{extension:{step1:{description:"Nous vous recommandons d'épingler Enkrypt Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Enkrypt Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quelqu'un.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l’extension.",title:"Rafraîchissez votre navigateur"}}},frame:{extension:{step1:{description:"Nous vous recommandons d'épingler Frame à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez Frame & l'extension complémentaire"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille à l'aide d'une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},one_key:{extension:{step1:{title:"Installez l'extension OneKey Wallet",description:"Nous vous recommandons d'épingler OneKey Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},phantom:{extension:{step1:{title:"Installez l'extension Phantom",description:"Nous vous recommandons d'épingler Phantom à votre barre des tâches pour un accès plus facile à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase de récupération secrète avec personne."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},rabby:{extension:{step1:{title:"Installez l'extension Rabby",description:"Nous recommandons d'épingler Rabby à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Actualisez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."}}},safeheron:{extension:{step1:{title:"Installez l'extension Core",description:"Nous recommandons d'épingler Safeheron à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quelqu'un."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},taho:{extension:{step1:{title:"Installez l'extension Taho",description:"Nous vous recommandons d'épingler Taho à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou Importez un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quelqu'un."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},talisman:{extension:{step1:{title:"Installez l'extension Talisman",description:"Nous vous recommandons d'épingler Talisman à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou importer un portefeuille Ethereum",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase de récupération avec personne."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},xdefi:{extension:{step1:{title:"Installez l'extension du portefeuille XDEFI",description:"Nous vous recommandons d'épingler XDEFI Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}}},Hg={connect_wallet:Niu,intro:Riu,connect:jiu,connect_scan:ziu,connector_group:Miu,get:Uiu,get_options:Liu,get_mobile:$iu,get_instructions:Wiu,chains:qiu,profile:Hiu,wallet_connectors:Giu},Kiu={label:"वॉलेट को कनेक्ट करें"},Qiu={title:"वॉलेट क्या है?",description:"एक वॉलेट का उपयोग डिजिटल संपत्तियों को भेजने, प्राप्त करने, संग्रहित करने और प्रदर्शित करने के लिए किया जाता है। यह एक नया तरीका भी है लॉग इन करने का, हर वेबसाइट पर नए खाते और पासवर्ड बनाने की जरूरत के बिना।",digital_asset:{title:"अपने डिजिटल संपत्तियों के लिए एक घर",description:"वॉलेट का उपयोग Ethereum और NFTs जैसी डिजिटल संपत्तियों को भेजने, प्राप्त करने, संग्रहित करने और प्रदर्शित करने के लिए किया जाता है."},login:{title:"लॉग इन करने का एक नया तरीका",description:"हर वेबसाइट पर नए खाते और पासवर्ड बनाने की बजाय, बस अपना वॉलेट कनेक्ट करें."},get:{label:"एक वॉलेट प्राप्त करें"},learn_more:{label:"और जानें"}},Viu={label:"कनेक्ट करें",title:"वॉलेट को कनेक्ट करें",new_to_ethereum:{description:"Ethereum वॉलेट्स में नए हैं?",learn_more:{label:"और जानें"}},learn_more:{label:"और जानें।"},recent:"हाल ही में",status:{opening:"%{wallet}खोल रहा है...",not_installed:"%{wallet} स्थापित नहीं है",not_available:"%{wallet} उपलब्ध नहीं है",confirm:"एक्सटेंशन में कनेक्शन की पुष्टि करें"},secondary_action:{get:{description:"क्या आपके पास %{wallet}नहीं है ?",label:"प्राप्त करें"},install:{label:"स्थापित करें"},retry:{label:"पुनः प्रयास करें"}},walletconnect:{description:{full:"क्या आपको आधिकारिक WalletConnect मोडल की आवश्यकता है?",compact:"क्या आपको WalletConnect मोडल की आवश्यकता है?"},open:{label:"खोलें"}}},Jiu={title:"स्कैन करें विथ %{wallet}",fallback_title:"अपने फोन से स्कैन करें"},Yiu={recommended:"अनुशंसित",other:"अन्य",popular:"लोकप्रिय",more:"अधिक",others:"अन्य लोग"},Xiu={title:"एक वॉलेट प्राप्त करें",action:{label:"प्राप्त करें"},mobile:{description:"मोबाइल वॉलेट"},extension:{description:"ब्राउज़र एक्सटेंशन"},mobile_and_extension:{description:"मोबाइल वॉलेट और एक्सटेंशन"},looking_for:{title:"क्या आपको जो चाहिए वह नहीं मिल रहा है?",mobile:{description:"मुख्य स्क्रीन पर एक बटुआ चुनें ताकि आप एक अलग बटुआ प्रदाता के साथ शुरू कर सकें।"},desktop:{compact_description:"मुख्य स्क्रीन पर एक बटुआ चुनें ताकि आप एक अलग बटुआ प्रदाता के साथ शुरू कर सकें।",wide_description:"बाएं एक बटुआ चुनें ताकि आप एक अलग बटुआ प्रदाता के साथ शुरू कर सकें।"}}},Ziu={title:"%{wallet}के साथ शुरू करें",short_title:"%{wallet}प्राप्त करें",mobile:{title:"मोबाइल के लिए %{wallet}",description:"मोबाइल वॉलेट का उपयोग करके Ethereum की दुनिया का अन्वेषण करें।",download:{label:"ऐप प्राप्त करें"}},extension:{title:"%{wallet} के लिए %{browser}",description:"अपने पसंदीदा वेब ब्राउज़र से अपने वॉलेट तक पहुंचें।",download:{label:"करें जोड़ें %{browser}"}}},uau={title:"स्थापित करें %{wallet}",description:"iOS या Android पर डाउनलोड करने के लिए अपने फोन से स्कैन करें",continue:{label:"जारी रखें"}},eau={mobile:{connect:{label:"जोड़ें"},learn_more:{label:"और जानें"}},extension:{refresh:{label:"ताज़ा करें"},learn_more:{label:"और जानें"}}},tau={title:"नेटवर्क स्विच करें",wrong_network:"गलत नेटवर्क का पता चला, जारी रखने के लिए स्विच करें या कनेक्ट करें।",confirm:"वॉलेट में पुष्टि करें",switching_not_supported:"आपका वॉलेट नेटवर्क्स को %{appName}से स्विच करना समर्थन नहीं करता . बजाय अपने वॉलेट के भीतर से नेटवर्क स्विच करने का प्रयास करें।",switching_not_supported_fallback:"आपका वॉलेट इस एप से नेटवर्क्स स्विच करने का समर्थन नहीं करता। बजाय उसके, अपना वॉलेट द्वारा नेटवर्क्स स्विच करने की कोशिश करें।",disconnect:"डिकनेक्ट",connected:"कनेक्ट किया गया"},nau={disconnect:{label:"डिकनेक्ट"},copy_address:{label:"पता कॉपी करें",copied:"कॉपी कर दिया गया!"},explorer:{label:"एक्सप्लोरर पर अधिक देखें"},transactions:{description:"%{appName} लेन - देन यहां दिखाई देंगे...",description_fallback:"आपके लेन-देन यहां दिखाई देंगे...",recent:{title:"हाल के लेन - देन"},clear:{label:"सभी को हटाएं"}}},rau={argent:{qr_code:{step1:{description:"अपने वॉलेट को जल्दी से एक्सेस करने के लिए आपके होम स्क्रीन पर Argent डालें।",title:"Argent ऐप खोलें"},step2:{description:"वॉलेट और उपयोगकर्ता नाम बनाएं, या मौजूदा वॉलेट को आयात करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",title:"QR स्कैन बटन को टैप करें"}}},bifrost:{qr_code:{step1:{description:"हम आपको सलाह देते हैं कि Bifrost Wallet को अपने होम स्क्रीन पर लगाएं, ताकि त्वरित एक्सेस को सुनिश्चित किया जा सके।",title:"Bifrost Wallet ऐप को खोलें"},step2:{description:"अपने रिकवरी फ़्रेज़ का उपयोग करके एक वॉलेट बनाएं या इंपोर्ट करें।",title:"वॉलेट बनाएं या इंपोर्ट करें"},step3:{description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत दिखाई देगा।",title:"स्कैन बटन को टैप करें"}}},bitget:{qr_code:{step1:{description:"हम इसे सुझाव देते हैं कि आप अपने होम स्क्रीन पर Bitget वॉलेट को रखें ताकि जल्दी एक्सेस कर सकें।",title:"Bitget वॉलेट एप को खोलें"},step2:{description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने का एक संकेत दिखाई देगा।",title:"स्कैन बटन पर टैप करें"}},extension:{step1:{description:"हम इसे सुझाव देते हैं कि आप Bitget वॉलेट को आपके टास्कबार में पिन करें ताकि आपके वॉलेट तक जल्दी पहुंच सकें।",title:"Bitget Wallet एक्सटेंशन स्थापित करें"},step2:{description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप किसी सुरक्षित तरीके से ले रहे हैं। अपनी गुप्त वाक्यांश को कभी किसी के साथ साझा न करें।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।",title:"अपने ब्राउज़र को ताज़ा करें"}}},bitski:{extension:{step1:{description:"हम आपको अपने वॉलेट तक जल्दी पहुंचने के लिए Bitski को अपने टास्कबार में पिन करने की सलाह देते हैं।",title:"Bitski एक्सटेंशन स्थापित करें"},step2:{description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपने वॉलेट का बैकअप बना रहे हैं। कभी भी किसी के साथ अपने गोपनीय वाक्यांश को साझा न करें।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपना वॉलेट सेट कर लेते हैं, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।",title:"अपने ब्राउज़र को ताज़ा करें"}}},coin98:{qr_code:{step1:{description:"हम आपके वॉलेट तक तेजी से पहुंचने के लिए अपने होम स्क्रीन पर Coin98 वॉलेट रखने की सलाह देते हैं।",title:"Coin98 वॉलेट ऐप को खोलें"},step2:{description:"आप अपने फोन पर हमारे बैकअप फीचर का उपयोग करके आसानी से अपने वॉलेट का बैकअप कर सकते हैं।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन प्रांप्ट दिखाई देगा।",title:"WalletConnect बटन पर टैप करें"}},extension:{step1:{description:"अपने ब्राउज़र के ऊपरी दाएं हिस्से पर क्लिक करें और आसानी से पहुंच के लिए Coin98 वॉलेट को पिन करें।",title:"Coin98 वॉलेट एक्सटेंशन स्थापित करें"},step2:{description:"नया बटुआ बनाएं या मौजूदा को आयात करें।",title:"एक बटुआ बनाएं या आयात करें"},step3:{description:"एक बार जब आप Coin98 वॉलेट सेट करते हैं, तो नीचे क्लिक करके ब्राउजर को ताजा करें और एक्सटेंशन को लोड करें।",title:"अपने ब्राउज़र को ताज़ा करें"}}},coinbase:{qr_code:{step1:{description:"हम आपको सलाह देते हैं कि आपकी मुख्य बिल्ड स्क्रीन पर Coinbase वॉलेट को रखें जिससे आपकी पहुंच तेज हो।",title:"Coinbase वॉलेट ऐप खोलें"},step2:{description:"आप बादल बैकअप सुविधा का उपयोग करके आसानी से अपने वॉलेट का बैकअप ले सकते हैं।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"जैसे ही आप स्कैन करते हैं, आपको अपने वॉलेट से कनेक्ट करने के लिए एक कनेक्शन संकेत दिखाई देगा।",title:"स्कैन बटन को छूना"}},extension:{step1:{description:"हमारा सिफारिश है कि आप अपने वॉलेट तक जल्दी पहुंचने के लिए Coinbase वॉलेट को अपने टास्कबार पर पिन पर रखें।",title:"Coinbase वॉलेट एक्सटेंशन स्थापित करें"},step2:{description:"सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त पुनर्प्राप्ति वाक्यांश कभी भी किसी के साथ साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपना वॉलेट सेट अप करते हैं, तो ब्राउज़र को ताजगी देने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें.",title:"अपना ब्राउज़र ताजा करें"}}},core:{qr_code:{step1:{description:"हम आपकी वॉलेट के तेज एक्सेस के लिए Core को आपके होम स्क्रीन पर डालने की सलाह देते हैं.",title:"Core एप खोलें"},step2:{description:"आप आसानी से अपने फ़ोन पर हमारे बैकअप फीचर का उपयोग करके अपना वॉलेट बैकअप कर सकते हैं.",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए आपके लिए कनेक्शन प्राम्प्ट प्रकट होगा.",title:"WalletConnect बटन को छूने के साथ"}},extension:{step1:{description:"हम अपने वॉलेट के लिए तेज एक्सेस के लिए कोर को अपने टास्कबार में पिन करने की सिफारिश करते हैं।",title:"कोर एक्सटेंशन स्थापित करें"},step2:{description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले। कभी भी किसी के साथ अपनी गुप्त वाक्यांश साझा न करें।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपने वॉलेट की स्थापना कर लें, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा कर सकें और एक्सटेंशन को लोड कर सकें।",title:"अपने ब्राउज़र को ताज़ा करें"}}},fox:{qr_code:{step1:{description:"हम FoxWallet को अपने होम स्क्रीन पर रखने की सिफारिश करते हैं ताकि त्वरित एक्सेस मिल सके।",title:"FoxWallet ऐप खोलें"},step2:{description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके का उपयोग करके अपने वॉलेट का बैकअप ले रहे हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"जब आप स्कैन करेंगे, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।",title:"स्कैन बटन पर टैप करें"}}},frontier:{qr_code:{step1:{description:"हमारी सिफारिश है कि आप अपने होम स्क्रीन पर फ्रंटियर वॉलेट रखें जिससे कि आपको त्वरित पहुंच मिले।",title:"फ्रंटियर वॉलेट ऐप को खोलें"},step2:{description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके का उपयोग करके अपने वॉलेट का बैकअप ले रहे हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"जब आप स्कैन करते हैं, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।",title:"स्कैन बटन को टैप करें"}},extension:{step1:{description:"हम आपके वॉलेट की तेजी से पहुंच के लिए Frontier Wallet को अपने टास्कबार में पिन करने की सिफारिश करते हैं।",title:"Frontier Wallet एक्सटेंशन इंस्टॉल करें"},step2:{description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपना वॉलेट बैकअप कर रहे हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"वॉलेट सेटअप होने के बाद, ब्राउज़र को रिफ्रेश करने के लिए नीचे क्लिक करें और एक्सटेंशन लोड करें।",title:"अपना ब्राउज़र रिफ्रेश करें"}}},im_token:{qr_code:{step1:{title:"imToken ऐप खोलें",description:"अपने वॉलेट के तेजी से पहुँच के लिए imToken एप्लीकेशन को अपने होम स्क्रीन पर रखें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा एक को आयात करें।"},step3:{title:"ऊपरी दाएं कोने में स्कैनर आइकॉन पर टैप करें",description:"नया कनेक्शन चुनें, फिर QR कोड स्कैन करें और कनेक्ट करने के लिए प्रॉम्प्ट की पुष्टि करें।"}}},metamask:{qr_code:{step1:{title:"MetaMask ऐप को खोलें",description:"हम आपको MetaMask को आपकी होम स्क्रीन पर रखने की सलाह देते हैं, इससे आपको त्वरित पहुँच मिलेगी।"},step2:{title:"एक वॉलेट बनाएं या इम्पोर्ट करें",description:"सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त वाक्यांश कभी भी किसी के साथ साझा न करें।"},step3:{title:"स्कैन बटन पर टैप करें",description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन प्रॉम्प्ट दिखाई देगा।"}},extension:{step1:{title:"MetaMask एक्सटेंशन स्थापित करें",description:"हम अपने वॉलेट तक जल्दी से पहुँचने के लिए MetaMask को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेना सुनिश्चित करें। अपनी गुप्त वाक्यांश को किसी के साथ शेयर न करें।"},step3:{title:"अपना ब्राउज़र ताज़ा करें",description:"एक बार जब आप अपना वॉलेट सेट अप करते हैं, तो ब्राउजर को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}},okx:{qr_code:{step1:{title:"OKX Wallet ऐप खोलें",description:"हम आपको OKX Wallet को अपने होम स्क्रीन पर रखने की सलाह देते हैं, जिससे आप जल्दी से पहुंच सकें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने का यकीन करें। कभी भी किसी के साथ अपने गुप्त वाक्यांश साझा न करें।"},step3:{title:"स्कैन बटन पर टैप करें",description:"जब आप स्कैन करते हैं, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।"}},extension:{step1:{title:"OKX वॉलेट एक्सटेंशन स्थापित करें",description:"हम अपने वॉलेट तक तेज़ी से पहुंचने के लिए आपको OKX वॉलेट को अपने कार्यपट्टी में पिन करने की सलाह देते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने का यकीन करें। कभी भी किसी के साथ अपने गुप्त वाक्यांश साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"जब आप अपना वॉलेट सेट अप कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताजा करें और एक्सटेंशन को लोड करें।"}}},omni:{qr_code:{step1:{title:"Omni ऐप को खोलें",description:"अपने वॉलेट तक अधिक जल्दी पहुंचने के लिए Omni को अपने होम स्क्रीन पर जोड़ें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा एक को आयात करें।"},step3:{title:"QR आइकन पर टैप करें और स्कैन करें",description:"अपने होम स्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और कनेक्ट करने के लिए प्रॉम्प्ट की पुष्टि करें।"}}},token_pocket:{qr_code:{step1:{title:"TokenPocket ऐप को खोलें",description:"हम आपको TokenPocket को अपने होम स्क्रीन पर रखने की सलाह देते हैं ताकि आपको तेज एक्सेस मिल सके।"},step2:{title:"एक वॉलेट बनाएँ या आयात करें",description:"सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त वाक्यांश कभी भी किसी के साथ साझा न करें।"},step3:{title:"स्कैन बटन पर टैप करें",description:"एक बार स्कैन करने के बाद, आपके लिए एक कनेक्शन प्रॉम्प्ट प्रकट होगा ताकि आप अपने वॉलेट को कनेक्ट कर सकें।"}},extension:{step1:{title:"TokenPocket एक्सटेंशन स्थापित करें",description:"हम अपने वॉलेट तक त्वरित पहुंच के लिए TokenPocket को अपने taskbar पर pin करने की सिफारिश करते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेते हैं। कभी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।"},step3:{title:"अपना ब्राउज़र ताज़ा करें",description:"एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताज़ा ब्राउज़र लोड करें और एक्सटेंशन अप करें।"}}},trust:{qr_code:{step1:{title:"Trust Wallet ऐप खोलें",description:"अपने वॉलेट तक तेज़ी से पहुंचने के लिए Trust Wallet को अपने होम स्क्रीन पर रखें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा वॉलेट आयात करें।"},step3:{title:"सेटिंग्स में WalletConnect को टैप करें",description:"नया कनेक्शन चुनें, फिर QR कोड स्कैन करें और प्रम्प्ट की पुष्टि करें।"}},extension:{step1:{title:"Trust Wallet एक्सटेंशन को इंस्टॉल करें",description:"अपने ब्राउज़र के ऊपरी दाएं कोने पर क्लिक करें और Trust Wallet को आसानी से प्रवेश के लिए पिन करें।"},step2:{title:"एक वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा वॉलेट आयात करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार Trust Wallet सेट अप करने के बाद, नीचे क्लिक करें ब्राउज़र को ताज़ा करने और एक्सटेंशन लोड करने के लिए।"}}},uniswap:{qr_code:{step1:{title:"Uniswap ऐप को खोलें",description:"अपने होम स्क्रीन पर Uniswap वॉलेट जोड़ें, इससे आपके वॉलेट तक तेजी से पहुंचने की सुविधा होगी।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा वॉलेट को आयात करें।"},step3:{title:"QR आइकन पर टैप करें और स्कैन करें",description:"अपने होमस्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और प्रम्प्ट को कनेक्ट करने की पुष्टि करें।"}}},zerion:{qr_code:{step1:{title:"Zerion ऐप को खोलें",description:"हम सलाह देते हैं कि आप Zerion को अपने होम स्क्रीन पर रखें, इससे तेजी से एक्सेस करने में आसानी होगी।"},step2:{title:"एक वॉलेट बनाएं या आयात करें",description:"सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त वाक्यांश कभी भी किसी के साथ साझा न करें।"},step3:{title:"स्कैन बटन को टैप करें",description:"आप स्कैन करने के बाद, एक कनेक्शन प्रोम्प्ट आपके बटुए को कनेक्ट करने के लिए प्रकट होगा।"}},extension:{step1:{title:"Zerion एक्सटेंशन स्थापित करें",description:"हमारी सिफारिश है कि आप अपने वॉलेट तक जल्दी पहुँचने के लिए Zerion को अपने टास्कबार में पिन करें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप एक सुरक्षित विधि का उपयोग करके अपने वॉलेट का बैकअप ले रहे हैं। अपना गुप्त वाक्य कभी किसी के साथ साझा न करें।"},step3:{title:"अपना ब्राउज़र ताज़ा करें",description:"एक बार जब आप अपने वॉलेट की स्थापना कर लें, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}},rainbow:{qr_code:{step1:{title:"Rainbow ऐप को खोलें",description:"हम अपने वॉलेट के तेज एक्सेस के लिए Rainbow को अपने होम स्क्रीन पर रखने की सलाह देते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"आप अपने फ़ोन पर हमारे बैकअप फीचर का उपयोग करके अपने वॉलेट का बैकअप आसानी से ले सकते हैं।"},step3:{title:"स्कैन बटन पर टैप करें",description:"जब आप स्कैन करते हैं, तो आपकी वॉलेट से कनेक्ट करने के लिए एक कनेक्शन संकेत दिखाई देगा।"}}},enkrypt:{extension:{step1:{description:"हम अपनी वॉलेट तक तेज़ी से पहुँच के लिए Enkrypt वॉलेट को अपने टास्कबार में पिन करने की सलाह देते हैं।",title:"Enkrypt वॉलेट एक्सटेंशन स्थापित करें"},step2:{description:"सुनिश्चित करें कि आप अपनी वॉलेट का बैकअप एक सुरक्षित तरीके से ले। अपनी गुप्त वाक्यांश को कभी भी किसी के साथ साझा न करें।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपनी वॉलेट सेट कर लें, तो नीचे क्लिक करें ब्राउज़र को ताज़ा करने और एक्सटेंशन लोड करने के लिए।",title:"अपने ब्राउज़र को ताज़ा करें"}}},frame:{extension:{step1:{description:"हम अपनी वॉलेट तक तेज़ी से पहुँच के लिए Frame को अपने टास्कबार में पिन करने की सलाह देते हैं।",title:"Frame और साथी एक्सटेंशन स्थापित करें"},step2:{description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेना सुनिश्चित करें। कभी भी अपनी गुप्त वाक्यांश को किसी के साथ साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपने वॉलेट की सेटअप कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।",title:"अपना ब्राउज़र ताज़ा करें"}}},one_key:{extension:{step1:{title:"OneKey Wallet एक्सटेंशन स्थापित करें",description:"हम आपको अपने वॉलेट की तेज एक्सेस के लिए OneKey Wallet को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले रहे हैं। अपना गुप्त वाक्यांश किसी के साथ भी साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपना वॉलेट सेट अप कर लेते हैं, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}},phantom:{extension:{step1:{title:"फैंटम एक्सटेंशन स्थापित करें",description:"हम आपके वॉलेट के आसान उपयोग के लिए फैंटम को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"एक वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले रहे हैं। अपना गुप्त वसूली वाक्यांश किसी के साथ भी साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपना वॉलेट सेट कर लें, तो ब्राउज़र को ताजगी देने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}},rabby:{extension:{step1:{title:"Rabby एक्सटेंशन स्थापित करें",description:"हम आपको सलाह देते हैं कि अपने वॉलेट की जल्दी से पहुँच के लिए Rabby को अपने टास्कबार में पिन करें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेते हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।"},step3:{title:"अपना ब्राउज़र ताज़ा करें",description:"जब आप अपना वॉलेट सेट अप कर लेते हैं, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन लोड करने के लिए नीचे क्लिक करें।"}}},safeheron:{extension:{step1:{title:"कोर एक्सटेंशन स्थापित करें",description:"हम आपको सलाह देते हैं कि अपने वॉलेट की जल्दी से पहुँच के लिए Safeheron को अपने टास्कबार में पिन करें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपना वॉलेट बैकअप कर रहे हैं। कभी भी किसी के साथ अपने गुप्त वाक्यांश को साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपने वॉलेट को सेट अप करते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।"}}},taho:{extension:{step1:{title:"ताहो एक्सटेंशन स्थापित करें",description:"हम आपके वॉलेट तक त्वरित पहुँच के लिए ताहो को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"एक वॉलेट बनाएँ या आयात करें",description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपना वॉलेट बैकअप कर रहे हैं। कभी भी किसी के साथ अपने गुप्त वाक्यांश को साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपना बटुआ सेट कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।"}}},talisman:{extension:{step1:{title:"तालिसमान एक्सटेंशन स्थापित करें",description:"हम आपके बटुए के त्वरित पहुँच के लिए तालिसमान को अपने टास्कबार में पिन करने की सिफारिश करते हैं।"},step2:{title:"एक ईथेरियम बटुए बनाएं या आयात करें",description:"अपने बटुए का बैकअप एक सुरक्षित तरीके से लेने का ध्यान रखें। कभी भी अपनी वसूली वाक्यांश को किसी के साथ साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपना बटुआ सेट कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।"}}},xdefi:{extension:{step1:{title:"XDEFI वॉलेट एक्सटेंशन स्थापित करें",description:"हम आपकी वॉलेट की जल्दी से पहुँच के लिए XDEFI Wallet को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"एक वॉलेट बनाएं या आयात करें",description:"निश्चित रूप से अपने वॉलेट का बैकअप किसी सुरक्षित तरीके से लें। अपनी गोपनीय वाक्यांश को किसी के साथ शेयर ना करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आपने अपनी वॉलेट सेट अप कर ली हो, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}}},Gg={connect_wallet:Kiu,intro:Qiu,connect:Viu,connect_scan:Jiu,connector_group:Yiu,get:Xiu,get_options:Ziu,get_mobile:uau,get_instructions:eau,chains:tau,profile:nau,wallet_connectors:rau},iau={label:"Hubungkan Dompet"},aau={title:"Apa itu Dompet?",description:"Sebuah dompet digunakan untuk mengirim, menerima, menyimpan, dan menampilkan aset digital. Ini juga cara baru untuk masuk, tanpa perlu membuat akun dan kata sandi baru di setiap situs web.",digital_asset:{title:"Sebuah Rumah untuk Aset Digital Anda",description:"Dompet digunakan untuk mengirim, menerima, menyimpan, dan menampilkan aset digital seperti Ethereum dan NFTs."},login:{title:"Cara Baru untuk Masuk",description:"Alih-alih membuat akun dan kata sandi baru di setiap situs web, cukup hubungkan dompet Anda."},get:{label:"Dapatkan Dompet"},learn_more:{label:"Pelajari lebih lanjut"}},oau={label:"Hubungkan",title:"Hubungkan Dompet",new_to_ethereum:{description:"Baru dalam dompet Ethereum?",learn_more:{label:"Pelajari lebih lanjut"}},learn_more:{label:"Pelajari lebih lanjut"},recent:"Terkini",status:{opening:"Membuka %{wallet}...",not_installed:"%{wallet} tidak terpasang",not_available:"%{wallet} tidak tersedia",confirm:"Konfirmasikan koneksi di ekstensi"},secondary_action:{get:{description:"Tidak memiliki %{wallet}?",label:"DAPATKAN"},install:{label:"PASANG"},retry:{label:"COBA LAGI"}},walletconnect:{description:{full:"Perlu modal resmi WalletConnect?",compact:"Perlu modal WalletConnect?"},open:{label:"BUKA"}}},sau={title:"Pindai dengan %{wallet}",fallback_title:"Pindai dengan ponsel Anda"},lau={recommended:"Direkomendasikan",other:"Lainnya",popular:"Populer",more:"Lebih Banyak",others:"Lainnya"},cau={title:"Dapatkan Dompet",action:{label:"DAPATKAN"},mobile:{description:"Dompet Mobile"},extension:{description:"Ekstensi Browser"},mobile_and_extension:{description:"Dompet Mobile dan Ekstensi"},looking_for:{title:"Bukan yang Anda cari?",mobile:{description:"Pilih dompet di layar utama untuk memulai dengan penyedia dompet yang berbeda."},desktop:{compact_description:"Pilih dompet di layar utama untuk memulai dengan penyedia dompet yang berbeda.",wide_description:"Pilih dompet di sebelah kiri untuk memulai dengan penyedia dompet yang berbeda."}}},Eau={title:"Mulai dengan %{wallet}",short_title:"Dapatkan %{wallet}",mobile:{title:"%{wallet} untuk Mobile",description:"Gunakan dompet mobile untuk menjelajahi dunia Ethereum.",download:{label:"Dapatkan aplikasinya"}},extension:{title:"%{wallet} untuk %{browser}",description:"Akses dompet Anda langsung dari browser web favorit Anda.",download:{label:"Tambahkan ke %{browser}"}}},dau={title:"Instal %{wallet}",description:"Pindai dengan ponsel Anda untuk mengunduh di iOS atau Android",continue:{label:"Lanjutkan"}},fau={mobile:{connect:{label:"Hubungkan"},learn_more:{label:"Pelajari lebih lanjut"}},extension:{refresh:{label:"Segarkan"},learn_more:{label:"Pelajari lebih lanjut"}}},pau={title:"Alihkan Jaringan",wrong_network:"Jaringan yang salah terdeteksi, alihkan atau diskonek untuk melanjutkan.",confirm:"Konfirmasi di Dompet",switching_not_supported:"Dompet Anda tidak mendukung pengalihan jaringan dari %{appName}. Coba alihkan jaringan dari dalam dompet Anda.",switching_not_supported_fallback:"Wallet Anda tidak mendukung penggantian jaringan dari aplikasi ini. Cobalah ganti jaringan dari dalam wallet Anda.",disconnect:"Putuskan koneksi",connected:"Terkoneksi"},hau={disconnect:{label:"Putuskan koneksi"},copy_address:{label:"Salin Alamat",copied:"Tersalin!"},explorer:{label:"Lihat lebih banyak di penjelajah"},transactions:{description:"%{appName} transaksi akan muncul di sini...",description_fallback:"Transaksi Anda akan muncul di sini...",recent:{title:"Transaksi Terbaru"},clear:{label:"Hapus Semua"}}},Cau={argent:{qr_code:{step1:{description:"Letakkan Argent di layar utama Anda untuk akses lebih cepat ke dompet Anda.",title:"Buka aplikasi Argent"},step2:{description:"Buat dompet dan nama pengguna, atau impor dompet yang ada.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",title:"Tekan tombol Scan QR"}}},bifrost:{qr_code:{step1:{description:"Kami merekomendasikan untuk menempatkan Bifrost Wallet di layar utama anda untuk akses yang lebih cepat.",title:"Buka aplikasi Bifrost Wallet"},step2:{description:"Buat atau impor sebuah dompet menggunakan frasa pemulihan Anda.",title:"Buat atau Impor sebuah Wallet"},step3:{description:"Setelah Anda memindai, sebuah pesan akan muncul untuk menghubungkan dompet Anda.",title:"Tekan tombol scan"}}},bitget:{qr_code:{step1:{description:"Kami menyarankan untuk meletakkan Bitget Wallet di layar depan Anda untuk akses yang lebih cepat.",title:"Buka aplikasi Bitget Wallet"},step2:{description:"Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda pindai, akan muncul petunjuk untuk menghubungkan wallet Anda.",title:"Tekan tombol pindai"}},extension:{step1:{description:"Kami menyarankan untuk memasang Bitget Wallet ke taskbar Anda untuk akses yang lebih cepat ke wallet Anda.",title:"Instal ekstensi Dompet Bitget"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frasa rahasia Anda kepada siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},bitski:{extension:{step1:{description:"Kami merekomendasikan untuk memasang Bitski ke taskbar Anda untuk akses dompet Anda yang lebih cepat.",title:"Pasang ekstensi Bitski"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},coin98:{qr_code:{step1:{description:"Kami merekomendasikan untuk menaruh Coin98 Wallet di layar utama Anda untuk akses wallet Anda lebih cepat.",title:"Buka aplikasi Coin98 Wallet"},step2:{description:"Anda dapat dengan mudah mencadangkan wallet Anda menggunakan fitur cadangan kami di telepon Anda.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda melakukan pemindaian, akan muncul prompt koneksi untuk Anda menghubungkan wallet Anda.",title:"Ketuk tombol WalletConnect"}},extension:{step1:{description:"Klik di pojok kanan atas browser Anda dan sematkan Coin98 Wallet untuk akses mudah.",title:"Pasang ekstensi Coin98 Wallet"},step2:{description:"Buat dompet baru atau impor yang sudah ada.",title:"Buat atau Impor sebuah dompet"},step3:{description:"Setelah Anda menyiapkan Coin98 Wallet, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},coinbase:{qr_code:{step1:{description:"Kami merekomendasikan memasang Coinbase Wallet di layar utama Anda untuk akses yang lebih cepat.",title:"Buka aplikasi Coinbase Wallet"},step2:{description:"Anda dapat dengan mudah mencadangkan dompet Anda menggunakan fitur cadangan awan.",title:"Buat atau Impor sebuah Dompet"},step3:{description:"Setelah Anda memindai, akan muncul sebuah petunjuk koneksi untuk Anda menyambungkan dompet Anda.",title:"Ketuk tombol pindai"}},extension:{step1:{description:"Kami merekomendasikan untuk menempel Coinbase Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda.",title:"Instal ekstensi Coinbase Wallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun.",title:"Buat atau Import Wallet"},step3:{description:"Setelah Anda menyiapkan wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},core:{qr_code:{step1:{description:"Kami merekomendasikan untuk meletakkan Core di layar utama Anda untuk akses lebih cepat ke wallet Anda.",title:"Buka aplikasi Core"},step2:{description:"Anda dapat dengan mudah mencadangkan wallet Anda dengan menggunakan fitur cadangan kami di telepon Anda.",title:"Buat atau Import Wallet"},step3:{description:"Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menyambungkan wallet Anda.",title:"Ketuk tombol WalletConnect"}},extension:{step1:{description:"Kami merekomendasikan untuk menempelkan Core pada taskbar Anda untuk akses ke dompet Anda lebih cepat.",title:"Pasang ekstensi Core"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},fox:{qr_code:{step1:{description:"Kami merekomendasikan untuk menaruh FoxWallet pada layar utama Anda untuk akses lebih cepat.",title:"Buka aplikasi FoxWallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda memindai, prompt koneksi akan muncul untuk Anda hubungkan dompet Anda.",title:"Ketuk tombol pindai"}}},frontier:{qr_code:{step1:{description:"Kami merekomendasikan untuk meletakkan Frontier Wallet di layar awal Anda untuk akses yang lebih cepat.",title:"Buka aplikasi Frontier Wallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda memindai, prompt koneksi akan muncul untuk Anda menghubungkan dompet Anda.",title:"Ketuk tombol pindai"}},extension:{step1:{description:"Kami menyarankan menempelkan Frontier Wallet ke taskbar Anda untuk akses yang lebih cepat ke dompet Anda.",title:"Instal ekstensi Frontier Wallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},im_token:{qr_code:{step1:{title:"Buka aplikasi imToken",description:"Letakkan aplikasi imToken di layar utama Anda untuk akses yang lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Dompet",description:"Buat dompet baru atau impor yang sudah ada."},step3:{title:"Ketuk Ikon Scanner di pojok kanan atas",description:"Pilih Koneksi Baru, lalu pindai kode QR dan konfirmasi petunjuk untuk terhubung."}}},metamask:{qr_code:{step1:{title:"Buka aplikasi MetaMask",description:"Kami merekomendasikan untuk meletakkan MetaMask di layar beranda Anda untuk akses yang lebih cepat."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun."},step3:{title:"Ketuk tombol pindai",description:"Setelah Anda memindai, petunjuk koneksi akan muncul untuk Anda menyambungkan dompet Anda."}},extension:{step1:{title:"Pasang ekstensi MetaMask",description:"Kami menyarankan untuk memasang MetaMask pada taskbar Anda untuk akses wallet lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},okx:{qr_code:{step1:{title:"Buka aplikasi OKX Wallet",description:"Kami menyarankan untuk menaruh OKX Wallet di layar utama Anda untuk akses lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frasa rahasia Anda kepada siapa pun."},step3:{title:"Ketuk tombol scan",description:"Setelah Anda memindai, prompt koneksi akan muncul untuk Anda hubungkan dompet Anda."}},extension:{step1:{title:"Instal ekstensi OKX Wallet",description:"Kami menyarankan untuk menempelkan OKX Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frasa rahasia Anda kepada siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},omni:{qr_code:{step1:{title:"Buka aplikasi Omni",description:"Tambahkan Omni ke layar utama Anda untuk akses yang lebih cepat ke wallet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Buat wallet baru atau impor yang sudah ada."},step3:{title:"Ketuk ikon QR dan scan",description:"Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi petunjuk untuk terhubung."}}},token_pocket:{qr_code:{step1:{title:"Buka aplikasi TokenPocket",description:"Kami sarankan meletakkan TokenPocket di layar utama Anda untuk akses yang lebih cepat."},step2:{title:"Buat atau impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."},step3:{title:"Ketuk tombol pindai",description:"Setelah Anda memindai, Indikasi sambungan akan muncul untuk Anda menghubungkan dompet Anda."}},extension:{step1:{title:"Instal ekstensi TokenPocket",description:"Kami merekomendasikan penambatan TokenPocket ke taskbar Anda untuk akses dompet Anda lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagi frasa rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},trust:{qr_code:{step1:{title:"Buka aplikasi Trust Wallet",description:"Pasang Trust Wallet di layar utama Anda untuk akses dompet Anda lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Buat dompet baru atau impor yang sudah ada."},step3:{title:"Ketuk WalletConnect di Pengaturan",description:"Pilih Koneksi Baru, kemudian pindai kode QR dan konfirmasi perintah untuk terhubung."}},extension:{step1:{title:"Instal ekstensi Trust Wallet",description:"Klik di pojok kanan atas browser Anda dan sematkan Trust Wallet untuk akses mudah."},step2:{title:"Buat atau Impor dompet",description:"Buat dompet baru atau impor yang sudah ada."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur Trust Wallet, klik di bawah untuk menyegarkan browser dan memuat ekstensi."}}},uniswap:{qr_code:{step1:{title:"Buka aplikasi Uniswap",description:"Tambahkan Uniswap Wallet ke layar utama Anda untuk akses ke wallet Anda lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Buat wallet baru atau impor yang sudah ada."},step3:{title:"Ketuk ikon QR dan pindai",description:"Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi prompt untuk terhubung."}}},zerion:{qr_code:{step1:{title:"Buka aplikasi Zerion",description:"Kami merekomendasikan untuk meletakkan Zerion di layar utama Anda untuk akses lebih cepat."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."},step3:{title:"Ketuk tombol scan",description:"Setelah Anda scan, muncul prompt koneksi untuk Anda menghubungkan dompet Anda."}},extension:{step1:{title:"Instal ekstensi Zerion",description:"Kami menyarankan untuk menempelkan Zerion ke taskbar Anda untuk akses lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur wallet Anda, klik di bawah untuk menyegarkan browser dan memuat ekstensi."}}},rainbow:{qr_code:{step1:{title:"Buka aplikasi Rainbow",description:"Kami menyarankan menempatkan Rainbow di layar home Anda untuk akses yang lebih cepat ke wallet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Anda dapat dengan mudah mencadangkan wallet Anda menggunakan fitur cadangan kami di telepon Anda."},step3:{title:"Tekan tombol scan",description:"Setelah Anda memindai, akan muncul pesan untuk menghubungkan dompet Anda."}}},enkrypt:{extension:{step1:{description:"Kami menyarankan untuk memasang Enkrypt Wallet ke taskbar Anda untuk akses dompet yang lebih cepat.",title:"Instal ekstensi Enkrypt Wallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frase rahasia Anda dengan siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet, klik di bawah ini untuk memuat ulang peramban dan meload ekstensi.",title:"Segarkan browser Anda"}}},frame:{extension:{step1:{description:"Kami menyarankan untuk memasang Frame ke taskbar Anda untuk akses dompet yang lebih cepat.",title:"Instal Frame & ekstensi pendamping"},step2:{description:"Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda menyetel wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},one_key:{extension:{step1:{title:"Instal ekstensi OneKey Wallet",description:"Kami menyarankan untuk menempelkan OneKey Wallet ke taskbar Anda untuk akses wallet yang lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},phantom:{extension:{step1:{title:"Instal ekstensi Phantom",description:"Kami menyarankan untuk mem-pin Phantom ke taskbar Anda untuk akses dompet yang lebih mudah."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},rabby:{extension:{step1:{title:"Instal ekstensi Rabby",description:"Kami merekomendasikan menempelkan Rabby ke taskbar Anda untuk akses lebih cepat ke wallet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan wallet Anda dengan metode yang aman. Jangan pernah berbagi frase rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},safeheron:{extension:{step1:{title:"Instal ekstensi Core",description:"Kami merekomendasikan menempelkan Safeheron ke taskbar Anda untuk akses lebih cepat ke wallet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan dompet Anda dengan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur dompet Anda, klik di bawah untuk menyegarkan browser dan memuat ekstensi."}}},taho:{extension:{step1:{title:"Instal ekstensi Taho",description:"Kami merekomendasikan pengepinan Taho ke taskbar Anda untuk akses yang lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda dengan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},talisman:{extension:{step1:{title:"Instal ekstensi Talisman",description:"Kami merekomendasikan menempelkan Talisman ke taskbar Anda untuk akses dompet Anda lebih cepat."},step2:{title:"Buat atau Impor Dompet Ethereum",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frase pemulihan Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},xdefi:{extension:{step1:{title:"Instal ekstensi Dompet XDEFI",description:"Kami merekomendasikan menempelkan XDEFI Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda dengan metode yang aman. Jangan pernah berbagi frase rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}}},Kg={connect_wallet:iau,intro:aau,connect:oau,connect_scan:sau,connector_group:lau,get:cau,get_options:Eau,get_mobile:dau,get_instructions:fau,chains:pau,profile:hau,wallet_connectors:Cau},mau={label:"ウォレットを接続する"},gau={title:"ウォレットとは何ですか?",description:"ウォレットは、デジタルアセットを送信、受信、保存、表示するために使用されます。また、各ウェブサイトで新たなアカウントやパスワードを作成する必要なく、ログインする新しい方法でもあります。",digital_asset:{title:"あなたのデジタル資産のための家",description:"ウォレットは、EthereumやNFTのようなデジタル資産を送信、受信、保存、表示するために使用されます。"},login:{title:"新しいログイン方法",description:"すべてのウェブサイトで新しいアカウントとパスワードを作成する代わりに、ウォレットを接続します。"},get:{label:"ウォレットを取得する"},learn_more:{label:"詳しくはこちら"}},Aau={label:"接続",title:"ウォレットを接続する",new_to_ethereum:{description:"Ethereumのウォレットが初めてですか?",learn_more:{label:"詳しくはこちら"}},learn_more:{label:"詳しくはこちら"},recent:"最近",status:{opening:"%{wallet}を開いています...",not_installed:"%{wallet} はインストールされていません",not_available:"%{wallet} は利用できません",confirm:"エクステンションで接続を確認してください"},secondary_action:{get:{description:"%{wallet}がありませんか?",label:"取得"},install:{label:"インストール"},retry:{label:"再試行"}},walletconnect:{description:{full:"公式のWalletConnectモーダルが必要ですか?",compact:"WalletConnectモーダルが必要ですか?"},open:{label:"開く"}}},yau={title:"%{wallet}でスキャン",fallback_title:"携帯電話でスキャンしてください"},Bau={recommended:"推奨",other:"その他",popular:"人気",more:"もっと",others:"その他"},vau={title:"ウォレットを取得",action:{label:"取得"},mobile:{description:"モバイルウォレット"},extension:{description:"ブラウザ拡張"},mobile_and_extension:{description:"モバイルウォレットと拡張機能"},looking_for:{title:"お探しのものではありませんか?",mobile:{description:"メイン画面でウォレットを選択し、異なるウォレットプロバイダーで始めてください。"},desktop:{compact_description:"メイン画面でウォレットを選択し、異なるウォレットプロバイダーで始めてください。",wide_description:"左側のウォレットを選択して、別のウォレットプロバイダーで始めてください。"}}},Fau={title:"%{wallet}で始める",short_title:"%{wallet}を取得する",mobile:{title:"モバイル用 %{wallet}",description:"モバイルウォレットを使用して、イーサリアムの世界を探索します。",download:{label:"アプリを取得"}},extension:{title:"%{wallet} for %{browser}",description:"お好きなウェブブラウザからウォレットに直接アクセスします。",download:{label:"%{browser}に追加"}}},Dau={title:"%{wallet}をインストール",description:"iOSまたはAndroidでダウンロードするために電話でスキャン",continue:{label:"続行"}},bau={mobile:{connect:{label:"接続"},learn_more:{label:"詳しくはこちら"}},extension:{refresh:{label:"更新"},learn_more:{label:"詳しくはこちら"}}},wau={title:"ネットワークを切り替える",wrong_network:"誤ったネットワークが検出されました、続行するには切り替えるか切断してください。",confirm:"ウォレットで確認する",switching_not_supported:"あなたのウォレットは %{appName}からネットワークを切り替えることをサポートしていません。ウォレット内でネットワークを切り替えてみてください。",switching_not_supported_fallback:"あなたのウォレットは、このアプリからネットワークを切り替えることをサポートしていません。代わりにウォレット内からネットワークを切り替えてみてください。",disconnect:"切断する",connected:"接続しました"},xau={disconnect:{label:"切断する"},copy_address:{label:"アドレスをコピーする",copied:"コピーしました!"},explorer:{label:"エクスプローラーで詳しく見る"},transactions:{description:"%{appName} トランザクションがここに表示されます...",description_fallback:"あなたのトランザクションはここに表示されます...",recent:{title:"最近のトランザクション"},clear:{label:"すべてクリア"}}},kau={argent:{qr_code:{step1:{description:"より速くウォレットにアクセスするために、Argentをホーム画面に置いてください。",title:"Argentアプリを開く"},step2:{description:"ウォレットとユーザーネームを作成するか、既存のウォレットをインポートします。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。",title:"「QRをスキャン」ボタンをタップします"}}},bifrost:{qr_code:{step1:{description:"より速くアクセスできるように、Bifrost Walletをホーム画面に置くことをお勧めします。",title:"Bifrost Walletアプリを開きます"},step2:{description:"リカバリーフレーズを使用してウォレットを作成またはインポートします。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。",title:"「スキャン」ボタンをタップします"}}},bitget:{qr_code:{step1:{description:"より迅速なアクセスのために、ホーム画面にBitget Walletを配置することをお勧めします。",title:"Bitget Walletアプリを開く"},step2:{description:"ウォレットは安全な方法でバックアップしてください。秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。",title:"スキャンボタンをタップする"}},extension:{step1:{description:"ウォレットへのより迅速なアクセスのためにBitget Walletをタスクバーにピン留めすることをお勧めします。",title:"Bitget Wallet拡張機能をインストールします"},step2:{description:"ウォレットを安全な方法でバックアップしてください。秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成またはインポートします"},step3:{description:"ウォレットを設定したら、以下をクリックしてブラウザを更新し、拡張機能を読み込みます。",title:"ブラウザを更新する"}}},bitski:{extension:{step1:{description:"ウォレットへの素早いアクセスのために、Bitskiをタスクバーにピン留めすることをお勧めします。",title:"Bitskiエクステンションをインストールする"},step2:{description:"ウォレットを安全な方法でバックアップしてください。シークレットフレーズは誰とも共有しないでください。",title:"ウォレットを作成するか、インポートする"},step3:{description:"ウォレットのセットアップが完了したら、以下をクリックしてブラウザを更新し、エクステンションを読み込みます。",title:"ブラウザを更新する"}}},coin98:{qr_code:{step1:{description:"Coin98ウォレットをホーム画面に置くことで、ウォレットへのアクセスが高速化されることをお勧めします。",title:"Coin98ウォレットアプリを開きます"},step2:{description:"電話のバックアップ機能を使用して、ウォレットを簡単にバックアップすることができます。",title:"ウォレットを作成またはインポートする"},step3:{description:"スキャン後、ウォレットへの接続を促すプロンプトが表示されます。",title:"WalletConnectボタンをタップします"}},extension:{step1:{description:"ブラウザの右上をクリックして、Coin98ウォレットをピン留めして簡単にアクセスできるようにします。",title:"Coin98ウォレットの拡張機能をインストールします"},step2:{description:"新しいウォレットを作成するか、既存のものをインポートします。",title:"ウォレットを作成またはインポートする"},step3:{description:"Coin98ウォレットをセットアップしたら、下のリンクをクリックしてブラウザを更新し、拡張機能をロードします。",title:"ブラウザを更新する"}}},coinbase:{qr_code:{step1:{description:"より素早くアクセスできるように、Coinbaseウォレットをホームスクリーンに置くことをお勧めします。",title:"Coinbase Walletアプリを開く"},step2:{description:"クラウドバックアップ機能を使用して、簡単にウォレットをバックアップできます。",title:"ウォレットを作成またはインポートする"},step3:{description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。",title:"スキャンボタンをタップする"}},extension:{step1:{description:"タスクバーにCoinbase Walletをピン留めして、ウォレットにより早くアクセスできるように推奨します。",title:"Coinbase Wallet拡張機能をインストールする"},step2:{description:"必ず安全な方法を使用してウォレットをバックアップしてください。秘密のフレーズを誰にも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"ウォレットの設定が完了したら、下のボタンをクリックしてブラウザを更新し、拡張機能をロードします。",title:"ブラウザを更新する"}}},core:{qr_code:{step1:{description:"ウォレットへの迅速なアクセスのため、コアをホーム画面に設定することを推奨します。",title:"Coreアプリを開く"},step2:{description:"電話のバックアップ機能を使って、簡単にウォレットをバックアップできます。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後、ウォレットを接続するようにプロンプトが表示されます。",title:"WalletConnectボタンをタップする"}},extension:{step1:{description:"ウォレットへのより迅速なアクセスのために、タスクバーにCoreをピン留めすることをお勧めします。",title:"Core拡張機能をインストールする"},step2:{description:"セキュアな方法を使用してウォレットをバックアップしてください。秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成またはインポートする"},step3:{description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。",title:"ブラウザを更新する"}}},fox:{qr_code:{step1:{description:"より迅速なアクセスのために、ホーム画面にFoxWalletを置くことをお勧めします。",title:"FoxWalletアプリを開く"},step2:{description:"セキュアな方法を使用してウォレットをバックアップすることを確認してください。秘密のフレーズは誰とも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャンした後、ウォレットを接続するための接続プロンプトが表示されます。",title:"スキャンボタンをタップします"}}},frontier:{qr_code:{step1:{description:"Frontierウォレットをホーム画面に置くことで、より早くアクセスできることをお勧めします。",title:"Frontierウォレットアプリを開きます"},step2:{description:"セキュアな方法を使用してウォレットをバックアップすることを確認してください。秘密のフレーズは誰とも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後に、ウォレットの接続を促すメッセージが表示されます。",title:"スキャンボタンをタップします"}},extension:{step1:{description:"より迅速なウォレットへのアクセスを可能にするために、フロンティアウォレットをタスクバーにピン留めすることを推奨します。",title:"フロンティアウォレットの拡張機能をインストールします"},step2:{description:"安全な方法を使用してウォレットをバックアップしてください。秘密のフレーズは決して誰とも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"ウォレットの設定が完了したら、ブラウザを更新して拡張機能を読み込みます。",title:"ブラウザを更新する"}}},im_token:{qr_code:{step1:{title:"imTokenアプリを開く",description:"ウォレットへのアクセスを速くするために、imTokenアプリをホーム画面に置いてください。"},step2:{title:"ウォレットを作成またはインポート",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"右上隅のスキャナーアイコンをタップします",description:"新しい接続を選択し、QRコードをスキャンしてプロンプトを確認し接続します。"}}},metamask:{qr_code:{step1:{title:"MetaMaskアプリを開きます",description:"迅速なアクセスのために、MetaMaskをホーム画面に置くことをお勧めします。"},step2:{title:"ウォレットを作成またはインポートします",description:"必ず安全な方法を使用してウォレットをバックアップしてください。秘密の回復フレーズを誰にも共有しないでください。"},step3:{title:"スキャンボタンをタップします",description:"スキャンすると、ウォレットを接続するための接続プロンプトが表示されます。"}},extension:{step1:{title:"MetaMaskの拡張機能をインストールします",description:"ウォレットへのより速いアクセスのために、MetaMaskをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"安全な方法を使用してウォレットをバックアップし、秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新",description:"ウォレットを設定した後は、下のリンクをクリックしてブラウザを更新し、エクステンションを読み込んでください。"}}},okx:{qr_code:{step1:{title:"OKX Walletアプリを開く",description:"OKX Walletをホーム画面に配置して、より早くアクセスできるようにすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"セキュアな方法を使ってウォレットをバックアップしてください。秘密フレーズは誰とも共有しないでください。"},step3:{title:"スキャンボタンをタップする",description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。"}},extension:{step1:{title:"OKXウォレット拡張機能をインストールする",description:"ウォレットへの迅速なアクセスのため、OKXウォレットをタスクバーにピン止めすることをお勧めします。"},step2:{title:"ウォレットを作成するか、インポートする",description:"セキュアな方法を使ってウォレットをバックアップしてください。秘密フレーズは誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットを設定したら、下をクリックしてブラウザをリフレッシュし、拡張機能を読み込みます。"}}},omni:{qr_code:{step1:{title:"Omniアプリを開く",description:"Omniをホーム画面に追加して、ウォレットへのアクセスを早めます。"},step2:{title:"ウォレットを作成またはインポート",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"QRアイコンをタップしてスキャン",description:"ホーム画面のQRアイコンをタップし、コードをスキャンし、プロンプトを確認して接続します。"}}},token_pocket:{qr_code:{step1:{title:"TokenPocketアプリを開く",description:"より速いアクセスのために、TokenPocketをホーム画面に置くことをお勧めします。"},step2:{title:"ウォレットを作成またはインポートする",description:"必ず安全な方法を使用してウォレットをバックアップしてください。秘密の回復フレーズを誰にも共有しないでください。"},step3:{title:"スキャンボタンをタップする",description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。"}},extension:{step1:{title:"TokenPocketエクステンションをインストールする",description:"ウォレットへのより早いアクセスのために、TokenPocketをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"ウォレットを安全な方法でバックアップすることを確認してください。シークレットフレーズを決して他の人と共有しないでください。"},step3:{title:"ブラウザを更新",description:"ウォレットのセットアップが完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},trust:{qr_code:{step1:{title:"Trust Walletアプリを開く",description:"ウォレットへの高速アクセスのために、Trust Walletをホーム画面に置きます。"},step2:{title:"ウォレットを作成またはインポート",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"設定でWalletConnectをタップします",description:"新しい接続を選択し、QRコードをスキャンして、プロンプトで接続を確認します。"}},extension:{step1:{title:"Trust Wallet拡張機能をインストールします",description:"ブラウザの右上をクリックし、Trust Walletをピン留めして簡単にアクセスできるようにします。"},step2:{title:"ウォレットを作成するかインポートします",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"ブラウザを更新する",description:"Trust Walletの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能を読み込みます。"}}},uniswap:{qr_code:{step1:{title:"Uniswapアプリを開く",description:"Uniswapウォレットをホーム画面に追加して、ウォレットへのアクセスを高速化します。"},step2:{title:"ウォレットを作成またはインポートする",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"QRアイコンをタップしてスキャンする",description:"ホーム画面のQRアイコンをタップし、コードをスキャンしてプロンプトを確認して接続します。"}}},zerion:{qr_code:{step1:{title:"Zerionアプリを開く",description:"より速くアクセスするために、Zerionをホーム画面に置くことをお勧めします。"},step2:{title:"ウォレットを作成するか、インポートする",description:"必ず安全な方法を使用してウォレットをバックアップしてください。秘密の回復フレーズを誰にも共有しないでください。"},step3:{title:"スキャンボタンを押す",description:"スキャンした後、ウォレットを接続するための接続プロンプトが表示されます。"}},extension:{step1:{title:"Zerion拡張機能をインストールする",description:"ウォレットへの素早いアクセスのため、Zerionをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"ウォレットをセキュアな方法でバックアップすることを確認してください。秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットをセットアップしたら、下のボタンをクリックしてブラウザを更新し、拡張機能をロードします。"}}},rainbow:{qr_code:{step1:{title:"Rainbowアプリを開く",description:"ウォレットへの早いアクセスのために、Rainbowをホーム画面に置くことをおすすめします。"},step2:{title:"ウォレットを作成またはインポート",description:"電話のバックアップ機能を使用して、簡単にウォレットをバックアップすることができます。"},step3:{title:"スキャンボタンをタップする",description:"スキャンした後、ウォレットを接続するための接続プロンプトが表示されます。"}}},enkrypt:{extension:{step1:{description:"ウォレットへのアクセスをより早くするため、タスクバーにEnkrypt Walletをピン留めすることを推奨します。",title:"Enkrypt Wallet拡張機能をインストールしてください"},step2:{description:"安全な方法でウォレットのバックアップを必ず取り、秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成するか、インポートする"},step3:{description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能を読み込みます。",title:"ブラウザを更新する"}}},frame:{extension:{step1:{description:"ウォレットへのアクセスをより早くするため、タスクバーにFrameをピン留めすることを推奨します。",title:"Frameとその付属の拡張機能をインストール"},step2:{description:"ウォレットを安全な方法でバックアップしてください。秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成、またはインポート"},step3:{description:"ウォレットの設定が完了したら、下のリンクをクリックしてブラウザを更新し、拡張機能をロードします。",title:"ブラウザを更新"}}},one_key:{extension:{step1:{title:"OneKey Wallet拡張機能をインストール",description:"ウォレットへのアクセスを素早く行うため、OneKey Walletをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成、またはインポート",description:"安全な方法を使用してウォレットをバックアップしてください。秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットを設定したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},phantom:{extension:{step1:{title:"Phantom拡張機能をインストールする",description:"ウォレットへの容易なアクセスのため、Phantomをタスクバーにピン留めすることを推奨します。"},step2:{title:"ウォレットを作成またはインポートする",description:"安全な方法を使用してウォレットをバックアップしてください。秘密の回復フレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、エクステンションを読み込みます。"}}},rabby:{extension:{step1:{title:"Rabbyエクステンションをインストールする",description:"ウォレットへの素早いアクセスのため、タスクバーにRabbyをピン止めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"セキュアな方法を使用してウォレットをバックアップしてください。秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新",description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},safeheron:{extension:{step1:{title:"コア拡張機能をインストール",description:"ウォレットへの素早いアクセスのため、タスクバーにSafeheronをピン止めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"確実に安全な方法でウォレットをバックアップしてください。秘密のフレーズは決して誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},taho:{extension:{step1:{title:"Taho拡張機能をインストールする",description:"ウォレットへのより迅速なアクセスのため、Tahoをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成するか、インポートする",description:"確実に安全な方法でウォレットをバックアップしてください。秘密のフレーズは決して誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},talisman:{extension:{step1:{title:"Talisman拡張機能をインストールする",description:"ウォレットへのより早いアクセスのために、Talismanをタスクバーにピン留めすることをお勧めします。"},step2:{title:"Ethereumウォレットを作成するか、インポートする",description:"ウォレットを安全な方法でバックアップしておくことを確認してください。リカバリーフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},xdefi:{extension:{step1:{title:"XDEFI Wallet拡張機能をインストールする",description:"XDEFI Walletをタスクバーにピン留めすることで、ウォレットへのアクセスが速くなることをお勧めします。"},step2:{title:"ウォレットの作成またはインポート",description:"ウォレットを安全な方法でバックアップしてください。秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードしてください。"}}}},Qg={connect_wallet:mau,intro:gau,connect:Aau,connect_scan:yau,connector_group:Bau,get:vau,get_options:Fau,get_mobile:Dau,get_instructions:bau,chains:wau,profile:xau,wallet_connectors:kau},_au={label:"지갑 연결"},Sau={title:"지갑이란 무엇인가요?",description:"지갑은 디지털 자산을 보내고, 받고, 저장하고, 표시하는 데 사용됩니다. 또한, 모든 웹 사이트에서 새 계정과 비밀번호를 생성할 필요 없이 로그인하는 새로운 방법입니다.",digital_asset:{title:"당신의 디지털 자산을 위한 집",description:"지갑은 이더리움 및 NFT와 같은 디지털 자산을 보내고, 받고, 저장하고, 표시하는데 사용됩니다."},login:{title:"새로운 로그인 방식",description:"모든 웹사이트에서 새 계정과 비밀번호를 생성하는 대신, 당신의 지갑을 연결하기만 하면 됩니다."},get:{label:"지갑 가져오기"},learn_more:{label:"더 알아보기"}},Pau={label:"연결",title:"지갑 연결",new_to_ethereum:{description:"이더리움 지갑에 처음 접하시나요?",learn_more:{label:"더 알아보기"}},learn_more:{label:"더 알아보기"},recent:"최근",status:{opening:"%{wallet}열기 ...",not_installed:"%{wallet} 가 설치되어 있지 않습니다",not_available:"%{wallet} 를 사용할 수 없습니다",confirm:"확장기능에서 연결을 확인하세요"},secondary_action:{get:{description:"%{wallet}가 없나요?",label:"GET"},install:{label:"설치"},retry:{label:"다시 시도"}},walletconnect:{description:{full:"공식 WalletConnect 모달이 필요한가요?",compact:"WalletConnect 모달이 필요한가요?"},open:{label:"열기"}}},Tau={title:"%{wallet}로 스캔하기",fallback_title:"휴대폰으로 스캔하기"},Iau={recommended:"추천",other:"기타",popular:"인기",more:"더 보기",others:"다른 사항들"},Oau={title:"월렛 받기",action:{label:"받기"},mobile:{description:"모바일 월렛"},extension:{description:"브라우저 확장 프로그램"},mobile_and_extension:{description:"모바일 지갑 및 확장 프로그램"},looking_for:{title:"찾고 계신 것이 아닌가요?",mobile:{description:"메인 화면에서 다른 지갑 제공자를 사용하기 위해 지갑을 선택하세요."},desktop:{compact_description:"메인 화면에서 다른 지갑 제공자를 사용하기 위해 지갑을 선택하세요.",wide_description:"왼쪽에서 지갑을 선택하여 다른 지갑 제공자를 사용하기 시작하세요."}}},Nau={title:"%{wallet}로 시작하십시오",short_title:"%{wallet}얻기",mobile:{title:"모바일용 %{wallet}",description:"모바일 지갑으로 이더리움 세계를 탐험하세요.",download:{label:"앱 받기"}},extension:{title:"%{browser}용 %{wallet}",description:"가장 좋아하는 웹 브라우저에서 바로 지갑에 접근하세요.",download:{label:"추가하기 %{browser}"}}},Rau={title:"설치하기 %{wallet}",description:"iOS 또는 Android에서 다운로드하기 위해 휴대폰으로 스캔하세요",continue:{label:"계속"}},jau={mobile:{connect:{label:"연결"},learn_more:{label:"더 알아보기"}},extension:{refresh:{label:"새로고침"},learn_more:{label:"더 알아보기"}}},zau={title:"네트워크 전환",wrong_network:"잘못된 네트워크를 탐지했습니다, 계속하려면 전환하거나 연결을 해제하세요.",confirm:"지갑에서 승인",switching_not_supported:"지갑에서 %{appName}네트워크를 전환하는 것은 지원되지 않습니다. 대신 지갑 내에서 네트워크를 전환해 보세요.",switching_not_supported_fallback:"당신의 지갑은 이 앱에서 네트워크를 바꾸는 것을 지원하지 않습니다. 대신 지갑 내에서 네트워크를 변경해 보십시오.",disconnect:"연결 해제",connected:"연결됨"},Mau={disconnect:{label:"연결 해제"},copy_address:{label:"주소 복사",copied:"복사됨!"},explorer:{label:"탐색기에서 더 보기"},transactions:{description:"%{appName} 거래가 여기에 나타납니다...",description_fallback:"여기에 트랜잭션이 표시됩니다...",recent:{title:"최근 거래 내역"},clear:{label:"모두 지우기"}}},Uau={argent:{qr_code:{step1:{description:"지갑에 더 빠르게 액세스하려면 Argent를 홈 화면에 놓으십시오.",title:"Argent 앱을 열기"},step2:{description:"지갑과 사용자 이름을 생성하거나 기존의 지갑을 가져옵니다.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔 후에 지갑을 연결하기 위한 연결 요청이 표시됩니다.",title:"QR 코드 스캔 버튼을 누르기"}}},bifrost:{qr_code:{step1:{description:"더 빠른 접근을 위해 홈 화면에 Bifrost Wallet을 놓는 것을 권장합니다.",title:"Bifrost 지갑 앱을 열어주세요"},step2:{description:"복구 문구를 사용하여 지갑을 생성하거나 가져옵니다.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔 후 연결 프롬프트가 나타나고 지갑을 연결할 수 있습니다.",title:"스캔 버튼을 누릅니다"}}},bitget:{qr_code:{step1:{description:"더 빠른 접근을 위해 Bitget 지갑을 홈 화면에 두는 것을 권장합니다.",title:"Bitget 지갑 앱을 열십시오"},step2:{description:"안전한 방법을 사용하여 지갑을 백업하십시오. 절대로 비밀 구문을 누구와도 공유하지 마십시오.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔 후, 지갑을 연결하라는 연결 요청 메시지가 나타납니다.",title:"스캔 버튼을 누르십시오"}},extension:{step1:{description:"지갑에 빠르게 액세스하기 위해 Bitget Wallet을 작업 표시줄에 고정하는 것을 권장합니다.",title:"Bitget Wallet 확장 프로그램을 설치하세요"},step2:{description:"지갑을 안전한 방법으로 백업하십시오. 절대로 비밀 문구를 누구와도 공유하지 마십시오.",title:"지갑 생성 또는 가져오기"},step3:{description:"지갑 설정을 마친 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하세요.",title:"브라우저를 새로 고침하세요"}}},bitski:{extension:{step1:{description:"지갑에 더 빠르게 액세스하기 위해 Bitski를 작업 표시줄에 고정하는 것을 권장합니다.",title:"Bitski 확장 기능을 설치합니다"},step2:{description:"안전한 방법을 사용하여 지갑을 백업하십시오. 비밀 문구를 누구와도 공유하지 마십시오.",title:"지갑 만들기 또는 가져오기"},step3:{description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드하세요.",title:"브라우저를 새로고침하세요"}}},coin98:{qr_code:{step1:{description:"지갑에 빠르게 액세스하기 위해 Coin98 Wallet을 홈 화면에 두는 것을 권장합니다.",title:"Coin98 Wallet 앱을 열기"},step2:{description:"휴대폰에서 백업 기능을 이용하여 지갑을 쉽게 백업할 수 있습니다.",title:"지갑 만들기 또는 가져오기"},step3:{description:"스캔한 후 연결 프롬프트가 나타나 지갑을 연결하도록 합니다.",title:"WalletConnect 버튼을 누르십시오"}},extension:{step1:{description:"브라우저 오른쪽 상단을 클릭하고 쉽게 액세스할 수 있도록 Coin98 Wallet을 고정하십시오.",title:"Coin98 Wallet 확장 프로그램을 설치하십시오"},step2:{description:"새로운 지갑을 만들거나 기존의 지갑을 가져옵니다.",title:"지갑을 만들거나 가져옵니다"},step3:{description:"Coin98 Wallet을 설정하면 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오.",title:"브라우저를 새로 고치십시오"}}},coinbase:{qr_code:{step1:{description:"더 빠른 액세스를 위해 Coinbase Wallet을 홈 화면에 두는 것을 권장합니다.",title:"Coinbase Wallet 앱을 엽니다"},step2:{description:"클라우드 백업 기능을 사용하여 지갑을 쉽게 백업할 수 있습니다.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔한 후에 지갑을 연결하라는 연결 프롬프트가 나타납니다.",title:"스캔 버튼을 탭하세요"}},extension:{step1:{description:"지갑에 더 빠르게 접근할 수 있도록 Coinbase Wallet을 작업 표시줄에 고정하는 것을 권장합니다.",title:"Coinbase Wallet 확장 프로그램을 설치하세요"},step2:{description:"안전한 방법을 사용하여 지갑을 백업하십시오. 비밀 문구는 절대로 누구와도 공유하지 마십시오.",title:"지갑 만들기 또는 가져오기"},step3:{description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오.",title:"브라우저 새로 고침"}}},core:{qr_code:{step1:{description:"지갑에 빠르게 액세스할 수 있도록 Core를 홈 화면에 두는 것을 추천드립니다.",title:"Core 앱 열기"},step2:{description:"휴대폰에서 우리의 백업 기능을 이용해 지갑을 쉽게 백업할 수 있습니다.",title:"지갑 만들기 또는 가져오기"},step3:{description:"스캔 한 후에는 지갑을 연결하라는 연결 요청이 표시됩니다.",title:"WalletConnect 버튼을 누르세요"}},extension:{step1:{description:"지갑에 더 빠르게 액세스하기 위해 작업 표시줄에 Core를 고정하는 것을 권장합니다.",title:"Core 확장 프로그램을 설치하십시오"},step2:{description:"안전한 방법을 사용하여 지갑을 백업해야 합니다. 절대로 비밀 문구를 다른 사람과 공유하지 마십시오.",title:"지갑 만들기 또는 가져오기"},step3:{description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오.",title:"브라우저를 새로 고치세요"}}},fox:{qr_code:{step1:{description:"FoxWallet을 홈 화면에 놓는 것을 추천합니다. 이렇게 하면 더 빠르게 접근할 수 있습니다.",title:"FoxWallet 앱을 열어주세요"},step2:{description:"지갑을 안전한 방법으로 백업하십시오. 절대로 비밀 문구를 다른 사람과 공유하지 마십시오.",title:"지갑을 생성하거나 가져오기"},step3:{description:"스캔 후, 지갑을 연결하라는 연결 프롬프트가 표시됩니다.",title:"스캔 버튼을 누르세요"}}},frontier:{qr_code:{step1:{description:"Frontier Wallet을 홈 화면에 놓는 것을 추천합니다. 이렇게 하면 더 빠르게 접근할 수 있습니다.",title:"Frontier Wallet 앱을 열어주세요"},step2:{description:"지갑을 안전한 방법으로 백업해야 합니다. 비밀 구문을 누구와도 공유하지 마세요.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔 후에 지갑을 연결하라는 연결 프롬프트가 표시됩니다.",title:"스캔 버튼을 누르세요"}},extension:{step1:{description:"지갑에 더 빠르게 액세스 할 수 있도록 Frontier Wallet을 작업 표시줄에 고정하는 것을 권장합니다.",title:"Frontier Wallet 확장 기능 설치"},step2:{description:"지갑을 안전한 방법으로 백업해야 합니다. 비밀 구문을 누구와도 공유하지 마세요.",title:"지갑 생성 또는 가져오기"},step3:{description:"지갑을 설정한 후에 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오.",title:"브라우저를 새로 고칩니다"}}},im_token:{qr_code:{step1:{title:"imToken 앱을 연다",description:"당신의 지갑에 더 빠르게 접근하기 위해 imToken 앱을 홈 화면에 둡니다."},step2:{title:"지갑을 만들거나 불러옵니다",description:"새 지갑을 생성하거나 기존의 것을 가져옵니다."},step3:{title:"오른쪽 상단의 스캐너 아이콘을 누릅니다",description:"새 연결을 선택하고 QR 코드를 스캔한 뒤, 연결하려는 프롬프트를 확인합니다."}}},metamask:{qr_code:{step1:{title:"MetaMask 앱을 엽니다",description:"빠른 액세스를 위해 MetaMask를 홈 화면에 두는 것을 권장합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"당신의 지갑을 안전한 방법으로 백업하는 것을 잊지 마세요. 절대로 비밀 구절을 공유하지 마세요."},step3:{title:"스캔 버튼을 누릅니다",description:"스캔한 후에 지갑을 연결하라는 연결 프롬프트가 나타납니다."}},extension:{step1:{title:"MetaMask 확장 프로그램을 설치하세요",description:"지갑에 빠르게 접근하기 위해 MetaMask를 작업표시줄에 고정하는 것을 추천합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하세요. 결코 비밀 문구를 다른 사람과 공유하지 마세요."},step3:{title:"브라우저를 새로 고치세요",description:"지갑 설정을 마친 후에는 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하세요."}}},okx:{qr_code:{step1:{title:"OKX Wallet 앱을 열기",description:"더 빠른 접근을 위해 OKX 지갑을 홈 화면에 두는 것을 추천합니다."},step2:{title:"지갑 만들기 또는 불러오기",description:"안전한 방법으로 지갑을 백업하십시오. 절대 비밀 문구를 다른 사람과 공유하지 마세요."},step3:{title:"스캔 버튼을 탭하세요",description:"스캔 후 연결 요청이 나타나며, 이를 통해 지갑을 연결할 수 있습니다."}},extension:{step1:{title:"OKX 지갑 확장 프로그램 설치하기",description:"지갑에 빠르게 접근할 수 있도록 OKX 지갑을 작업 표시줄에 고정하는 것을 추천합니다."},step2:{title:"지갑 만들기 또는 불러오기",description:"당신의 지갑을 안전한 방법으로 백업해야 합니다. 비밀 문구를 절대로 다른 사람과 공유하지 마세요."},step3:{title:"브라우저를 새로 고치세요",description:"지갑을 설정한 후, 브라우저를 새로 고치고 확장 기능을 로드하기 위해 아래를 클릭하세요."}}},omni:{qr_code:{step1:{title:"Omni 앱을 열기",description:"더 빠른 액세스를 위해 Omni를 홈 스크린에 추가하세요."},step2:{title:"지갑 만들기 또는 가져오기",description:"새로운 지갑을 만들거나 기존의 하나를 가져옵니다."},step3:{title:"QR 아이콘을 탭하고 스캔하기",description:"홈 화면의 QR 아이콘을 탭하고, 코드를 스캔하고 프롬프트를 확인하여 연결하세요."}}},token_pocket:{qr_code:{step1:{title:"TokenPocket 앱을 열어주세요",description:"빠른 접근을 위해 홈 화면에 TokenPocket을 추가하는 것을 권장합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하세요. 절대로 누구에게도 비밀 문구를 공유하지 마세요."},step3:{title:"스캔 버튼을 탭하세요",description:"스캔 후에 지갑을 연결하라는 프롬프트가 표시됩니다."}},extension:{step1:{title:"TokenPocket 확장 기능을 설치하십시오",description:"지갑에 빠르게 접근하기 위해 TokenPocket를 작업 표시줄에 고정하는 것을 추천합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하세요. 절대로 비밀 문구를 다른 사람과 공유하지 마세요."},step3:{title:"브라우저 새로 고침",description:"지갑을 설정하면 아래를 클릭하여 브라우저를 새로 고침하고 확장 기능을 로드합니다."}}},trust:{qr_code:{step1:{title:"Trust Wallet 앱을 열기",description:"지갑에 빠르게 접근하기 위해 Trust Wallet을 홈 스크린에 두십시오."},step2:{title:"지갑 생성 또는 가져오기",description:"새로운 지갑을 생성하거나 기존의 것을 가져오십시오."},step3:{title:"설정에서 WalletConnect를 탭하십시오",description:"새 연결을 선택한 다음 QR 코드를 스캔하고, 연결을 확인하는 프롬프트를 확인하십시오."}},extension:{step1:{title:"Trust Wallet 확장 기능을 설치하십시오",description:"브라우저의 오른쪽 상단을 클릭하고 Trust Wallet을 고정하여 쉽게 접근하십시오."},step2:{title:"지갑 생성 또는 가져오기",description:"새로운 지갑을 생성하거나 기존의 것을 가져오십시오."},step3:{title:"브라우저를 새로고침하세요",description:"Trust Wallet을 설정한 후 아래를 클릭하여 브라우저를 새로고침하고 확장 프로그램을 로드합니다."}}},uniswap:{qr_code:{step1:{title:"Uniswap 앱을 엽니다",description:"Uniswap Wallet을 홈 화면에 추가하여 지갑에 더 빠르게 액세스하세요."},step2:{title:"지갑을 만들거나 가져오기",description:"새 지갑을 생성하거나 기존의 것을 가져옵니다."},step3:{title:"QR 아이콘을 누르고 스캔하기",description:"홈화면의 QR 아이콘을 누르고 코드를 스캔하고 프롬프트를 확인하여 연결하세요."}}},zerion:{qr_code:{step1:{title:"Zerion 앱을 엽니다",description:"더 빠른 접근을 위해 Zerion을 홈 화면에 두는 것을 권장합니다."},step2:{title:"지갑 만들기 또는 가져오기",description:"안전한 방법으로 지갑을 백업하십시오. 절대로 비밀 구절을 누군가와 공유하지 마십시오."},step3:{title:"스캔 버튼을 탭하십시오",description:"스캔 후 연결 프롬프트가 나타나 지갑을 연결하십시오."}},extension:{step1:{title:"Zerion 확장 프로그램을 설치하십시오",description:"지갑에 더 빠르게 접근할 수 있도록 Zerion을 작업 표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하세요. 비밀 구문을 절대로 다른 사람과 공유하지 마세요."},step3:{title:"브라우저를 새로 고치세요",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하세요."}}},rainbow:{qr_code:{step1:{title:"Rainbow 앱 열기",description:"지갑에 더 빠르게 접근하기 위해 홈 화면에 Rainbow를 두는 것을 추천합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"휴대폰에 있는 백업 기능을 사용하여 지갑을 쉽게 백업할 수 있습니다."},step3:{title:"스캔 버튼을 누르세요",description:"스캔 후, 지갑을 연결하라는 연결 프롬프트가 나타납니다."}}},enkrypt:{extension:{step1:{description:"지갑에 더 빠르게 접근하기 위해 작업 표시줄에 Enkrypt Wallet를 고정하는 것을 추천합니다.",title:"Enkrypt Wallet 확장 프로그램을 설치하세요"},step2:{description:"지갑을 안전한 방법으로 백업하십시오. 절대로 비밀 문구를 다른 사람과 공유하지 마십시오.",title:"지갑 생성 또는 가져오기"},step3:{description:"지갑을 설정한 후에는 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드하세요.",title:"브라우저 새로 고침"}}},frame:{extension:{step1:{description:"지갑에 더 빠르게 접근할 수 있도록 Frame을 작업 표시줄에 고정하는 것을 추천합니다.",title:"Frame 및 동반 확장 프로그램 설치"},step2:{description:"안전한 방법을 사용하여 지갑을 백업하십시오. 절대로 비밀 구문을 다른 사람과 공유하지 마세요.",title:"지갑 생성 또는 가져오기"},step3:{description:"지갑을 설정한 후에는 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드하세요.",title:"브라우저 새로 고침"}}},one_key:{extension:{step1:{title:"OneKey Wallet 확장 프로그램을 설치하세요",description:"지갑에 빠르게 접근할 수 있도록 OneKey Wallet을 작업 표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 생성 또는 불러오기",description:"지갑을 안전한 방법으로 백업하십시오. 절대로 비밀 문구를 다른 사람과 공유하지 마십시오."},step3:{title:"브라우저를 새로 고침하십시오",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드하십시오."}}},phantom:{extension:{step1:{title:"Phantom 확장 프로그램을 설치하세요",description:"지갑에 더 쉽게 접근할 수 있도록 Phantom을 작업 표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 생성 또는 불러오기",description:"안전한 방법을 사용하여 지갑을 백업하십시오. 절대로 누구와도 비밀 복구 구문을 공유하지 마십시오."},step3:{title:"브라우저를 새로고침하십시오",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로고침하고 확장 기능을 로드하십시오."}}},rabby:{extension:{step1:{title:"Rabby 확장 프로그램을 설치하십시오",description:"지갑에 더 빠르게 액세스할 수 있도록 Rabby를 작업표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 만들기 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하십시오. 절대로 누구와도 비밀 구문을 공유하지 마십시오."},step3:{title:"브라우저를 새로 고침하십시오",description:"지갑 설정을 완료하면 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드합니다."}}},safeheron:{extension:{step1:{title:"코어 확장 프로그램 설치",description:"지갑에 빠르게 액세스하기 위해 Safeheron을 작업 표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 만들기 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하십시오. 비밀 문구를 절대 다른 사람과 공유하지 마십시오."},step3:{title:"브라우저 새로 고침",description:"지갑 설정을 완료하면 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드합니다."}}},taho:{extension:{step1:{title:"Taho 확장 프로그램 설치",description:"지갑에 더 빠르게 액세스하기 위해 Taho를 작업 표시줄에 고정하는 것을 추천합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하십시오. 결코 비밀 문구를 누군가와 공유하지 마십시오."},step3:{title:"브라우저를 새로 고치십시오",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오."}}},talisman:{extension:{step1:{title:"탈리스만 확장 프로그램 설치",description:"지갑에 더 빠르게 접근하기 위해 Talisman을 작업 표시줄에 고정하는 것을 추천합니다."},step2:{title:"이더리움 지갑 생성 또는 가져오기",description:"반드시 안전한 방법을 사용하여 지갑을 백업하십시오. 복구 문구를 누구와도 공유하지 마십시오."},step3:{title:"브라우저를 새로 고침하십시오",description:"지갑을 설정 한 후 아래를 클릭하여 브라우저를 새로 고침하고 확장 기능을 로드하십시오."}}},xdefi:{extension:{step1:{title:"XDEFI 지갑 확장 기능을 설치하십시오",description:"지갑에 빠르게 액세스하기 위해 작업 표시줄에 XDEFI Wallet을 고정하는 것을 권장합니다."},step2:{title:"지갑을 만들거나 가져오기",description:"반드시 안전한 방법을 사용하여 지갑을 백업하십시오. 비밀 문구를 누구와도 공유하지 마십시오."},step3:{title:"브라우저를 새로 고침하십시오",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로고침하고 확장 프로그램을 로드하십시오."}}}},Vg={connect_wallet:_au,intro:Sau,connect:Pau,connect_scan:Tau,connector_group:Iau,get:Oau,get_options:Nau,get_mobile:Rau,get_instructions:jau,chains:zau,profile:Mau,wallet_connectors:Uau},Lau={label:"Conectar Carteira"},$au={title:"O que é uma Carteira?",description:"Uma carteira é usada para enviar, receber, armazenar e exibir ativos digitais. Também é uma nova forma de se conectar, sem precisar criar novas contas e senhas em todo site.",digital_asset:{title:"Um lar para seus ativos digitais",description:"Carteiras são usadas para enviar, receber, armazenar e exibir ativos digitais como Ethereum e NFTs."},login:{title:"Uma nova maneira de fazer login",description:"Em vez de criar novas contas e senhas em todos os sites, basta conectar sua carteira."},get:{label:"Obter uma Carteira"},learn_more:{label:"Saiba mais"}},Wau={label:"Conectar",title:"Conectar uma Carteira",new_to_ethereum:{description:"Novo nas carteiras Ethereum?",learn_more:{label:"Saiba mais"}},learn_more:{label:"Saiba mais"},recent:"Recente",status:{opening:"Abrindo %{wallet}...",not_installed:"%{wallet} não está instalado",not_available:"%{wallet} não está disponível",confirm:"Confirme a conexão na extensão"},secondary_action:{get:{description:"Não tem %{wallet}?",label:"OBTER"},install:{label:"INSTALAR"},retry:{label:"TENTAR DE NOVO"}},walletconnect:{description:{full:"Precisa do modal oficial do WalletConnect?",compact:"Precisa do modal WalletConnect?"},open:{label:"ABRIR"}}},qau={title:"Digitalize com %{wallet}",fallback_title:"Digitalize com o seu telefone"},Hau={recommended:"Recomendado",other:"Outro",popular:"Popular",more:"Mais",others:"Outros"},Gau={title:"Obter uma Carteira",action:{label:"OBTER"},mobile:{description:"Carteira Móvel"},extension:{description:"Extensão do Navegador"},mobile_and_extension:{description:"Carteira Móvel e Extensão"},looking_for:{title:"Não é o que você está procurando?",mobile:{description:"Selecione uma carteira na tela principal para começar com um provedor de carteira diferente."},desktop:{compact_description:"Selecione uma carteira na tela principal para começar com um provedor de carteira diferente.",wide_description:"Selecione uma carteira à esquerda para começar com um provedor de carteira diferente."}}},Kau={title:"Comece com %{wallet}",short_title:"Obtenha %{wallet}",mobile:{title:"%{wallet} para Móvel",description:"Use a carteira móvel para explorar o mundo do Ethereum.",download:{label:"Baixe o aplicativo"}},extension:{title:"%{wallet} para %{browser}",description:"Acesse sua carteira diretamente do seu navegador web favorito.",download:{label:"Adicionar ao %{browser}"}}},Qau={title:"Instale %{wallet}",description:"Escaneie com seu celular para baixar no iOS ou Android",continue:{label:"Continuar"}},Vau={mobile:{connect:{label:"Conectar"},learn_more:{label:"Saiba mais"}},extension:{refresh:{label:"Atualizar"},learn_more:{label:"Saiba mais"}}},Jau={title:"Mudar Redes",wrong_network:"Rede errada detectada, mude ou desconecte para continuar.",confirm:"Confirme na Carteira",switching_not_supported:"Sua carteira não suporta a mudança de redes de %{appName}. Tente mudar de redes dentro da sua carteira.",switching_not_supported_fallback:"Sua carteira não suporta a troca de redes a partir deste aplicativo. Tente trocar de rede dentro de sua carteira.",disconnect:"Desconectar",connected:"Conectado"},Yau={disconnect:{label:"Desconectar"},copy_address:{label:"Copiar Endereço",copied:"Copiado!"},explorer:{label:"Veja mais no explorador"},transactions:{description:"%{appName} transações aparecerão aqui...",description_fallback:"Suas transações aparecerão aqui...",recent:{title:"Transações Recentes"},clear:{label:"Limpar Tudo"}}},Xau={argent:{qr_code:{step1:{description:"Coloque o Argent na tela inicial para um acesso mais rápido à sua carteira.",title:"Abra o aplicativo Argent"},step2:{description:"Crie uma carteira e nome de usuário, ou importe uma carteira existente.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois que você escanear, um prompt de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão Scan QR"}}},bifrost:{qr_code:{step1:{description:"Recomendamos colocar a Bifrost Wallet na sua tela inicial para um acesso mais rápido.",title:"Abra o aplicativo Bifrost Wallet"},step2:{description:"Crie ou importe uma carteira usando sua frase de recuperação.",title:"Criar ou Importar uma Carteira"},step3:{description:"Após você escanear, um prompt de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão de escanear"}}},bitget:{qr_code:{step1:{description:"Recomendamos colocar a Bitget Wallet na sua tela inicial para um acesso mais rápido.",title:"Abra o aplicativo Bitget Wallet"},step2:{description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, um prompt de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão de escaneamento"}},extension:{step1:{description:"Recomendamos fixar a Bitget Wallet na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão da Carteira Bitget"},step2:{description:"Certifique-se de fazer o backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},bitski:{extension:{step1:{description:"Recomendamos fixar o Bitski na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão Bitski"},step2:{description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},coin98:{qr_code:{step1:{description:"Recomendamos colocar a Carteira Coin98 na tela inicial para um acesso mais rápido à sua carteira.",title:"Abra o aplicativo Carteira Coin98"},step2:{description:"Você pode facilmente fazer backup de sua carteira usando nosso recurso de backup em seu telefone.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, uma solicitação de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão WalletConnect"}},extension:{step1:{description:"Clique no canto superior direito do seu navegador e fixe a Carteira Coin98 para fácil acesso.",title:"Instale a extensão da Carteira Coin98"},step2:{description:"Crie uma nova carteira ou importe uma existente.",title:"Criar ou Importar uma carteira"},step3:{description:"Depois de configurar a Carteira Coin98, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},coinbase:{qr_code:{step1:{description:"Recomendamos colocar a Carteira Coinbase na tela inicial para um acesso mais rápido.",title:"Abra o aplicativo Coinbase Wallet"},step2:{description:"Você pode fazer backup da sua carteira facilmente usando o recurso de backup na nuvem.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, um prompt de conexão aparecerá para que você conecte sua carteira.",title:"Toque no botão de escanear"}},extension:{step1:{description:"Recomendamos fixar o Coinbase Wallet na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão Coinbase Wallet"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Uma vez que você configurou sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},core:{qr_code:{step1:{description:"Recomendamos colocar o Core na tela inicial para um acesso mais rápido à sua carteira.",title:"Abra o aplicativo Core"},step2:{description:"Você pode facilmente salvar sua carteira usando nosso recurso de backup no seu celular.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, um prompt de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão WalletConnect"}},extension:{step1:{description:"Recomendamos fixar o Core na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão Core"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},fox:{qr_code:{step1:{description:"Recomendamos colocar o FoxWallet na tela inicial para um acesso mais rápido.",title:"Abra o aplicativo FoxWallet"},step2:{description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, uma solicitação de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão de escaneamento"}}},frontier:{qr_code:{step1:{description:"Recomendamos colocar o Frontier Wallet na tela inicial para um acesso mais rápido.",title:"Abra o aplicativo Frontier Wallet"},step2:{description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, aparecerá um prompt de conexão para você conectar sua carteira.",title:"Toque no botão de varredura"}},extension:{step1:{description:"Recomendamos fixar a Carteira Frontier na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão da Carteira Frontier"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},im_token:{qr_code:{step1:{title:"Abra o aplicativo imToken",description:"Coloque o aplicativo imToken na tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Toque no ícone do Scanner no canto superior direito",description:"Escolha Nova Conexão, em seguida, escaneie o código QR e confirme o prompt para conectar."}}},metamask:{qr_code:{step1:{title:"Abra o aplicativo MetaMask",description:"Recomendamos colocar o MetaMask na tela inicial para um acesso mais rápido."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Toque no botão escanear",description:"Depois de escanear, aparecerá um prompt de conexão para você conectar sua carteira."}},extension:{step1:{title:"Instale a extensão MetaMask",description:"Recomendamos fixar o MetaMask na barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize o seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},okx:{qr_code:{step1:{title:"Abra o aplicativo da Carteira OKX",description:"Recomendamos colocar a Carteira OKX na tela inicial para um acesso mais rápido."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer o backup da sua carteira utilizando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Toque no botão de digitalização",description:"Depois de escanear, aparecerá um prompt de conexão para você conectar sua carteira."}},extension:{step1:{title:"Instale a extensão OKX Wallet",description:"Recomendamos fixar a OKX Wallet na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer o backup da sua carteira utilizando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize o seu navegador",description:"Uma vez que você configurou sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},omni:{qr_code:{step1:{title:"Abra o aplicativo Omni",description:"Adicione o Omni à sua tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Toque no ícone do QR e escaneie",description:"Toque no ícone QR na tela inicial, escaneie o código e confirme o prompt para conectar."}}},token_pocket:{qr_code:{step1:{title:"Abra o aplicativo TokenPocket",description:"Recomendamos colocar o TokenPocket na tela inicial para um acesso mais rápido."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Toque no botão de digitalização",description:"Depois de escanear, aparecerá um prompt de conexão para você conectar sua carteira."}},extension:{step1:{title:"Instale a extensão TokenPocket",description:"Recomendamos fixar o TokenPocket em sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Uma vez que você configurou sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},trust:{qr_code:{step1:{title:"Abra o aplicativo Trust Wallet",description:"Coloque o Trust Wallet na tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Toque em WalletConnect nas Configurações",description:"Escolha Nova Conexão, depois escaneie o QR code e confirme o prompt para se conectar."}},extension:{step1:{title:"Instale a extensão Trust Wallet",description:"Clique no canto superior direito do seu navegador e marque Trust Wallet para fácil acesso."},step2:{title:"Crie ou Importe uma carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Atualize seu navegador",description:"Depois que configurar a Trust Wallet, clique abaixo para atualizar o navegador e carregar a extensão."}}},uniswap:{qr_code:{step1:{title:"Abra o aplicativo Uniswap",description:"Adicione a Carteira Uniswap à sua tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Toque no ícone QR e escaneie",description:"Toque no ícone QR na sua tela inicial, escaneie o código e confirme o prompt para conectar."}}},zerion:{qr_code:{step1:{title:"Abra o aplicativo Zerion",description:"Recomendamos colocar o Zerion na sua tela inicial para um acesso mais rápido."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Toque no botão de digitalização",description:"Depois de digitalizar, um prompt de conexão aparecerá para que você possa conectar sua carteira."}},extension:{step1:{title:"Instale a extensão Zerion",description:"Recomendamos fixar o Zerion na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},rainbow:{qr_code:{step1:{title:"Abra o aplicativo Rainbow",description:"Recomendamos colocar o Rainbow na tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Você pode facilmente fazer backup da sua carteira usando nosso recurso de backup no seu telefone."},step3:{title:"Toque no botão de digitalizar",description:"Depois de escanear, uma solicitação de conexão aparecerá para você conectar sua carteira."}}},enkrypt:{extension:{step1:{description:"Recomendamos fixar a Carteira Enkrypt na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão da Carteira Enkrypt"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize o seu navegador"}}},frame:{extension:{step1:{description:"Recomendamos fixar o Frame na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale o Frame e a extensão complementar"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},one_key:{extension:{step1:{title:"Instale a extensão OneKey Wallet",description:"Recomendamos fixar a OneKey Wallet na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Uma vez que você configurou sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},phantom:{extension:{step1:{title:"Instale a extensão Phantom",description:"Recomendamos fixar o Phantom na sua barra de tarefas para facilitar o acesso à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta de recuperação com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},rabby:{extension:{step1:{title:"Instale a extensão Rabby",description:"Recomendamos fixar Rabby na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},safeheron:{extension:{step1:{title:"Instale a extensão Core",description:"Recomendamos fixar Safeheron na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer o backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},taho:{extension:{step1:{title:"Instale a extensão Taho",description:"Recomendamos fixar o Taho na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer o backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},talisman:{extension:{step1:{title:"Instale a extensão Talisman",description:"Recomendamos fixar o Talisman na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Crie ou Importe uma Carteira Ethereum",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase de recuperação com ninguém."},step3:{title:"Atualize o seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},xdefi:{extension:{step1:{title:"Instale a extensão XDEFI Wallet",description:"Recomendamos fixar a Carteira XDEFI na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}}},Jg={connect_wallet:Lau,intro:$au,connect:Wau,connect_scan:qau,connector_group:Hau,get:Gau,get_options:Kau,get_mobile:Qau,get_instructions:Vau,chains:Jau,profile:Yau,wallet_connectors:Xau},Zau={label:"Подключить кошелек"},uou={title:"Что такое кошелек?",description:"Кошелек используется для отправки, получения, хранения и отображения цифровых активов. Это также новый способ входа в систему, без необходимости создания новых учетных записей и паролей на каждом сайте.",digital_asset:{title:"Дом для ваших цифровых активов",description:"Кошельки используются для отправки, получения, хранения и отображения цифровых активов, таких как Ethereum и NFT."},login:{title:"Новый способ входа в систему",description:"Вместо создания новых аккаунтов и паролей на каждом сайте, просто подключите ваш кошелек."},get:{label:"Получить кошелек"},learn_more:{label:"Узнать больше"}},eou={label:"Подключить",title:"Подключить кошелек",new_to_ethereum:{description:"Впервые столкнулись с кошельками Ethereum?",learn_more:{label:"Узнать больше"}},learn_more:{label:"Узнать больше"},recent:"Недавние",status:{opening:"Открывается %{wallet}...",not_installed:"%{wallet} не установлен",not_available:"%{wallet} не доступен",confirm:"Подтвердите подключение в расширении"},secondary_action:{get:{description:"У вас нет %{wallet}?",label:"ПОЛУЧИТЬ"},install:{label:"УСТАНОВИТЬ"},retry:{label:"ПОВТОРИТЬ"}},walletconnect:{description:{full:"Нужен официальный модальный окно WalletConnect?",compact:"Нужен модальный окно WalletConnect?"},open:{label:"ОТКРЫТЬ"}}},tou={title:"Сканировать с помощью %{wallet}",fallback_title:"Сканировать с помощью вашего телефона"},nou={recommended:"Рекомендуемые",other:"Другие",popular:"Популярные",more:"Больше",others:"Другие"},rou={title:"Получить кошелек",action:{label:"ПОЛУЧИТЬ"},mobile:{description:"Мобильный кошелек"},extension:{description:"Расширение для браузера"},mobile_and_extension:{description:"Мобильный кошелек и расширение"},looking_for:{title:"Не то, что вы ищете?",mobile:{description:"Выберите кошелек на главном экране, чтобы начать работу с другим провайдером кошелька."},desktop:{compact_description:"Выберите кошелек на главном экране, чтобы начать работу с другим провайдером кошелька.",wide_description:"Выберите кошелек слева, чтобы начать работу с другим провайдером кошелька."}}},iou={title:"Начните с %{wallet}",short_title:"Получить %{wallet}",mobile:{title:"%{wallet} для мобильных",description:"Используйте мобильный кошелек для исследования мира Ethereum.",download:{label:"Скачать приложение"}},extension:{title:"%{wallet} для %{browser}",description:"Доступ к вашему кошельку прямо из вашего любимого веб-браузера.",download:{label:"Добавить в %{browser}"}}},aou={title:"Установить %{wallet}",description:"Отсканируйте на своем телефоне для скачивания на iOS или Android",continue:{label:"Продолжить"}},oou={mobile:{connect:{label:"Подключить"},learn_more:{label:"Узнать больше"}},extension:{refresh:{label:"Обновить"},learn_more:{label:"Узнать больше"}}},sou={title:"Переключить сети",wrong_network:"Обнаружена неверная сеть, переключитесь или отключитесь для продолжения.",confirm:"Подтвердить в кошельке",switching_not_supported:"Ваш кошелек не поддерживает переключение сетей с %{appName}. Попробуйте переключить сети из вашего кошелька.",switching_not_supported_fallback:"Ваш кошелек не поддерживает переключение сетей из этого приложения. Попробуйте переключить сети из вашего кошелька.",disconnect:"Отключить",connected:"Подключено"},lou={disconnect:{label:"Отключить"},copy_address:{label:"Скопировать адрес",copied:"Скопировано!"},explorer:{label:"Посмотреть больше в эксплорере"},transactions:{description:"%{appName} транзакции появятся здесь...",description_fallback:"Ваши транзакции появятся здесь...",recent:{title:"Недавние транзакции"},clear:{label:"Очистить все"}}},cou={argent:{qr_code:{step1:{description:"Добавьте Argent на домашний экран для более быстрого доступа к вашему кошельку.",title:"Откройте приложение Argent"},step2:{description:"Создайте кошелек и имя пользователя или импортируйте существующий кошелек.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение для подключения вашего кошелька.",title:"Нажмите кнопку Сканировать QR"}}},bifrost:{qr_code:{step1:{description:"Мы рекомендуем добавить кошелек Bifrost на ваш начальный экран для более быстрого доступа.",title:"Откройте приложение Bifrost Wallet"},step2:{description:"Создайте или импортируйте кошелек, используя вашу фразу восстановления.",title:"Создать или импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение вашего кошелька.",title:"Нажмите кнопку сканирования"}}},bitget:{qr_code:{step1:{description:"Мы рекомендуем добавить Bitget Wallet на ваш экран для более быстрого доступа.",title:"Откройте приложение Bitget Wallet"},step2:{description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение вашего кошелька.",title:"Нажмите кнопку сканирования"}},extension:{step1:{description:"Мы рекомендуем закрепить Bitget Wallet на панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Bitget Wallet"},step2:{description:"Обязательно сохраните резервную копию вашего кошелька с помощью надёжного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},bitski:{extension:{step1:{description:"Мы рекомендуем прикрепить Bitski к вашей панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Bitski"},step2:{description:"Обязательно сохраните резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать кошелек или Импортировать кошелек"},step3:{description:"После того как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},coin98:{qr_code:{step1:{description:"Мы рекомендуем добавить Coin98 Wallet на ваш главный экран для более быстрого доступа к вашему кошельку.",title:"Откройте приложение Coin98 Wallet"},step2:{description:"Вы можете легко сделать резервную копию вашего кошелька, используя нашу функцию резервного копирования на вашем телефоне.",title:"Создать или импортировать кошелек"},step3:{description:"После сканирования для вас появится запрос на подключение, чтобы подключить ваш кошелек.",title:"Нажмите кнопку WalletConnect"}},extension:{step1:{description:"Нажмите в верхнем правом углу вашего браузера и закрепите Coin98 Wallet для удобного доступа.",title:"Установите расширение Coin98 Wallet"},step2:{description:"Создайте новый кошелек или импортируйте существующий.",title:"Создайте или импортируйте кошелек"},step3:{description:"После того как вы настроите Кошелек Coin98, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},coinbase:{qr_code:{step1:{description:"Мы рекомендуем добавить Coinbase Wallet на ваш экран начала для более быстрого доступа.",title:"Откройте приложение Coinbase Wallet"},step2:{description:"Вы легко можете сделать резервную копию вашего кошелька, используя функцию облачного резервного копирования.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение для подключения вашего кошелька.",title:"Нажмите кнопку сканирования"}},extension:{step1:{description:"Мы рекомендуем закрепить Coinbase Wallet на вашей панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Coinbase Wallet"},step2:{description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},core:{qr_code:{step1:{description:"Мы рекомендуем добавить Core на ваш экран быстрого доступа для ускоренного доступа к вашему кошельку.",title:"Открыть приложение Core"},step2:{description:"Вы можете легко создать резервную копию вашего кошелька, используя нашу функцию резервного копирования на вашем телефоне.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение, чтобы вы могли подключить ваш кошелек.",title:"Нажмите кнопку WalletConnect"}},extension:{step1:{description:"Мы рекомендуем закрепить Core на панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Core"},step2:{description:"Обязательно создайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь вашей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"Как только вы настроите ваш кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},fox:{qr_code:{step1:{description:"Мы рекомендуем поместить FoxWallet на ваш экран начального экрана для более быстрого доступа.",title:"Откройте приложение FoxWallet"},step2:{description:"Обязательно сделайте резервное копирование вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится приглашение для подключения вашего кошелька.",title:"Нажмите кнопку сканирования"}}},frontier:{qr_code:{step1:{description:"Мы рекомендуем установить Frontier Wallet на экран вашего смартфона для более быстрого доступа.",title:"Откройте приложение Frontier Wallet"},step2:{description:"Обязательно сделайте резервное копирование вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение кошелька.",title:"Нажмите кнопку сканирования"}},extension:{step1:{description:"Мы рекомендуем прикрепить кошелек Frontier к панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение кошелька Frontier"},step2:{description:"Обязательно сделайте резервную копию своего кошелька с использованием надежного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или импортировать кошелек"},step3:{description:"После настройки вашего кошелька нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},im_token:{qr_code:{step1:{title:"Откройте приложение imToken",description:"Поместите приложение imToken на главный экран для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Нажмите на иконку сканера в верхнем правом углу",description:"Выберите Новое соединение, затем отсканируйте QR-код и подтвердите запрос на соединение."}}},metamask:{qr_code:{step1:{title:"Откройте приложение MetaMask",description:"Мы рекомендуем поместить MetaMask на главный экран для быстрого доступа."},step2:{title:"Создайте или импортируйте кошелек",description:"Обязательно сохраните копию своего кошелька с помощью надежного метода. Никогда не делитесь своей секретной фразой с кем бы то ни было."},step3:{title:"Нажмите кнопку сканирования",description:"После сканирования появится запрос на соединение вашего кошелька."}},extension:{step1:{title:"Установите расширение MetaMask",description:"Мы рекомендуем закрепить MetaMask на вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сохраните резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После настройки вашего кошелька, щелкните ниже, чтобы обновить браузер и загрузить расширение."}}},okx:{qr_code:{step1:{title:"Откройте приложение кошелька OKX",description:"Мы рекомендуем разместить кошелек OKX на вашем главном экране для более быстрого доступа."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сохраните резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Нажмите на кнопку сканирования",description:"После сканирования появится запрос на подключение вашего кошелька."}},extension:{step1:{title:"Установите расширение кошелька OKX",description:"Мы рекомендуем закрепить OKX Wallet на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать кошелек или импортировать кошелек",description:"Обязательно сохраните резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"Как только вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},omni:{qr_code:{step1:{title:"Откройте приложение Omni",description:"Добавьте Omni на свой домашний экран для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Нажмите на иконку QR и отсканируйте",description:"Нажмите на иконку QR на вашем домашнем экране, отсканируйте код и подтвердите подсказку, чтобы подключиться."}}},token_pocket:{qr_code:{step1:{title:"Откройте приложение TokenPocket",description:"Мы рекомендуем разместить TokenPocket на вашем домашнем экране для быстрого доступа."},step2:{title:"Создать или Импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька при помощи безопасного метода. Никогда не делитесь своим секретным кодом с кем-либо."},step3:{title:"Нажмите на кнопку сканирования",description:"После сканирования появится подсказка о подключении для подключения вашего кошелька."}},extension:{step1:{title:"Установите расширение TokenPocket",description:"Мы рекомендуем закрепить TokenPocket на вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или Импортировать кошелек",description:"Обязательно создайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После того как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},trust:{qr_code:{step1:{title:"Откройте приложение Trust Wallet",description:"Разместите Trust Wallet на вашем домашнем экране для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или Импортировать кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Нажмите WalletConnect в настройках",description:"Выберите Новое соединение, затем сканируйте QR-код и подтвердите запрос на подключение."}},extension:{step1:{title:"Установите расширение Trust Wallet",description:"Кликните в правом верхнем углу вашего браузера и закрепите Trust Wallet для легкого доступа."},step2:{title:"Создайте или импортируйте кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Обновите ваш браузер",description:"После настройки Trust Wallet, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},uniswap:{qr_code:{step1:{title:"Откройте приложение Uniswap",description:"Добавьте кошелек Uniswap на главный экран для быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Нажмите на иконку QR и отсканируйте",description:"Нажмите на иконку QR на главном экране, отсканируйте код и подтвердите запрос на подключение."}}},zerion:{qr_code:{step1:{title:"Откройте приложение Zerion",description:"Мы рекомендуем разместить Zerion на главном экране для более быстрого доступа."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно создайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Нажмите кнопку сканирования",description:"После сканирования вам будет предложено подключить ваш кошелек."}},extension:{step1:{title:"Установите расширение Zerion",description:"Мы рекомендуем прикрепить Zerion к вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создайте или импортируйте кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делясь своим секретным паролем с кем-либо."},step3:{title:"Обновите ваш браузер",description:"Как только вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},rainbow:{qr_code:{step1:{title:"Откройте приложение Rainbow",description:"Мы рекомендуем поместить Rainbow на ваш экран главного меню для более быстрого доступа к вашему кошельку."},step2:{title:"Создайте или импортируйте кошелек",description:"Вы можете легко сделать резервную копию вашего кошелька с помощью нашей функции резервного копирования на вашем телефоне."},step3:{title:"Нажмите кнопку сканировать",description:"После сканирования появится запрос на подключение вашего кошелька."}}},enkrypt:{extension:{step1:{description:"Мы рекомендуем закрепить Enkrypt Wallet на панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Enkrypt Wallet"},step2:{description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или импортировать кошелек"},step3:{description:"Как только вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},frame:{extension:{step1:{description:"Мы рекомендуем закрепить Frame на панели задач для более быстрого доступа к вашему кошельку.",title:"Установите Frame и дополнительное расширение"},step2:{description:"Обязательно создайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создайте или Импортируйте кошелек"},step3:{description:"После того как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},one_key:{extension:{step1:{title:"Установите расширение OneKey Wallet",description:"Мы рекомендуем закрепить OneKey Wallet на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создайте или Импортируйте кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После настройки кошелька нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},phantom:{extension:{step1:{title:"Установите расширение Phantom",description:"Мы рекомендуем закрепить Phantom на панели задач для более удобного доступа к вашему кошельку."},step2:{title:"Создать или Импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой восстановления с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После того как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},rabby:{extension:{step1:{title:"Установите расширение Rabby",description:"Мы рекомендуем закрепить Rabby на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем бы то ни было."},step3:{title:"Обновите ваш браузер",description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},safeheron:{extension:{step1:{title:"Установите основное расширение",description:"Мы рекомендуем закрепить SafeHeron на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После того, как вы настроите ваш кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},taho:{extension:{step1:{title:"Установите расширение Taho",description:"Мы рекомендуем закрепить Taho на вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},talisman:{extension:{step1:{title:"Установите расширение Talisman",description:"Мы рекомендуем закрепить Talisman на вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создайте или импортируйте кошелек Ethereum",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь вашей фразой восстановления с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},xdefi:{extension:{step1:{title:"Установите расширение кошелька XDEFI",description:"Мы рекомендуем закрепить XDEFI Wallet на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или Импортировать кошелек",description:"Обязательно создайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После того, как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}}},Yg={connect_wallet:Zau,intro:uou,connect:eou,connect_scan:tou,connector_group:nou,get:rou,get_options:iou,get_mobile:aou,get_instructions:oou,chains:sou,profile:lou,wallet_connectors:cou},Eou={label:"เชื่อมต่อกระเป๋าเงิน"},dou={title:"อะไรคือกระเป๋าเงิน?",description:"กระเป๋าเงินใช้ในการส่ง, รับ, เก็บ, และแสดงสินทรัพย์ดิจิทัล มันยังเป็นวิธีใหม่ในการเข้าสู่ระบบ, โดยไม่จำเป็นต้องสร้างบัญชีและรหัสผ่านใหม่ในทุกเว็บไซต์.",digital_asset:{title:"บ้านสำหรับสินทรัพย์ดิจิทัลของคุณ",description:"กระเป๋าเงินถูกใช้เพื่อส่ง, รับ, เก็บ, แสดงสินทรัพย์ดิจิทัล เช่น Ethereum และ NFTs."},login:{title:"วิธีใหม่ในการเข้าสู่ระบบ",description:"แทนที่จะสร้างบัญชีและรหัสผ่านใหม่ในทุกเว็บไซต์, แค่เชื่อมต่อกระเป๋าของคุณ."},get:{label:"รับกระเป๋าเงิน"},learn_more:{label:"เรียนรู้เพิ่มเติม"}},fou={label:"เชื่อมต่อ",title:"เชื่อมต่อกระเป๋าเงิน",new_to_ethereum:{description:"ใหม่กับกระเป๋า Ethereum หรือไม่?",learn_more:{label:"เรียนรู้เพิ่มเติม"}},learn_more:{label:"เรียนรู้เพิ่มเติม"},recent:"ล่าสุด",status:{opening:"กำลังเปิด %{wallet}...",not_installed:"%{wallet} ไม่ได้ติดตั้ง",not_available:"%{wallet} ไม่สามารถใช้ได้",confirm:"ยืนยันการเชื่อมต่อในส่วนขยาย"},secondary_action:{get:{description:"ไม่มี %{wallet}?",label:"รับ"},install:{label:"ติดตั้ง"},retry:{label:"ลองใหม่"}},walletconnect:{description:{full:"ต้องการ modal อย่างเป็นทางการจาก WalletConnect หรือไม่?",compact:"ต้องการ modal จาก WalletConnect หรือไม่?"},open:{label:"เปิด"}}},pou={title:"สแกนด้วย %{wallet}",fallback_title:"สแกนด้วยโทรศัพท์ของคุณ"},hou={recommended:"แนะนำ",other:"อื่น ๆ",popular:"ยอดนิยม",more:"เพิ่มเติม",others:"อื่น ๆ"},Cou={title:"รับ Wallet",action:{label:"รับ"},mobile:{description:"Wallet บนมือถือ"},extension:{description:"ส่วนขยายบราวเซอร์"},mobile_and_extension:{description:"กระเป๋าเงินมือถือและส่วนขยาย"},looking_for:{title:"ไม่ใช่สิ่งที่คุณกำลังหาหรือไม่?",mobile:{description:"เลือกกระเป๋าเงินบนหน้าจอหลักเพื่อเริ่มต้นใช้งานกับผู้ให้บริการกระเป๋าเงินที่แตกต่างกัน"},desktop:{compact_description:"เลือกกระเป๋าเงินบนหน้าจอหลักเพื่อเริ่มต้นใช้งานกับผู้ให้บริการกระเป๋าเงินที่แตกต่างกัน",wide_description:"เลือกกระเป๋าเงินที่อยู่ทางซ้ายเพื่อเริ่มต้นใช้งานกับผู้ให้บริการกระเป๋าเงินที่แตกต่างกัน"}}},mou={title:"เริ่มต้นกับ %{wallet}",short_title:"รับ %{wallet}",mobile:{title:"%{wallet} สำหรับมือถือ",description:"ใช้กระเป๋าระบบมือถือในการสำรวจโลกของ Ethereum.",download:{label:"รับแอป"}},extension:{title:"%{wallet} สำหรับ %{browser}",description:"เข้าถึงกระเป๋าเงินของคุณได้โดยตรงจากบราวเซอร์ที่คุณชื่นชอบ.",download:{label:"เพิ่มไปยัง %{browser}"}}},gou={title:"ติดตั้ง %{wallet}",description:"สแกนด้วยโทรศัพท์ของคุณเพื่อดาวน์โหลดบน iOS หรือ Android",continue:{label:"ดำเนินการต่อ"}},Aou={mobile:{connect:{label:"เชื่อมต่อ"},learn_more:{label:"เรียนรู้เพิ่มเติม"}},extension:{refresh:{label:"รีเฟรช"},learn_more:{label:"เรียนรู้เพิ่มเติม"}}},you={title:"เปลี่ยนเครือข่าย",wrong_network:"ตรวจสอบพบเครือข่ายที่ไม่ถูกต้อง สลับหรือตัดการเชื่อมต่อเพื่อดำเนินการต่อ.",confirm:"ยืนยันใน Wallet",switching_not_supported:"กระเป๋าสตางค์ของคุณไม่สนับสนุนการเปลี่ยนเครือข่ายจาก %{appName}ลองเปลี่ยนเครือข่ายจากภายในกระเป๋าสตางค์ของคุณแทน",switching_not_supported_fallback:"กระเป๋าสตางค์ของคุณไม่สนับสนุนการสลับเครือข่ายจากแอปนี้ ลองสลับเครือข่ายจากภายในกระเป๋าสตางค์ของคุณแทน",disconnect:"ตัดการเชื่อมต่อ",connected:"เชื่อมต่อแล้ว"},Bou={disconnect:{label:"ตัดการเชื่อมต่อ"},copy_address:{label:"คัดลอกที่อยู่",copied:"คัดลอกแล้ว!"},explorer:{label:"ดูเพิ่มเติมบน explorer"},transactions:{description:"%{appName} รายการจะปรากฎที่นี่...",description_fallback:"การทำธุรกรรมของคุณจะปรากฎที่นี่...",recent:{title:"ธุรกรรมล่าสุด"},clear:{label:"ลบทั้งหมด"}}},vou={argent:{qr_code:{step1:{description:"วาง Argent บนหน้าจอหลักของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น",title:"เปิดแอป Argent"},step2:{description:"สร้างกระเป๋าเงินและชื่อผู้ใช้หรือนำเข้ากระเป๋าเงินที่มีอยู่แล้ว",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"หลังจากคุณสแกน จะปรากฏหน้าต่างเชื่อมต่อให้คุณเชื่อมต่อกระเป๋าเงินของคุณ",title:"แตะที่คุ่มุ่งสแกน QR"}}},bifrost:{qr_code:{step1:{description:"เราขอแนะนำให้คุณวาง Bifrost Wallet บนหน้าจอหลักของคุณเพื่อเข้าถึงได้เร็วขึ้น",title:"เปิดแอพฯ Bifrost Wallet"},step2:{description:"สร้างหรือนำเข้ากระเป๋าเงินด้วย recovery phrase ของคุณ",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"หลังจากที่คุณสแกนแล้วยินยันการเชื่อมต่อกับกระเป๋าเงินของคุณ",title:"แตะปุ่มสแกน"}}},bitget:{qr_code:{step1:{description:"เราขอแนะนำให้วาง Bitget Wallet บนหน้าจอหน้าแรกของคุณเพื่อการเข้าถึงที่รวดเร็วขึ้น.",title:"เปิดแอพ Bitget Wallet"},step2:{description:"ตรวจสอบการสำรองข้อมูลกระเป๋าสตางค์ของคุณให้แน่นอนโดยใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใครเป็นอันขาด.",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"หลังจากที่คุณสแกน จะมีข้อความขอเชื่อมต่อที่จะปรากฏขึ้นให้คุณเชื่อมต่อกระเป๋าสตางค์ของคุณ.",title:"แตะปุ่มสแกน"}},extension:{step1:{description:"เราแนะนำให้คุณปัก Bitget Wallet ไว้บนแถบงานของคุณเพื่อเข้าถึงกระเป๋าสตางค์ได้เร็วขึ้น",title:"ติดตั้งส่วนเสริม Bitget Wallet"},step2:{description:"โปรดแน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับบุคคลใดๆ",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้วคลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนเสริม",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},bitski:{extension:{step1:{description:"เราแนะนำให้ทำปัก Bitski ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าเงินได้โดยไม่ต้องรอ",title:"ติดตั้งส่วนขยาย Bitski"},step2:{description:"ควรสำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยคำลับของคุณให้ใครทราบ",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},coin98:{qr_code:{step1:{description:"เราขอแนะนำให้คุณวาง Coin98 Wallet บนหน้าจอหลักของคุณ เพื่อให้เข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น.",title:"เปิดแอพ Coin98 Wallet"},step2:{description:"คุณสามารถสำรองข้อมูลกระเป๋าเงินของคุณได้ง่ายๆ ด้วยฟีเจอร์สำรองข้อมูลบนโทรศัพท์ของคุณ.",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"หลังจากคุณสแกน จะมีเตือนการเชื่อมต่อที่ปรากฏขึ้นให้คุณเชื่อมต่อกระเป๋าเงินของคุณ.",title:"แตะที่ปุ่ม WalletConnect"}},extension:{step1:{description:"คลิกที่ด้านบนขวาของเบราว์เซอร์ของคุณและปัก Coin98 Wallet ไว้เพื่อให้เข้าถึงได้ง่าย.",title:"ติดตั้งส่วนขยาย Coin98 Wallet"},step2:{description:"สร้างกระเป๋าเงินใหม่หรือนำเข้าที่มีอยู่แล้ว.",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"เมื่อคุณตั้งค่า Coin98 Wallet แล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยายขึ้นมา.",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},coinbase:{qr_code:{step1:{description:"เราแนะนำให้วาง Coinbase Wallet ไว้ที่หน้าจอหลักของคุณเพื่อให้เข้าถึงได้เร็วขึ้น.",title:"เปิดแอป Coinbase Wallet"},step2:{description:"คุณสามารถสำรองข้อมูลกระเป๋าสตางค์ของคุณได้ง่ายๆ โดยใช้ฟีเจอร์การสำรองข้อมูลด้วยคลาวด์",title:"สร้างหรือนำเข้ากระเป๋าสตางค์"},step3:{description:"หลังจากที่คุณสแกนแล้ว จะมีการแสดงขอ้มูลเพื่อให้คุณเชื่อมต่อกระเป๋าสตางค์ของคุณ",title:"แตะที่ปุ่มสแกน"}},extension:{step1:{description:"เราแนะนำให้คุณยัด Coinbase Wallet ไว้ที่แถบงานของคุณเพื่อให้สามารถเข้าถึงกระเป๋าสตางค์ของคุณได้เร็วขึ้น",title:"ติดตั้งส่วนขยาย Coinbase Wallet"},step2:{description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยประโยคลับของคุณให้กับใครเลย",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"เมื่อคุณได้ตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อเรียกดูเบราว์เซอร์ใหม่และโหลดส่วนขยาย",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},core:{qr_code:{step1:{description:"เราแนะนำให้คุณวาง Core ลงสนามหลักเพื่อให้เข้าถึงกระเป๋าเงินได้เร็วขึ้น",title:"เปิดแอปเครื่องมือช่วยอีเกิร์น"},step2:{description:"คุณสามารถสำรองกระเป๋าเงินของคุณได้ง่ายๆ โดยใช้ฟีเจอร์สำรองของเราบนโทรศัพท์ของคุณ",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"หลังจากที่คุณสแกนแล้ว จะมีการแจ้งเตือนเพื่อให้คุณเชื่อมต่อกับกระเป๋าสตางค์ของคุณ",title:"แตะปุ่ม WalletConnect"}},extension:{step1:{description:"เราขอแนะนำให้คุณปัก Core ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าสตางค์ของคุณได้อย่างรวดเร็ว",title:"ติดตั้งส่วนขยาย Core"},step2:{description:"โปรดแน่ใจว่าคุณได้สำรองกระเป๋าสตางค์ของคุณใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใคร",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"เมื่อคุณตั้งค่ากระเป๋าสตางค์ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},fox:{qr_code:{step1:{description:"เราขอแนะนำให้คุณวาง FoxWallet บนหน้าจอหลักเพื่อให้เข้าถึงได้เร็วขึ้น",title:"เปิดแอป FoxWallet"},step2:{description:"ตรวจสอบที่จะสำรองข้อมูลกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย จงอย่าเปิดเผยประโยคลับลับของคุณให้ผู้อื่นรู้",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"หลังจากที่คุณสแกน จะมีการเชื่อมต่อที่แสดงให้คุณเชื่อมต่อกระเป๋าเงินของคุณ",title:"แตะปุ่มสแกน"}}},frontier:{qr_code:{step1:{description:"เราขอแนะนำให้คุณวาง Frontier Wallet บนหน้าจอหลักเพื่อให้เข้าถึงได้เร็วขึ้น",title:"เปิดแอป Frontier Wallet"},step2:{description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าสตางค์ของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใคร",title:"สร้างหรือนำเข้ากระเป๋าสตางค์"},step3:{description:"หลังจากที่คุณสแกนแล้ว จะมีการแสดงข้อมูลเพื่อให้คุณเชื่อมต่อกับกระเป๋าสตางค์ของคุณ",title:"แตะปุ่มสแกน"}},extension:{step1:{description:"เราแนะนำให้คุณปักหมุด Frontier Wallet ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าสตางค์ของคุณได้ง่ายขึ้น",title:"ติดตั้งส่วนเสริม Frontier Wallet"},step2:{description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าสตางค์ของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใคร",title:"สร้างหรือนำเข้ากระเป๋าสตางค์"},step3:{description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},im_token:{qr_code:{step1:{title:"เปิดแอพ imToken",description:"ใส่แอพ imToken ไว้ที่หน้าจอหลักเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น."},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"สร้างกระเป๋าเงินใหม่หรือนำเข้ากระเป๋าเงินที่มีอยู่แล้ว"},step3:{title:"แตะไอคอนสแกนเนอร์ในมุมบนขวา",description:"เลือก New Connection, แล้วสแกน QR code และยืนยันการรับรองสำหรับการเชื่อมต่อ"}}},metamask:{qr_code:{step1:{title:"เปิดแอป MetaMask",description:"เราขอแนะนำให้วาง MetaMask บนหน้าจอหลักของคุณเพื่อเข้าถึงได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"ตรวจสอบว่าได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้กับใคร"},step3:{title:"แตะที่ปุ่มสแกน",description:"หลังจากการสแกน, จะปรากฏข้อความเชื่อมต่อสำหรับคุณเพื่อเชื่อมต่อกับกระเป๋าเงินของคุณ"}},extension:{step1:{title:"ติดตั้งส่วนขยาย MetaMask",description:"เราขอแนะนำให้คุณปัก MetaMask ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้รวดเร็ว"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"อย่างแน่นอนให้สำรองข้อมูลกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์ประโยคลับของคุณกับใครเลย"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},okx:{qr_code:{step1:{title:"เปิดแอพ OKX Wallet",description:"เราแนะนำให้วาง OKX Wallet บนหน้าจอหลักของคุณเพื่อให้เข้าถึงได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"จงแน่ใจว่าคุณได้สำรองข้อมูล wallet ของคุณด้วยวิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณให้คนอื่น"},step3:{title:"แตะปุ่มสแกน",description:"หลังจากคุณสแกน จะมีการแสดงข้อมูลเพื่อให้คุณเชื่อมต่อ wallet ของคุณ"}},extension:{step1:{title:"ติดตั้งส่วนเสริม OKX Wallet",description:"เราแนะนำให้ยึด OKX Wallet ไว้ที่แถบงานของคุณเพื่อให้เข้าถึง wallet ของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"โปรดแน่ใจว่าคุณได้สำรองกระเป๋าสตางค์ของคุณด้วยวิธีที่ปลอดภัย อย่าเปิดเผยประโยคลับของคุณให้ใครทราบ"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าสตางค์ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},omni:{qr_code:{step1:{title:"เปิดแอป Omni",description:"เพิ่ม Omni ไปยังหน้าจอแรกเพื่อเข้าถึงกระเป๋าสตางค์ของคุณได้รวดเร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าสตางค์",description:"สร้างกระเป๋าสตางค์ใหม่หรือนำเข้ากระเป๋าสตางค์ที่มีอยู่"},step3:{title:"แตะที่ไอคอน QR แล้วสแกน",description:"แตะที่ไอคอน QR บนหน้าจอหน้าแรกของคุณ, สแกนรหัสและยืนยันการเตือนเพื่อเชื่อมต่อ."}}},token_pocket:{qr_code:{step1:{title:"เปิดแอป TokenPocket",description:"เราแนะนำให้วาง TokenPocket บนหน้าจอหน้าแรกของคุณเพื่อเข้าถึงได้เร็วขึ้น."},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"ตรวจสอบว่าได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้ผู้อื่นทราบในทางใดทางหนึ่ง."},step3:{title:"แตะปุ่มสแกน",description:"หลังจากที่คุณสแกนแล้ว จะมีการเรียกให้เชื่อมต่อกับกระเป๋าเงินของคุณ"}},extension:{step1:{title:"ติดตั้งส่วนขยาย TokenPocket",description:"เราขอแนะนำให้คุณปัก TokenPocket ไว้ที่แถบงานเพื่อทำให้สามารถเข้าถึงกระเป๋าเงินของคุณได้ง่ายขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าเงินของคุณด้วยวิธีที่ปลอดภัย อย่าทำการแชร์ประโยคลับด้วยความลับของคุณกับใคร"},step3:{title:"รีเฟรชบราวเซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชบราวเซอร์และโหลดส่วนขยาย"}}},trust:{qr_code:{step1:{title:"เปิดแอพ Trust Wallet",description:"วาง Trust Wallet ที่หน้าจอหลักของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้รวดเร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"สร้าง wallet ใหม่หรือนำเข้า wallet ที่มีอยู่แล้ว"},step3:{title:"แตะ WalletConnect ในการตั้งค่า",description:"เลือก New Connection จากนั้นสแกน QR code และยืนยันการแจ้งเตือนเพื่อเชื่อมต่อ"}},extension:{step1:{title:"ติดตั้งส่วนขยาย Trust Wallet",description:"คลิกที่มุมบนขวาของเบราว์เซอร์ของคุณและปัก Trust Wallet เพื่อเข้าถึงได้ง่าย"},step2:{title:"สร้างหรือนำเข้า wallet",description:"สร้าง wallet ใหม่หรือนำเข้า wallet ที่มีอยู่แล้ว"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่า Trust Wallet แล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยายขึ้นมา"}}},uniswap:{qr_code:{step1:{title:"เปิดแอป Uniswap",description:"เพิ่ม Uniswap Wallet ไปยังหน้าจอหลักของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"สร้างกระเป๋าเงินใหม่หรือนำเข้ากระเป๋าเงินที่มีอยู่แล้ว"},step3:{title:"แตะที่ไอคอน QR และสแกน",description:"แตะที่ไอคอน QR บนหน้าจอหลักของคุณ สแกนรหัสและยืนยันการเชื่อมต่อ"}}},zerion:{qr_code:{step1:{title:"เปิดแอป Zerion",description:"เราแนะนำให้คุณวาง Zerion บนหน้าจอหลักของคุณเพื่อเข้าถึงได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"ลองทำสำเนาข้อมูล wallet ของคุณไว้ในช่องทางที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้กับผู้อื่น"},step3:{title:"แตะที่ปุ่มสแกน",description:"หลังจากสแกน จะมีหน้าต่างแสดงคำสั่งเชื่อมต่อให้คุณเชื่อมต่อ wallet ของคุณ"}},extension:{step1:{title:"ติดตั้งส่วนขยาย Zerion",description:"เราแนะนำให้คุณติด Zerion บนแถบงานของคุณเพื่อเข้าถึง wallet ของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าเงินของคุณโดยวิธีที่ปลอดภัย อย่าเปิดเผยประโยคลับลับของคุณให้ใครทราบครับ"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},rainbow:{qr_code:{step1:{title:"เปิดแอป Rainbow",description:"เราขอแนะนำให้คุณวาง Rainbow อยู่บนหน้าจอหลักของคุณเพื่อรับผิดชอบจากกระเป๋าสตางค์ของคุณอย่างรวดเร็ว"},step2:{title:"สร้างหรือนำเข้ากระเป๋าสตางค์",description:"คุณสามารถสำรองข้อมูลกระเป๋าสตางค์ของคุณได้ง่ายๆ ด้วยฟีเจอร์สำรองข้อมูลบนโทรศัพท์ของคุณ"},step3:{title:"แตะปุ่มสแกน",description:"หลังจากสแกนแล้ว จะแสดงข้อความขอเชื่อมต่อเพื่อให้คุณเชื่อมต่อกระเป๋าสตางค์ของคุณ"}}},enkrypt:{extension:{step1:{description:"เราขอแนะนำให้คุณปัก Enkrypt Wallet ไว้ที่แทบงานของคุณเพื่อให้สามารถเข้าถึงกระเป๋าสตางค์ของคุณได้เร็วขึ้น",title:"ติดตั้งส่วนขยาย Enkrypt Wallet"},step2:{description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองกระเป๋าสตางค์ของคุณโดยใช้วิธีที่ปลอดภัย ห้ามแชร์วลีลับของคุณให้กับใคร",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"เมื่อคุณตั้งค่า wallet ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรช browser และโหลดขึ้น extension",title:"รีเฟรช browser ของคุณ"}}},frame:{extension:{step1:{description:"เราแนะนำให้หมุน Frame ไว้บน taskbar ของคุณเพื่อให้เข้าถึง wallet ได้เร็วขึ้น",title:"ติดตั้ง Frame และ extension ที่เป็นคู่"},step2:{description:"ตรวจสอบว่าได้สำรอง wallet ของคุณโดยใช้วิธีการที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้กับใคร",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"เมื่อคุณตั้งค่า wallet ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรช browser และโหลดขึ้น extension",title:"รีเฟรช browser ของคุณ"}}},one_key:{extension:{step1:{title:"ติดตั้งส่วนเสริม OneKey Wallet",description:"เราแนะนำการปัก OneKey Wallet ไว้บนแทบงานของคุณเพื่อเข้าถึงกระเป๋าเงินได้ง่ายขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"อย่าลืมสำรองกระเป๋าเงินของคุณด้วยวิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใคร"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนเสริม"}}},phantom:{extension:{step1:{title:"ติดตั้งส่วนเสริม Phantom",description:"เราแนะนำการปัก Phantom ไว้บนแทบงานของคุณเพื่อเข้าถึงกระเป๋าเงินได้ง่ายขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"แน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยข้อความลับสำหรับการกู้คืนของคุณกับบุคคลใด ๆ"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินเรียบร้อยแล้ว, คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},rabby:{extension:{step1:{title:"ติดตั้งส่วนขยาย Rabby",description:"เราแนะนำให้คุณปัก Rabby ไว้ที่แถบงานเพื่อให้เข้าถึงกระเป๋าเงินของคุณได้รวดเร็วขึ้น."},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"แน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์ข้อความลับของคุณกับบุคคลอื่น"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},safeheron:{extension:{step1:{title:"ติดตั้งส่วนขยาย Core",description:"เราขอแนะนำให้คุณปัก Safeheron ไว้ที่แถบงานเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"อย่าลืมสำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยประโยคลับของคุณให้ผู้อื่นทราบ"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},taho:{extension:{step1:{title:"ติดตั้งส่วนขยาย Taho",description:"เราแนะนำให้คุณปัก Taho ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"โปรดแน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์ประโยคลับคุณกับผู้อื่น"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},talisman:{extension:{step1:{title:"ติดตั้งส่วนขยาย Talisman",description:"เราแนะนำให้คุณปัก Talisman ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน Ethereum",description:"ให้แน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยวลีการกู้คืนของคุณให้ใครทราบเด็ดขาด"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},xdefi:{extension:{step1:{title:"ติดตั้งส่วนขยาย XDEFI Wallet",description:"เราแนะนำให้คุณตรา XDEFI Wallet ไว้ที่แถบงานเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"ให้แน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้ใครทราบเด็ดขาด"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"หลังจากที่คุณตั้งค่ากระเป๋าสตางค์ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชบราวเซอร์และโหลดส่วนเสริม."}}}},Xg={connect_wallet:Eou,intro:dou,connect:fou,connect_scan:pou,connector_group:hou,get:Cou,get_options:mou,get_mobile:gou,get_instructions:Aou,chains:you,profile:Bou,wallet_connectors:vou},Fou={label:"Cüzdanı Bağla"},Dou={title:"Cüzdan nedir?",description:"Bir cüzdan, dijital varlıkları göndermek, almak, saklamak ve görüntülemek için kullanılır. Aynı zamanda her web sitesinde yeni hesaplar ve şifreler oluşturmanıza gerek kalmadan oturum açmanın yeni bir yoludur.",digital_asset:{title:"Dijital Varlıklarınız İçin Bir Ev",description:"Cüzdanlar, Ethereum ve NFT'ler gibi dijital varlıkları göndermek, almak, depolamak ve görüntülemek için kullanılır."},login:{title:"Yeni Bir Giriş Yolu",description:"Her web sitesinde yeni hesap ve parolalar oluşturmak yerine, sadece cüzdanınızı bağlayın."},get:{label:"Bir Cüzdan Edinin"},learn_more:{label:"Daha fazla bilgi edinin"}},bou={label:"Bağlan",title:"Bir Cüzdanı Bağla",new_to_ethereum:{description:"Ethereum cüzdanlarına yeni misiniz?",learn_more:{label:"Daha fazla bilgi edinin"}},learn_more:{label:"Daha fazla bilgi edinin"},recent:"Son",status:{opening:"%{wallet}açılıyor...",not_installed:"%{wallet} yüklü değil",not_available:"%{wallet} kullanılabilir değil",confirm:"Bağlantıyı eklentide onaylayın"},secondary_action:{get:{description:"%{wallet}yok mu?",label:"AL"},install:{label:"YÜKLE"},retry:{label:"YENİDEN DENE"}},walletconnect:{description:{full:"Resmi WalletConnect modalına mı ihtiyacınız var?",compact:"WalletConnect modalına mı ihtiyacınız var?"},open:{label:"AÇ"}}},wou={title:"%{wallet}ile tarama yapın",fallback_title:"Telefonunuzla tarama yapın"},xou={recommended:"Tavsiye Edilen",other:"Diğer",popular:"Popüler",more:"Daha Fazla",others:"Diğerleri"},kou={title:"Bir Cüzdan Edinin",action:{label:"AL"},mobile:{description:"Mobil Cüzdan"},extension:{description:"Tarayıcı Eklentisi"},mobile_and_extension:{description:"Mobil Cüzdan ve Eklenti"},looking_for:{title:"Aradığınız şey bu değil mi?",mobile:{description:"Ana ekranda başka bir cüzdan sağlayıcısıyla başlamak için bir cüzdan seçin."},desktop:{compact_description:"Ana ekranda başka bir cüzdan sağlayıcısıyla başlamak için bir cüzdan seçin.",wide_description:"Başka bir cüzdan sağlayıcısıyla başlamak için sol tarafta bir cüzdan seçin."}}},_ou={title:"%{wallet}ile başlayın",short_title:"%{wallet}Edinin",mobile:{title:"%{wallet} Mobil İçin",description:"Mobil cüzdanı kullanarak Ethereum dünyasını keşfedin.",download:{label:"Uygulamayı alın"}},extension:{title:"%{wallet} için %{browser}",description:"Cüzdanınıza favori web tarayıcınızdan doğrudan erişin.",download:{label:"%{browser}'e ekle"}}},Sou={title:"%{wallet}'i yükleyin",description:"iOS veya Android'de indirmek için telefonunuzla tarayın",continue:{label:"Devam et"}},Pou={mobile:{connect:{label:"Bağlan"},learn_more:{label:"Daha fazla bilgi edinin"}},extension:{refresh:{label:"Yenile"},learn_more:{label:"Daha fazla bilgi edinin"}}},Tou={title:"Ağları Değiştir",wrong_network:"Yanlış ağ algılandı, devam etmek için bağlantıyı kesin veya değiştirin.",confirm:"Cüzdanında Onayla",switching_not_supported:"Cüzdanınız %{appName}. ağları değiştirmeyi desteklemiyor. Bunun yerine cüzdanınızdan ağları değiştirmeyi deneyin.",switching_not_supported_fallback:"Cüzdanınız bu uygulamadan ağları değiştirmeyi desteklemiyor. Bunun yerine cüzdanınızdaki ağları değiştirmeyi deneyin.",disconnect:"Bağlantıyı Kes",connected:"Bağlı"},Iou={disconnect:{label:"Bağlantıyı Kes"},copy_address:{label:"Adresi Kopyala",copied:"Kopyalandı!"},explorer:{label:"Explorer üzerinde daha fazlasını görün"},transactions:{description:"%{appName} işlem burada görünecek...",description_fallback:"İşlemleriniz burada görünecek...",recent:{title:"Son İşlemler"},clear:{label:"Hepsini Temizle"}}},Oou={argent:{qr_code:{step1:{description:"Cüzdanınıza daha hızlı erişim için Argent'i ana ekranınıza koyun.",title:"Argent uygulamasını açın"},step2:{description:"Bir cüzdan ve kullanıcı adı oluşturun veya mevcut bir cüzdanı içe aktarın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Taradıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi görünecektir.",title:"QR tarayıcı düğmesine dokunun"}}},bifrost:{qr_code:{step1:{description:"Daha hızlı erişim için Bifrost Cüzdan'ı ana ekranınıza koymanızı öneririz.",title:"Bifrost Cüzdan uygulamasını açın"},step2:{description:"Kurtarma ifadenizle bir cüzdan oluşturun veya içe aktarın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Tarama işlemi sonrasında, cüzdanınızı bağlamak için bir bağlantı istemi gözükecektir.",title:"Tarayıcı düğmesine dokunun"}}},bitget:{qr_code:{step1:{description:"Daha hızlı erişim için Bitget Cüzdanınızı ana ekranınıza koymanızı öneririz.",title:"Bitget Cüzdan uygulamasını açın"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklemeye emin olun. Gizli ifadenizi asla kimseyle paylaşmayın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Tarama yaptıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi görünecektir.",title:"Tarama düğmesine dokunun"}},extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Bitget Cüzdanını görev çubuğunuza sabitlemenizi öneririz.",title:"Bitget Cüzdan eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklemekten emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Cüzdanınızı kurduktan sonra, aşağıya tıklayın ve tarayıcıyı yenileyin ve eklentiyi yükleyin.",title:"Tarayıcınızı yenileyin"}}},bitski:{extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Bitski'yi görev çubuğunuza sabitlemenizi öneririz.",title:"Bitski eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi kimseyle paylaşmayın.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},coin98:{qr_code:{step1:{description:"Cüzdanınıza daha hızlı erişim için Coin98 Cüzdanınızı ana ekranınıza koymanızı öneririz.",title:"Coin98 Cüzdan uygulamasını açın"},step2:{description:"Telefonunuzdaki yedekleme özelliğimizi kullanarak cüzdanınızı kolayca yedekleyebilirsiniz.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Tarama işlemi yaptıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi görünecektir.",title:"CüzdanBağlantısı düğmesine dokunun"}},extension:{step1:{description:"Tarayıcınızın sağ üst köşesinde tıklayın ve Coin98 Cüzdanınızı kolay erişim için sabitleyin.",title:"Coin98 Cüzdan eklentisini yükleyin"},step2:{description:"Yeni bir cüzdan oluşturun veya mevcut birini içe aktarın.",title:"Bir cüzdan oluşturun veya içe aktarın"},step3:{description:"Coin98 Cüzdan'ı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},coinbase:{qr_code:{step1:{description:"Coinbase Cüzdan'ı ana ekranınıza koymanızı öneririz, böylece daha hızlı erişim sağlanır.",title:"Coinbase Wallet uygulamasını açın"},step2:{description:"Cüzdanınızı bulut yedekleme özelliğini kullanarak kolayca yedekleyebilirsiniz.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Tarama yaptıktan sonra, cüzdanınızı bağlamanız için bir bağlantı istemi belirecektir.",title:"Tarama düğmesine dokunun"}},extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Coinbase Wallet'ı görev çubuğunuza sabitlemenizi öneririz.",title:"Coinbase Wallet uzantısını yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedekleyin. Gizli ifadenizi asla başkalarıyla paylaşmayın.",title:"Cüzdan Oluştur veya İçe Aktar"},step3:{description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},core:{qr_code:{step1:{description:"Cüzdanınıza daha hızlı erişim için Core'u ana ekranınıza koymanızı öneririz.",title:"Core uygulamasını açın"},step2:{description:"Cüzdanınızın yedeğini telefonunuzda bulunan yedekleme özelliğimizi kullanarak kolayca alabilirsiniz.",title:"Cüzdan Oluştur veya İçe Aktar"},step3:{description:"Tarama yaptıktan sonra, cüzdanınızı bağlamak üzere bir bağlantı istemi görünecektir.",title:"WalletConnect düğmesine dokunun"}},extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Core'u görev çubuğunuza sabitlemenizi öneririz.",title:"Core eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklemeye dikkat edin. Gizli ifadenizi asla kimseyle paylaşmayın.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Cüzdanınızı kurduktan sonra, aşağıya tıklayarak tarayıcıyı yenileyin ve eklentiyi yükleyin.",title:"Tarayıcınızı yenileyin"}}},fox:{qr_code:{step1:{description:"Daha hızlı erişim için FoxWallet'ı ana ekranınıza koymanızı öneririz.",title:"FoxWallet uygulamasını açın"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi asla kimseyle paylaşmayın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Tarama yaptıktan sonra cüzdanınızı bağlamanız için bir bağlantı istemi belirecektir.",title:"Tarama düğmesine dokunun"}}},frontier:{qr_code:{step1:{description:"Daha hızlı erişim için Frontier Cüzdanını ana ekranınıza koymanızı öneririz.",title:"Frontier Cüzdan uygulamasını açın"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi asla kimseyle paylaşmayın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Taramadan sonra, cüzdanınızı bağlamak için bir bağlantı istemi görünecektir.",title:"Tarama düğmesine dokunun"}},extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Frontier Cüzdanını görev çubuğunuza sabitlemenizi öneririz.",title:"Frontier Cüzdan eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemeye ve eklentiyi yüklemeye başlamak için aşağıya tıklayın.",title:"Tarayıcınızı Yenileyin"}}},im_token:{qr_code:{step1:{title:"imToken uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için imToken uygulamasını ana ekranınıza koyun."},step2:{title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar",description:"Yeni bir cüzdan oluşturun veya mevcut bir cüzdanı içe aktarın."},step3:{title:"Sağ üst köşede Tarayıcı Simgesine dokunun",description:"Yeni Bağlantı'yı seçin, ardından QR kodunu tarayın ve bağlantıyı onaylamak için istemi onaylayın."}}},metamask:{qr_code:{step1:{title:"MetaMask uygulamasını açın",description:"Daha hızlı erişim için MetaMask'ı ana ekranınıza koymanızı öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedekleyin. Gizli kurtarma ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarama düğmesine dokunun",description:"Taramayı yaptıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi belirecektir."}},extension:{step1:{title:"MetaMask eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için MetaMask'i görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı Yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},okx:{qr_code:{step1:{title:"OKX Wallet uygulamasını açın",description:"Daha hızlı erişim için OKX Wallet'ı ana ekranınıza koymanızı öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli cümlenizi asla kimseyle paylaşmayın."},step3:{title:"Tarama düğmesine dokunun",description:"Tarama yaptıktan sonra, cüzdanınızı bağlama istemi görünecektir."}},extension:{step1:{title:"OKX Cüzdan eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için OKX Cüzdan'ı görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli cümlenizi asla kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},omni:{qr_code:{step1:{title:"Omni uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için Omni'yi ana ekranınıza ekleyin."},step2:{title:"Bir Cüzdan Oluşturun ya da İçe Aktarın",description:"Yeni bir cüzdan oluşturun veya mevcut birini içe aktarın."},step3:{title:"QR simgesine dokunun ve tarayın",description:"Ana ekranınızdaki QR simgesine dokunun, kodu tarayın ve bağlanmak için istemi onaylayın."}}},token_pocket:{qr_code:{step1:{title:"TokenPocket uygulamasını açın",description:"Daha hızlı erişim için TokenPocket'ı ana ekranınıza koymanızı öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya Cüzdanı İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedekleyin. Gizli ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarama düğmesine dokunun",description:"Taramayı yaptıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi belirecektir."}},extension:{step1:{title:"TokenPocket eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için TokenPocket'i görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli cümlenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemekte ve eklentiyi yüklemek için aşağıya tıklayın."}}},trust:{qr_code:{step1:{title:"Trust Wallet uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için Trust Wallet'ı ana ekranınıza koyun."},step2:{title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar",description:"Yeni bir cüzdan oluşturun veya mevcut bir tane içe aktarın."},step3:{title:"Ayarlar'da WalletConnect'e dokunun",description:"Yeni Bağlantı'yı seçin, ardından QR kodunu tarayın ve bağlanmak için istemi onaylayın."}},extension:{step1:{title:"Trust Wallet eklentisini yükleyin",description:"Tarayıcınızın sağ üst köşesine tıklayın ve kolay erişim için Trust Wallet'i sabitleyin."},step2:{title:"Bir cüzdan oluşturun veya içe aktarın",description:"Yeni bir cüzdan oluşturun veya mevcut bir tane içe aktarın."},step3:{title:"Tarayıcınızı yenileyin",description:"Trust Wallet'ı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},uniswap:{qr_code:{step1:{title:"Uniswap uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için Uniswap Cüzdanınızı ana ekranınıza ekleyin."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Yeni bir cüzdan oluşturun veya mevcut birini içe aktarın."},step3:{title:"QR ikonuna dokunun ve tarama yapın",description:"Ana ekranınızdaki QR simgesine dokunun, kodu tarayın ve bağlanmayı onaylamak için istemi kabul edin."}}},zerion:{qr_code:{step1:{title:"Zerion uygulamasını açın",description:"Daha hızlı erişim için Zerion'un ana ekranınıza konumlandırmanızı öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedekleyin. Gizli ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarama düğmesine basın",description:"Taramadan sonra, cüzdanınızı bağlamak için bir bağlantı istemi belirecektir."}},extension:{step1:{title:"Zerion eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için Zerion'u görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklemeye emin olun. Gizli ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},rainbow:{qr_code:{step1:{title:"Rainbow uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için Rainbow'u ana ekranınıza koymanızı öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Telefonunuzdaki yedekleme özelliğimizi kullanarak cüzdanınızı kolayca yedekleyebilirsiniz."},step3:{title:"Tarama düğmesine dokunun",description:"Tarama yaptıktan sonra, cüzdanınızı bağlamanız için bir bağlantı istemi belirecektir."}}},enkrypt:{extension:{step1:{description:"Cüzdanınıza daha hızlı erişim sağlamak için Enkrypt Cüzdan'ı görev çubuğunuza sabitlemenizi öneririz.",title:"Enkrypt Cüzdan eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},frame:{extension:{step1:{description:"Cüzdanınıza daha hızlı erişim sağlamak için Frame'ı görev çubuğunuza sabitlemenizi öneririz.",title:"Frame ve eşlik eden uzantıyı yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi asla başkasıyla paylaşmayın.",title:"Cüzdan Oluştur veya İçe Aktar"},step3:{description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve uzantıyı yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},one_key:{extension:{step1:{title:"OneKey Wallet uzantısını yükleyin",description:"Cüzdanınıza daha hızlı erişim için OneKey Wallet'ı görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},phantom:{extension:{step1:{title:"Phantom eklentisini yükleyin",description:"Cüzdanınıza daha kolay erişim sağlamak için Phantom'u görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli kurtarma ifadenizi kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},rabby:{extension:{step1:{title:"Rabby eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için Rabby'yi görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıdaki düğmeye tıklayın."}}},safeheron:{extension:{step1:{title:"Core eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için Safeheron'u görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},taho:{extension:{step1:{title:"Taho uzantısını yükleyin",description:"Cüzdanınıza daha hızlı erişim için Taho'yu görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},talisman:{extension:{step1:{title:"Talisman eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için Talisman'ı görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Ethereum Cüzdanı Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Kurtarma ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},xdefi:{extension:{step1:{title:"XDEFI Cüzdan eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için XDEFI Wallet'ı görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}}},Zg={connect_wallet:Fou,intro:Dou,connect:bou,connect_scan:wou,connector_group:xou,get:kou,get_options:_ou,get_mobile:Sou,get_instructions:Pou,chains:Tou,profile:Iou,wallet_connectors:Oou},Nou={label:"连接钱包"},Rou={title:"什么是钱包?",description:"钱包用于发送、接收、存储和显示数字资产。它也是一种新型的登录方式,无需在每个网站上创建新账户和密码。",digital_asset:{title:"您的数字资产之家",description:"钱包用于发送、接收、存储和显示像以太坊和NFT这样的数字资产。"},login:{title:"一种新的登录方式",description:"而不是在每个网站上创建新的账户和密码,只需连接您的钱包。"},get:{label:"获取钱包"},learn_more:{label:"了解更多"}},jou={label:"连接",title:"连接钱包",new_to_ethereum:{description:"对以太坊钱包不熟悉?",learn_more:{label:"了解更多"}},learn_more:{label:"了解更多"},recent:"近期",status:{opening:"正在打开 %{wallet}...",not_installed:"%{wallet} 尚未安装",not_available:"%{wallet} 不可用",confirm:"在扩展中确认连接"},secondary_action:{get:{description:"没有 %{wallet}吗?",label:"获取"},install:{label:"安装"},retry:{label:"重试"}},walletconnect:{description:{full:"需要官方的 WalletConnect 弹窗吗?",compact:"需要 WalletConnect 弹窗吗?"},open:{label:"打开"}}},zou={title:"使用 %{wallet}扫描",fallback_title:"使用您的手机扫描"},Mou={recommended:"推荐",other:"其他",popular:"流行",more:"更多",others:"其他的"},Uou={title:"获取一个钱包",action:{label:"获取"},mobile:{description:"移动钱包"},extension:{description:"浏览器扩展"},mobile_and_extension:{description:"移动钱包和扩展"},looking_for:{title:"不是你要找的吗?",mobile:{description:"在主屏幕上选择一个钱包,以开始使用不同的钱包提供商。"},desktop:{compact_description:"在主屏幕上选择一个钱包,以开始使用不同的钱包提供商。",wide_description:"在左侧选择一个钱包,以开始使用不同的钱包提供商。"}}},Lou={title:"开始使用 %{wallet}",short_title:"获取 %{wallet}",mobile:{title:"%{wallet} 用于移动",description:"使用移动钱包探索以太坊的世界。",download:{label:"获取应用"}},extension:{title:"%{wallet} 为 %{browser}",description:"从您最喜欢的网络浏览器直接访问您的钱包。",download:{label:"添加到 %{browser}"}}},$ou={title:"安装 %{wallet}",description:"用手机扫描下载 iOS 或 Android",continue:{label:"继续"}},Wou={mobile:{connect:{label:"连接"},learn_more:{label:"了解更多"}},extension:{refresh:{label:"刷新"},learn_more:{label:"了解更多"}}},qou={title:"切换网络",wrong_network:"检测到错误的网络,请切换或断开连接以继续。",confirm:"在钱包中确认",switching_not_supported:"您的钱包不支持从 %{appName}切换网络。请尝试从您的钱包内部切换网络。",switching_not_supported_fallback:"您的钱包不支持从此应用切换网络。尝试从您的钱包内切换网络。",disconnect:"断开连接",connected:"已连接"},Hou={disconnect:{label:"断开连接"},copy_address:{label:"复制地址",copied:"已复制!"},explorer:{label:"在浏览器上查看更多"},transactions:{description:"%{appName} 交易将会出现在这里...",description_fallback:"您的交易将会出现在这里...",recent:{title:"最近交易"},clear:{label:"清除全部"}}},Gou={argent:{qr_code:{step1:{description:"将 Argent 放到您的主屏幕上,以便更快地访问您的钱包。",title:"打开 Argent 应用"},step2:{description:"创建钱包和用户名,或导入现有钱包。",title:"创建或导入钱包"},step3:{description:"在您扫描后,将出现连接提示,供您连接您的钱包。",title:"点击扫描二维码按钮"}}},bifrost:{qr_code:{step1:{description:"我们建议将Bifrost Wallet放在您的主屏幕上,以便更快地访问。",title:"打开 Bifrost Wallet 应用"},step2:{description:"使用恢复短语创建或导入钱包。",title:"创建或导入钱包"},step3:{description:"在您扫描后,将出现连接提示,供您连接您的钱包。",title:"点击扫描按钮"}}},bitget:{qr_code:{step1:{description:"我们建议您将Bitget钱包添加到主屏幕,以便更快地访问。",title:"打开Bitget钱包应用程序"},step2:{description:"务必使用安全的方法备份您的钱包。决不与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现一个连接提示,供您连接您的钱包。",title:"点击扫描按钮"}},extension:{step1:{description:"我们建议您将Bitget钱包固定在任务栏,以便更快地访问您的钱包。",title:"安装Bitget Wallet扩展"},step2:{description:"确保使用安全的方式备份您的钱包。绝不与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置钱包后,点击下方刷新浏览器并加载扩展。",title:"刷新您的浏览器"}}},bitski:{extension:{step1:{description:"我们建议您将Bitski固定在任务栏上,以便更快地访问您的钱包。",title:"安装Bitski扩展"},step2:{description:"请确保用安全的方法备份您的钱包。绝不与任何人共享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置完您的钱包后,点击下方以刷新浏览器并加载扩展程序。",title:"刷新您的浏览器"}}},coin98:{qr_code:{step1:{description:"我们建议将Coin98钱包放在您的主屏幕上,以便更快地访问您的钱包。",title:"打开Coin98钱包应用程序"},step2:{description:"您可以使用我们的手机上的备份功能轻松备份您的钱包。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现一个连接提示,让您连接您的钱包。",title:"点击WalletConnect按钮"}},extension:{step1:{description:"点击浏览器右上角并固定Coin98钱包,以便轻松访问。",title:"安装Coin98钱包扩展"},step2:{description:"创建新钱包或导入现有钱包。",title:"创建或导入钱包。"},step3:{description:"设置完成Coin98 钱包后,单击下方以刷新浏览器并加载扩展程序。",title:"刷新您的浏览器"}}},coinbase:{qr_code:{step1:{description:"我们建议您把Coinbase钱包放到主屏幕上,以便更快地访问。",title:"打开Coinbase钱包应用"},step2:{description:"您可以轻松地使用云备份功能备份您的钱包。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现连接提示,供您连接您的钱包。",title:"点击扫描按钮"}},extension:{step1:{description:"我们建议您将Coinbase钱包固定在任务栏上,以便更快地访问您的钱包。",title:"安装Coinbase钱包扩展"},step2:{description:"务必使用安全的方法备份您的钱包。永远不要与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置好钱包后,点击下方以刷新浏览器并加载扩展。",title:"刷新您的浏览器"}}},core:{qr_code:{step1:{description:"我们建议您将Core添加到主屏幕,以便更快地访问您的钱包。",title:"打开Core应用程序"},step2:{description:"您可以使用我们的手机备份功能轻松备份您的钱包。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现连接提示,让您连接您的钱包。",title:"点击WalletConnect按钮"}},extension:{step1:{description:"我们建议将 Core 固定到任务栏,以便更快地访问您的钱包。",title:"安装 Core 扩展"},step2:{description:"一定要使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置好钱包后,点击下方以刷新浏览器并加载扩展。",title:"刷新你的浏览器"}}},fox:{qr_code:{step1:{description:"我们建议您将 FoxWallet 放到主屏幕上,以便更快的访问。",title:"打开 FoxWallet 应用"},step2:{description:"确保使用安全的方法备份您的钱包。永远不要与任何人共享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现连接提示,让您连接您的钱包。",title:"点击扫描按钮"}}},frontier:{qr_code:{step1:{description:"我们建议将 Frontier 钱包放在您的主屏幕上,以便更快地访问。",title:"打开 Frontier 钱包应用"},step2:{description:"确保使用安全的方法备份您的钱包。永远不要与任何人共享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现连接提示,让您连接您的钱包。",title:"点击扫描按钮"}},extension:{step1:{description:"我们建议您将Frontier钱包固定到任务栏,以便更快地访问您的钱包。",title:"安装Frontier钱包扩展"},step2:{description:"确保使用安全的方法备份您的钱包。永远不要与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置完成钱包后,点击下方刷新浏览器并加载扩展。",title:"刷新你的浏览器"}}},im_token:{qr_code:{step1:{title:"打开imToken应用",description:"将imToken应用放在您的主屏幕上,以更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"创建新钱包或导入已有的钱包。"},step3:{title:"点击右上角的扫描图标",description:"选择新连接,然后扫描二维码并确认提示以进行连接。"}}},metamask:{qr_code:{step1:{title:"打开 MetaMask 应用",description:"我们建议将 MetaMask 放在您的主屏幕上,以便更快地访问。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。永远不要与任何人分享你的秘密短语。"},step3:{title:"点击扫描按钮",description:"扫描后,将出现连接提示,以便你连接你的钱包。"}},extension:{step1:{title:"安装 MetaMask 扩展",description:"我们建议将MetaMask固定在您的任务栏上,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"请务必使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"一旦您设置好您的钱包,点击下面刷新浏览器并加载扩展。"}}},okx:{qr_code:{step1:{title:"打开OKX钱包应用程序",description:"我们建议将OKX钱包放在您的主屏幕上,以便更快地访问。"},step2:{title:"创建或导入钱包",description:"务必使用安全的方法备份您的钱包。千万不要与任何人分享您的秘密短语。"},step3:{title:"点击扫描按钮",description:"扫描后,将出现一个连接提示,让您连接您的钱包。"}},extension:{step1:{title:"安装 OKX 钱包扩展",description:"我们建议将 OKX 钱包固定到您的任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"务必使用安全的方法备份您的钱包。千万不要与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"一旦你设置好你的钱包,点击下方刷新浏览器并加载扩展。"}}},omni:{qr_code:{step1:{title:"打开Omni应用",description:"将Omni添加到你的主屏幕,以便更快地访问你的钱包。"},step2:{title:"创建或导入钱包",description:"创建新的钱包或导入现有的钱包。"},step3:{title:"点击QR图标并扫描",description:"点击首页的二维码图标,扫描代码并确认提示以连接。"}}},token_pocket:{qr_code:{step1:{title:"打开TokenPocket应用",description:"我们建议将TokenPocket放在您的主屏幕上以便更快的访问。"},step2:{title:"创建或导入钱包",description:"一定要使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"点击扫描按钮",description:"扫描后,将出现连接提示,供您连接钱包。"}},extension:{step1:{title:"安装TokenPocket扩展",description:"我们建议将TokenPocket固定到任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入一个钱包",description:"一定要使用安全的方法备份您的钱包。绝对不要与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下面刷新浏览器并加载扩展。"}}},trust:{qr_code:{step1:{title:"打开Trust Wallet应用",description:"将Trust Wallet放在主屏幕上,以便更快地访问您的钱包。"},step2:{title:"创建或导入一个钱包",description:"创建新的钱包或导入现有的钱包。"},step3:{title:"在设置中点击WalletConnect",description:"选择新的连接,然后扫描二维码并确认提示以进行连接。"}},extension:{step1:{title:"安装Trust Wallet扩展程序",description:"在浏览器的右上角点击并固定Trust Wallet以便于访问。"},step2:{title:"创建或导入钱包",description:"创建新的钱包或导入现有的钱包。"},step3:{title:"刷新您的浏览器",description:"设置Trust Wallet后,点击下面以刷新浏览器并加载扩展程序。"}}},uniswap:{qr_code:{step1:{title:"打开Uniswap应用",description:"将Uniswap钱包添加到您的主屏幕,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"创建新钱包或导入现有钱包。"},step3:{title:"点击QR图标并扫描",description:"在您的主屏幕上点击QR图标,扫描代码并确认提示以进行连接。"}}},zerion:{qr_code:{step1:{title:"打开Zerion应用",description:"我们建议将Zerion放在您的主屏幕上以便更快地访问。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方式备份你的钱包。绝对不要与任何人分享你的私人密语。"},step3:{title:"点击扫描按钮",description:"你扫描后,会出现一个连接提示让你连接你的钱包。"}},extension:{step1:{title:"安装 Zerion 扩展",description:"我们建议将 Zerion 固定在你的任务栏以便更快访问你的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份你的钱包。永远不要与任何人分享你的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置您的钱包后,点击下面以刷新浏览器并加载扩展程序。"}}},rainbow:{qr_code:{step1:{title:"打开 Rainbow 应用",description:"我们建议将 Rainbow 放在您的主屏幕上,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"您可以使用我们的备份功能在您的手机上轻松备份你的钱包。"},step3:{title:"点击扫描按钮",description:"扫描后,将出现连接提示,让您连接您的钱包。"}}},enkrypt:{extension:{step1:{description:"我们建议将Enkrypt Wallet固定到任务栏,以便更快地访问您的钱包。",title:"安装Enkrypt Wallet扩展"},step2:{description:"请确保使用安全方法备份您的钱包。永远不要与任何人分享您的秘密短语。",title:"创建钱包或导入钱包"},step3:{description:"设置钱包后,点击下面刷新浏览器并加载扩展。",title:"刷新您的浏览器"}}},frame:{extension:{step1:{description:"我们建议将Frame固定到任务栏,以便更快地访问您的钱包。",title:"安装Frame及其配套扩展"},step2:{description:"务必使用安全的方法备份您的钱包。决不与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置钱包后,点击下方以刷新浏览器并加载扩展。",title:"刷新你的浏览器"}}},one_key:{extension:{step1:{title:"安装OneKey Wallet扩展",description:"我们建议将OneKey Wallet固定到任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},phantom:{extension:{step1:{title:"安装 Phantom 扩展程序",description:"我们建议将 Phantom 固定到您的任务栏,以便更容易访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。切勿与任何人分享您的秘密恢复短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},rabby:{extension:{step1:{title:"安装 Rabby 扩展程序",description:"我们建议将 Rabby 固定在您的任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"一定要使用安全的方法备份您的钱包。切勿与任何人分享您的密钥短语。"},step3:{title:"刷新您的浏览器",description:"一旦您设置好您的钱包,点击以下以刷新浏览器并加载扩展程序。"}}},safeheron:{extension:{step1:{title:"安装 Core 扩展",description:"我们建议将 Safeheron 固定在您的任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},taho:{extension:{step1:{title:"安装Taho扩展程序",description:"我们建议将Taho固定在您的任务栏上,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},talisman:{extension:{step1:{title:"安装 Talisman 扩展程序",description:"我们建议将 Talisman 固定在任务栏上,以便更快地访问您的钱包。"},step2:{title:"创建或导入以太坊钱包",description:"确保使用安全的方法备份您的钱包。永远不要与任何人分享您的恢复短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},xdefi:{extension:{step1:{title:"安装 XDEFI 钱包扩展程序",description:"我们建议将XDEFI钱包固定到您的任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。永远不要与任何人共享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"一旦你设置好你的钱包,点击下面刷新浏览器和加载扩展。"}}}},uA={connect_wallet:Nou,intro:Rou,connect:jou,connect_scan:zou,connector_group:Mou,get:Uou,get_options:Lou,get_mobile:$ou,get_instructions:Wou,chains:qou,profile:Hou,wallet_connectors:Gou},Xi=new AD.I18n({ar:$g,"ar-AR":$g,en:Wg,"en-US":Wg,es:qg,"es-419":qg,fr:Hg,"fr-FR":Hg,hi:Gg,"hi-IN":Gg,id:Kg,"id-ID":Kg,ja:Qg,"ja-JP":Qg,ko:Vg,"ko-KR":Vg,pt:Jg,"pt-BR":Jg,ru:Yg,"ru-RU":Yg,th:Xg,"th-TH":Xg,tr:Zg,"tr-TR":Zg,zh:uA,"zh-CN":uA});Xi.defaultLocale="en-US";Xi.locale="en-US";Xi.enableFallback=!0;var Kou=()=>{var u;if(typeof window<"u"&&typeof navigator<"u"){if((u=navigator.languages)!=null&&u.length)return navigator.languages[0];if(navigator.language)return navigator.language}},r0=M.createContext(Xi),Qou=({children:u,locale:e})=>{const t=M.useMemo(()=>Kou(),[]),n=M.useMemo(()=>(e?Xi.locale=e:!e&&t&&(Xi.locale=t),Xi),[e,t]);return b.createElement(r0.Provider,{value:n},u)};function W5(u){return u!=null}var eA={iconBackground:"#96bedc",iconUrl:async()=>(await Wu(()=>import("./arbitrum-LYDBJZP3-eb03435b.js"),[])).default},tA={iconBackground:"#e84141",iconUrl:async()=>(await Wu(()=>import("./avalanche-TFPKP544-83c89fd5.js"),[])).default},nA={iconBackground:"#0052ff",iconUrl:async()=>(await Wu(()=>import("./base-3MIUIYGA-d99275a3.js"),[])).default},rA={iconBackground:"#ebac0e",iconUrl:async()=>(await Wu(()=>import("./bsc-S2GSW6VX-05341716.js"),[])).default},iA={iconBackground:"#002D74",iconUrl:async()=>(await Wu(()=>import("./cronos-DQKKIEX7-67e88155.js"),[])).default},lr={iconBackground:"#484c50",iconUrl:async()=>(await Wu(()=>import("./ethereum-4FY57XJF-20f89eb8.js"),[])).default},Vou={iconBackground:"#f9f7ec",iconUrl:async()=>(await Wu(()=>import("./hardhat-ARRFHFKB-687e462a.js"),[])).default},g1={iconBackground:"#ff5a57",iconUrl:async()=>(await Wu(()=>import("./optimism-UUP5Y7TB-96a3957f.js"),[])).default},aA={iconBackground:"#9f71ec",iconUrl:async()=>(await Wu(()=>import("./polygon-Z4QITDL7-953b4259.js"),[])).default},oA={iconBackground:"#000000",iconUrl:async()=>(await Wu(()=>import("./zora-KVO7WIOK-bf3eb886.js"),[])).default},sA={iconBackground:"#f9f7ec",iconUrl:async()=>(await Wu(()=>import("./zkSync-XRUC4ZHO-c03c3379.js"),[])).default},Jou={arbitrum:{chainId:42161,name:"Arbitrum",...eA},arbitrumGoerli:{chainId:421613,...eA},avalanche:{chainId:43114,...tA},avalancheFuji:{chainId:43113,...tA},base:{chainId:8453,name:"Base",...nA},baseGoerli:{chainId:84531,...nA},bsc:{chainId:56,name:"BSC",...rA},bscTestnet:{chainId:97,...rA},cronos:{chainId:25,...iA},cronosTestnet:{chainId:338,...iA},goerli:{chainId:5,...lr},hardhat:{chainId:31337,...Vou},holesky:{chainId:17e3,...lr},kovan:{chainId:42,...lr},localhost:{chainId:1337,...lr},mainnet:{chainId:1,name:"Ethereum",...lr},optimism:{chainId:10,name:"Optimism",...g1},optimismGoerli:{chainId:420,...g1},optimismKovan:{chainId:69,...g1},polygon:{chainId:137,name:"Polygon",...aA},polygonMumbai:{chainId:80001,...aA},rinkeby:{chainId:4,...lr},ropsten:{chainId:3,...lr},sepolia:{chainId:11155111,...lr},zora:{chainId:7777777,name:"Zora",...oA},zoraTestnet:{chainId:999,...oA},zkSync:{chainId:324,name:"zkSync",...sA},zkSyncTestnet:{chainId:280,...sA}},You=Object.fromEntries(Object.values(Jou).filter(W5).map(({chainId:u,...e})=>[u,e])),Xou=u=>u.map(e=>{var t,n,r,i;const a=(t=You[e.id])!=null?t:{};return{...e,name:(n=a.name)!=null?n:e.name,iconUrl:(r=e.iconUrl)!=null?r:a.iconUrl,iconBackground:(i=e.iconBackground)!=null?i:a.iconBackground}}),q5=M.createContext({chains:[]});function Zou({chains:u,children:e,initialChain:t}){return b.createElement(q5.Provider,{value:M.useMemo(()=>({chains:Xou(u),initialChainId:typeof t=="number"?t:t==null?void 0:t.id}),[u,t])},e)}var ql=()=>M.useContext(q5).chains,usu=()=>M.useContext(q5).initialChainId,esu=()=>{const u=ql();return M.useMemo(()=>{const e={};return u.forEach(t=>{e[t.id]=t}),e},[u])},tsu=()=>{const[u,e]=M.useReducer(()=>!0,!1);return M.useEffect(e,[e]),u};function pw(){const u=s5.id,e=Nl(),t=Array.isArray(e.chains)?e.chains:[],n=t==null?void 0:t.some(r=>(r==null?void 0:r.id)===u);return{chainId:u,enabled:n}}function hw(u){const{chainId:e,enabled:t}=pw(),{data:n}=Zz({chainId:e,enabled:t,name:u});return n}function Cw(u){const{chainId:e,enabled:t}=pw(),{data:n}=tM({address:u,chainId:e,enabled:t});return n}function H5(){var u;const{chain:e}=ma();return(u=e==null?void 0:e.id)!=null?u:null}var mw="rk-transactions";function nsu(u){try{const e=u?JSON.parse(u):{};return typeof e=="object"?e:{}}catch{return{}}}function lA(){return nsu(typeof localStorage<"u"?localStorage.getItem(mw):null)}var rsu=/^0x([A-Fa-f0-9]{64})$/;function isu(u){const e=[];return rsu.test(u.hash)||e.push("Invalid transaction hash"),typeof u.description!="string"&&e.push("Transaction must have a description"),typeof u.confirmations<"u"&&(!Number.isInteger(u.confirmations)||u.confirmations<1)&&e.push("Transaction confirmations must be a positiver integer"),e}function asu({provider:u}){let e=lA(),t=u;const n=new Set,r=new Map;function i(h){t=h}function a(h,B){var g,m;return(m=(g=e[h])==null?void 0:g[B])!=null?m:[]}function o(h,B,g){const m=isu(g);if(m.length>0)throw new Error(["Unable to add transaction",...m].join(` -`));E(h,B,y=>[{...g,status:"pending"},...y.filter(({hash:v})=>v!==g.hash)])}function s(h,B){E(h,B,()=>[])}function l(h,B,g,m){E(h,B,y=>y.map(v=>v.hash===g?{...v,status:m}:v))}async function c(h,B){await Promise.all(a(h,B).filter(g=>g.status==="pending").map(async g=>{const{confirmations:m,hash:y}=g,v=r.get(y);if(v)return await v;const w=t.waitForTransactionReceipt({confirmations:m,hash:y}).then(({status:D})=>{r.delete(y),D!==void 0&&l(h,B,y,D===0||D==="reverted"?"failed":"confirmed")});return r.set(y,w),await w}))}function E(h,B,g){var m,y;e=lA(),e[h]=(m=e[h])!=null?m:{};let v=0;const w=10,D=g((y=e[h][B])!=null?y:[]).filter(({status:p})=>p==="pending"?!0:v++<=w);e[h][B]=D.length>0?D:void 0,d(),f(),c(h,B)}function d(){localStorage.setItem(mw,JSON.stringify(e))}function f(){n.forEach(h=>h())}function C(h){return n.add(h),()=>{n.delete(h)}}return{addTransaction:o,clearTransactions:s,getTransactions:a,onChange:C,setProvider:i,waitForPendingTransactions:c}}var A1,gw=M.createContext(null);function osu({children:u}){const e=Nl(),{address:t}=K0(),n=H5(),[r]=M.useState(()=>A1??(A1=asu({provider:e})));return M.useEffect(()=>{r.setProvider(e)},[r,e]),M.useEffect(()=>{t&&n&&r.waitForPendingTransactions(t,n)},[r,t,n]),b.createElement(gw.Provider,{value:r},u)}function Aw(){const u=M.useContext(gw);if(!u)throw new Error("Transaction hooks must be used within RainbowKitProvider");return u}function yw(){const u=Aw(),{address:e}=K0(),t=H5(),[n,r]=M.useState(()=>u&&e&&t?u.getTransactions(e,t):[]);return M.useEffect(()=>{if(u&&e&&t)return r(u.getTransactions(e,t)),u.onChange(()=>{r(u.getTransactions(e,t))})},[u,e,t]),n}var cA=u=>typeof u=="function"?u():u;function ssu(u,{extends:e}={}){const t={...Ng(Mg,cA(u))};if(!e)return t;const n=Ng(Mg,cA(e));return Object.fromEntries(Object.entries(t).filter(([i,a])=>a!==n[i]))}function EA(u,e={}){return Object.entries(ssu(u,e)).map(([t,n])=>`${t}:${n.replace(/[:;{}]/g,"")};`).join("")}var Bw=()=>{const[u,e]=M.useState({height:void 0,width:void 0});return M.useEffect(()=>{function t(){e({height:window.innerHeight,width:window.innerWidth})}return window.addEventListener("resize",t),t(),()=>window.removeEventListener("resize",t)},[]),u},vw={appName:void 0,disclaimer:void 0,learnMoreUrl:"https://learn.rainbow.me/understanding-web3?utm_source=rainbowkit&utm_campaign=learnmore"},t4=M.createContext(vw),Fw=M.createContext(!1),L3={COMPACT:"compact",WIDE:"wide"},qd=M.createContext(L3.WIDE),G5=M.createContext(!1),lsu="rk-version";function csu({version:u}){localStorage.setItem(lsu,u)}function Esu(){const u=M.useCallback(()=>{csu({version:"1.1.3"})},[]);M.useEffect(()=>{u()},[u])}function dsu(u){const e=[];for(const t of u)e.push(...t);return e}function fsu(u,e){const t={};return u.forEach(n=>{const r=e(n);r&&(t[r]=n)}),t}function K5(){return typeof navigator<"u"&&/Version\/([0-9._]+).*Safari/.test(navigator.userAgent)}function psu(){return typeof document<"u"&&getComputedStyle(document.body).getPropertyValue("--arc-palette-focus")!==""}function Q5(){var u;if(typeof navigator>"u")return"Browser";const e=navigator.userAgent.toLowerCase();return(u=navigator.brave)!=null&&u.isBrave?"Brave":e.indexOf("edg/")>-1?"Edge":e.indexOf("op")>-1?"Opera":psu()?"Arc":e.indexOf("chrome")>-1?"Chrome":e.indexOf("firefox")>-1?"Firefox":K5()?"Safari":"Browser"}var hsu=u=>{var e,t,n,r,i,a,o,s,l,c,E,d;const f=Q5();return(d={Arc:(e=u==null?void 0:u.downloadUrls)==null?void 0:e.chrome,Brave:(t=u==null?void 0:u.downloadUrls)==null?void 0:t.chrome,Chrome:(n=u==null?void 0:u.downloadUrls)==null?void 0:n.chrome,Edge:((r=u==null?void 0:u.downloadUrls)==null?void 0:r.edge)||((i=u==null?void 0:u.downloadUrls)==null?void 0:i.chrome),Firefox:(a=u==null?void 0:u.downloadUrls)==null?void 0:a.firefox,Opera:((o=u==null?void 0:u.downloadUrls)==null?void 0:o.opera)||((s=u==null?void 0:u.downloadUrls)==null?void 0:s.chrome),Safari:(l=u==null?void 0:u.downloadUrls)==null?void 0:l.safari,Browser:(c=u==null?void 0:u.downloadUrls)==null?void 0:c.browserExtension}[f])!=null?d:(E=u==null?void 0:u.downloadUrls)==null?void 0:E.browserExtension},Csu=u=>{var e,t,n,r;return(r=Ba()?(e=u==null?void 0:u.downloadUrls)==null?void 0:e.ios:(t=u==null?void 0:u.downloadUrls)==null?void 0:t.android)!=null?r:(n=u==null?void 0:u.downloadUrls)==null?void 0:n.mobile},Dw="rk-recent";function msu(u){try{const e=u?JSON.parse(u):[];return Array.isArray(e)?e:[]}catch{return[]}}function bw(){return typeof localStorage<"u"?msu(localStorage.getItem(Dw)):[]}function gsu(u){return[...new Set(u)]}function Asu(u){const e=gsu([u,...bw()]);localStorage.setItem(Dw,JSON.stringify(e))}function Hd(){const u=ql(),e=usu(),{connectAsync:t,connectors:n}=Rz(),r=n;async function i(f,C){var h,B,g;const m=await C.getChainId(),y=await t({chainId:(g=e??((h=u.find(({id:v})=>v===m))==null?void 0:h.id))!=null?g:(B=u[0])==null?void 0:B.id,connector:C});return y&&Asu(f),y}async function a(f,C){try{return await i(f,C)}catch(h){if(!(h.name==="UserRejectedRequestError"||h.message==="Connection request reset. Please try again."))throw h}}const o=dsu(r.map(f=>{var C;return(C=f._wallets)!=null?C:[]})).sort((f,C)=>f.index-C.index),s=fsu(o,f=>f.id),l=3,c=bw().map(f=>s[f]).filter(W5).slice(0,l),E=[...c,...o.filter(f=>!c.includes(f))],d=[];return E.forEach(f=>{var C;if(!f)return;const h=c.includes(f);d.push({...f,connect:()=>f.connector.showQrModal?a(f.id,f.connector):i(f.id,f.connector),extensionDownloadUrl:hsu(f),groupName:f.groupName,mobileDownloadUrl:Csu(f),onConnecting:B=>f.connector.on("message",({type:g})=>g==="connecting"?B():void 0),ready:((C=f.installed)!=null?C:!0)&&f.connector.ready,recent:h,showWalletConnectModal:f.walletConnectModalConnector?()=>a(f.id,f.walletConnectModalConnector):void 0})}),d}var ww=async()=>(await Wu(()=>import("./assets-26YY4GVD-ebee59af.js"),[])).default,ysu=()=>Xr(ww),Bsu=()=>b.createElement(je,{background:"#d0d5de",borderRadius:"10",height:"48",src:ww,width:"48"}),xw=async()=>(await Wu(()=>import("./login-ZSMM5UYL-b8add756.js"),[])).default,vsu=()=>Xr(xw),Fsu=()=>b.createElement(je,{background:"#d0d5de",borderRadius:"10",height:"48",src:xw,width:"48"}),wu=b.forwardRef(({as:u="div",children:e,className:t,color:n,display:r,font:i="body",id:a,size:o="16",style:s,tabIndex:l,textAlign:c="inherit",weight:E="regular",testId:d},f)=>b.createElement(N,{as:u,className:t,color:n,display:r,fontFamily:i,fontSize:o,fontWeight:E,id:a,ref:f,style:s,tabIndex:l,textAlign:c,testId:d},e));wu.displayName="Text";var Dsu={large:{fontSize:"16",paddingX:"24",paddingY:"10"},medium:{fontSize:"14",height:"28",paddingX:"12",paddingY:"4"},small:{fontSize:"14",paddingX:"10",paddingY:"5"}};function _0({disabled:u=!1,href:e,label:t,onClick:n,rel:r="noreferrer noopener",size:i="medium",target:a="_blank",testId:o,type:s="primary"}){const l=s==="primary",c=i!=="large",E=qe(),d=u?"actionButtonSecondaryBackground":l?"accentColor":c?"actionButtonSecondaryBackground":null,{fontSize:f,height:C,paddingX:h,paddingY:B}=Dsu[i],g=!E||!c;return b.createElement(N,{...e?u?{}:{as:"a",href:e,rel:r,target:a}:{as:"button",type:"button"},onClick:u?void 0:n,...g?{borderColor:E&&!c&&!l?"actionButtonBorderMobile":"actionButtonBorder",borderStyle:"solid",borderWidth:"1"}:{},borderRadius:"actionButton",className:!u&&Pe({active:"shrinkSm",hover:"grow"}),display:"block",paddingX:h,paddingY:B,style:{willChange:"transform"},testId:o,textAlign:"center",transition:"transform",...d?{background:d}:{},...C?{height:C}:{}},b.createElement(wu,{color:u?"modalTextSecondary":l?"accentColorForeground":"accentColor",size:f,weight:"bold"},t))}var bsu=()=>qe()?b.createElement("svg",{"aria-hidden":!0,fill:"none",height:"11.5",viewBox:"0 0 11.5 11.5",width:"11.5",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M2.13388 0.366117C1.64573 -0.122039 0.854272 -0.122039 0.366117 0.366117C-0.122039 0.854272 -0.122039 1.64573 0.366117 2.13388L3.98223 5.75L0.366117 9.36612C-0.122039 9.85427 -0.122039 10.6457 0.366117 11.1339C0.854272 11.622 1.64573 11.622 2.13388 11.1339L5.75 7.51777L9.36612 11.1339C9.85427 11.622 10.6457 11.622 11.1339 11.1339C11.622 10.6457 11.622 9.85427 11.1339 9.36612L7.51777 5.75L11.1339 2.13388C11.622 1.64573 11.622 0.854272 11.1339 0.366117C10.6457 -0.122039 9.85427 -0.122039 9.36612 0.366117L5.75 3.98223L2.13388 0.366117Z",fill:"currentColor"})):b.createElement("svg",{"aria-hidden":!0,fill:"none",height:"10",viewBox:"0 0 10 10",width:"10",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M1.70711 0.292893C1.31658 -0.0976311 0.683417 -0.0976311 0.292893 0.292893C-0.0976311 0.683417 -0.0976311 1.31658 0.292893 1.70711L3.58579 5L0.292893 8.29289C-0.0976311 8.68342 -0.0976311 9.31658 0.292893 9.70711C0.683417 10.0976 1.31658 10.0976 1.70711 9.70711L5 6.41421L8.29289 9.70711C8.68342 10.0976 9.31658 10.0976 9.70711 9.70711C10.0976 9.31658 10.0976 8.68342 9.70711 8.29289L6.41421 5L9.70711 1.70711C10.0976 1.31658 10.0976 0.683417 9.70711 0.292893C9.31658 -0.0976311 8.68342 -0.0976311 8.29289 0.292893L5 3.58579L1.70711 0.292893Z",fill:"currentColor"})),bs=({"aria-label":u="Close",onClose:e})=>{const t=qe();return b.createElement(N,{alignItems:"center","aria-label":u,as:"button",background:"closeButtonBackground",borderColor:"actionButtonBorder",borderRadius:"full",borderStyle:"solid",borderWidth:t?"0":"1",className:Pe({active:"shrinkSm",hover:"growLg"}),color:"closeButton",display:"flex",height:t?"30":"28",justifyContent:"center",onClick:e,style:{willChange:"transform"},transition:"default",type:"button",width:t?"30":"28"},b.createElement(bsu,null))},kw=async()=>(await Wu(()=>import("./sign-FZVB2CS6-f23ac888.js"),[])).default;function wsu({onClose:u}){const[{status:e,...t},n]=b.useState({status:"idle"}),r=Uru(),i=M.useCallback(async()=>{try{const d=await r.getNonce();n(f=>({...f,nonce:d}))}catch{n(d=>({...d,errorMessage:"Error preparing message, please retry!",status:"idle"}))}},[r]),a=M.useRef(!1);b.useEffect(()=>{a.current||(a.current=!0,i())},[i]);const o=qe(),{address:s}=K0(),{chain:l}=ma(),{signMessageAsync:c}=Lz(),E=async()=>{try{const d=l==null?void 0:l.id,{nonce:f}=t;if(!s||!d||!f)return;n(B=>({...B,errorMessage:void 0,status:"signing"}));const C=r.createMessage({address:s,chainId:d,nonce:f});let h;try{h=await c({message:r.getMessageBody({message:C})})}catch(B){return B instanceof _e?n(g=>({...g,status:"idle"})):n(g=>({...g,errorMessage:"Error signing message, please retry!",status:"idle"}))}n(B=>({...B,status:"verifying"}));try{if(await r.verify({message:C,signature:h}))return;throw new Error}catch{return n(B=>({...B,errorMessage:"Error verifying signature, please retry!",status:"idle"}))}}catch{n({errorMessage:"Oops, something went wrong!",status:"idle"})}};return b.createElement(N,{position:"relative"},b.createElement(N,{display:"flex",paddingRight:"16",paddingTop:"16",position:"absolute",right:"0"},b.createElement(bs,{onClose:u})),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:o?"32":"24",padding:"24",paddingX:"18",style:{paddingTop:o?"60px":"36px"}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:o?"6":"4",style:{maxWidth:o?320:280}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:o?"32":"16"},b.createElement(je,{height:40,src:kw,width:40}),b.createElement(wu,{color:"modalText",size:o?"20":"18",textAlign:"center",weight:"heavy"},"Verify your account")),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:o?"16":"12"},b.createElement(wu,{color:"modalTextSecondary",size:o?"16":"14",textAlign:"center"},"To finish connecting, you must sign a message in your wallet to verify that you are the owner of this account."),e==="idle"&&t.errorMessage?b.createElement(wu,{color:"error",size:o?"16":"14",textAlign:"center",weight:"bold"},t.errorMessage):null)),b.createElement(N,{alignItems:o?void 0:"center",display:"flex",flexDirection:"column",gap:"8",width:"full"},b.createElement(_0,{disabled:!t.nonce||e==="signing"||e==="verifying",label:t.nonce?e==="signing"?"Waiting for signature...":e==="verifying"?"Verifying signature...":"Send message":"Preparing message...",onClick:E,size:o?"large":"medium",testId:"auth-message-button"}),o?b.createElement(_0,{label:"Cancel",onClick:u,size:"large",type:"secondary"}):b.createElement(N,{as:"button",borderRadius:"full",className:Pe({active:"shrink",hover:"grow"}),display:"block",onClick:u,paddingX:"10",paddingY:"5",rel:"noreferrer",style:{willChange:"transform"},target:"_blank",transition:"default"},b.createElement(wu,{color:"closeButton",size:o?"16":"14",weight:"bold"},"Cancel")))))}function xsu(){const u=ql(),e=Hd(),t=Wd()==="unauthenticated",n=M.useCallback(()=>{Xr(...e.map(r=>r.iconUrl),...u.map(r=>r.iconUrl).filter(W5)),qe()||(ysu(),vsu()),t&&Xr(kw)},[e,u,t]);M.useEffect(()=>{n()},[n])}var _w="WALLETCONNECT_DEEPLINK_CHOICE";function ksu({mobileUri:u,name:e}){localStorage.setItem(_w,JSON.stringify({href:u.split("?")[0],name:e}))}function _su(){localStorage.removeItem(_w)}var Sw=M.createContext(void 0),Sf="data-rk",Pw=u=>({[Sf]:u||""}),Ssu=u=>{if(u&&!/^[a-zA-Z0-9_]+$/.test(u))throw new Error(`Invalid ID: ${u}`);return u?`[${Sf}="${u}"]`:`[${Sf}]`},Psu=()=>{const u=M.useContext(Sw);return Pw(u)},Tsu=Ay();function Isu({appInfo:u,avatar:e,chains:t,children:n,coolMode:r=!1,id:i,initialChain:a,locale:o,modalSize:s=L3.WIDE,showRecentTransactions:l=!1,theme:c=Tsu}){if(xsu(),Esu(),K0({onDisconnect:_su}),typeof c=="function")throw new Error('A theme function was provided to the "theme" prop instead of a theme object. You must execute this function to get the resulting theme object.');const E=Ssu(i),d={...vw,...u},f=e??Ew,{width:C}=Bw(),h=C&&C{const t=u.querySelectorAll("button:not(:disabled), a[href]");t.length!==0&&t[e==="end"?t.length-1:0].focus()};function Rsu(u){const e=M.useRef(null);return M.useEffect(()=>{const t=document.activeElement;return()=>{var n;(n=t.focus)==null||n.call(t)}},[]),M.useEffect(()=>{if(e.current){const t=e.current.querySelector("[data-auto-focus]");t?t.focus():e.current.focus()}},[e]),b.createElement(b.Fragment,null,b.createElement("div",{onFocus:M.useCallback(()=>e.current&&dA(e.current,"end"),[]),tabIndex:0}),b.createElement("div",{ref:e,style:{outline:"none"},tabIndex:-1,...u}),b.createElement("div",{onFocus:M.useCallback(()=>e.current&&dA(e.current,"start"),[]),tabIndex:0}))}var jsu=u=>u.stopPropagation();function u2({children:u,onClose:e,open:t,titleId:n}){M.useEffect(()=>{const l=c=>t&&c.key==="Escape"&&e();return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[t,e]);const[r,i]=M.useState(!0);M.useEffect(()=>{i(getComputedStyle(window.document.body).overflow!=="hidden")},[]);const a=M.useCallback(()=>e(),[e]),o=Psu(),s=qe();return b.createElement(b.Fragment,null,t?Nv.createPortal(b.createElement(qnu,{enabled:r},b.createElement(N,{...o},b.createElement(N,{...o,alignItems:s?"flex-end":"center","aria-labelledby":n,"aria-modal":!0,className:Nsu,onClick:a,position:"fixed",role:"dialog"},b.createElement(Rsu,{className:Osu,onClick:jsu,role:"document"},u)))),document.body):null)}var zsu="_1ckjpok7",Msu="_1ckjpok1 ju367vb0 ju367vdl ju367vp ju367vt ju367vv ju367vef ju367va ju367v10 ju367v67 ju367v8m",Usu="_1ckjpok4 _1ckjpok1 ju367vb0 ju367vdl ju367vp ju367vt ju367vv ju367vef ju367va ju367v10 ju367v67 ju367v8m",Lsu="_1ckjpok6 ju367vq",$su="_1ckjpok3 _1ckjpok1 ju367vb0 ju367vdl ju367vp ju367vt ju367vv ju367vef ju367va ju367v10 ju367v67 ju367v8m",Wsu="_1ckjpok2 _1ckjpok1 ju367vb0 ju367vdl ju367vp ju367vt ju367vv ju367vef ju367va ju367v10 ju367v67 ju367v8m";function e2({bottomSheetOnMobile:u=!1,children:e,marginTop:t,padding:n="16",paddingBottom:r,wide:i=!1}){const a=qe(),s=M.useContext(qd)===L3.COMPACT;return b.createElement(N,{marginTop:t},b.createElement(N,{className:[i?a?Wsu:s?Usu:$su:Msu,a?Lsu:null,a&&u?zsu:null].join(" ")},b.createElement(N,{padding:n,paddingBottom:r??n},e)))}var fA=["k","m","b","t"];function xc(u,e=1){return u.toString().replace(new RegExp(`(.+\\.\\d{${e}})\\d+`),"$1").replace(/(\.[1-9]*)0+$/,"$1").replace(/\.$/,"")}function Tw(u){if(u<1)return xc(u,3);if(u<10**2)return xc(u,2);if(u<10**4)return new Intl.NumberFormat().format(parseFloat(xc(u,1)));const e=10**1;let t=String(u);for(let n=fA.length-1;n>=0;n--){const r=10**((n+1)*3);if(r<=u){u=u*e/r/e,t=xc(u,1)+fA[n];break}}return t}function Iw(u){return u.length<4+4?u:`${u.substring(0,4)}…${u.substring(u.length-4)}`}function Ow(u){const e=u.split("."),t=e.pop();return e.join(".").length>24?`${e.join(".").substring(0,24)}...`:`${e.join(".")}.${t}`}var qsu=()=>b.createElement("svg",{fill:"none",height:"13",viewBox:"0 0 13 13",width:"13",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M4.94568 12.2646C5.41052 12.2646 5.77283 12.0869 6.01892 11.7109L12.39 1.96973C12.5677 1.69629 12.6429 1.44336 12.6429 1.2041C12.6429 0.561523 12.1644 0.0966797 11.5082 0.0966797C11.057 0.0966797 10.7767 0.260742 10.5033 0.691406L4.9115 9.50977L2.07458 5.98926C1.82166 5.68848 1.54822 5.55176 1.16541 5.55176C0.502319 5.55176 0.0238037 6.02344 0.0238037 6.66602C0.0238037 6.95312 0.112671 7.20605 0.358765 7.48633L3.88611 11.7588C4.18005 12.1074 4.50818 12.2646 4.94568 12.2646Z",fill:"currentColor"})),Hsu=()=>b.createElement("svg",{fill:"none",height:"16",viewBox:"0 0 17 16",width:"17",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M3.04236 12.3027H4.18396V13.3008C4.18396 14.8525 5.03845 15.7002 6.59705 15.7002H13.6244C15.183 15.7002 16.0375 14.8525 16.0375 13.3008V6.24609C16.0375 4.69434 15.183 3.84668 13.6244 3.84668H12.4828V2.8418C12.4828 1.29688 11.6283 0.442383 10.0697 0.442383H3.04236C1.48376 0.442383 0.629272 1.29004 0.629272 2.8418V9.90332C0.629272 11.4551 1.48376 12.3027 3.04236 12.3027ZM3.23376 10.5391C2.68689 10.5391 2.39294 10.2656 2.39294 9.68457V3.06055C2.39294 2.47949 2.68689 2.21289 3.23376 2.21289H9.8783C10.4252 2.21289 10.7191 2.47949 10.7191 3.06055V3.84668H6.59705C5.03845 3.84668 4.18396 4.69434 4.18396 6.24609V10.5391H3.23376ZM6.78845 13.9365C6.24158 13.9365 5.94763 13.6699 5.94763 13.0889V6.45801C5.94763 5.87695 6.24158 5.61035 6.78845 5.61035H13.433C13.9799 5.61035 14.2738 5.87695 14.2738 6.45801V13.0889C14.2738 13.6699 13.9799 13.9365 13.433 13.9365H6.78845Z",fill:"currentColor"})),Gsu=()=>b.createElement("svg",{fill:"none",height:"16",viewBox:"0 0 18 16",width:"18",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M2.67834 15.5908H9.99963C11.5514 15.5908 12.399 14.7432 12.399 13.1777V10.2656H10.6354V12.9863C10.6354 13.5332 10.3688 13.8271 9.78772 13.8271H2.89026C2.3092 13.8271 2.0426 13.5332 2.0426 12.9863V3.15625C2.0426 2.60254 2.3092 2.30859 2.89026 2.30859H9.78772C10.3688 2.30859 10.6354 2.60254 10.6354 3.15625V5.89746H12.399V2.95801C12.399 1.39941 11.5514 0.544922 9.99963 0.544922H2.67834C1.12659 0.544922 0.278931 1.39941 0.278931 2.95801V13.1777C0.278931 14.7432 1.12659 15.5908 2.67834 15.5908ZM7.43616 8.85059H14.0875L15.0924 8.78906L14.566 9.14453L13.6842 9.96484C13.5406 10.1016 13.4586 10.2861 13.4586 10.4844C13.4586 10.8398 13.7321 11.168 14.1217 11.168C14.3199 11.168 14.4635 11.0928 14.6002 10.9561L16.7809 8.68652C16.986 8.48145 17.0543 8.27637 17.0543 8.06445C17.0543 7.85254 16.986 7.64746 16.7809 7.43555L14.6002 5.17285C14.4635 5.03613 14.3199 4.9541 14.1217 4.9541C13.7321 4.9541 13.4586 5.27539 13.4586 5.6377C13.4586 5.83594 13.5406 6.02734 13.6842 6.15723L14.566 6.98438L15.0924 7.33984L14.0875 7.27148H7.43616C7.01917 7.27148 6.65686 7.62012 6.65686 8.06445C6.65686 8.50195 7.01917 8.85059 7.43616 8.85059Z",fill:"currentColor"}));function Ksu(){const u=Aw(),{address:e}=K0(),t=H5();return M.useCallback(()=>{if(!e||!t)throw new Error("No address or chain ID found");u.clearTransactions(e,t)},[u,e,t])}var Nw=u=>{var e,t;return(t=(e=u==null?void 0:u.blockExplorers)==null?void 0:e.default)==null?void 0:t.url},Rw=()=>b.createElement("svg",{fill:"none",height:"19",viewBox:"0 0 20 19",width:"20",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M10 18.9443C15.0977 18.9443 19.2812 14.752 19.2812 9.6543C19.2812 4.56543 15.0889 0.373047 10 0.373047C4.90234 0.373047 0.71875 4.56543 0.71875 9.6543C0.71875 14.752 4.91113 18.9443 10 18.9443ZM10 16.6328C6.1416 16.6328 3.03906 13.5215 3.03906 9.6543C3.03906 5.7959 6.13281 2.68457 10 2.68457C13.8584 2.68457 16.9697 5.7959 16.9697 9.6543C16.9785 13.5215 13.8672 16.6328 10 16.6328ZM12.7158 12.1416C13.2432 12.1416 13.5684 11.7549 13.5684 11.1836V7.19336C13.5684 6.44629 13.1377 6.05957 12.417 6.05957H8.40918C7.8291 6.05957 7.45117 6.38477 7.45117 6.91211C7.45117 7.43945 7.8291 7.77344 8.40918 7.77344H9.69238L10.7207 7.63281L9.53418 8.67871L6.73047 11.4912C6.53711 11.6758 6.41406 11.9395 6.41406 12.2031C6.41406 12.7832 6.85352 13.1699 7.39844 13.1699C7.68848 13.1699 7.92578 13.0732 8.1543 12.8623L10.9316 10.0762L11.9775 8.89844L11.8545 9.98828V11.1836C11.8545 11.7725 12.1885 12.1416 12.7158 12.1416Z",fill:"currentColor"})),Qsu=()=>b.createElement("svg",{fill:"none",height:"19",viewBox:"0 0 20 19",width:"20",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M10 18.9443C15.0977 18.9443 19.2812 14.752 19.2812 9.6543C19.2812 4.56543 15.0889 0.373047 10 0.373047C4.90234 0.373047 0.71875 4.56543 0.71875 9.6543C0.71875 14.752 4.91113 18.9443 10 18.9443ZM10 16.6328C6.1416 16.6328 3.03906 13.5215 3.03906 9.6543C3.03906 5.7959 6.13281 2.68457 10 2.68457C13.8584 2.68457 16.9697 5.7959 16.9697 9.6543C16.9785 13.5215 13.8672 16.6328 10 16.6328ZM7.29297 13.3018C7.58301 13.3018 7.81152 13.2139 7.99609 13.0205L10 11.0166L12.0127 13.0205C12.1973 13.2051 12.4258 13.3018 12.707 13.3018C13.2432 13.3018 13.6562 12.8887 13.6562 12.3525C13.6562 12.0977 13.5508 11.8691 13.3662 11.6934L11.3535 9.67188L13.375 7.6416C13.5596 7.44824 13.6562 7.22852 13.6562 6.98242C13.6562 6.44629 13.2432 6.0332 12.7158 6.0332C12.4346 6.0332 12.2148 6.12109 12.0215 6.31445L10 8.32715L7.9873 6.32324C7.80273 6.12988 7.58301 6.04199 7.29297 6.04199C6.76562 6.04199 6.35254 6.45508 6.35254 6.99121C6.35254 7.2373 6.44922 7.46582 6.63379 7.6416L8.65527 9.67188L6.63379 11.6934C6.44922 11.8691 6.35254 12.1064 6.35254 12.3525C6.35254 12.8887 6.76562 13.3018 7.29297 13.3018Z",fill:"currentColor"})),Vsu=()=>b.createElement("svg",{fill:"none",height:"20",viewBox:"0 0 20 20",width:"20",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M10 19.4443C15.0977 19.4443 19.2812 15.252 19.2812 10.1543C19.2812 5.06543 15.0889 0.873047 10 0.873047C4.90234 0.873047 0.71875 5.06543 0.71875 10.1543C0.71875 15.252 4.91113 19.4443 10 19.4443ZM10 17.1328C6.1416 17.1328 3.03906 14.0215 3.03906 10.1543C3.03906 6.2959 6.13281 3.18457 10 3.18457C13.8584 3.18457 16.9697 6.2959 16.9697 10.1543C16.9785 14.0215 13.8672 17.1328 10 17.1328ZM9.07715 14.3379C9.4375 14.3379 9.7627 14.1533 9.97363 13.8369L13.7441 8.00977C13.8848 7.79883 13.9814 7.5791 13.9814 7.36816C13.9814 6.84961 13.5244 6.48926 13.0322 6.48926C12.707 6.48926 12.4258 6.66504 12.2148 7.0166L9.05957 12.0967L7.5918 10.2949C7.37207 10.0225 7.13477 9.9082 6.84473 9.9082C6.33496 9.9082 5.92188 10.3125 5.92188 10.8223C5.92188 11.0684 6.00098 11.2793 6.18555 11.5078L8.1543 13.8545C8.40918 14.1709 8.70801 14.3379 9.07715 14.3379Z",fill:"currentColor"})),Jsu=u=>{switch(u){case"pending":return U3;case"confirmed":return Vsu;case"failed":return Qsu;default:return U3}};function Ysu({tx:u}){const e=qe(),t=Jsu(u.status),n=u.status==="failed"?"error":"accentColor",{chain:r}=ma(),i=u.status==="confirmed"?"Confirmed":u.status==="failed"?"Failed":"Pending",a=Nw(r);return b.createElement(b.Fragment,null,b.createElement(N,{...a?{as:"a",background:{hover:"profileForeground"},borderRadius:"menuButton",className:Pe({active:"shrink"}),href:`${a}/tx/${u.hash}`,rel:"noreferrer noopener",target:"_blank",transition:"default"}:{},color:"modalText",display:"flex",flexDirection:"row",justifyContent:"space-between",padding:"8",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:e?"16":"14"},b.createElement(N,{color:n},b.createElement(t,null)),b.createElement(N,{display:"flex",flexDirection:"column",gap:e?"3":"1"},b.createElement(N,null,b.createElement(wu,{color:"modalText",font:"body",size:e?"16":"14",weight:"bold"},u==null?void 0:u.description)),b.createElement(N,null,b.createElement(wu,{color:u.status==="pending"?"modalTextSecondary":n,font:"body",size:"14",weight:e?"medium":"regular"},i)))),a&&b.createElement(N,{alignItems:"center",color:"modalTextDim",display:"flex"},b.createElement(Rw,null))))}var Xsu=3;function Zsu({address:u}){const e=yw(),t=Ksu(),{chain:n}=ma(),r=Nw(n),i=e.slice(0,Xsu),a=i.length>0,o=qe(),{appName:s}=M.useContext(t4),l=M.useContext(r0);return b.createElement(b.Fragment,null,b.createElement(N,{display:"flex",flexDirection:"column",gap:"10",paddingBottom:"2",paddingTop:"16",paddingX:o?"8":"18"},a&&b.createElement(N,{paddingBottom:o?"4":"0",paddingTop:"8",paddingX:o?"12":"6"},b.createElement(N,{display:"flex",justifyContent:"space-between"},b.createElement(wu,{color:"modalTextSecondary",size:o?"16":"14",weight:"semibold"},l.t("profile.transactions.recent.title")),b.createElement(N,{style:{marginBottom:-6,marginLeft:-10,marginRight:-10,marginTop:-6}},b.createElement(N,{as:"button",background:{hover:"profileForeground"},borderRadius:"actionButton",className:Pe({active:"shrink"}),onClick:t,paddingX:o?"8":"12",paddingY:o?"4":"5",transition:"default",type:"button"},b.createElement(wu,{color:"modalTextSecondary",size:o?"16":"14",weight:"semibold"},l.t("profile.transactions.clear.label")))))),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},a?i.map(c=>b.createElement(Ysu,{key:c.hash,tx:c})):b.createElement(b.Fragment,null,b.createElement(N,{padding:o?"12":"8"},b.createElement(wu,{color:"modalTextDim",size:o?"16":"14",weight:o?"medium":"bold"},s?l.t("profile.transactions.description",{appName:s}):l.t("profile.transactions.description_fallback"))),o&&b.createElement(N,{background:"generalBorderDim",height:"1",marginX:"12",marginY:"8"})))),r&&b.createElement(N,{paddingBottom:"18",paddingX:o?"8":"18"},b.createElement(N,{alignItems:"center",as:"a",background:{hover:"profileForeground"},borderRadius:"menuButton",className:Pe({active:"shrink"}),color:"modalTextDim",display:"flex",flexDirection:"row",href:`${r}/address/${u}`,justifyContent:"space-between",paddingX:"8",paddingY:"12",rel:"noreferrer noopener",style:{willChange:"transform"},target:"_blank",transition:"default",width:"full",...o?{paddingLeft:"12"}:{}},b.createElement(wu,{color:"modalText",font:"body",size:o?"16":"14",weight:o?"semibold":"bold"},l.t("profile.explorer.label")),b.createElement(Rw,null))))}function pA({action:u,icon:e,label:t,testId:n,url:r}){const i=qe();return b.createElement(N,{...r?{as:"a",href:r,rel:"noreferrer noopener",target:"_blank"}:{as:"button",type:"button"},background:{base:"profileAction",...i?{}:{hover:"profileActionHover"}},borderRadius:"menuButton",boxShadow:"profileDetailsAction",className:Pe({active:"shrinkSm",hover:i?void 0:"grow"}),display:"flex",onClick:u,padding:i?"6":"8",style:{willChange:"transform"},testId:n,transition:"default",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"1",justifyContent:"center",paddingTop:"2",width:"full"},b.createElement(N,{color:"modalText",height:"max"},e),b.createElement(N,null,b.createElement(wu,{color:"modalText",size:i?"12":"13",weight:"semibold"},t))))}function u4u({address:u,balanceData:e,ensAvatar:t,ensName:n,onClose:r,onDisconnect:i}){const a=M.useContext(G5),[o,s]=M.useState(!1),l=M.useContext(r0),c=M.useCallback(()=>{u&&(navigator.clipboard.writeText(u),s(!0))},[u]);if(M.useEffect(()=>{if(o){const B=setTimeout(()=>{s(!1)},1500);return()=>clearTimeout(B)}},[o]),!u)return null;const E=n?Ow(n):Iw(u),d=e==null?void 0:e.formatted,f=d?Tw(parseFloat(d)):void 0,C="rk_profile_title",h=qe();return b.createElement(b.Fragment,null,b.createElement(N,{display:"flex",flexDirection:"column"},b.createElement(N,{background:"profileForeground",padding:"16"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:h?"16":"12",justifyContent:"center",margin:"8",style:{textAlign:"center"}},b.createElement(N,{style:{position:"absolute",right:16,top:16,willChange:"transform"}},b.createElement(bs,{onClose:r}))," ",b.createElement(N,{marginTop:h?"24":"0"},b.createElement(fw,{address:u,imageUrl:t,size:h?82:74})),b.createElement(N,{display:"flex",flexDirection:"column",gap:h?"4":"0",textAlign:"center"},b.createElement(N,{textAlign:"center"},b.createElement(wu,{as:"h1",color:"modalText",id:C,size:h?"20":"18",weight:"heavy"},E)),e&&b.createElement(N,{textAlign:"center"},b.createElement(wu,{as:"h1",color:"modalTextSecondary",id:C,size:h?"16":"14",weight:"semibold"},f," ",e.symbol)))),b.createElement(N,{display:"flex",flexDirection:"row",gap:"8",margin:"2",marginTop:"16"},b.createElement(pA,{action:c,icon:o?b.createElement(qsu,null):b.createElement(Hsu,null),label:o?l.t("profile.copy_address.copied"):l.t("profile.copy_address.label")}),b.createElement(pA,{action:i,icon:b.createElement(Gsu,null),label:l.t("profile.disconnect.label"),testId:"disconnect-button"}))),a&&b.createElement(b.Fragment,null,b.createElement(N,{background:"generalBorder",height:"1",marginTop:"-1"}),b.createElement(N,null,b.createElement(Zsu,{address:u})))))}function e4u({onClose:u,open:e}){const{address:t}=K0(),{data:n}=CD({address:t}),r=Cw(t),i=hw(r),{disconnect:a}=h5();if(!t)return null;const o="rk_account_modal_title";return b.createElement(b.Fragment,null,t&&b.createElement(u2,{onClose:u,open:e,titleId:o},b.createElement(e2,{bottomSheetOnMobile:!0,padding:"0"},b.createElement(u4u,{address:t,balanceData:n,ensAvatar:i,ensName:r,onClose:u,onDisconnect:a}))))}var t4u=({size:u})=>b.createElement("svg",{fill:"none",height:u,viewBox:"0 0 28 28",width:u,xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M6.742 22.195h8.367c1.774 0 2.743-.968 2.743-2.758V16.11h-2.016v3.11c0 .625-.305.96-.969.96H6.984c-.664 0-.968-.335-.968-.96V7.984c0-.632.304-.968.968-.968h7.883c.664 0 .969.336.969.968v3.133h2.016v-3.36c0-1.78-.97-2.757-2.743-2.757H6.742C4.97 5 4 5.977 4 7.758v11.68c0 1.789.969 2.757 2.742 2.757Zm5.438-7.703h7.601l1.149-.07-.602.406-1.008.938a.816.816 0 0 0-.258.593c0 .407.313.782.758.782.227 0 .39-.086.547-.243l2.492-2.593c.235-.235.313-.47.313-.711 0-.242-.078-.477-.313-.719l-2.492-2.586c-.156-.156-.32-.25-.547-.25-.445 0-.758.367-.758.781 0 .227.094.446.258.594l1.008.945.602.407-1.149-.079H12.18a.904.904 0 0 0 0 1.805Z",fill:"currentColor"})),n4u="v9horb0",Pf=b.forwardRef(({children:u,currentlySelected:e=!1,onClick:t,testId:n,...r},i)=>{const a=qe();return b.createElement(N,{as:"button",borderRadius:"menuButton",disabled:e,display:"flex",onClick:t,ref:i,testId:n,type:"button"},b.createElement(N,{borderRadius:"menuButton",className:[a?n4u:void 0,!e&&Pe({active:"shrink"})],padding:a?"8":"6",transition:"default",width:"full",...e?{background:"accentColor",borderColor:"selectedOptionBorder",borderStyle:"solid",borderWidth:"1",boxShadow:"selectedOption",color:"accentColorForeground"}:{background:{hover:"menuItemBackground"},color:"modalText",transition:"default"},...r},u))});Pf.displayName="MenuButton";var r4u="_18dqw9x0",i4u="_18dqw9x1";function a4u({onClose:u,open:e}){var t;const{chain:n}=ma(),{chains:r,pendingChainId:i,reset:a,switchNetwork:o}=qz({onSettled:()=>{a(),u()}}),s=M.useContext(r0),{disconnect:l}=h5(),c="rk_chain_modal_title",E=qe(),d=(t=n==null?void 0:n.unsupported)!=null?t:!1,f=E?"36":"28",{appName:C}=M.useContext(t4),h=ql();return!n||!(n!=null&&n.id)?null:b.createElement(u2,{onClose:u,open:e,titleId:c},b.createElement(e2,{bottomSheetOnMobile:!0,paddingBottom:"0"},b.createElement(N,{display:"flex",flexDirection:"column",gap:"14"},b.createElement(N,{display:"flex",flexDirection:"row",justifyContent:"space-between"},E&&b.createElement(N,{width:"30"}),b.createElement(N,{paddingBottom:"0",paddingLeft:"8",paddingTop:"4"},b.createElement(wu,{as:"h1",color:"modalText",id:c,size:E?"20":"18",weight:"heavy"},s.t("chains.title"))),b.createElement(bs,{onClose:u})),d&&b.createElement(N,{marginX:"8",textAlign:E?"center":"left"},b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},s.t("chains.wrong_network"))),b.createElement(N,{className:E?i4u:r4u,display:"flex",flexDirection:"column",gap:"4",padding:"2",paddingBottom:"16"},o?h.map(({iconBackground:B,iconUrl:g,id:m,name:y},v)=>{const w=r.find(x=>x.id===m);if(!w)return null;const D=w.id===(n==null?void 0:n.id),p=!D&&w.id===i;return b.createElement(M.Fragment,{key:w.id},b.createElement(Pf,{currentlySelected:D,onClick:D?void 0:()=>o(w.id),testId:`chain-option-${w.id}`},b.createElement(N,{fontFamily:"body",fontSize:"16",fontWeight:"bold"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",justifyContent:"space-between"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"4",height:f},g&&b.createElement(N,{height:"full",marginRight:"8"},b.createElement(je,{alt:y??w.name,background:B,borderRadius:"full",height:f,src:g,width:f,testId:`chain-option-${w.id}-icon`})),b.createElement("div",null,y??w.name)),D&&b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",marginRight:"6"},b.createElement(wu,{color:"accentColorForeground",size:"14",weight:"medium"},s.t("chains.connected")),b.createElement(N,{background:"connectionIndicator",borderColor:"selectedOptionBorder",borderRadius:"full",borderStyle:"solid",borderWidth:"1",height:"8",marginLeft:"8",width:"8"})),p&&b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",marginRight:"6"},b.createElement(wu,{color:"modalText",size:"14",weight:"medium"},s.t("chains.confirm")),b.createElement(N,{background:"standby",borderRadius:"full",height:"8",marginLeft:"8",width:"8"}))))),E&&vl(),testId:"chain-option-disconnect"},b.createElement(N,{color:"error",fontFamily:"body",fontSize:"16",fontWeight:"bold"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",justifyContent:"space-between"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"4",height:f},b.createElement(N,{alignItems:"center",color:"error",height:f,justifyContent:"center",marginRight:"8"},b.createElement(t4u,{size:Number(f)})),b.createElement("div",null,s.t("chains.disconnect")))))))))))}function o4u(u,e){const t={};return u.forEach(n=>{const r=e(n);r&&(t[r]||(t[r]=[]),t[r].push(n))}),t}var V5=({children:u,href:e})=>b.createElement(N,{as:"a",color:"accentColor",href:e,rel:"noreferrer",target:"_blank"},u),J5=({children:u})=>b.createElement(wu,{color:"modalTextSecondary",size:"12",weight:"medium"},u);function hA({compactModeEnabled:u=!1,getWallet:e}){const{disclaimer:t,learnMoreUrl:n}=M.useContext(t4),r=M.useContext(r0);return b.createElement(b.Fragment,null,b.createElement(N,{alignItems:"center",color:"accentColor",display:"flex",flexDirection:"column",height:"full",justifyContent:"space-around"},b.createElement(N,{marginBottom:"10"},!u&&b.createElement(wu,{color:"modalText",size:"18",weight:"heavy"},r.t("intro.title"))),b.createElement(N,{display:"flex",flexDirection:"column",gap:"32",justifyContent:"center",marginY:"20",style:{maxWidth:312}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16"},b.createElement(N,{borderRadius:"6",height:"48",minWidth:"48",width:"48"},b.createElement(Bsu,null)),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},r.t("intro.digital_asset.title")),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},r.t("intro.digital_asset.description")))),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16"},b.createElement(N,{borderRadius:"6",height:"48",minWidth:"48",width:"48"},b.createElement(Fsu,null)),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},r.t("intro.login.title")),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},r.t("intro.login.description"))))),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"12",justifyContent:"center",margin:"10"},b.createElement(_0,{label:r.t("intro.get.label"),onClick:e}),b.createElement(N,{as:"a",className:Pe({active:"shrink",hover:"grow"}),display:"block",href:n,paddingX:"12",paddingY:"4",rel:"noreferrer",style:{willChange:"transform"},target:"_blank",transition:"default"},b.createElement(wu,{color:"accentColor",size:"14",weight:"bold"},r.t("intro.learn_more.label")))),t&&!u&&b.createElement(N,{marginBottom:"8",marginTop:"12",textAlign:"center"},b.createElement(t,{Link:V5,Text:J5}))))}var jw=()=>b.createElement("svg",{fill:"none",height:"17",viewBox:"0 0 11 17",width:"11",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M0.99707 8.6543C0.99707 9.08496 1.15527 9.44531 1.51562 9.79688L8.16016 16.3096C8.43262 16.5732 8.74902 16.7051 9.13574 16.7051C9.90918 16.7051 10.5508 16.0811 10.5508 15.3076C10.5508 14.9121 10.3838 14.5605 10.0938 14.2705L4.30176 8.64551L10.0938 3.0293C10.3838 2.74805 10.5508 2.3877 10.5508 2.00098C10.5508 1.23633 9.90918 0.603516 9.13574 0.603516C8.74902 0.603516 8.43262 0.735352 8.16016 0.999023L1.51562 7.51172C1.15527 7.85449 1.00586 8.21484 0.99707 8.6543Z",fill:"currentColor"})),s4u=()=>b.createElement("svg",{fill:"none",height:"12",viewBox:"0 0 8 12",width:"8",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M3.64258 7.99609C4.19336 7.99609 4.5625 7.73828 4.68555 7.24609C4.69141 7.21094 4.70312 7.16406 4.70898 7.13477C4.80859 6.60742 5.05469 6.35547 6.04492 5.76367C7.14648 5.10156 7.67969 4.3457 7.67969 3.24414C7.67969 1.39844 6.17383 0.255859 3.95898 0.255859C2.32422 0.255859 1.05859 0.894531 0.548828 1.86719C0.396484 2.14844 0.320312 2.44727 0.320312 2.74023C0.314453 3.37305 0.742188 3.79492 1.42188 3.79492C1.91406 3.79492 2.33594 3.54883 2.53516 3.11523C2.78711 2.47656 3.23242 2.21289 3.83594 2.21289C4.55664 2.21289 5.10742 2.65234 5.10742 3.29102C5.10742 3.9707 4.7793 4.29883 3.81836 4.87891C3.02148 5.36523 2.50586 5.92773 2.50586 6.76562V6.90039C2.50586 7.55664 2.96289 7.99609 3.64258 7.99609ZM3.67188 11.4473C4.42773 11.4473 5.04297 10.8672 5.04297 10.1406C5.04297 9.41406 4.42773 8.83984 3.67188 8.83984C2.91602 8.83984 2.30664 9.41406 2.30664 10.1406C2.30664 10.8672 2.91602 11.4473 3.67188 11.4473Z",fill:"currentColor"})),l4u=({"aria-label":u="Info",onClick:e})=>{const t=qe();return b.createElement(N,{alignItems:"center","aria-label":u,as:"button",background:"closeButtonBackground",borderColor:"actionButtonBorder",borderRadius:"full",borderStyle:"solid",borderWidth:t?"0":"1",className:Pe({active:"shrinkSm",hover:"growLg"}),color:"closeButton",display:"flex",height:t?"30":"28",justifyContent:"center",onClick:e,style:{willChange:"transform"},transition:"default",type:"button",width:t?"30":"28"},b.createElement(s4u,null))},zw=u=>{const e=M.useRef(null),t=M.useContext(Fw),n=$5(u);return M.useEffect(()=>{if(t&&e.current&&n)return E4u(e.current,n)},[t,n]),e},c4u=()=>{const u="_rk_coolMode",e=document.getElementById(u);if(e)return e;const t=document.createElement("div");return t.setAttribute("id",u),t.setAttribute("style",["overflow:hidden","position:fixed","height:100%","top:0","left:0","right:0","bottom:0","pointer-events:none","z-index:2147483647"].join(";")),document.body.appendChild(t),t},CA=0;function E4u(u,e){CA++;const t=[15,20,25,35,45],n=35;let r=[],i=!1,a=0,o=0;const s=c4u();function l(){const v=t[Math.floor(Math.random()*t.length)],w=Math.random()*10,D=Math.random()*25,p=Math.random()*360,x=Math.random()*35*(Math.random()<=.5?-1:1),j=o-v/2,O=a-v/2,uu=Math.random()<=.5?-1:1,ou=document.createElement("div");ou.innerHTML=``,ou.setAttribute("style",["position:absolute","will-change:transform",`top:${j}px`,`left:${O}px`,`transform:rotate(${p}deg)`].join(";")),s.appendChild(ou),r.push({direction:uu,element:ou,left:O,size:v,speedHorz:w,speedUp:D,spinSpeed:x,spinVal:p,top:j})}function c(){r.forEach(v=>{v.left=v.left-v.speedHorz*v.direction,v.top=v.top-v.speedUp,v.speedUp=Math.min(v.size,v.speedUp-1),v.spinVal=v.spinVal+v.spinSpeed,v.top>=Math.max(window.innerHeight,document.body.clientHeight)+v.size&&(r=r.filter(w=>w!==v),v.element.remove()),v.element.setAttribute("style",["position:absolute","will-change:transform",`top:${v.top}px`,`left:${v.left}px`,`transform:rotate(${v.spinVal}deg)`].join(";"))})}let E;function d(){i&&r.length{var w,D;"touches"in v?(a=(w=v.touches)==null?void 0:w[0].clientX,o=(D=v.touches)==null?void 0:D[0].clientY):(a=v.clientX,o=v.clientY)},m=v=>{g(v),i=!0},y=()=>{i=!1};return u.addEventListener(B,g,{passive:!1}),u.addEventListener(C,m),u.addEventListener(h,y),u.addEventListener("mouseleave",y),()=>{u.removeEventListener(B,g),u.removeEventListener(C,m),u.removeEventListener(h,y),u.removeEventListener("mouseleave",y);const v=setInterval(()=>{E&&r.length===0&&(cancelAnimationFrame(E),clearInterval(v),--CA===0&&s.remove())},500)}}var d4u="g5kl0l0",Mw=({as:u="button",currentlySelected:e=!1,iconBackground:t,iconUrl:n,name:r,onClick:i,ready:a,recent:o,testId:s,...l})=>{const c=zw(n),[E,d]=M.useState(!1),f=M.useContext(r0);return b.createElement(N,{display:"flex",flexDirection:"column",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),ref:c},b.createElement(N,{as:u,borderRadius:"menuButton",borderStyle:"solid",borderWidth:"1",className:e?void 0:[d4u,Pe({active:"shrink"})],disabled:e,onClick:i,padding:"5",style:{willChange:"transform"},testId:s,transition:"default",width:"full",...e?{background:"accentColor",borderColor:"selectedOptionBorder",boxShadow:"selectedWallet"}:{background:{hover:"menuItemBackground"}},...l},b.createElement(N,{color:e?"accentColorForeground":"modalText",disabled:!a,fontFamily:"body",fontSize:"16",fontWeight:"bold",transition:"default"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"12"},b.createElement(je,{background:t,...E?{}:{borderColor:"actionButtonBorder"},borderRadius:"6",height:"28",src:n,width:"28"}),b.createElement(N,null,b.createElement(N,{style:{marginTop:o?-2:void 0}},r),o&&b.createElement(wu,{color:e?"accentColorForeground":"accentColor",size:"12",style:{lineHeight:1,marginTop:-1},weight:"medium"},f.t("connect.recent")))))))};Mw.displayName="ModalSelection";var y1=(u,e=1)=>{let t=u.replace("#","");t.length===3&&(t=`${t[0]}${t[0]}${t[1]}${t[1]}${t[2]}${t[2]}`);const n=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),i=parseInt(t.substring(4,6),16);return e>1&&e<=100&&(e=e/100),`rgba(${n},${r},${i},${e})`},f4u=u=>u?[y1(u,.2),y1(u,.14),y1(u,.1)]:null,p4u=u=>/^#([0-9a-f]{3}){1,2}$/i.test(u),Uw=async()=>(await Wu(()=>import("./create-PAJXJDV3-ebff10a4.js"),[])).default,Lw=()=>Xr(Uw),h4u=()=>b.createElement(je,{background:"#e3a5e8",borderColor:"generalBorder",borderRadius:"10",height:"48",src:Uw,width:"48"}),$w=async()=>(await Wu(()=>import("./refresh-5KGGHTJP-ba752184.js"),[])).default,C4u=()=>Xr($w),m4u=()=>b.createElement(je,{background:"#515a70",borderColor:"generalBorder",borderRadius:"10",height:"48",src:$w,width:"48"}),Ww=async()=>(await Wu(()=>import("./scan-HZBLXLM4-eb21bae1.js"),[])).default,qw=()=>Xr(Ww),g4u=()=>b.createElement(je,{background:"#515a70",borderColor:"generalBorder",borderRadius:"10",height:"48",src:Ww,width:"48"}),A4u="_1vwt0cg0",y4u="_1vwt0cg2 ju367v75 ju367v7q",B4u="_1vwt0cg3",v4u="_1vwt0cg4",F4u=(u,e)=>{const t=Array.prototype.slice.call($l.create(u,{errorCorrectionLevel:e}).modules.data,0),n=Math.sqrt(t.length);return t.reduce((r,i,a)=>(a%n===0?r.push([i]):r[r.length-1].push(i))&&r,[])};function Hw({ecl:u="M",logoBackground:e,logoMargin:t=10,logoSize:n=50,logoUrl:r,size:i=200,uri:a}){const o="20",s=i-parseInt(o,10)*2,l=M.useMemo(()=>{const d=[],f=F4u(a,u),C=s/f.length;[{x:0,y:0},{x:1,y:0},{x:0,y:1}].forEach(({x:y,y:v})=>{const w=(f.length-7)*C*y,D=(f.length-7)*C*v;for(let p=0;p<3;p++)d.push(b.createElement("rect",{fill:p%2!==0?"white":"black",height:C*(7-p*2),key:`${p}-${y}-${v}`,rx:(p-2)*-5+(p===0?2:0),ry:(p-2)*-5+(p===0?2:0),width:C*(7-p*2),x:w+C*p,y:D+C*p}))});const B=Math.floor((n+25)/C),g=f.length/2-B/2,m=f.length/2+B/2-1;return f.forEach((y,v)=>{y.forEach((w,D)=>{f[v][D]&&(v<7&&D<7||v>f.length-8&&D<7||v<7&&D>f.length-8||v>g&&vg&&D{switch(Q5()){case"Arc":return(await Wu(()=>import("./Arc-QDJFTGH2-dedcf34b.js"),[])).default;case"Brave":return(await Wu(()=>import("./Brave-YATE5BIM-7f4f924c.js"),[])).default;case"Chrome":return(await Wu(()=>import("./Chrome-LGF33C3S-f104e3bc.js"),[])).default;case"Edge":return(await Wu(()=>import("./Edge-K2JEGI5S-e4909cbd.js"),[])).default;case"Firefox":return(await Wu(()=>import("./Firefox-NP5SYEK5-47084019.js"),[])).default;case"Opera":return(await Wu(()=>import("./Opera-KV54PXPA-f31a1b5e.js"),[])).default;case"Safari":return(await Wu(()=>import("./Safari-2QIYKJ4P-594ed864.js"),[])).default;default:return(await Wu(()=>import("./Browser-HN7O5MN7-2ca1b32c.js"),[])).default}},D4u=()=>Xr(Gw);function b4u({getWalletDownload:u,compactModeEnabled:e}){const n=Hd().splice(0,5),r=M.useContext(r0);return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",height:"full",marginTop:"18",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"28",height:"full",width:"full"},n==null?void 0:n.filter(i=>{var a;return i.extensionDownloadUrl||i.qrCode&&((a=i.downloadUrls)==null?void 0:a.qrCode)}).map(i=>{const{downloadUrls:a,iconBackground:o,iconUrl:s,id:l,name:c,qrCode:E}=i,d=(a==null?void 0:a.qrCode)&&E,f=!!i.extensionDownloadUrl,C=(a==null?void 0:a.qrCode)&&f;return b.createElement(N,{alignItems:"center",display:"flex",gap:"16",justifyContent:"space-between",key:i.id,width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16"},b.createElement(je,{background:o,borderColor:"actionButtonBorder",borderRadius:"10",height:"48",src:s,width:"48"}),b.createElement(N,{display:"flex",flexDirection:"column",gap:"2"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},c),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},C?r.t("get.mobile_and_extension.description"):d?r.t("get.mobile.description"):f?r.t("get.extension.description"):null))),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(_0,{label:r.t("get.action.label"),onClick:()=>u(l),type:"secondary"})))})),b.createElement(N,{alignItems:"center",borderRadius:"10",display:"flex",flexDirection:"column",gap:"8",justifyContent:"space-between",marginBottom:"4",paddingY:"8",style:{maxWidth:275,textAlign:"center"}},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},r.t("get.looking_for.title")),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},e?r.t("get.looking_for.desktop.compact_description"):r.t("get.looking_for.desktop.wide_description"))))}var B1="44";function w4u({changeWalletStep:u,compactModeEnabled:e,connectionError:t,onClose:n,qrCodeUri:r,reconnect:i,wallet:a}){var o;const{downloadUrls:s,iconBackground:l,iconUrl:c,name:E,qrCode:d,ready:f,showWalletConnectModal:C}=a,h=(o=a.desktop)==null?void 0:o.getUri,B=K5(),g=M.useContext(r0),m=!!a.extensionDownloadUrl,y=(s==null?void 0:s.qrCode)&&m,v=d&&r,w=C?{description:e?g.t("connect.walletconnect.description.compact"):g.t("connect.walletconnect.description.full"),label:g.t("connect.walletconnect.open.label"),onClick:()=>{n(),C()}}:v?{description:g.t("connect.secondary_action.get.description",{wallet:E}),label:g.t("connect.secondary_action.get.label"),onClick:()=>u(y?"DOWNLOAD_OPTIONS":"DOWNLOAD")}:null,{width:D}=Bw(),p=D&&D<768;return M.useEffect(()=>{D4u()},[]),b.createElement(N,{display:"flex",flexDirection:"column",height:"full",width:"full"},v?b.createElement(N,{alignItems:"center",display:"flex",height:"full",justifyContent:"center"},b.createElement(Hw,{logoBackground:l,logoSize:e?60:72,logoUrl:c,size:e?318:p?Math.max(280,Math.min(D-308,382)):382,uri:r})):b.createElement(N,{alignItems:"center",display:"flex",justifyContent:"center",style:{flexGrow:1}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"8"},b.createElement(N,{borderRadius:"10",height:B1,overflow:"hidden"},b.createElement(je,{height:B1,src:c,width:B1})),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"4",paddingX:"32",style:{textAlign:"center"}},b.createElement(wu,{color:"modalText",size:"18",weight:"bold"},f?g.t("connect.status.opening",{wallet:E}):m?g.t("connect.status.not_installed",{wallet:E}):g.t("connect.status.not_available",{wallet:E})),!f&&m?b.createElement(N,{paddingTop:"20"},b.createElement(_0,{href:a.extensionDownloadUrl,label:g.t("connect.secondary_action.install.label"),type:"secondary"})):null,f&&!v&&b.createElement(b.Fragment,null,b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",justifyContent:"center"},b.createElement(wu,{color:"modalTextSecondary",size:"14",textAlign:"center",weight:"medium"},g.t("connect.status.confirm"))),b.createElement(N,{alignItems:"center",color:"modalText",display:"flex",flexDirection:"row",height:"32",marginTop:"8"},t?b.createElement(_0,{label:g.t("connect.secondary_action.retry.label"),onClick:h?async()=>{const x=await h();window.open(x,B?"_blank":"_self")}:()=>{i(a)}}):b.createElement(N,{color:"modalTextSecondary"},b.createElement(U3,null))))))),b.createElement(N,{alignItems:"center",borderRadius:"10",display:"flex",flexDirection:"row",gap:"8",height:"28",justifyContent:"space-between",marginTop:"12"},f&&w&&b.createElement(b.Fragment,null,b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},w.description),b.createElement(_0,{label:w.label,onClick:w.onClick,type:"secondary"}))))}var mA=({actionLabel:u,description:e,iconAccent:t,iconBackground:n,iconUrl:r,isCompact:i,onAction:a,title:o,url:s,variant:l})=>{const c=l==="browser",E=!c&&t&&f4u(t);return b.createElement(N,{alignItems:"center",borderRadius:"13",display:"flex",justifyContent:"center",overflow:"hidden",paddingX:i?"18":"44",position:"relative",style:{flex:1,isolation:"isolate"},width:"full"},b.createElement(N,{borderColor:"actionButtonBorder",borderRadius:"13",borderStyle:"solid",borderWidth:"1",style:{bottom:"0",left:"0",position:"absolute",right:"0",top:"0",zIndex:1}}),c&&b.createElement(N,{background:"downloadTopCardBackground",height:"full",position:"absolute",style:{zIndex:0},width:"full"},b.createElement(N,{display:"flex",flexDirection:"row",justifyContent:"space-between",style:{bottom:"0",filter:"blur(20px)",left:"0",position:"absolute",right:"0",top:"0",transform:"translate3d(0, 0, 0)"}},b.createElement(N,{style:{filter:"blur(100px)",marginLeft:-27,marginTop:-20,opacity:.6,transform:"translate3d(0, 0, 0)"}},b.createElement(je,{borderRadius:"full",height:"200",src:r,width:"200"})),b.createElement(N,{style:{filter:"blur(100px)",marginRight:0,marginTop:105,opacity:.6,overflow:"auto",transform:"translate3d(0, 0, 0)"}},b.createElement(je,{borderRadius:"full",height:"200",src:r,width:"200"})))),!c&&E&&b.createElement(N,{background:"downloadBottomCardBackground",style:{bottom:"0",left:"0",position:"absolute",right:"0",top:"0"}},b.createElement(N,{position:"absolute",style:{background:`radial-gradient(50% 50% at 50% 50%, ${E[0]} 0%, ${E[1]} 25%, rgba(0,0,0,0) 100%)`,height:564,left:-215,top:-197,transform:"translate3d(0, 0, 0)",width:564}}),b.createElement(N,{position:"absolute",style:{background:`radial-gradient(50% 50% at 50% 50%, ${E[2]} 0%, rgba(0, 0, 0, 0) 100%)`,height:564,left:-1,top:-76,transform:"translate3d(0, 0, 0)",width:564}})),b.createElement(N,{alignItems:"flex-start",display:"flex",flexDirection:"row",gap:"24",height:"max",justifyContent:"center",style:{zIndex:1}},b.createElement(N,null,b.createElement(je,{height:"60",src:r,width:"60",...n?{background:n,borderColor:"generalBorder",borderRadius:"10"}:null})),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4",style:{flex:1},width:"full"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},o),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},e),b.createElement(N,{marginTop:"14",width:"max"},b.createElement(_0,{href:s,label:u,onClick:a,size:"medium"})))))};function x4u({changeWalletStep:u,wallet:e}){const t=Q5(),r=M.useContext(qd)==="compact",{extension:i,extensionDownloadUrl:a,mobileDownloadUrl:o}=e,s=M.useContext(r0);return M.useEffect(()=>{Lw(),qw(),C4u()},[]),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"24",height:"full",marginBottom:"8",marginTop:"4",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"8",height:"full",justifyContent:"center",width:"full"},a&&b.createElement(mA,{actionLabel:s.t("get_options.extension.download.label",{browser:t}),description:s.t("get_options.extension.description"),iconUrl:Gw,isCompact:r,onAction:()=>u(i!=null&&i.instructions?"INSTRUCTIONS_EXTENSION":"CONNECT"),title:s.t("get_options.extension.title",{wallet:e.name,browser:t}),url:a,variant:"browser"}),o&&b.createElement(mA,{actionLabel:s.t("get_options.mobile.download.label",{wallet:e.name}),description:s.t("get_options.mobile.description"),iconAccent:e.iconAccent,iconBackground:e.iconBackground,iconUrl:e.iconUrl,isCompact:r,onAction:()=>{u("DOWNLOAD")},title:s.t("get_options.mobile.title",{wallet:e.name}),variant:"app"})))}function k4u({changeWalletStep:u,wallet:e}){const{downloadUrls:t,qrCode:n}=e,r=M.useContext(r0);return M.useEffect(()=>{Lw(),qw()},[]),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"24",height:"full",width:"full"},b.createElement(N,{style:{maxWidth:220,textAlign:"center"}},b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"semibold"},r.t("get_mobile.description"))),b.createElement(N,{height:"full"},t!=null&&t.qrCode?b.createElement(Hw,{logoSize:0,size:268,uri:t.qrCode}):null),b.createElement(N,{alignItems:"center",borderRadius:"10",display:"flex",flexDirection:"row",gap:"8",height:"34",justifyContent:"space-between",marginBottom:"12",paddingY:"8"},b.createElement(_0,{label:r.t("get_mobile.continue.label"),onClick:()=>u(n!=null&&n.instructions?"INSTRUCTIONS_MOBILE":"CONNECT")})))}var t2={create:()=>b.createElement(h4u,null),install:u=>b.createElement(je,{background:u.iconBackground,borderColor:"generalBorder",borderRadius:"10",height:"48",src:u.iconUrl,width:"48"}),refresh:()=>b.createElement(m4u,null),scan:()=>b.createElement(g4u,null)};function _4u({connectWallet:u,wallet:e}){var t,n,r,i;const a=M.useContext(r0);return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",height:"full",width:"full"},b.createElement(N,{display:"flex",flexDirection:"column",gap:"28",height:"full",justifyContent:"center",paddingY:"32",style:{maxWidth:320}},(n=(t=e==null?void 0:e.qrCode)==null?void 0:t.instructions)==null?void 0:n.steps.map((o,s)=>{var l;return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16",key:s},b.createElement(N,{borderRadius:"10",height:"48",minWidth:"48",overflow:"hidden",position:"relative",width:"48"},(l=t2[o.step])==null?void 0:l.call(t2,e)),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},a.t(o.title)),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},a.t(o.description))))})),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"12",justifyContent:"center",marginBottom:"16"},b.createElement(_0,{label:a.t("get_instructions.mobile.connect.label"),onClick:()=>u(e)}),b.createElement(N,{as:"a",className:Pe({active:"shrink",hover:"grow"}),display:"block",href:(i=(r=e==null?void 0:e.qrCode)==null?void 0:r.instructions)==null?void 0:i.learnMoreUrl,paddingX:"12",paddingY:"4",rel:"noreferrer",style:{willChange:"transform"},target:"_blank",transition:"default"},b.createElement(wu,{color:"accentColor",size:"14",weight:"bold"},a.t("get_instructions.mobile.learn_more.label")))))}function S4u({wallet:u}){var e,t,n,r;const i=M.useContext(r0);return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",height:"full",width:"full"},b.createElement(N,{display:"flex",flexDirection:"column",gap:"28",height:"full",justifyContent:"center",paddingY:"32",style:{maxWidth:320}},(t=(e=u==null?void 0:u.extension)==null?void 0:e.instructions)==null?void 0:t.steps.map((a,o)=>{var s;return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16",key:o},b.createElement(N,{borderRadius:"10",height:"48",minWidth:"48",overflow:"hidden",position:"relative",width:"48"},(s=t2[a.step])==null?void 0:s.call(t2,u)),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},i.t(a.title)),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},i.t(a.description))))})),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"12",justifyContent:"center",marginBottom:"16"},b.createElement(_0,{label:i.t("get_instructions.extension.refresh.label"),onClick:window.location.reload.bind(window.location)}),b.createElement(N,{as:"a",className:Pe({active:"shrink",hover:"grow"}),display:"block",href:(r=(n=u==null?void 0:u.extension)==null?void 0:n.instructions)==null?void 0:r.learnMoreUrl,paddingX:"12",paddingY:"4",rel:"noreferrer",style:{willChange:"transform"},target:"_blank",transition:"default"},b.createElement(wu,{color:"accentColor",size:"14",weight:"bold"},i.t("get_instructions.extension.learn_more.label")))))}function P4u({onClose:u}){const e="rk_connect_title",t=K5(),[n,r]=M.useState(),[i,a]=M.useState(),[o,s]=M.useState(),l=!!(i!=null&&i.qrCode)&&o,[c,E]=M.useState(!1),f=M.useContext(qd)===L3.COMPACT,{disclaimer:C}=M.useContext(t4),h=M.useContext(r0),B=Hd().filter(W=>W.ready||!!W.extensionDownloadUrl).sort((W,iu)=>W.groupIndex-iu.groupIndex),g=o4u(B,W=>W.groupName),m=["Recommended","Other","Popular","More","Others"],y=W=>{var iu,lu,cu;if(E(!1),W.ready){(lu=(iu=W==null?void 0:W.connect)==null?void 0:iu.call(W))==null||lu.catch(()=>{E(!0)});const pu=(cu=W.desktop)==null?void 0:cu.getUri;pu&&setTimeout(async()=>{const fu=await pu();window.open(fu,t?"_blank":"_self")},0)}},v=W=>{var iu;if(y(W),r(W.id),W.ready){let lu=!1;(iu=W==null?void 0:W.onConnecting)==null||iu.call(W,async()=>{var cu,pu;if(lu)return;lu=!0;const fu=B.find(xu=>W.id===xu.id),J=await((cu=fu==null?void 0:fu.qrCode)==null?void 0:cu.getUri());s(J),setTimeout(()=>{a(fu),p("CONNECT")},J?0:50);const _u=await(fu==null?void 0:fu.connector.getProvider()),Du=(pu=_u==null?void 0:_u.signer)==null?void 0:pu.connection;if(Du!=null&&Du.on&&(Du!=null&&Du.off)){const xu=()=>{bu(),v(W)},bu=()=>{Du.off("close",xu),Du.off("open",bu)};Du.on("close",xu),Du.on("open",bu)}})}else a(W),p(W!=null&&W.extensionDownloadUrl?"DOWNLOAD_OPTIONS":"CONNECT")},w=W=>{var iu;r(W);const lu=B.find(fu=>W===fu.id),cu=(iu=lu==null?void 0:lu.downloadUrls)==null?void 0:iu.qrCode,pu=!!(lu!=null&&lu.extensionDownloadUrl);a(lu),p(cu&&pu?"DOWNLOAD_OPTIONS":cu?"DOWNLOAD":"INSTRUCTIONS_EXTENSION")},D=()=>{r(void 0),a(void 0),s(void 0)},p=(W,iu=!1)=>{iu&&W==="GET"&&x==="GET"?D():!iu&&W==="GET"?j("GET"):!iu&&W==="CONNECT"&&j("CONNECT"),uu(W)},[x,j]=M.useState("NONE"),[O,uu]=M.useState("NONE");let ou=null,su=null,hu=null,eu;M.useEffect(()=>{E(!1)},[O,i]);const nu=!!(!!(i!=null&&i.extensionDownloadUrl)&&(i!=null&&i.mobileDownloadUrl));switch(O){case"NONE":ou=b.createElement(hA,{getWallet:()=>p("GET")});break;case"LEARN_COMPACT":ou=b.createElement(hA,{compactModeEnabled:f,getWallet:()=>p("GET")}),su=h.t("intro.title"),hu="NONE";break;case"GET":ou=b.createElement(b4u,{getWalletDownload:w,compactModeEnabled:f}),su=h.t("get.title"),hu=f?"LEARN_COMPACT":"NONE";break;case"CONNECT":ou=i&&b.createElement(w4u,{changeWalletStep:p,compactModeEnabled:f,connectionError:c,onClose:u,qrCodeUri:o,reconnect:y,wallet:i}),su=l&&(i.name==="WalletConnect"?h.t("connect_scan.fallback_title"):h.t("connect_scan.title",{wallet:i.name})),hu=f?"NONE":null,eu=f?D:()=>{};break;case"DOWNLOAD_OPTIONS":ou=i&&b.createElement(x4u,{changeWalletStep:p,wallet:i}),su=i&&h.t("get_options.short_title",{wallet:i.name}),hu=nu?x:null;break;case"DOWNLOAD":ou=i&&b.createElement(k4u,{changeWalletStep:p,wallet:i}),su=i&&h.t("get_mobile.title",{wallet:i.name}),hu=nu?"DOWNLOAD_OPTIONS":x;break;case"INSTRUCTIONS_MOBILE":ou=i&&b.createElement(_4u,{connectWallet:v,wallet:i}),su=i&&h.t("get_options.title",{wallet:f&&i.shortName||i.name}),hu="DOWNLOAD";break;case"INSTRUCTIONS_EXTENSION":ou=i&&b.createElement(S4u,{wallet:i}),su=i&&h.t("get_options.title",{wallet:f&&i.shortName||i.name}),hu="DOWNLOAD_OPTIONS";break}return b.createElement(N,{display:"flex",flexDirection:"row",style:{maxHeight:f?468:504}},(f?O==="NONE":!0)&&b.createElement(N,{className:f?v4u:B4u,display:"flex",flexDirection:"column",marginTop:"16"},b.createElement(N,{display:"flex",justifyContent:"space-between"},f&&C&&b.createElement(N,{marginLeft:"16",width:"28"},b.createElement(l4u,{onClick:()=>p("LEARN_COMPACT")})),f&&!C&&b.createElement(N,{marginLeft:"16",width:"28"}),b.createElement(N,{marginLeft:f?"0":"6",paddingBottom:"8",paddingTop:"2",paddingX:"18"},b.createElement(wu,{as:"h1",color:"modalText",id:e,size:"18",weight:"heavy",testId:"connect-header-label"},h.t("connect.title"))),f&&b.createElement(N,{marginRight:"16"},b.createElement(bs,{onClose:u}))),b.createElement(N,{className:y4u,paddingBottom:"18"},Object.entries(g).map(([W,iu],lu)=>iu.length>0&&b.createElement(M.Fragment,{key:lu},W?b.createElement(N,{marginBottom:"8",marginTop:"16",marginX:"6"},b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"bold"},m.includes(W)?h.t(`connector_group.${W.toLowerCase()}`):W)):null,b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},iu.map(cu=>b.createElement(Mw,{currentlySelected:cu.id===n,iconBackground:cu.iconBackground,iconUrl:cu.iconUrl,key:cu.id,name:cu.name,onClick:()=>v(cu),ready:cu.ready,recent:cu.recent,testId:`wallet-option-${cu.id}`})))))),f&&b.createElement(b.Fragment,null,b.createElement(N,{background:"generalBorder",height:"1",marginTop:"-1"}),C?b.createElement(N,{paddingX:"24",paddingY:"16",textAlign:"center"},b.createElement(C,{Link:V5,Text:J5})):b.createElement(N,{alignItems:"center",display:"flex",justifyContent:"space-between",paddingX:"24",paddingY:"16"},b.createElement(N,{paddingY:"4"},b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},h.t("connect.new_to_ethereum.description"))),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"4",justifyContent:"center"},b.createElement(N,{className:Pe({active:"shrink",hover:"grow"}),cursor:"pointer",onClick:()=>p("LEARN_COMPACT"),paddingY:"4",style:{willChange:"transform"},transition:"default"},b.createElement(wu,{color:"accentColor",size:"14",weight:"bold"},h.t("connect.new_to_ethereum.learn_more.label"))))))),(f?O!=="NONE":!0)&&b.createElement(b.Fragment,null,!f&&b.createElement(N,{background:"generalBorder",minWidth:"1",width:"1"}),b.createElement(N,{display:"flex",flexDirection:"column",margin:"16",style:{flexGrow:1}},b.createElement(N,{alignItems:"center",display:"flex",justifyContent:"space-between",marginBottom:"12"},b.createElement(N,{width:"28"},hu&&b.createElement(N,{as:"button",className:Pe({active:"shrinkSm",hover:"growLg"}),color:"accentColor",onClick:()=>{hu&&p(hu,!0),eu==null||eu()},paddingX:"8",paddingY:"4",style:{boxSizing:"content-box",height:17,willChange:"transform"},transition:"default",type:"button"},b.createElement(jw,null))),b.createElement(N,{display:"flex",justifyContent:"center",style:{flexGrow:1}},su&&b.createElement(wu,{color:"modalText",size:"18",textAlign:"center",weight:"heavy"},su)),b.createElement(bs,{onClose:u})),b.createElement(N,{display:"flex",flexDirection:"column",style:{minHeight:f?396:432}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"6",height:"full",justifyContent:"center",marginX:"8"},ou)))))}var T4u="_1am14410";function I4u({onClose:u,wallet:e}){const{connect:t,connector:n,iconBackground:r,iconUrl:i,id:a,mobile:o,name:s,onConnecting:l,ready:c,shortName:E}=e,d=o==null?void 0:o.getUri,f=zw(i),C=M.useContext(r0);return b.createElement(N,{as:"button",color:c?"modalText":"modalTextSecondary",disabled:!c,fontFamily:"body",key:a,onClick:M.useCallback(async()=>{a==="walletConnect"&&(u==null||u()),t==null||t();let h=!1;l==null||l(async()=>{if(!h&&(h=!0,d)){const B=await d();if((n.id==="walletConnect"||n.id==="walletConnectLegacy")&&ksu({mobileUri:B,name:s}),B.startsWith("http")){const g=document.createElement("a");g.href=B,g.target="_blank",g.rel="noreferrer noopener",g.click()}else window.location.href=B}})},[n,t,d,l,u,s,a]),ref:f,style:{overflow:"visible",textAlign:"center"},testId:`wallet-option-${a}`,type:"button",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",justifyContent:"center"},b.createElement(N,{paddingBottom:"8",paddingTop:"10"},b.createElement(je,{background:r,borderRadius:"13",boxShadow:"walletLogo",height:"60",src:i,width:"60"})),b.createElement(N,{display:"flex",flexDirection:"column",textAlign:"center"},b.createElement(wu,{as:"h2",color:e.ready?"modalText":"modalTextSecondary",size:"13",weight:"medium"},b.createElement(N,{as:"span",position:"relative"},E??s,!e.ready&&" (unsupported)")),e.recent&&b.createElement(wu,{color:"accentColor",size:"12",weight:"medium"},C.t("connect.recent")))))}function O4u({onClose:u}){var e;const t="rk_connect_title",n=Hd(),{disclaimer:r,learnMoreUrl:i}=M.useContext(t4);let a=null,o=null,s=!1,l=null;const[c,E]=M.useState("CONNECT"),d=M.useContext(r0),f=Ba();switch(c){case"CONNECT":{a=d.t("connect.title"),s=!0,o=b.createElement(N,null,b.createElement(N,{background:"profileForeground",className:T4u,display:"flex",paddingBottom:"20",paddingTop:"6"},b.createElement(N,{display:"flex",style:{margin:"0 auto"}},n.filter(C=>C.ready).map(C=>b.createElement(N,{key:C.id,paddingX:"20"},b.createElement(N,{width:"60"},b.createElement(I4u,{onClose:u,wallet:C})))))),b.createElement(N,{background:"generalBorder",height:"1",marginBottom:"32",marginTop:"-1"}),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"32",paddingX:"32",style:{textAlign:"center"}},b.createElement(N,{display:"flex",flexDirection:"column",gap:"8",textAlign:"center"},b.createElement(wu,{color:"modalText",size:"16",weight:"bold"},d.t("intro.title")),b.createElement(wu,{color:"modalTextSecondary",size:"16"},d.t("intro.description")))),b.createElement(N,{paddingTop:"32",paddingX:"20"},b.createElement(N,{display:"flex",gap:"14",justifyContent:"center"},b.createElement(_0,{label:d.t("intro.get.label"),onClick:()=>E("GET"),size:"large",type:"secondary"}),b.createElement(_0,{href:i,label:d.t("intro.learn_more.label"),size:"large",type:"secondary"}))),r&&b.createElement(N,{marginTop:"28",marginX:"32",textAlign:"center"},b.createElement(r,{Link:V5,Text:J5})));break}case"GET":{a=d.t("get.title"),l="CONNECT";const C=(e=n==null?void 0:n.filter(h=>{var B,g,m;return((B=h.downloadUrls)==null?void 0:B.ios)||((g=h.downloadUrls)==null?void 0:g.android)||((m=h.downloadUrls)==null?void 0:m.mobile)}))==null?void 0:e.splice(0,3);o=b.createElement(N,null,b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",height:"full",marginBottom:"36",marginTop:"5",paddingTop:"12",width:"full"},C.map((h,B)=>{const{downloadUrls:g,iconBackground:m,iconUrl:y,name:v}=h;return!(g!=null&&g.ios)&&!(g!=null&&g.android)&&!(g!=null&&g.mobile)?null:b.createElement(N,{display:"flex",gap:"16",key:h.id,paddingX:"20",width:"full"},b.createElement(N,{style:{minHeight:48,minWidth:48}},b.createElement(je,{background:m,borderColor:"generalBorder",borderRadius:"10",height:"48",src:y,width:"48"})),b.createElement(N,{display:"flex",flexDirection:"column",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",height:"48"},b.createElement(N,{width:"full"},b.createElement(wu,{color:"modalText",size:"18",weight:"bold"},v)),b.createElement(_0,{href:(f?g==null?void 0:g.ios:g==null?void 0:g.android)||(g==null?void 0:g.mobile),label:d.t("get.action.label"),size:"small",type:"secondary"})),BE(l),padding:"16",style:{height:17,willChange:"transform"},transition:"default",type:"button"},b.createElement(jw,null))),b.createElement(N,{marginTop:"4",textAlign:"center",width:"full"},b.createElement(wu,{as:"h1",color:"modalText",id:t,size:"20",weight:"bold"},a)),b.createElement(N,{alignItems:"center",display:"flex",height:"32",paddingRight:"14",position:"absolute",right:"0"},b.createElement(N,{style:{marginBottom:-20,marginTop:-20}},b.createElement(bs,{onClose:u}))))),b.createElement(N,{display:"flex",flexDirection:"column"},o))}function N4u({onClose:u}){return qe()?b.createElement(O4u,{onClose:u}):b.createElement(P4u,{onClose:u})}function R4u({onClose:u,open:e}){const t="rk_connect_title",n=U5(),{disconnect:r}=h5(),i=b.useCallback(()=>{u(),r()},[u,r]);return n==="disconnected"?b.createElement(u2,{onClose:u,open:e,titleId:t},b.createElement(e2,{bottomSheetOnMobile:!0,padding:"0",wide:!0},b.createElement(N4u,{onClose:u}))):n==="unauthenticated"?b.createElement(u2,{onClose:i,open:e,titleId:t},b.createElement(e2,{bottomSheetOnMobile:!0,padding:"0"},b.createElement(wsu,{onClose:i}))):null}function v1(){const[u,e]=M.useState(!1);return{closeModal:M.useCallback(()=>e(!1),[]),isModalOpen:u,openModal:M.useCallback(()=>e(!0),[])}}var Hl=M.createContext({accountModalOpen:!1,chainModalOpen:!1,connectModalOpen:!1});function j4u({children:u}){const{closeModal:e,isModalOpen:t,openModal:n}=v1(),{closeModal:r,isModalOpen:i,openModal:a}=v1(),{closeModal:o,isModalOpen:s,openModal:l}=v1(),c=U5(),{chain:E}=ma(),d=!(E!=null&&E.unsupported);function f({keepConnectModalOpen:h=!1}={}){h||e(),r(),o()}const C=Wd()==="unauthenticated";return K0({onConnect:()=>f({keepConnectModalOpen:C}),onDisconnect:()=>f()}),b.createElement(Hl.Provider,{value:M.useMemo(()=>({accountModalOpen:i,chainModalOpen:s,connectModalOpen:t,openAccountModal:d&&c==="connected"?a:void 0,openChainModal:c==="connected"?l:void 0,openConnectModal:c==="disconnected"||c==="unauthenticated"?n:void 0}),[c,d,i,s,t,a,l,n])},u,b.createElement(R4u,{onClose:e,open:t}),b.createElement(e4u,{onClose:r,open:i}),b.createElement(a4u,{onClose:o,open:s}))}function z4u(){const{accountModalOpen:u,chainModalOpen:e,connectModalOpen:t}=M.useContext(Hl);return{accountModalOpen:u,chainModalOpen:e,connectModalOpen:t}}function M4u(){const{accountModalOpen:u,openAccountModal:e}=M.useContext(Hl);return{accountModalOpen:u,openAccountModal:e}}function U4u(){const{chainModalOpen:u,openChainModal:e}=M.useContext(Hl);return{chainModalOpen:u,openChainModal:e}}function L4u(){const{connectModalOpen:u,openConnectModal:e}=M.useContext(Hl);return{connectModalOpen:u,openConnectModal:e}}var F1=()=>{};function Y5({children:u}){var e,t,n,r;const i=tsu(),{address:a}=K0(),o=Cw(a),s=hw(o),{data:l}=CD({address:a}),{chain:c}=ma(),E=esu(),d=(e=Wd())!=null?e:void 0,f=c?E[c.id]:void 0,C=(t=f==null?void 0:f.name)!=null?t:void 0,h=(n=f==null?void 0:f.iconUrl)!=null?n:void 0,B=(r=f==null?void 0:f.iconBackground)!=null?r:void 0,g=$5(h),m=M.useContext(G5),y=yw().some(({status:uu})=>uu==="pending")&&m,v=l?`${Tw(parseFloat(l.formatted))} ${l.symbol}`:void 0,{openConnectModal:w}=L4u(),{openChainModal:D}=U4u(),{openAccountModal:p}=M4u(),{accountModalOpen:x,chainModalOpen:j,connectModalOpen:O}=z4u();return b.createElement(b.Fragment,null,u({account:a?{address:a,balanceDecimals:l==null?void 0:l.decimals,balanceFormatted:l==null?void 0:l.formatted,balanceSymbol:l==null?void 0:l.symbol,displayBalance:v,displayName:o?Ow(o):Iw(a),ensAvatar:s??void 0,ensName:o??void 0,hasPendingTransactions:y}:void 0,accountModalOpen:x,authenticationStatus:d,chain:c?{hasIcon:!!h,iconBackground:B,iconUrl:g,id:c.id,name:C??c.name,unsupported:c.unsupported}:void 0,chainModalOpen:j,connectModalOpen:O,mounted:i,openAccountModal:p??F1,openChainModal:D??F1,openConnectModal:w??F1}))}Y5.displayName="ConnectButton.Custom";var k4={accountStatus:"full",chainStatus:{largeScreen:"full",smallScreen:"icon"},label:"Connect Wallet",showBalance:{largeScreen:!0,smallScreen:!1}};function X5({accountStatus:u=k4.accountStatus,chainStatus:e=k4.chainStatus,label:t=k4.label,showBalance:n=k4.showBalance}){const r=ql(),i=U5(),a=M.useContext(r0);return b.createElement(Y5,null,({account:o,chain:s,mounted:l,openAccountModal:c,openChainModal:E,openConnectModal:d})=>{var f,C,h;const B=l&&i!=="loading",g=(f=s==null?void 0:s.unsupported)!=null?f:!1;return b.createElement(N,{display:"flex",gap:"12",...!B&&{"aria-hidden":!0,style:{opacity:0,pointerEvents:"none",userSelect:"none"}}},B&&o&&i==="connected"?b.createElement(b.Fragment,null,s&&(r.length>1||g)&&b.createElement(N,{alignItems:"center","aria-label":"Chain Selector",as:"button",background:g?"connectButtonBackgroundError":"connectButtonBackground",borderRadius:"connectButton",boxShadow:"connectButton",className:Pe({active:"shrink",hover:"grow"}),color:g?"connectButtonTextError":"connectButtonText",display:ka(e,m=>m==="none"?"none":"flex"),fontFamily:"body",fontWeight:"bold",gap:"6",key:g?"unsupported":"supported",onClick:E,paddingX:"10",paddingY:"8",testId:g?"wrong-network-button":"chain-button",transition:"default",type:"button"},g?b.createElement(N,{alignItems:"center",display:"flex",height:"24",paddingX:"4"},"Wrong network"):b.createElement(N,{alignItems:"center",display:"flex",gap:"6"},s.hasIcon?b.createElement(N,{display:ka(e,m=>m==="full"||m==="icon"?"block":"none"),height:"24",width:"24"},b.createElement(je,{alt:(C=s.name)!=null?C:"Chain icon",background:s.iconBackground,borderRadius:"full",height:"24",src:s.iconUrl,width:"24"})):null,b.createElement(N,{display:ka(e,m=>m==="icon"&&!s.iconUrl||m==="full"||m==="name"?"block":"none")},(h=s.name)!=null?h:s.id)),b.createElement(Lg,null)),!g&&b.createElement(N,{alignItems:"center",as:"button",background:"connectButtonBackground",borderRadius:"connectButton",boxShadow:"connectButton",className:Pe({active:"shrink",hover:"grow"}),color:"connectButtonText",display:"flex",fontFamily:"body",fontWeight:"bold",onClick:c,testId:"account-button",transition:"default",type:"button"},o.displayBalance&&b.createElement(N,{display:ka(n,m=>m?"block":"none"),padding:"8",paddingLeft:"12"},o.displayBalance),b.createElement(N,{background:Rru(n)[qe()?"smallScreen":"largeScreen"]?"connectButtonInnerBackground":"connectButtonBackground",borderColor:"connectButtonBackground",borderRadius:"connectButton",borderStyle:"solid",borderWidth:"2",color:"connectButtonText",fontFamily:"body",fontWeight:"bold",paddingX:"8",paddingY:"6",transition:"default"},b.createElement(N,{alignItems:"center",display:"flex",gap:"6",height:"24"},b.createElement(N,{display:ka(u,m=>m==="full"||m==="avatar"?"block":"none")},b.createElement(fw,{address:o.address,imageUrl:o.ensAvatar,loading:o.hasPendingTransactions,size:24})),b.createElement(N,{alignItems:"center",display:"flex",gap:"6"},b.createElement(N,{display:ka(u,m=>m==="full"||m==="address"?"block":"none")},o.displayName),b.createElement(Lg,null)))))):b.createElement(N,{as:"button",background:"accentColor",borderRadius:"connectButton",boxShadow:"connectButton",className:Pe({active:"shrink",hover:"grow"}),color:"accentColorForeground",fontFamily:"body",fontWeight:"bold",height:"40",key:"connect",onClick:d,paddingX:"14",testId:"connect-button",transition:"default",type:"button"},l&&t==="Connect Wallet"?a.t("connect_wallet.label"):t))})}X5.__defaultProps=k4;X5.Custom=Y5;var Z5={},Gd={},Mu={},Kw={};(function(u){Object.defineProperty(u,"__esModule",{value:!0});function e(o,s){var l=o>>>16&65535,c=o&65535,E=s>>>16&65535,d=s&65535;return c*d+(l*d+c*E<<16>>>0)|0}u.mul=Math.imul||e;function t(o,s){return o+s|0}u.add=t;function n(o,s){return o-s|0}u.sub=n;function r(o,s){return o<>>32-s}u.rotl=r;function i(o,s){return o<<32-s|o>>>s}u.rotr=i;function a(o){return typeof o=="number"&&isFinite(o)&&Math.floor(o)===o}u.isInteger=Number.isInteger||a,u.MAX_SAFE_INTEGER=9007199254740991,u.isSafeInteger=function(o){return u.isInteger(o)&&o>=-u.MAX_SAFE_INTEGER&&o<=u.MAX_SAFE_INTEGER}})(Kw);Object.defineProperty(Mu,"__esModule",{value:!0});var Qw=Kw;function $4u(u,e){return e===void 0&&(e=0),(u[e+0]<<8|u[e+1])<<16>>16}Mu.readInt16BE=$4u;function W4u(u,e){return e===void 0&&(e=0),(u[e+0]<<8|u[e+1])>>>0}Mu.readUint16BE=W4u;function q4u(u,e){return e===void 0&&(e=0),(u[e+1]<<8|u[e])<<16>>16}Mu.readInt16LE=q4u;function H4u(u,e){return e===void 0&&(e=0),(u[e+1]<<8|u[e])>>>0}Mu.readUint16LE=H4u;function Vw(u,e,t){return e===void 0&&(e=new Uint8Array(2)),t===void 0&&(t=0),e[t+0]=u>>>8,e[t+1]=u>>>0,e}Mu.writeUint16BE=Vw;Mu.writeInt16BE=Vw;function Jw(u,e,t){return e===void 0&&(e=new Uint8Array(2)),t===void 0&&(t=0),e[t+0]=u>>>0,e[t+1]=u>>>8,e}Mu.writeUint16LE=Jw;Mu.writeInt16LE=Jw;function Tf(u,e){return e===void 0&&(e=0),u[e]<<24|u[e+1]<<16|u[e+2]<<8|u[e+3]}Mu.readInt32BE=Tf;function If(u,e){return e===void 0&&(e=0),(u[e]<<24|u[e+1]<<16|u[e+2]<<8|u[e+3])>>>0}Mu.readUint32BE=If;function Of(u,e){return e===void 0&&(e=0),u[e+3]<<24|u[e+2]<<16|u[e+1]<<8|u[e]}Mu.readInt32LE=Of;function Nf(u,e){return e===void 0&&(e=0),(u[e+3]<<24|u[e+2]<<16|u[e+1]<<8|u[e])>>>0}Mu.readUint32LE=Nf;function n2(u,e,t){return e===void 0&&(e=new Uint8Array(4)),t===void 0&&(t=0),e[t+0]=u>>>24,e[t+1]=u>>>16,e[t+2]=u>>>8,e[t+3]=u>>>0,e}Mu.writeUint32BE=n2;Mu.writeInt32BE=n2;function r2(u,e,t){return e===void 0&&(e=new Uint8Array(4)),t===void 0&&(t=0),e[t+0]=u>>>0,e[t+1]=u>>>8,e[t+2]=u>>>16,e[t+3]=u>>>24,e}Mu.writeUint32LE=r2;Mu.writeInt32LE=r2;function G4u(u,e){e===void 0&&(e=0);var t=Tf(u,e),n=Tf(u,e+4);return t*4294967296+n-(n>>31)*4294967296}Mu.readInt64BE=G4u;function K4u(u,e){e===void 0&&(e=0);var t=If(u,e),n=If(u,e+4);return t*4294967296+n}Mu.readUint64BE=K4u;function Q4u(u,e){e===void 0&&(e=0);var t=Of(u,e),n=Of(u,e+4);return n*4294967296+t-(t>>31)*4294967296}Mu.readInt64LE=Q4u;function V4u(u,e){e===void 0&&(e=0);var t=Nf(u,e),n=Nf(u,e+4);return n*4294967296+t}Mu.readUint64LE=V4u;function Yw(u,e,t){return e===void 0&&(e=new Uint8Array(8)),t===void 0&&(t=0),n2(u/4294967296>>>0,e,t),n2(u>>>0,e,t+4),e}Mu.writeUint64BE=Yw;Mu.writeInt64BE=Yw;function Xw(u,e,t){return e===void 0&&(e=new Uint8Array(8)),t===void 0&&(t=0),r2(u>>>0,e,t),r2(u/4294967296>>>0,e,t+4),e}Mu.writeUint64LE=Xw;Mu.writeInt64LE=Xw;function J4u(u,e,t){if(t===void 0&&(t=0),u%8!==0)throw new Error("readUintBE supports only bitLengths divisible by 8");if(u/8>e.length-t)throw new Error("readUintBE: array is too short for the given bitLength");for(var n=0,r=1,i=u/8+t-1;i>=t;i--)n+=e[i]*r,r*=256;return n}Mu.readUintBE=J4u;function Y4u(u,e,t){if(t===void 0&&(t=0),u%8!==0)throw new Error("readUintLE supports only bitLengths divisible by 8");if(u/8>e.length-t)throw new Error("readUintLE: array is too short for the given bitLength");for(var n=0,r=1,i=t;i=n;i--)t[i]=e/r&255,r*=256;return t}Mu.writeUintBE=X4u;function Z4u(u,e,t,n){if(t===void 0&&(t=new Uint8Array(u/8)),n===void 0&&(n=0),u%8!==0)throw new Error("writeUintLE supports only bitLengths divisible by 8");if(!Qw.isSafeInteger(e))throw new Error("writeUintLE value must be an integer");for(var r=1,i=n;i>>32-16|eu<<16,uu=uu+eu|0,p^=uu,p=p>>>32-12|p<<12,v=v+x|0,au^=v,au=au>>>32-16|au<<16,ou=ou+au|0,x^=ou,x=x>>>32-12|x<<12,w=w+j|0,nu^=w,nu=nu>>>32-16|nu<<16,su=su+nu|0,j^=su,j=j>>>32-12|j<<12,D=D+O|0,W^=D,W=W>>>32-16|W<<16,hu=hu+W|0,O^=hu,O=O>>>32-12|O<<12,w=w+j|0,nu^=w,nu=nu>>>32-8|nu<<8,su=su+nu|0,j^=su,j=j>>>32-7|j<<7,D=D+O|0,W^=D,W=W>>>32-8|W<<8,hu=hu+W|0,O^=hu,O=O>>>32-7|O<<7,v=v+x|0,au^=v,au=au>>>32-8|au<<8,ou=ou+au|0,x^=ou,x=x>>>32-7|x<<7,y=y+p|0,eu^=y,eu=eu>>>32-8|eu<<8,uu=uu+eu|0,p^=uu,p=p>>>32-7|p<<7,y=y+x|0,W^=y,W=W>>>32-16|W<<16,su=su+W|0,x^=su,x=x>>>32-12|x<<12,v=v+j|0,eu^=v,eu=eu>>>32-16|eu<<16,hu=hu+eu|0,j^=hu,j=j>>>32-12|j<<12,w=w+O|0,au^=w,au=au>>>32-16|au<<16,uu=uu+au|0,O^=uu,O=O>>>32-12|O<<12,D=D+p|0,nu^=D,nu=nu>>>32-16|nu<<16,ou=ou+nu|0,p^=ou,p=p>>>32-12|p<<12,w=w+O|0,au^=w,au=au>>>32-8|au<<8,uu=uu+au|0,O^=uu,O=O>>>32-7|O<<7,D=D+p|0,nu^=D,nu=nu>>>32-8|nu<<8,ou=ou+nu|0,p^=ou,p=p>>>32-7|p<<7,v=v+j|0,eu^=v,eu=eu>>>32-8|eu<<8,hu=hu+eu|0,j^=hu,j=j>>>32-7|j<<7,y=y+x|0,W^=y,W=W>>>32-8|W<<8,su=su+W|0,x^=su,x=x>>>32-7|x<<7;Qe.writeUint32LE(y+n|0,u,0),Qe.writeUint32LE(v+r|0,u,4),Qe.writeUint32LE(w+i|0,u,8),Qe.writeUint32LE(D+a|0,u,12),Qe.writeUint32LE(p+o|0,u,16),Qe.writeUint32LE(x+s|0,u,20),Qe.writeUint32LE(j+l|0,u,24),Qe.writeUint32LE(O+c|0,u,28),Qe.writeUint32LE(uu+E|0,u,32),Qe.writeUint32LE(ou+d|0,u,36),Qe.writeUint32LE(su+f|0,u,40),Qe.writeUint32LE(hu+C|0,u,44),Qe.writeUint32LE(eu+h|0,u,48),Qe.writeUint32LE(au+B|0,u,52),Qe.writeUint32LE(nu+g|0,u,56),Qe.writeUint32LE(W+m|0,u,60)}function Zw(u,e,t,n,r){if(r===void 0&&(r=0),u.length!==32)throw new Error("ChaCha: key size must be 32 bytes");if(n.length>>=8,e++;if(n>0)throw new Error("ChaCha: counter overflow")}var ux={},si={};Object.defineProperty(si,"__esModule",{value:!0});function f3u(u,e,t){return~(u-1)&e|u-1&t}si.select=f3u;function p3u(u,e){return(u|0)-(e|0)-1>>>31&1}si.lessOrEqual=p3u;function ex(u,e){if(u.length!==e.length)return 0;for(var t=0,n=0;n>>8}si.compare=ex;function h3u(u,e){return u.length===0||e.length===0?!1:ex(u,e)!==0}si.equal=h3u;(function(u){Object.defineProperty(u,"__esModule",{value:!0});var e=si,t=Lt;u.DIGEST_LENGTH=16;var n=function(){function a(o){this.digestLength=u.DIGEST_LENGTH,this._buffer=new Uint8Array(16),this._r=new Uint16Array(10),this._h=new Uint16Array(10),this._pad=new Uint16Array(8),this._leftover=0,this._fin=0,this._finished=!1;var s=o[0]|o[1]<<8;this._r[0]=s&8191;var l=o[2]|o[3]<<8;this._r[1]=(s>>>13|l<<3)&8191;var c=o[4]|o[5]<<8;this._r[2]=(l>>>10|c<<6)&7939;var E=o[6]|o[7]<<8;this._r[3]=(c>>>7|E<<9)&8191;var d=o[8]|o[9]<<8;this._r[4]=(E>>>4|d<<12)&255,this._r[5]=d>>>1&8190;var f=o[10]|o[11]<<8;this._r[6]=(d>>>14|f<<2)&8191;var C=o[12]|o[13]<<8;this._r[7]=(f>>>11|C<<5)&8065;var h=o[14]|o[15]<<8;this._r[8]=(C>>>8|h<<8)&8191,this._r[9]=h>>>5&127,this._pad[0]=o[16]|o[17]<<8,this._pad[1]=o[18]|o[19]<<8,this._pad[2]=o[20]|o[21]<<8,this._pad[3]=o[22]|o[23]<<8,this._pad[4]=o[24]|o[25]<<8,this._pad[5]=o[26]|o[27]<<8,this._pad[6]=o[28]|o[29]<<8,this._pad[7]=o[30]|o[31]<<8}return a.prototype._blocks=function(o,s,l){for(var c=this._fin?0:2048,E=this._h[0],d=this._h[1],f=this._h[2],C=this._h[3],h=this._h[4],B=this._h[5],g=this._h[6],m=this._h[7],y=this._h[8],v=this._h[9],w=this._r[0],D=this._r[1],p=this._r[2],x=this._r[3],j=this._r[4],O=this._r[5],uu=this._r[6],ou=this._r[7],su=this._r[8],hu=this._r[9];l>=16;){var eu=o[s+0]|o[s+1]<<8;E+=eu&8191;var au=o[s+2]|o[s+3]<<8;d+=(eu>>>13|au<<3)&8191;var nu=o[s+4]|o[s+5]<<8;f+=(au>>>10|nu<<6)&8191;var W=o[s+6]|o[s+7]<<8;C+=(nu>>>7|W<<9)&8191;var iu=o[s+8]|o[s+9]<<8;h+=(W>>>4|iu<<12)&8191,B+=iu>>>1&8191;var lu=o[s+10]|o[s+11]<<8;g+=(iu>>>14|lu<<2)&8191;var cu=o[s+12]|o[s+13]<<8;m+=(lu>>>11|cu<<5)&8191;var pu=o[s+14]|o[s+15]<<8;y+=(cu>>>8|pu<<8)&8191,v+=pu>>>5|c;var fu=0,J=fu;J+=E*w,J+=d*(5*hu),J+=f*(5*su),J+=C*(5*ou),J+=h*(5*uu),fu=J>>>13,J&=8191,J+=B*(5*O),J+=g*(5*j),J+=m*(5*x),J+=y*(5*p),J+=v*(5*D),fu+=J>>>13,J&=8191;var _u=fu;_u+=E*D,_u+=d*w,_u+=f*(5*hu),_u+=C*(5*su),_u+=h*(5*ou),fu=_u>>>13,_u&=8191,_u+=B*(5*uu),_u+=g*(5*O),_u+=m*(5*j),_u+=y*(5*x),_u+=v*(5*p),fu+=_u>>>13,_u&=8191;var Du=fu;Du+=E*p,Du+=d*D,Du+=f*w,Du+=C*(5*hu),Du+=h*(5*su),fu=Du>>>13,Du&=8191,Du+=B*(5*ou),Du+=g*(5*uu),Du+=m*(5*O),Du+=y*(5*j),Du+=v*(5*x),fu+=Du>>>13,Du&=8191;var xu=fu;xu+=E*x,xu+=d*p,xu+=f*D,xu+=C*w,xu+=h*(5*hu),fu=xu>>>13,xu&=8191,xu+=B*(5*su),xu+=g*(5*ou),xu+=m*(5*uu),xu+=y*(5*O),xu+=v*(5*j),fu+=xu>>>13,xu&=8191;var bu=fu;bu+=E*j,bu+=d*x,bu+=f*p,bu+=C*D,bu+=h*w,fu=bu>>>13,bu&=8191,bu+=B*(5*hu),bu+=g*(5*su),bu+=m*(5*ou),bu+=y*(5*uu),bu+=v*(5*O),fu+=bu>>>13,bu&=8191;var Iu=fu;Iu+=E*O,Iu+=d*j,Iu+=f*x,Iu+=C*p,Iu+=h*D,fu=Iu>>>13,Iu&=8191,Iu+=B*w,Iu+=g*(5*hu),Iu+=m*(5*su),Iu+=y*(5*ou),Iu+=v*(5*uu),fu+=Iu>>>13,Iu&=8191;var S=fu;S+=E*uu,S+=d*O,S+=f*j,S+=C*x,S+=h*p,fu=S>>>13,S&=8191,S+=B*D,S+=g*w,S+=m*(5*hu),S+=y*(5*su),S+=v*(5*ou),fu+=S>>>13,S&=8191;var T=fu;T+=E*ou,T+=d*uu,T+=f*O,T+=C*j,T+=h*x,fu=T>>>13,T&=8191,T+=B*p,T+=g*D,T+=m*w,T+=y*(5*hu),T+=v*(5*su),fu+=T>>>13,T&=8191;var I=fu;I+=E*su,I+=d*ou,I+=f*uu,I+=C*O,I+=h*j,fu=I>>>13,I&=8191,I+=B*x,I+=g*p,I+=m*D,I+=y*w,I+=v*(5*hu),fu+=I>>>13,I&=8191;var L=fu;L+=E*hu,L+=d*su,L+=f*ou,L+=C*uu,L+=h*O,fu=L>>>13,L&=8191,L+=B*j,L+=g*x,L+=m*p,L+=y*D,L+=v*w,fu+=L>>>13,L&=8191,fu=(fu<<2)+fu|0,fu=fu+J|0,J=fu&8191,fu=fu>>>13,_u+=fu,E=J,d=_u,f=Du,C=xu,h=bu,B=Iu,g=S,m=T,y=I,v=L,s+=16,l-=16}this._h[0]=E,this._h[1]=d,this._h[2]=f,this._h[3]=C,this._h[4]=h,this._h[5]=B,this._h[6]=g,this._h[7]=m,this._h[8]=y,this._h[9]=v},a.prototype.finish=function(o,s){s===void 0&&(s=0);var l=new Uint16Array(10),c,E,d,f;if(this._leftover){for(f=this._leftover,this._buffer[f++]=1;f<16;f++)this._buffer[f]=0;this._fin=1,this._blocks(this._buffer,0,16)}for(c=this._h[1]>>>13,this._h[1]&=8191,f=2;f<10;f++)this._h[f]+=c,c=this._h[f]>>>13,this._h[f]&=8191;for(this._h[0]+=c*5,c=this._h[0]>>>13,this._h[0]&=8191,this._h[1]+=c,c=this._h[1]>>>13,this._h[1]&=8191,this._h[2]+=c,l[0]=this._h[0]+5,c=l[0]>>>13,l[0]&=8191,f=1;f<10;f++)l[f]=this._h[f]+c,c=l[f]>>>13,l[f]&=8191;for(l[9]-=8192,E=(c^1)-1,f=0;f<10;f++)l[f]&=E;for(E=~E,f=0;f<10;f++)this._h[f]=this._h[f]&E|l[f];for(this._h[0]=(this._h[0]|this._h[1]<<13)&65535,this._h[1]=(this._h[1]>>>3|this._h[2]<<10)&65535,this._h[2]=(this._h[2]>>>6|this._h[3]<<7)&65535,this._h[3]=(this._h[3]>>>9|this._h[4]<<4)&65535,this._h[4]=(this._h[4]>>>12|this._h[5]<<1|this._h[6]<<14)&65535,this._h[5]=(this._h[6]>>>2|this._h[7]<<11)&65535,this._h[6]=(this._h[7]>>>5|this._h[8]<<8)&65535,this._h[7]=(this._h[8]>>>8|this._h[9]<<5)&65535,d=this._h[0]+this._pad[0],this._h[0]=d&65535,f=1;f<8;f++)d=(this._h[f]+this._pad[f]|0)+(d>>>16)|0,this._h[f]=d&65535;return o[s+0]=this._h[0]>>>0,o[s+1]=this._h[0]>>>8,o[s+2]=this._h[1]>>>0,o[s+3]=this._h[1]>>>8,o[s+4]=this._h[2]>>>0,o[s+5]=this._h[2]>>>8,o[s+6]=this._h[3]>>>0,o[s+7]=this._h[3]>>>8,o[s+8]=this._h[4]>>>0,o[s+9]=this._h[4]>>>8,o[s+10]=this._h[5]>>>0,o[s+11]=this._h[5]>>>8,o[s+12]=this._h[6]>>>0,o[s+13]=this._h[6]>>>8,o[s+14]=this._h[7]>>>0,o[s+15]=this._h[7]>>>8,this._finished=!0,this},a.prototype.update=function(o){var s=0,l=o.length,c;if(this._leftover){c=16-this._leftover,c>l&&(c=l);for(var E=0;E=16&&(c=l-l%16,this._blocks(o,s,c),s+=c,l-=c),l){for(var E=0;E16)throw new Error("ChaCha20Poly1305: incorrect nonce length");var f=new Uint8Array(16);f.set(l,f.length-l.length);var C=new Uint8Array(32);e.stream(this._key,f,C,4);var h=c.length+this.tagLength,B;if(d){if(d.length!==h)throw new Error("ChaCha20Poly1305: incorrect destination length");B=d}else B=new Uint8Array(h);return e.streamXOR(this._key,f,c,B,4),this._authenticate(B.subarray(B.length-this.tagLength,B.length),C,B.subarray(0,B.length-this.tagLength),E),n.wipe(f),B},s.prototype.open=function(l,c,E,d){if(l.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");if(c.length0&&f.update(a.subarray(d.length%16))),f.update(E),E.length%16>0&&f.update(a.subarray(E.length%16));var C=new Uint8Array(8);d&&r.writeUint64LE(d.length,C),f.update(C),r.writeUint64LE(E.length,C),f.update(C);for(var h=f.digest(),B=0;Bthis.blockSize?this._inner.update(t).finish(n).clean():n.set(t);for(var r=0;r1&&this._hmac.update(this._buffer),this._info&&this._hmac.update(this._info),this._hmac.update(this._counter),this._hmac.finish(this._buffer),this._bufpos=0},u.prototype.expand=function(e){for(var t=new Uint8Array(e),n=0;n256)throw new Error("randomString charset is too long");let d="";const f=c.length,C=256-256%f;for(;l>0;){const h=r(Math.ceil(l*256/C),E);for(let B=0;B0;B++){const g=h[B];g0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=s[c++],l--;this._bufferLength===this.blockSize&&(i(this._temp,this._state,this._buffer,0,this.blockSize),this._bufferLength=0)}for(l>=this.blockSize&&(c=i(this._temp,this._state,s,c,l),l%=this.blockSize);l>0;)this._buffer[this._bufferLength++]=s[c++],l--;return this},o.prototype.finish=function(s){if(!this._finished){var l=this._bytesHashed,c=this._bufferLength,E=l/536870912|0,d=l<<3,f=l%64<56?64:128;this._buffer[c]=128;for(var C=c+1;C0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},o.prototype.restoreState=function(s){return this._state.set(s.state),this._bufferLength=s.bufferLength,s.buffer&&this._buffer.set(s.buffer),this._bytesHashed=s.bytesHashed,this._finished=!1,this},o.prototype.cleanSavedState=function(s){t.wipe(s.state),s.buffer&&t.wipe(s.buffer),s.bufferLength=0,s.bytesHashed=0},o}();u.SHA256=n;var r=new Int32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function i(o,s,l,c,E){for(;E>=64;){for(var d=s[0],f=s[1],C=s[2],h=s[3],B=s[4],g=s[5],m=s[6],y=s[7],v=0;v<16;v++){var w=c+v*4;o[v]=e.readUint32BE(l,w)}for(var v=16;v<64;v++){var D=o[v-2],p=(D>>>17|D<<32-17)^(D>>>19|D<<32-19)^D>>>10;D=o[v-15];var x=(D>>>7|D<<32-7)^(D>>>18|D<<32-18)^D>>>3;o[v]=(p+o[v-7]|0)+(x+o[v-16]|0)}for(var v=0;v<64;v++){var p=(((B>>>6|B<<26)^(B>>>11|B<<21)^(B>>>25|B<<7))+(B&g^~B&m)|0)+(y+(r[v]+o[v]|0)|0)|0,x=((d>>>2|d<<32-2)^(d>>>13|d<<32-13)^(d>>>22|d<<32-22))+(d&f^d&C^f&C)|0;y=m,m=g,g=B,B=h+p|0,h=C,C=f,f=d,d=p+x|0}s[0]+=d,s[1]+=f,s[2]+=C,s[3]+=h,s[4]+=B,s[5]+=g,s[6]+=m,s[7]+=y,c+=64,E-=64}return c}function a(o){var s=new n;s.update(o);var l=s.digest();return s.clean(),l}u.hash=a})(Yd);var eC={};(function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.sharedKey=u.generateKeyPair=u.generateKeyPairFromSeed=u.scalarMultBase=u.scalarMult=u.SHARED_KEY_LENGTH=u.SECRET_KEY_LENGTH=u.PUBLIC_KEY_LENGTH=void 0;const e=Kd,t=Lt;u.PUBLIC_KEY_LENGTH=32,u.SECRET_KEY_LENGTH=32,u.SHARED_KEY_LENGTH=32;function n(v){const w=new Float64Array(16);if(v)for(let D=0;D>16&1),D[O-1]&=65535;D[15]=p[15]-32767-(D[14]>>16&1);const j=D[15]>>16&1;D[14]&=65535,o(p,D,1-j)}for(let x=0;x<16;x++)v[2*x]=p[x]&255,v[2*x+1]=p[x]>>8}function l(v,w){for(let D=0;D<16;D++)v[D]=w[2*D]+(w[2*D+1]<<8);v[15]&=32767}function c(v,w,D){for(let p=0;p<16;p++)v[p]=w[p]+D[p]}function E(v,w,D){for(let p=0;p<16;p++)v[p]=w[p]-D[p]}function d(v,w,D){let p,x,j=0,O=0,uu=0,ou=0,su=0,hu=0,eu=0,au=0,nu=0,W=0,iu=0,lu=0,cu=0,pu=0,fu=0,J=0,_u=0,Du=0,xu=0,bu=0,Iu=0,S=0,T=0,I=0,L=0,U=0,q=0,Y=0,$=0,H=0,V=0,G=D[0],ru=D[1],Cu=D[2],Au=D[3],Tu=D[4],Nu=D[5],$u=D[6],k=D[7],A=D[8],F=D[9],P=D[10],z=D[11],K=D[12],Z=D[13],Fu=D[14],Pu=D[15];p=w[0],j+=p*G,O+=p*ru,uu+=p*Cu,ou+=p*Au,su+=p*Tu,hu+=p*Nu,eu+=p*$u,au+=p*k,nu+=p*A,W+=p*F,iu+=p*P,lu+=p*z,cu+=p*K,pu+=p*Z,fu+=p*Fu,J+=p*Pu,p=w[1],O+=p*G,uu+=p*ru,ou+=p*Cu,su+=p*Au,hu+=p*Tu,eu+=p*Nu,au+=p*$u,nu+=p*k,W+=p*A,iu+=p*F,lu+=p*P,cu+=p*z,pu+=p*K,fu+=p*Z,J+=p*Fu,_u+=p*Pu,p=w[2],uu+=p*G,ou+=p*ru,su+=p*Cu,hu+=p*Au,eu+=p*Tu,au+=p*Nu,nu+=p*$u,W+=p*k,iu+=p*A,lu+=p*F,cu+=p*P,pu+=p*z,fu+=p*K,J+=p*Z,_u+=p*Fu,Du+=p*Pu,p=w[3],ou+=p*G,su+=p*ru,hu+=p*Cu,eu+=p*Au,au+=p*Tu,nu+=p*Nu,W+=p*$u,iu+=p*k,lu+=p*A,cu+=p*F,pu+=p*P,fu+=p*z,J+=p*K,_u+=p*Z,Du+=p*Fu,xu+=p*Pu,p=w[4],su+=p*G,hu+=p*ru,eu+=p*Cu,au+=p*Au,nu+=p*Tu,W+=p*Nu,iu+=p*$u,lu+=p*k,cu+=p*A,pu+=p*F,fu+=p*P,J+=p*z,_u+=p*K,Du+=p*Z,xu+=p*Fu,bu+=p*Pu,p=w[5],hu+=p*G,eu+=p*ru,au+=p*Cu,nu+=p*Au,W+=p*Tu,iu+=p*Nu,lu+=p*$u,cu+=p*k,pu+=p*A,fu+=p*F,J+=p*P,_u+=p*z,Du+=p*K,xu+=p*Z,bu+=p*Fu,Iu+=p*Pu,p=w[6],eu+=p*G,au+=p*ru,nu+=p*Cu,W+=p*Au,iu+=p*Tu,lu+=p*Nu,cu+=p*$u,pu+=p*k,fu+=p*A,J+=p*F,_u+=p*P,Du+=p*z,xu+=p*K,bu+=p*Z,Iu+=p*Fu,S+=p*Pu,p=w[7],au+=p*G,nu+=p*ru,W+=p*Cu,iu+=p*Au,lu+=p*Tu,cu+=p*Nu,pu+=p*$u,fu+=p*k,J+=p*A,_u+=p*F,Du+=p*P,xu+=p*z,bu+=p*K,Iu+=p*Z,S+=p*Fu,T+=p*Pu,p=w[8],nu+=p*G,W+=p*ru,iu+=p*Cu,lu+=p*Au,cu+=p*Tu,pu+=p*Nu,fu+=p*$u,J+=p*k,_u+=p*A,Du+=p*F,xu+=p*P,bu+=p*z,Iu+=p*K,S+=p*Z,T+=p*Fu,I+=p*Pu,p=w[9],W+=p*G,iu+=p*ru,lu+=p*Cu,cu+=p*Au,pu+=p*Tu,fu+=p*Nu,J+=p*$u,_u+=p*k,Du+=p*A,xu+=p*F,bu+=p*P,Iu+=p*z,S+=p*K,T+=p*Z,I+=p*Fu,L+=p*Pu,p=w[10],iu+=p*G,lu+=p*ru,cu+=p*Cu,pu+=p*Au,fu+=p*Tu,J+=p*Nu,_u+=p*$u,Du+=p*k,xu+=p*A,bu+=p*F,Iu+=p*P,S+=p*z,T+=p*K,I+=p*Z,L+=p*Fu,U+=p*Pu,p=w[11],lu+=p*G,cu+=p*ru,pu+=p*Cu,fu+=p*Au,J+=p*Tu,_u+=p*Nu,Du+=p*$u,xu+=p*k,bu+=p*A,Iu+=p*F,S+=p*P,T+=p*z,I+=p*K,L+=p*Z,U+=p*Fu,q+=p*Pu,p=w[12],cu+=p*G,pu+=p*ru,fu+=p*Cu,J+=p*Au,_u+=p*Tu,Du+=p*Nu,xu+=p*$u,bu+=p*k,Iu+=p*A,S+=p*F,T+=p*P,I+=p*z,L+=p*K,U+=p*Z,q+=p*Fu,Y+=p*Pu,p=w[13],pu+=p*G,fu+=p*ru,J+=p*Cu,_u+=p*Au,Du+=p*Tu,xu+=p*Nu,bu+=p*$u,Iu+=p*k,S+=p*A,T+=p*F,I+=p*P,L+=p*z,U+=p*K,q+=p*Z,Y+=p*Fu,$+=p*Pu,p=w[14],fu+=p*G,J+=p*ru,_u+=p*Cu,Du+=p*Au,xu+=p*Tu,bu+=p*Nu,Iu+=p*$u,S+=p*k,T+=p*A,I+=p*F,L+=p*P,U+=p*z,q+=p*K,Y+=p*Z,$+=p*Fu,H+=p*Pu,p=w[15],J+=p*G,_u+=p*ru,Du+=p*Cu,xu+=p*Au,bu+=p*Tu,Iu+=p*Nu,S+=p*$u,T+=p*k,I+=p*A,L+=p*F,U+=p*P,q+=p*z,Y+=p*K,$+=p*Z,H+=p*Fu,V+=p*Pu,j+=38*_u,O+=38*Du,uu+=38*xu,ou+=38*bu,su+=38*Iu,hu+=38*S,eu+=38*T,au+=38*I,nu+=38*L,W+=38*U,iu+=38*q,lu+=38*Y,cu+=38*$,pu+=38*H,fu+=38*V,x=1,p=j+x+65535,x=Math.floor(p/65536),j=p-x*65536,p=O+x+65535,x=Math.floor(p/65536),O=p-x*65536,p=uu+x+65535,x=Math.floor(p/65536),uu=p-x*65536,p=ou+x+65535,x=Math.floor(p/65536),ou=p-x*65536,p=su+x+65535,x=Math.floor(p/65536),su=p-x*65536,p=hu+x+65535,x=Math.floor(p/65536),hu=p-x*65536,p=eu+x+65535,x=Math.floor(p/65536),eu=p-x*65536,p=au+x+65535,x=Math.floor(p/65536),au=p-x*65536,p=nu+x+65535,x=Math.floor(p/65536),nu=p-x*65536,p=W+x+65535,x=Math.floor(p/65536),W=p-x*65536,p=iu+x+65535,x=Math.floor(p/65536),iu=p-x*65536,p=lu+x+65535,x=Math.floor(p/65536),lu=p-x*65536,p=cu+x+65535,x=Math.floor(p/65536),cu=p-x*65536,p=pu+x+65535,x=Math.floor(p/65536),pu=p-x*65536,p=fu+x+65535,x=Math.floor(p/65536),fu=p-x*65536,p=J+x+65535,x=Math.floor(p/65536),J=p-x*65536,j+=x-1+37*(x-1),x=1,p=j+x+65535,x=Math.floor(p/65536),j=p-x*65536,p=O+x+65535,x=Math.floor(p/65536),O=p-x*65536,p=uu+x+65535,x=Math.floor(p/65536),uu=p-x*65536,p=ou+x+65535,x=Math.floor(p/65536),ou=p-x*65536,p=su+x+65535,x=Math.floor(p/65536),su=p-x*65536,p=hu+x+65535,x=Math.floor(p/65536),hu=p-x*65536,p=eu+x+65535,x=Math.floor(p/65536),eu=p-x*65536,p=au+x+65535,x=Math.floor(p/65536),au=p-x*65536,p=nu+x+65535,x=Math.floor(p/65536),nu=p-x*65536,p=W+x+65535,x=Math.floor(p/65536),W=p-x*65536,p=iu+x+65535,x=Math.floor(p/65536),iu=p-x*65536,p=lu+x+65535,x=Math.floor(p/65536),lu=p-x*65536,p=cu+x+65535,x=Math.floor(p/65536),cu=p-x*65536,p=pu+x+65535,x=Math.floor(p/65536),pu=p-x*65536,p=fu+x+65535,x=Math.floor(p/65536),fu=p-x*65536,p=J+x+65535,x=Math.floor(p/65536),J=p-x*65536,j+=x-1+37*(x-1),v[0]=j,v[1]=O,v[2]=uu,v[3]=ou,v[4]=su,v[5]=hu,v[6]=eu,v[7]=au,v[8]=nu,v[9]=W,v[10]=iu,v[11]=lu,v[12]=cu,v[13]=pu,v[14]=fu,v[15]=J}function f(v,w){d(v,w,w)}function C(v,w){const D=n();for(let p=0;p<16;p++)D[p]=w[p];for(let p=253;p>=0;p--)f(D,D),p!==2&&p!==4&&d(D,D,w);for(let p=0;p<16;p++)v[p]=D[p]}function h(v,w){const D=new Uint8Array(32),p=new Float64Array(80),x=n(),j=n(),O=n(),uu=n(),ou=n(),su=n();for(let nu=0;nu<31;nu++)D[nu]=v[nu];D[31]=v[31]&127|64,D[0]&=248,l(p,w);for(let nu=0;nu<16;nu++)j[nu]=p[nu];x[0]=uu[0]=1;for(let nu=254;nu>=0;--nu){const W=D[nu>>>3]>>>(nu&7)&1;o(x,j,W),o(O,uu,W),c(ou,x,O),E(x,x,O),c(O,j,uu),E(j,j,uu),f(uu,ou),f(su,x),d(x,O,x),d(O,j,ou),c(ou,x,O),E(x,x,O),f(j,x),E(O,uu,su),d(x,O,i),c(x,x,uu),d(O,O,x),d(x,uu,su),d(uu,j,p),f(j,ou),o(x,j,W),o(O,uu,W)}for(let nu=0;nu<16;nu++)p[nu+16]=x[nu],p[nu+32]=O[nu],p[nu+48]=j[nu],p[nu+64]=uu[nu];const hu=p.subarray(32),eu=p.subarray(16);C(hu,hu),d(eu,eu,hu);const au=new Uint8Array(32);return s(au,eu),au}u.scalarMult=h;function B(v){return h(v,r)}u.scalarMultBase=B;function g(v){if(v.length!==u.SECRET_KEY_LENGTH)throw new Error(`x25519: seed must be ${u.SECRET_KEY_LENGTH} bytes`);const w=new Uint8Array(v);return{publicKey:B(w),secretKey:w}}u.generateKeyPairFromSeed=g;function m(v){const w=(0,e.randomBytes)(32,v),D=g(w);return(0,t.wipe)(w),D}u.generateKeyPair=m;function y(v,w,D=!1){if(v.length!==u.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect secret key length");if(w.length!==u.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect public key length");const p=h(v,w);if(D){let x=0;for(let j=0;jr+i.length,0));const t=rx(e);let n=0;for(const r of u)t.set(r,n),n+=r.length;return tC(t)}function T3u(u,e){if(u.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n>>0,v=new Uint8Array(y);g!==m;){for(var w=C[g],D=0,p=y-1;(w!==0||D>>0,v[p]=w%o>>>0,w=w/o>>>0;if(w!==0)throw new Error("Non-zero carry");B=D,g++}for(var x=y-B;x!==y&&v[x]===0;)x++;for(var j=s.repeat(h);x>>0,y=new Uint8Array(m);C[h];){var v=t[C.charCodeAt(h)];if(v===255)return;for(var w=0,D=m-1;(v!==0||w>>0,y[D]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");g=w,h++}if(C[h]!==" "){for(var p=m-g;p!==m&&y[p]===0;)p++;for(var x=new Uint8Array(B+(m-p)),j=B;p!==m;)x[j++]=y[p++];return x}}}function f(C){var h=d(C);if(h)return h;throw new Error(`Non-${e} character`)}return{encode:E,decodeUnsafe:d,decode:f}}var I3u=T3u,O3u=I3u;const N3u=u=>{if(u instanceof Uint8Array&&u.constructor.name==="Uint8Array")return u;if(u instanceof ArrayBuffer)return new Uint8Array(u);if(ArrayBuffer.isView(u))return new Uint8Array(u.buffer,u.byteOffset,u.byteLength);throw new Error("Unknown type, must be binary type")},R3u=u=>new TextEncoder().encode(u),j3u=u=>new TextDecoder().decode(u);class z3u{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class M3u{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return ix(this,e)}}class U3u{constructor(e){this.decoders=e}or(e){return ix(this,e)}decode(e){const t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const ix=(u,e)=>new U3u({...u.decoders||{[u.prefix]:u},...e.decoders||{[e.prefix]:e}});class L3u{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new z3u(e,t,n),this.decoder=new M3u(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Xd=({name:u,prefix:e,encode:t,decode:n})=>new L3u(u,e,t,n),Kl=({prefix:u,name:e,alphabet:t})=>{const{encode:n,decode:r}=O3u(t,e);return Xd({prefix:u,name:e,encode:n,decode:i=>N3u(r(i))})},$3u=(u,e,t,n)=>{const r={};for(let c=0;c=8&&(o-=8,a[l++]=255&s>>o)}if(o>=t||255&s<<8-o)throw new SyntaxError("Unexpected end of data");return a},W3u=(u,e,t)=>{const n=e[e.length-1]==="=",r=(1<t;)a-=t,i+=e[r&o>>a];if(a&&(i+=e[r&o<Xd({prefix:e,name:u,encode(r){return W3u(r,n,t)},decode(r){return $3u(r,n,t,u)}}),q3u=Xd({prefix:"\0",name:"identity",encode:u=>j3u(u),decode:u=>R3u(u)}),H3u=Object.freeze(Object.defineProperty({__proto__:null,identity:q3u},Symbol.toStringTag,{value:"Module"})),G3u=He({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),K3u=Object.freeze(Object.defineProperty({__proto__:null,base2:G3u},Symbol.toStringTag,{value:"Module"})),Q3u=He({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),V3u=Object.freeze(Object.defineProperty({__proto__:null,base8:Q3u},Symbol.toStringTag,{value:"Module"})),J3u=Kl({prefix:"9",name:"base10",alphabet:"0123456789"}),Y3u=Object.freeze(Object.defineProperty({__proto__:null,base10:J3u},Symbol.toStringTag,{value:"Module"})),X3u=He({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Z3u=He({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),ulu=Object.freeze(Object.defineProperty({__proto__:null,base16:X3u,base16upper:Z3u},Symbol.toStringTag,{value:"Module"})),elu=He({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),tlu=He({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),nlu=He({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),rlu=He({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),ilu=He({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),alu=He({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),olu=He({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),slu=He({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),llu=He({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),clu=Object.freeze(Object.defineProperty({__proto__:null,base32:elu,base32hex:ilu,base32hexpad:olu,base32hexpadupper:slu,base32hexupper:alu,base32pad:nlu,base32padupper:rlu,base32upper:tlu,base32z:llu},Symbol.toStringTag,{value:"Module"})),Elu=Kl({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),dlu=Kl({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),flu=Object.freeze(Object.defineProperty({__proto__:null,base36:Elu,base36upper:dlu},Symbol.toStringTag,{value:"Module"})),plu=Kl({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),hlu=Kl({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),Clu=Object.freeze(Object.defineProperty({__proto__:null,base58btc:plu,base58flickr:hlu},Symbol.toStringTag,{value:"Module"})),mlu=He({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),glu=He({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Alu=He({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ylu=He({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),Blu=Object.freeze(Object.defineProperty({__proto__:null,base64:mlu,base64pad:glu,base64url:Alu,base64urlpad:ylu},Symbol.toStringTag,{value:"Module"})),ax=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),vlu=ax.reduce((u,e,t)=>(u[t]=e,u),[]),Flu=ax.reduce((u,e,t)=>(u[e.codePointAt(0)]=t,u),[]);function Dlu(u){return u.reduce((e,t)=>(e+=vlu[t],e),"")}function blu(u){const e=[];for(const t of u){const n=Flu[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}const wlu=Xd({prefix:"🚀",name:"base256emoji",encode:Dlu,decode:blu}),xlu=Object.freeze(Object.defineProperty({__proto__:null,base256emoji:wlu},Symbol.toStringTag,{value:"Module"}));new TextEncoder;new TextDecoder;const vA={...H3u,...K3u,...V3u,...Y3u,...ulu,...clu,...flu,...Clu,...Blu,...xlu};function ox(u,e,t,n){return{name:u,prefix:e,encoder:{name:u,prefix:e,encode:t},decoder:{decode:n}}}const FA=ox("utf8","u",u=>"u"+new TextDecoder("utf8").decode(u),u=>new TextEncoder().encode(u.substring(1))),D1=ox("ascii","a",u=>{let e="a";for(let t=0;t{u=u.substring(1);const e=rx(u.length);for(let t=0;t"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"?new Tlu:typeof navigator<"u"?xA(navigator.userAgent):Mlu()}function jlu(u){return u!==""&&Nlu.reduce(function(e,t){var n=t[0],r=t[1];if(e)return e;var i=r.exec(u);return!!i&&[n,i]},!1)}function xA(u){var e=jlu(u);if(!e)return null;var t=e[0],n=e[1];if(t==="searchbot")return new Plu;var r=n[1]&&n[1].split(".").join("_").split("_").slice(0,3);r?r.length=7&&xru(s,e),kru(s,a),isNaN(n)&&(n=xf.getBestMask(s,C1.bind(null,s,t))),xf.applyMask(n,s),C1(s,t,n),{modules:s,version:e,errorCorrectionLevel:t,maskPattern:n,segments:r}}Kb.create=function(e,t){if(typeof e>"u"||e==="")throw new Error("No input text");let n=p1.M,r,i;return typeof t<"u"&&(n=p1.from(t.errorCorrectionLevel,p1.M),r=u2.from(t.version),i=xf.from(t.maskPattern),t.toSJISFunc&&Wd.setToSJISFunction(t.toSJISFunc)),Pru(e,r,n,i)};var aw={},M5={};(function(u){function e(t){if(typeof t=="number"&&(t=t.toString()),typeof t!="string")throw new Error("Color should be defined as hex string");let n=t.slice().replace("#","").split("");if(n.length<3||n.length===5||n.length>8)throw new Error("Invalid hex color: "+t);(n.length===3||n.length===4)&&(n=Array.prototype.concat.apply([],n.map(function(i){return[i,i]}))),n.length===6&&n.push("F","F");const r=parseInt(n.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+n.slice(0,6).join("")}}u.getOptions=function(n){n||(n={}),n.color||(n.color={});const r=typeof n.margin>"u"||n.margin===null||n.margin<0?4:n.margin,i=n.width&&n.width>=21?n.width:void 0,a=n.scale||4;return{width:i,scale:i?4:a,margin:r,color:{dark:e(n.color.dark||"#000000ff"),light:e(n.color.light||"#ffffffff")},type:n.type,rendererOpts:n.rendererOpts||{}}},u.getScale=function(n,r){return r.width&&r.width>=n+r.margin*2?r.width/(n+r.margin*2):r.scale},u.getImageWidth=function(n,r){const i=u.getScale(n,r);return Math.floor((n+r.margin*2)*i)},u.qrToImageData=function(n,r,i){const a=r.modules.size,o=r.modules.data,s=u.getScale(a,i),l=Math.floor((a+i.margin*2)*s),c=i.margin*s,E=[i.color.light,i.color.dark];for(let d=0;d=c&&f>=c&&d"u"&&(!a||!a.getContext)&&(s=a,a=void 0),a||(l=n()),s=e.getOptions(s);const c=e.getImageWidth(i.modules.size,s),E=l.getContext("2d"),d=E.createImageData(c,c);return e.qrToImageData(d.data,i,s),t(E,l,c),E.putImageData(d,0,0),l},u.renderToDataURL=function(i,a,o){let s=o;typeof s>"u"&&(!a||!a.getContext)&&(s=a,a=void 0),s||(s={});const l=u.render(i,a,s),c=s.type||"image/png",E=s.rendererOpts||{};return l.toDataURL(c,E.quality)}})(aw);var ow={};const Tru=M5;function Mg(u,e){const t=u.a/255,n=e+'="'+u.hex+'"';return t<1?n+" "+e+'-opacity="'+t.toFixed(2).slice(1)+'"':n}function m1(u,e,t){let n=u+e;return typeof t<"u"&&(n+=" "+t),n}function Iru(u,e,t){let n="",r=0,i=!1,a=0;for(let o=0;o0&&s>0&&u[o-1]||(n+=i?m1("M",s+t,.5+l+t):m1("m",r,0),r=0,i=!1),s+1':"",l="',c='viewBox="0 0 '+o+" "+o+'"',d=''+s+l+` +`;return typeof n=="function"&&n(null,d),d};const Oru=Knu,_f=Kb,sw=aw,Nru=ow;function U5(u,e,t,n,r){const i=[].slice.call(arguments,1),a=i.length,o=typeof i[a-1]=="function";if(!o&&!Oru())throw new Error("Callback required as last argument");if(o){if(a<2)throw new Error("Too few arguments provided");a===2?(r=t,t=e,e=n=void 0):a===3&&(e.getContext&&typeof r>"u"?(r=n,n=void 0):(r=n,n=t,t=e,e=void 0))}else{if(a<1)throw new Error("Too few arguments provided");return a===1?(t=e,e=n=void 0):a===2&&!e.getContext&&(n=t,t=e,e=void 0),new Promise(function(s,l){try{const c=_f.create(t,n);s(u(c,e,n))}catch(c){l(c)}})}try{const s=_f.create(t,n);r(null,u(s,e,n))}catch(s){r(s)}}Wl.create=_f.create;Wl.toCanvas=U5.bind(null,sw.render);Wl.toDataURL=U5.bind(null,sw.renderToDataURL);Wl.toString=U5.bind(null,function(u,e,t){return Nru.render(u,t)});var Rru=768,_a=rS({conditions:{defaultCondition:"smallScreen",conditionNames:["smallScreen","largeScreen"],responsiveArray:void 0}}),jru=vy({conditions:{defaultCondition:"smallScreen",conditionNames:["smallScreen","largeScreen"],responsiveArray:void 0}}),Sf=sS({conditions:{defaultCondition:"base",conditionNames:["base","hover","active"],responsiveArray:void 0},styles:{background:{values:{accentColor:{conditions:{base:"ju367v9c",hover:"ju367v9d",active:"ju367v9e"},defaultClass:"ju367v9c"},accentColorForeground:{conditions:{base:"ju367v9f",hover:"ju367v9g",active:"ju367v9h"},defaultClass:"ju367v9f"},actionButtonBorder:{conditions:{base:"ju367v9i",hover:"ju367v9j",active:"ju367v9k"},defaultClass:"ju367v9i"},actionButtonBorderMobile:{conditions:{base:"ju367v9l",hover:"ju367v9m",active:"ju367v9n"},defaultClass:"ju367v9l"},actionButtonSecondaryBackground:{conditions:{base:"ju367v9o",hover:"ju367v9p",active:"ju367v9q"},defaultClass:"ju367v9o"},closeButton:{conditions:{base:"ju367v9r",hover:"ju367v9s",active:"ju367v9t"},defaultClass:"ju367v9r"},closeButtonBackground:{conditions:{base:"ju367v9u",hover:"ju367v9v",active:"ju367v9w"},defaultClass:"ju367v9u"},connectButtonBackground:{conditions:{base:"ju367v9x",hover:"ju367v9y",active:"ju367v9z"},defaultClass:"ju367v9x"},connectButtonBackgroundError:{conditions:{base:"ju367va0",hover:"ju367va1",active:"ju367va2"},defaultClass:"ju367va0"},connectButtonInnerBackground:{conditions:{base:"ju367va3",hover:"ju367va4",active:"ju367va5"},defaultClass:"ju367va3"},connectButtonText:{conditions:{base:"ju367va6",hover:"ju367va7",active:"ju367va8"},defaultClass:"ju367va6"},connectButtonTextError:{conditions:{base:"ju367va9",hover:"ju367vaa",active:"ju367vab"},defaultClass:"ju367va9"},connectionIndicator:{conditions:{base:"ju367vac",hover:"ju367vad",active:"ju367vae"},defaultClass:"ju367vac"},downloadBottomCardBackground:{conditions:{base:"ju367vaf",hover:"ju367vag",active:"ju367vah"},defaultClass:"ju367vaf"},downloadTopCardBackground:{conditions:{base:"ju367vai",hover:"ju367vaj",active:"ju367vak"},defaultClass:"ju367vai"},error:{conditions:{base:"ju367val",hover:"ju367vam",active:"ju367van"},defaultClass:"ju367val"},generalBorder:{conditions:{base:"ju367vao",hover:"ju367vap",active:"ju367vaq"},defaultClass:"ju367vao"},generalBorderDim:{conditions:{base:"ju367var",hover:"ju367vas",active:"ju367vat"},defaultClass:"ju367var"},menuItemBackground:{conditions:{base:"ju367vau",hover:"ju367vav",active:"ju367vaw"},defaultClass:"ju367vau"},modalBackdrop:{conditions:{base:"ju367vax",hover:"ju367vay",active:"ju367vaz"},defaultClass:"ju367vax"},modalBackground:{conditions:{base:"ju367vb0",hover:"ju367vb1",active:"ju367vb2"},defaultClass:"ju367vb0"},modalBorder:{conditions:{base:"ju367vb3",hover:"ju367vb4",active:"ju367vb5"},defaultClass:"ju367vb3"},modalText:{conditions:{base:"ju367vb6",hover:"ju367vb7",active:"ju367vb8"},defaultClass:"ju367vb6"},modalTextDim:{conditions:{base:"ju367vb9",hover:"ju367vba",active:"ju367vbb"},defaultClass:"ju367vb9"},modalTextSecondary:{conditions:{base:"ju367vbc",hover:"ju367vbd",active:"ju367vbe"},defaultClass:"ju367vbc"},profileAction:{conditions:{base:"ju367vbf",hover:"ju367vbg",active:"ju367vbh"},defaultClass:"ju367vbf"},profileActionHover:{conditions:{base:"ju367vbi",hover:"ju367vbj",active:"ju367vbk"},defaultClass:"ju367vbi"},profileForeground:{conditions:{base:"ju367vbl",hover:"ju367vbm",active:"ju367vbn"},defaultClass:"ju367vbl"},selectedOptionBorder:{conditions:{base:"ju367vbo",hover:"ju367vbp",active:"ju367vbq"},defaultClass:"ju367vbo"},standby:{conditions:{base:"ju367vbr",hover:"ju367vbs",active:"ju367vbt"},defaultClass:"ju367vbr"}}},borderColor:{values:{accentColor:{conditions:{base:"ju367vbu",hover:"ju367vbv",active:"ju367vbw"},defaultClass:"ju367vbu"},accentColorForeground:{conditions:{base:"ju367vbx",hover:"ju367vby",active:"ju367vbz"},defaultClass:"ju367vbx"},actionButtonBorder:{conditions:{base:"ju367vc0",hover:"ju367vc1",active:"ju367vc2"},defaultClass:"ju367vc0"},actionButtonBorderMobile:{conditions:{base:"ju367vc3",hover:"ju367vc4",active:"ju367vc5"},defaultClass:"ju367vc3"},actionButtonSecondaryBackground:{conditions:{base:"ju367vc6",hover:"ju367vc7",active:"ju367vc8"},defaultClass:"ju367vc6"},closeButton:{conditions:{base:"ju367vc9",hover:"ju367vca",active:"ju367vcb"},defaultClass:"ju367vc9"},closeButtonBackground:{conditions:{base:"ju367vcc",hover:"ju367vcd",active:"ju367vce"},defaultClass:"ju367vcc"},connectButtonBackground:{conditions:{base:"ju367vcf",hover:"ju367vcg",active:"ju367vch"},defaultClass:"ju367vcf"},connectButtonBackgroundError:{conditions:{base:"ju367vci",hover:"ju367vcj",active:"ju367vck"},defaultClass:"ju367vci"},connectButtonInnerBackground:{conditions:{base:"ju367vcl",hover:"ju367vcm",active:"ju367vcn"},defaultClass:"ju367vcl"},connectButtonText:{conditions:{base:"ju367vco",hover:"ju367vcp",active:"ju367vcq"},defaultClass:"ju367vco"},connectButtonTextError:{conditions:{base:"ju367vcr",hover:"ju367vcs",active:"ju367vct"},defaultClass:"ju367vcr"},connectionIndicator:{conditions:{base:"ju367vcu",hover:"ju367vcv",active:"ju367vcw"},defaultClass:"ju367vcu"},downloadBottomCardBackground:{conditions:{base:"ju367vcx",hover:"ju367vcy",active:"ju367vcz"},defaultClass:"ju367vcx"},downloadTopCardBackground:{conditions:{base:"ju367vd0",hover:"ju367vd1",active:"ju367vd2"},defaultClass:"ju367vd0"},error:{conditions:{base:"ju367vd3",hover:"ju367vd4",active:"ju367vd5"},defaultClass:"ju367vd3"},generalBorder:{conditions:{base:"ju367vd6",hover:"ju367vd7",active:"ju367vd8"},defaultClass:"ju367vd6"},generalBorderDim:{conditions:{base:"ju367vd9",hover:"ju367vda",active:"ju367vdb"},defaultClass:"ju367vd9"},menuItemBackground:{conditions:{base:"ju367vdc",hover:"ju367vdd",active:"ju367vde"},defaultClass:"ju367vdc"},modalBackdrop:{conditions:{base:"ju367vdf",hover:"ju367vdg",active:"ju367vdh"},defaultClass:"ju367vdf"},modalBackground:{conditions:{base:"ju367vdi",hover:"ju367vdj",active:"ju367vdk"},defaultClass:"ju367vdi"},modalBorder:{conditions:{base:"ju367vdl",hover:"ju367vdm",active:"ju367vdn"},defaultClass:"ju367vdl"},modalText:{conditions:{base:"ju367vdo",hover:"ju367vdp",active:"ju367vdq"},defaultClass:"ju367vdo"},modalTextDim:{conditions:{base:"ju367vdr",hover:"ju367vds",active:"ju367vdt"},defaultClass:"ju367vdr"},modalTextSecondary:{conditions:{base:"ju367vdu",hover:"ju367vdv",active:"ju367vdw"},defaultClass:"ju367vdu"},profileAction:{conditions:{base:"ju367vdx",hover:"ju367vdy",active:"ju367vdz"},defaultClass:"ju367vdx"},profileActionHover:{conditions:{base:"ju367ve0",hover:"ju367ve1",active:"ju367ve2"},defaultClass:"ju367ve0"},profileForeground:{conditions:{base:"ju367ve3",hover:"ju367ve4",active:"ju367ve5"},defaultClass:"ju367ve3"},selectedOptionBorder:{conditions:{base:"ju367ve6",hover:"ju367ve7",active:"ju367ve8"},defaultClass:"ju367ve6"},standby:{conditions:{base:"ju367ve9",hover:"ju367vea",active:"ju367veb"},defaultClass:"ju367ve9"}}},boxShadow:{values:{connectButton:{conditions:{base:"ju367vec",hover:"ju367ved",active:"ju367vee"},defaultClass:"ju367vec"},dialog:{conditions:{base:"ju367vef",hover:"ju367veg",active:"ju367veh"},defaultClass:"ju367vef"},profileDetailsAction:{conditions:{base:"ju367vei",hover:"ju367vej",active:"ju367vek"},defaultClass:"ju367vei"},selectedOption:{conditions:{base:"ju367vel",hover:"ju367vem",active:"ju367ven"},defaultClass:"ju367vel"},selectedWallet:{conditions:{base:"ju367veo",hover:"ju367vep",active:"ju367veq"},defaultClass:"ju367veo"},walletLogo:{conditions:{base:"ju367ver",hover:"ju367ves",active:"ju367vet"},defaultClass:"ju367ver"}}},color:{values:{accentColor:{conditions:{base:"ju367veu",hover:"ju367vev",active:"ju367vew"},defaultClass:"ju367veu"},accentColorForeground:{conditions:{base:"ju367vex",hover:"ju367vey",active:"ju367vez"},defaultClass:"ju367vex"},actionButtonBorder:{conditions:{base:"ju367vf0",hover:"ju367vf1",active:"ju367vf2"},defaultClass:"ju367vf0"},actionButtonBorderMobile:{conditions:{base:"ju367vf3",hover:"ju367vf4",active:"ju367vf5"},defaultClass:"ju367vf3"},actionButtonSecondaryBackground:{conditions:{base:"ju367vf6",hover:"ju367vf7",active:"ju367vf8"},defaultClass:"ju367vf6"},closeButton:{conditions:{base:"ju367vf9",hover:"ju367vfa",active:"ju367vfb"},defaultClass:"ju367vf9"},closeButtonBackground:{conditions:{base:"ju367vfc",hover:"ju367vfd",active:"ju367vfe"},defaultClass:"ju367vfc"},connectButtonBackground:{conditions:{base:"ju367vff",hover:"ju367vfg",active:"ju367vfh"},defaultClass:"ju367vff"},connectButtonBackgroundError:{conditions:{base:"ju367vfi",hover:"ju367vfj",active:"ju367vfk"},defaultClass:"ju367vfi"},connectButtonInnerBackground:{conditions:{base:"ju367vfl",hover:"ju367vfm",active:"ju367vfn"},defaultClass:"ju367vfl"},connectButtonText:{conditions:{base:"ju367vfo",hover:"ju367vfp",active:"ju367vfq"},defaultClass:"ju367vfo"},connectButtonTextError:{conditions:{base:"ju367vfr",hover:"ju367vfs",active:"ju367vft"},defaultClass:"ju367vfr"},connectionIndicator:{conditions:{base:"ju367vfu",hover:"ju367vfv",active:"ju367vfw"},defaultClass:"ju367vfu"},downloadBottomCardBackground:{conditions:{base:"ju367vfx",hover:"ju367vfy",active:"ju367vfz"},defaultClass:"ju367vfx"},downloadTopCardBackground:{conditions:{base:"ju367vg0",hover:"ju367vg1",active:"ju367vg2"},defaultClass:"ju367vg0"},error:{conditions:{base:"ju367vg3",hover:"ju367vg4",active:"ju367vg5"},defaultClass:"ju367vg3"},generalBorder:{conditions:{base:"ju367vg6",hover:"ju367vg7",active:"ju367vg8"},defaultClass:"ju367vg6"},generalBorderDim:{conditions:{base:"ju367vg9",hover:"ju367vga",active:"ju367vgb"},defaultClass:"ju367vg9"},menuItemBackground:{conditions:{base:"ju367vgc",hover:"ju367vgd",active:"ju367vge"},defaultClass:"ju367vgc"},modalBackdrop:{conditions:{base:"ju367vgf",hover:"ju367vgg",active:"ju367vgh"},defaultClass:"ju367vgf"},modalBackground:{conditions:{base:"ju367vgi",hover:"ju367vgj",active:"ju367vgk"},defaultClass:"ju367vgi"},modalBorder:{conditions:{base:"ju367vgl",hover:"ju367vgm",active:"ju367vgn"},defaultClass:"ju367vgl"},modalText:{conditions:{base:"ju367vgo",hover:"ju367vgp",active:"ju367vgq"},defaultClass:"ju367vgo"},modalTextDim:{conditions:{base:"ju367vgr",hover:"ju367vgs",active:"ju367vgt"},defaultClass:"ju367vgr"},modalTextSecondary:{conditions:{base:"ju367vgu",hover:"ju367vgv",active:"ju367vgw"},defaultClass:"ju367vgu"},profileAction:{conditions:{base:"ju367vgx",hover:"ju367vgy",active:"ju367vgz"},defaultClass:"ju367vgx"},profileActionHover:{conditions:{base:"ju367vh0",hover:"ju367vh1",active:"ju367vh2"},defaultClass:"ju367vh0"},profileForeground:{conditions:{base:"ju367vh3",hover:"ju367vh4",active:"ju367vh5"},defaultClass:"ju367vh3"},selectedOptionBorder:{conditions:{base:"ju367vh6",hover:"ju367vh7",active:"ju367vh8"},defaultClass:"ju367vh6"},standby:{conditions:{base:"ju367vh9",hover:"ju367vha",active:"ju367vhb"},defaultClass:"ju367vh9"}}}}},{conditions:{defaultCondition:"smallScreen",conditionNames:["smallScreen","largeScreen"],responsiveArray:void 0},styles:{alignItems:{values:{"flex-start":{conditions:{smallScreen:"ju367v0",largeScreen:"ju367v1"},defaultClass:"ju367v0"},"flex-end":{conditions:{smallScreen:"ju367v2",largeScreen:"ju367v3"},defaultClass:"ju367v2"},center:{conditions:{smallScreen:"ju367v4",largeScreen:"ju367v5"},defaultClass:"ju367v4"}}},display:{values:{none:{conditions:{smallScreen:"ju367v6",largeScreen:"ju367v7"},defaultClass:"ju367v6"},block:{conditions:{smallScreen:"ju367v8",largeScreen:"ju367v9"},defaultClass:"ju367v8"},flex:{conditions:{smallScreen:"ju367va",largeScreen:"ju367vb"},defaultClass:"ju367va"},inline:{conditions:{smallScreen:"ju367vc",largeScreen:"ju367vd"},defaultClass:"ju367vc"}}}}},{conditions:void 0,styles:{margin:{mappings:["marginTop","marginBottom","marginLeft","marginRight"]},marginX:{mappings:["marginLeft","marginRight"]},marginY:{mappings:["marginTop","marginBottom"]},padding:{mappings:["paddingTop","paddingBottom","paddingLeft","paddingRight"]},paddingX:{mappings:["paddingLeft","paddingRight"]},paddingY:{mappings:["paddingTop","paddingBottom"]},alignSelf:{values:{"flex-start":{defaultClass:"ju367ve"},"flex-end":{defaultClass:"ju367vf"},center:{defaultClass:"ju367vg"}}},backgroundSize:{values:{cover:{defaultClass:"ju367vh"}}},borderRadius:{values:{1:{defaultClass:"ju367vi"},6:{defaultClass:"ju367vj"},10:{defaultClass:"ju367vk"},13:{defaultClass:"ju367vl"},actionButton:{defaultClass:"ju367vm"},connectButton:{defaultClass:"ju367vn"},menuButton:{defaultClass:"ju367vo"},modal:{defaultClass:"ju367vp"},modalMobile:{defaultClass:"ju367vq"},"25%":{defaultClass:"ju367vr"},full:{defaultClass:"ju367vs"}}},borderStyle:{values:{solid:{defaultClass:"ju367vt"}}},borderWidth:{values:{0:{defaultClass:"ju367vu"},1:{defaultClass:"ju367vv"},2:{defaultClass:"ju367vw"},4:{defaultClass:"ju367vx"}}},cursor:{values:{pointer:{defaultClass:"ju367vy"}}},flexDirection:{values:{row:{defaultClass:"ju367vz"},column:{defaultClass:"ju367v10"}}},fontFamily:{values:{body:{defaultClass:"ju367v11"}}},fontSize:{values:{12:{defaultClass:"ju367v12"},13:{defaultClass:"ju367v13"},14:{defaultClass:"ju367v14"},16:{defaultClass:"ju367v15"},18:{defaultClass:"ju367v16"},20:{defaultClass:"ju367v17"},23:{defaultClass:"ju367v18"}}},fontWeight:{values:{regular:{defaultClass:"ju367v19"},medium:{defaultClass:"ju367v1a"},semibold:{defaultClass:"ju367v1b"},bold:{defaultClass:"ju367v1c"},heavy:{defaultClass:"ju367v1d"}}},gap:{values:{0:{defaultClass:"ju367v1e"},1:{defaultClass:"ju367v1f"},2:{defaultClass:"ju367v1g"},3:{defaultClass:"ju367v1h"},4:{defaultClass:"ju367v1i"},5:{defaultClass:"ju367v1j"},6:{defaultClass:"ju367v1k"},8:{defaultClass:"ju367v1l"},10:{defaultClass:"ju367v1m"},12:{defaultClass:"ju367v1n"},14:{defaultClass:"ju367v1o"},16:{defaultClass:"ju367v1p"},18:{defaultClass:"ju367v1q"},20:{defaultClass:"ju367v1r"},24:{defaultClass:"ju367v1s"},28:{defaultClass:"ju367v1t"},32:{defaultClass:"ju367v1u"},36:{defaultClass:"ju367v1v"},44:{defaultClass:"ju367v1w"},64:{defaultClass:"ju367v1x"},"-1":{defaultClass:"ju367v1y"}}},height:{values:{1:{defaultClass:"ju367v1z"},2:{defaultClass:"ju367v20"},4:{defaultClass:"ju367v21"},8:{defaultClass:"ju367v22"},12:{defaultClass:"ju367v23"},20:{defaultClass:"ju367v24"},24:{defaultClass:"ju367v25"},28:{defaultClass:"ju367v26"},30:{defaultClass:"ju367v27"},32:{defaultClass:"ju367v28"},34:{defaultClass:"ju367v29"},36:{defaultClass:"ju367v2a"},40:{defaultClass:"ju367v2b"},44:{defaultClass:"ju367v2c"},48:{defaultClass:"ju367v2d"},54:{defaultClass:"ju367v2e"},60:{defaultClass:"ju367v2f"},200:{defaultClass:"ju367v2g"},full:{defaultClass:"ju367v2h"},max:{defaultClass:"ju367v2i"}}},justifyContent:{values:{"flex-start":{defaultClass:"ju367v2j"},"flex-end":{defaultClass:"ju367v2k"},center:{defaultClass:"ju367v2l"},"space-between":{defaultClass:"ju367v2m"},"space-around":{defaultClass:"ju367v2n"}}},textAlign:{values:{left:{defaultClass:"ju367v2o"},center:{defaultClass:"ju367v2p"},inherit:{defaultClass:"ju367v2q"}}},marginBottom:{values:{0:{defaultClass:"ju367v2r"},1:{defaultClass:"ju367v2s"},2:{defaultClass:"ju367v2t"},3:{defaultClass:"ju367v2u"},4:{defaultClass:"ju367v2v"},5:{defaultClass:"ju367v2w"},6:{defaultClass:"ju367v2x"},8:{defaultClass:"ju367v2y"},10:{defaultClass:"ju367v2z"},12:{defaultClass:"ju367v30"},14:{defaultClass:"ju367v31"},16:{defaultClass:"ju367v32"},18:{defaultClass:"ju367v33"},20:{defaultClass:"ju367v34"},24:{defaultClass:"ju367v35"},28:{defaultClass:"ju367v36"},32:{defaultClass:"ju367v37"},36:{defaultClass:"ju367v38"},44:{defaultClass:"ju367v39"},64:{defaultClass:"ju367v3a"},"-1":{defaultClass:"ju367v3b"}}},marginLeft:{values:{0:{defaultClass:"ju367v3c"},1:{defaultClass:"ju367v3d"},2:{defaultClass:"ju367v3e"},3:{defaultClass:"ju367v3f"},4:{defaultClass:"ju367v3g"},5:{defaultClass:"ju367v3h"},6:{defaultClass:"ju367v3i"},8:{defaultClass:"ju367v3j"},10:{defaultClass:"ju367v3k"},12:{defaultClass:"ju367v3l"},14:{defaultClass:"ju367v3m"},16:{defaultClass:"ju367v3n"},18:{defaultClass:"ju367v3o"},20:{defaultClass:"ju367v3p"},24:{defaultClass:"ju367v3q"},28:{defaultClass:"ju367v3r"},32:{defaultClass:"ju367v3s"},36:{defaultClass:"ju367v3t"},44:{defaultClass:"ju367v3u"},64:{defaultClass:"ju367v3v"},"-1":{defaultClass:"ju367v3w"}}},marginRight:{values:{0:{defaultClass:"ju367v3x"},1:{defaultClass:"ju367v3y"},2:{defaultClass:"ju367v3z"},3:{defaultClass:"ju367v40"},4:{defaultClass:"ju367v41"},5:{defaultClass:"ju367v42"},6:{defaultClass:"ju367v43"},8:{defaultClass:"ju367v44"},10:{defaultClass:"ju367v45"},12:{defaultClass:"ju367v46"},14:{defaultClass:"ju367v47"},16:{defaultClass:"ju367v48"},18:{defaultClass:"ju367v49"},20:{defaultClass:"ju367v4a"},24:{defaultClass:"ju367v4b"},28:{defaultClass:"ju367v4c"},32:{defaultClass:"ju367v4d"},36:{defaultClass:"ju367v4e"},44:{defaultClass:"ju367v4f"},64:{defaultClass:"ju367v4g"},"-1":{defaultClass:"ju367v4h"}}},marginTop:{values:{0:{defaultClass:"ju367v4i"},1:{defaultClass:"ju367v4j"},2:{defaultClass:"ju367v4k"},3:{defaultClass:"ju367v4l"},4:{defaultClass:"ju367v4m"},5:{defaultClass:"ju367v4n"},6:{defaultClass:"ju367v4o"},8:{defaultClass:"ju367v4p"},10:{defaultClass:"ju367v4q"},12:{defaultClass:"ju367v4r"},14:{defaultClass:"ju367v4s"},16:{defaultClass:"ju367v4t"},18:{defaultClass:"ju367v4u"},20:{defaultClass:"ju367v4v"},24:{defaultClass:"ju367v4w"},28:{defaultClass:"ju367v4x"},32:{defaultClass:"ju367v4y"},36:{defaultClass:"ju367v4z"},44:{defaultClass:"ju367v50"},64:{defaultClass:"ju367v51"},"-1":{defaultClass:"ju367v52"}}},maxWidth:{values:{1:{defaultClass:"ju367v53"},2:{defaultClass:"ju367v54"},4:{defaultClass:"ju367v55"},8:{defaultClass:"ju367v56"},12:{defaultClass:"ju367v57"},20:{defaultClass:"ju367v58"},24:{defaultClass:"ju367v59"},28:{defaultClass:"ju367v5a"},30:{defaultClass:"ju367v5b"},32:{defaultClass:"ju367v5c"},34:{defaultClass:"ju367v5d"},36:{defaultClass:"ju367v5e"},40:{defaultClass:"ju367v5f"},44:{defaultClass:"ju367v5g"},48:{defaultClass:"ju367v5h"},54:{defaultClass:"ju367v5i"},60:{defaultClass:"ju367v5j"},200:{defaultClass:"ju367v5k"},full:{defaultClass:"ju367v5l"},max:{defaultClass:"ju367v5m"}}},minWidth:{values:{1:{defaultClass:"ju367v5n"},2:{defaultClass:"ju367v5o"},4:{defaultClass:"ju367v5p"},8:{defaultClass:"ju367v5q"},12:{defaultClass:"ju367v5r"},20:{defaultClass:"ju367v5s"},24:{defaultClass:"ju367v5t"},28:{defaultClass:"ju367v5u"},30:{defaultClass:"ju367v5v"},32:{defaultClass:"ju367v5w"},34:{defaultClass:"ju367v5x"},36:{defaultClass:"ju367v5y"},40:{defaultClass:"ju367v5z"},44:{defaultClass:"ju367v60"},48:{defaultClass:"ju367v61"},54:{defaultClass:"ju367v62"},60:{defaultClass:"ju367v63"},200:{defaultClass:"ju367v64"},full:{defaultClass:"ju367v65"},max:{defaultClass:"ju367v66"}}},overflow:{values:{hidden:{defaultClass:"ju367v67"}}},paddingBottom:{values:{0:{defaultClass:"ju367v68"},1:{defaultClass:"ju367v69"},2:{defaultClass:"ju367v6a"},3:{defaultClass:"ju367v6b"},4:{defaultClass:"ju367v6c"},5:{defaultClass:"ju367v6d"},6:{defaultClass:"ju367v6e"},8:{defaultClass:"ju367v6f"},10:{defaultClass:"ju367v6g"},12:{defaultClass:"ju367v6h"},14:{defaultClass:"ju367v6i"},16:{defaultClass:"ju367v6j"},18:{defaultClass:"ju367v6k"},20:{defaultClass:"ju367v6l"},24:{defaultClass:"ju367v6m"},28:{defaultClass:"ju367v6n"},32:{defaultClass:"ju367v6o"},36:{defaultClass:"ju367v6p"},44:{defaultClass:"ju367v6q"},64:{defaultClass:"ju367v6r"},"-1":{defaultClass:"ju367v6s"}}},paddingLeft:{values:{0:{defaultClass:"ju367v6t"},1:{defaultClass:"ju367v6u"},2:{defaultClass:"ju367v6v"},3:{defaultClass:"ju367v6w"},4:{defaultClass:"ju367v6x"},5:{defaultClass:"ju367v6y"},6:{defaultClass:"ju367v6z"},8:{defaultClass:"ju367v70"},10:{defaultClass:"ju367v71"},12:{defaultClass:"ju367v72"},14:{defaultClass:"ju367v73"},16:{defaultClass:"ju367v74"},18:{defaultClass:"ju367v75"},20:{defaultClass:"ju367v76"},24:{defaultClass:"ju367v77"},28:{defaultClass:"ju367v78"},32:{defaultClass:"ju367v79"},36:{defaultClass:"ju367v7a"},44:{defaultClass:"ju367v7b"},64:{defaultClass:"ju367v7c"},"-1":{defaultClass:"ju367v7d"}}},paddingRight:{values:{0:{defaultClass:"ju367v7e"},1:{defaultClass:"ju367v7f"},2:{defaultClass:"ju367v7g"},3:{defaultClass:"ju367v7h"},4:{defaultClass:"ju367v7i"},5:{defaultClass:"ju367v7j"},6:{defaultClass:"ju367v7k"},8:{defaultClass:"ju367v7l"},10:{defaultClass:"ju367v7m"},12:{defaultClass:"ju367v7n"},14:{defaultClass:"ju367v7o"},16:{defaultClass:"ju367v7p"},18:{defaultClass:"ju367v7q"},20:{defaultClass:"ju367v7r"},24:{defaultClass:"ju367v7s"},28:{defaultClass:"ju367v7t"},32:{defaultClass:"ju367v7u"},36:{defaultClass:"ju367v7v"},44:{defaultClass:"ju367v7w"},64:{defaultClass:"ju367v7x"},"-1":{defaultClass:"ju367v7y"}}},paddingTop:{values:{0:{defaultClass:"ju367v7z"},1:{defaultClass:"ju367v80"},2:{defaultClass:"ju367v81"},3:{defaultClass:"ju367v82"},4:{defaultClass:"ju367v83"},5:{defaultClass:"ju367v84"},6:{defaultClass:"ju367v85"},8:{defaultClass:"ju367v86"},10:{defaultClass:"ju367v87"},12:{defaultClass:"ju367v88"},14:{defaultClass:"ju367v89"},16:{defaultClass:"ju367v8a"},18:{defaultClass:"ju367v8b"},20:{defaultClass:"ju367v8c"},24:{defaultClass:"ju367v8d"},28:{defaultClass:"ju367v8e"},32:{defaultClass:"ju367v8f"},36:{defaultClass:"ju367v8g"},44:{defaultClass:"ju367v8h"},64:{defaultClass:"ju367v8i"},"-1":{defaultClass:"ju367v8j"}}},position:{values:{absolute:{defaultClass:"ju367v8k"},fixed:{defaultClass:"ju367v8l"},relative:{defaultClass:"ju367v8m"}}},right:{values:{0:{defaultClass:"ju367v8n"}}},transition:{values:{default:{defaultClass:"ju367v8o"},transform:{defaultClass:"ju367v8p"}}},userSelect:{values:{none:{defaultClass:"ju367v8q"}}},width:{values:{1:{defaultClass:"ju367v8r"},2:{defaultClass:"ju367v8s"},4:{defaultClass:"ju367v8t"},8:{defaultClass:"ju367v8u"},12:{defaultClass:"ju367v8v"},20:{defaultClass:"ju367v8w"},24:{defaultClass:"ju367v8x"},28:{defaultClass:"ju367v8y"},30:{defaultClass:"ju367v8z"},32:{defaultClass:"ju367v90"},34:{defaultClass:"ju367v91"},36:{defaultClass:"ju367v92"},40:{defaultClass:"ju367v93"},44:{defaultClass:"ju367v94"},48:{defaultClass:"ju367v95"},54:{defaultClass:"ju367v96"},60:{defaultClass:"ju367v97"},200:{defaultClass:"ju367v98"},full:{defaultClass:"ju367v99"},max:{defaultClass:"ju367v9a"}}},backdropFilter:{values:{modalOverlay:{defaultClass:"ju367v9b"}}}}}),Ug={colors:{accentColor:"var(--rk-colors-accentColor)",accentColorForeground:"var(--rk-colors-accentColorForeground)",actionButtonBorder:"var(--rk-colors-actionButtonBorder)",actionButtonBorderMobile:"var(--rk-colors-actionButtonBorderMobile)",actionButtonSecondaryBackground:"var(--rk-colors-actionButtonSecondaryBackground)",closeButton:"var(--rk-colors-closeButton)",closeButtonBackground:"var(--rk-colors-closeButtonBackground)",connectButtonBackground:"var(--rk-colors-connectButtonBackground)",connectButtonBackgroundError:"var(--rk-colors-connectButtonBackgroundError)",connectButtonInnerBackground:"var(--rk-colors-connectButtonInnerBackground)",connectButtonText:"var(--rk-colors-connectButtonText)",connectButtonTextError:"var(--rk-colors-connectButtonTextError)",connectionIndicator:"var(--rk-colors-connectionIndicator)",downloadBottomCardBackground:"var(--rk-colors-downloadBottomCardBackground)",downloadTopCardBackground:"var(--rk-colors-downloadTopCardBackground)",error:"var(--rk-colors-error)",generalBorder:"var(--rk-colors-generalBorder)",generalBorderDim:"var(--rk-colors-generalBorderDim)",menuItemBackground:"var(--rk-colors-menuItemBackground)",modalBackdrop:"var(--rk-colors-modalBackdrop)",modalBackground:"var(--rk-colors-modalBackground)",modalBorder:"var(--rk-colors-modalBorder)",modalText:"var(--rk-colors-modalText)",modalTextDim:"var(--rk-colors-modalTextDim)",modalTextSecondary:"var(--rk-colors-modalTextSecondary)",profileAction:"var(--rk-colors-profileAction)",profileActionHover:"var(--rk-colors-profileActionHover)",profileForeground:"var(--rk-colors-profileForeground)",selectedOptionBorder:"var(--rk-colors-selectedOptionBorder)",standby:"var(--rk-colors-standby)"},fonts:{body:"var(--rk-fonts-body)"},radii:{actionButton:"var(--rk-radii-actionButton)",connectButton:"var(--rk-radii-connectButton)",menuButton:"var(--rk-radii-menuButton)",modal:"var(--rk-radii-modal)",modalMobile:"var(--rk-radii-modalMobile)"},shadows:{connectButton:"var(--rk-shadows-connectButton)",dialog:"var(--rk-shadows-dialog)",profileDetailsAction:"var(--rk-shadows-profileDetailsAction)",selectedOption:"var(--rk-shadows-selectedOption)",selectedWallet:"var(--rk-shadows-selectedWallet)",walletLogo:"var(--rk-shadows-walletLogo)"},blurs:{modalOverlay:"var(--rk-blurs-modalOverlay)"}},zru={shrink:"_12cbo8i6",shrinkSm:"_12cbo8i7"},Mru="_12cbo8i3 ju367v8m",Uru={grow:"_12cbo8i4",growLg:"_12cbo8i5"};function Te({active:u,hover:e}){return[Mru,e&&Uru[e],zru[u]]}var lw=M.createContext(null);function Lru(){var u;const{adapter:e}=(u=M.useContext(lw))!=null?u:{};if(!e)throw new Error("No authentication adapter found");return e}function qd(){var u;const e=M.useContext(lw);return(u=e==null?void 0:e.status)!=null?u:null}function L5(){const u=qd(),{isConnected:e}=Q0();return e?u&&(u==="loading"||u==="unauthenticated")?u:"connected":"disconnected"}function $5(){return typeof navigator<"u"&&/android/i.test(navigator.userAgent)}function $ru(){return typeof navigator<"u"&&/iPhone|iPod/.test(navigator.userAgent)}function Wru(){return typeof navigator<"u"&&(/iPad/.test(navigator.userAgent)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)}function va(){return $ru()||Wru()}function He(){return $5()||va()}var qru="iekbcc0",Hru={a:"iekbcca",blockquote:"iekbcc2",button:"iekbcc9",input:"iekbcc8 iekbcc5 iekbcc4",mark:"iekbcc6",ol:"iekbcc1",q:"iekbcc2",select:"iekbcc7 iekbcc5 iekbcc4",table:"iekbcc3",textarea:"iekbcc5 iekbcc4",ul:"iekbcc1"},Gru=({reset:u,...e})=>{if(!u)return Sf(e);const t=Hru[u],n=Sf(e);return AD(qru,t,n)},N=M.forwardRef(({as:u="div",className:e,testId:t,...n},r)=>{const i={},a={};for(const s in n)Sf.properties.has(s)?i[s]=n[s]:a[s]=n[s];const o=Gru({reset:typeof u=="string"?u:"div",...i});return M.createElement(u,{className:AD(o,e),...a,"data-testid":t?`rk-${t.replace(/^rk-/,"")}`:void 0,ref:r})});N.displayName="Box";var cw=new Map,g1=new Map;async function Ew(u){const e=g1.get(u);if(e)return e;const t=async()=>u().then(async r=>(cw.set(u,r),r)),n=t().catch(r=>t().catch(i=>{g1.delete(u)}));return g1.set(u,n),n}async function Zr(...u){return await Promise.all(u.map(e=>typeof e=="function"?Ew(e):e))}function Kru(){const[,u]=M.useReducer(e=>e+1,0);return u}function W5(u){const e=typeof u=="function"?cw.get(u):void 0,t=Kru();return M.useEffect(()=>{typeof u=="function"&&!e&&Ew(u).then(t)},[u,e,t]),typeof u=="function"?e:u}function ze({alt:u,background:e,borderColor:t,borderRadius:n,boxShadow:r,height:i,src:a,width:o,testId:s}){const l=W5(a),c=l&&/^http/.test(l),[E,d]=M.useReducer(()=>!0,!1);return b.createElement(N,{"aria-label":u,borderRadius:n,boxShadow:r,height:typeof i=="string"?i:void 0,overflow:"hidden",position:"relative",role:"img",style:{background:e,height:typeof i=="number"?i:void 0,width:typeof o=="number"?o:void 0},width:typeof o=="string"?o:void 0,testId:s},b.createElement(N,{...c?{"aria-hidden":!0,as:"img",onLoad:d,src:l}:{backgroundSize:"cover"},height:"full",position:"absolute",style:{touchCallout:"none",transition:"opacity .15s linear",userSelect:"none",...c?{opacity:E?1:0}:{backgroundImage:l?`url(${l})`:void 0,backgroundRepeat:"no-repeat",opacity:l?1:0}},width:"full"}),t?b.createElement(N,{...typeof t=="object"&&"custom"in t?{style:{borderColor:t.custom}}:{borderColor:t},borderRadius:n,borderStyle:"solid",borderWidth:"1",height:"full",position:"relative",width:"full"}):null)}var Qru="_1luule42",Vru="_1luule43",Jru=u=>M.useMemo(()=>`${u}_${Math.round(Math.random()*1e9)}`,[u]),L3=({height:u=21,width:e=21})=>{const t=Jru("spinner");return b.createElement("svg",{className:Qru,fill:"none",height:u,viewBox:"0 0 21 21",width:e,xmlns:"http://www.w3.org/2000/svg"},b.createElement("clipPath",{id:t},b.createElement("path",{d:"M10.5 3C6.35786 3 3 6.35786 3 10.5C3 14.6421 6.35786 18 10.5 18C11.3284 18 12 18.6716 12 19.5C12 20.3284 11.3284 21 10.5 21C4.70101 21 0 16.299 0 10.5C0 4.70101 4.70101 0 10.5 0C16.299 0 21 4.70101 21 10.5C21 11.3284 20.3284 12 19.5 12C18.6716 12 18 11.3284 18 10.5C18 6.35786 14.6421 3 10.5 3Z"})),b.createElement("foreignObject",{clipPath:`url(#${t})`,height:"21",width:"21",x:"0",y:"0"},b.createElement("div",{className:Vru})))},Qu=["#FC5C54","#FFD95A","#E95D72","#6A87C8","#5FD0F3","#75C06B","#FFDD86","#5FC6D4","#FF949A","#FF8024","#9BA1A4","#EC66FF","#FF8CBC","#FF9A23","#C5DADB","#A8CE63","#71ABFF","#FFE279","#B6B1B6","#FF6780","#A575FF","#4D82FF","#FFB35A"],Lg=[{color:Qu[0],emoji:"🌶"},{color:Qu[1],emoji:"🤑"},{color:Qu[2],emoji:"🐙"},{color:Qu[3],emoji:"🫐"},{color:Qu[4],emoji:"🐳"},{color:Qu[0],emoji:"🤶"},{color:Qu[5],emoji:"🌲"},{color:Qu[6],emoji:"🌞"},{color:Qu[7],emoji:"🐒"},{color:Qu[8],emoji:"🐵"},{color:Qu[9],emoji:"🦊"},{color:Qu[10],emoji:"🐼"},{color:Qu[11],emoji:"🦄"},{color:Qu[12],emoji:"🐷"},{color:Qu[13],emoji:"🐧"},{color:Qu[8],emoji:"🦩"},{color:Qu[14],emoji:"👽"},{color:Qu[0],emoji:"🎈"},{color:Qu[8],emoji:"🍉"},{color:Qu[1],emoji:"🎉"},{color:Qu[15],emoji:"🐲"},{color:Qu[16],emoji:"🌎"},{color:Qu[17],emoji:"🍊"},{color:Qu[18],emoji:"🐭"},{color:Qu[19],emoji:"🍣"},{color:Qu[1],emoji:"🐥"},{color:Qu[20],emoji:"👾"},{color:Qu[15],emoji:"🥦"},{color:Qu[0],emoji:"👹"},{color:Qu[17],emoji:"🙀"},{color:Qu[4],emoji:"⛱"},{color:Qu[21],emoji:"⛵️"},{color:Qu[17],emoji:"🥳"},{color:Qu[8],emoji:"🤯"},{color:Qu[22],emoji:"🤠"}];function Yru(u){let e=0;if(u.length===0)return e;for(let t=0;t{const[n,r]=M.useState(!1);M.useEffect(()=>{if(e){const o=new Image;o.src=e,o.onload=()=>r(!0)}},[e]);const{color:i,emoji:a}=M.useMemo(()=>Xru(u),[u]);return e?n?b.createElement(N,{backgroundSize:"cover",borderRadius:"full",position:"absolute",style:{backgroundImage:`url(${e})`,backgroundPosition:"center",height:t,width:t}}):b.createElement(N,{alignItems:"center",backgroundSize:"cover",borderRadius:"full",color:"modalText",display:"flex",justifyContent:"center",position:"absolute",style:{height:t,width:t}},b.createElement(L3,null)):b.createElement(N,{alignItems:"center",display:"flex",justifyContent:"center",overflow:"hidden",style:{...!e&&{backgroundColor:i},height:t,width:t}},a)},dw=Zru,fw=M.createContext(dw);function pw({address:u,imageUrl:e,loading:t,size:n}){const r=M.useContext(fw);return b.createElement(N,{"aria-hidden":!0,borderRadius:"full",overflow:"hidden",position:"relative",style:{height:`${n}px`,width:`${n}px`},userSelect:"none"},b.createElement(N,{alignItems:"center",borderRadius:"full",display:"flex",justifyContent:"center",overflow:"hidden",position:"absolute",style:{fontSize:`${Math.round(n*.55)}px`,height:`${n}px`,transform:t?"scale(0.72)":void 0,transition:".25s ease",transitionDelay:t?void 0:".1s",width:`${n}px`,willChange:"transform"},userSelect:"none"},b.createElement(r,{address:u,ensImage:e,size:n})),typeof t=="boolean"&&b.createElement(N,{color:"accentColor",display:"flex",height:"full",position:"absolute",style:{opacity:t?1:0,transition:t?"0.6s ease":"0.2s ease",transitionDelay:t?".05s":void 0},width:"full"},b.createElement(L3,{height:"100%",width:"100%"})))}var $g=()=>b.createElement("svg",{fill:"none",height:"7",width:"14",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M12.75 1.54001L8.51647 5.0038C7.77974 5.60658 6.72026 5.60658 5.98352 5.0038L1.75 1.54001",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2.5",xmlns:"http://www.w3.org/2000/svg"})),uiu={label:"اتصال المحفظة"},eiu={title:"ما هو المحفظة؟",description:"تُستخدم المحفظة لإرسال واستلام وتخزين وعرض الأصول الرقمية. إنها أيضاً طريقة جديدة لتسجيل الدخول، دون الحاجة إلى إنشاء حسابات وكلمات مرور جديدة على كل موقع.",digital_asset:{title:"دار لأصولك الرقمية",description:"تُستخدم المحافظ لإرسال واستلام وتخزين وعرض الأصول الرقمية مثل إيثيريوم والـ NFTs."},login:{title:"طريقة جديدة لتسجيل الدخول",description:"بدلاً من إنشاء حسابات وكلمات مرور جديدة على كل موقع، فقط قم بتوصيل محفظتك."},get:{label:"احصل على محفظة"},learn_more:{label:"تعلم المزيد"}},tiu={label:"اتصل",title:"اتصال بالمحفظة",new_to_ethereum:{description:"جديد في محافظ Ethereum؟",learn_more:{label:"تعلم المزيد"}},learn_more:{label:"أعرف أكثر"},recent:"الأخير",status:{opening:"جار فتح %{wallet}...",not_installed:"%{wallet} غير مثبت",not_available:"%{wallet} غير متاح",confirm:"تأكيد الاتصال في الامتداد"},secondary_action:{get:{description:"لا يوجد لديك %{wallet}؟",label:"احصل"},install:{label:"تثبيت"},retry:{label:"أعد المحاولة"}},walletconnect:{description:{full:"هل تحتاج إلى النافذة الرسمية لـ WalletConnect؟",compact:"هل تحتاج إلى النافذة لـ WalletConnect؟"},open:{label:"افتح"}}},niu={title:"المسح باستخدام %{wallet}",fallback_title:"المسح باستخدام هاتفك"},riu={recommended:"موصى به",other:"آخر",popular:"شائع",more:"المزيد",others:"الآخرين"},iiu={title:"احصل على محفظة",action:{label:"احصل"},mobile:{description:"محفظة الموبايل"},extension:{description:"ملحق المتصفح"},mobile_and_extension:{description:"محفظة موبايل وملحق"},looking_for:{title:"ليست هذه هي ما تبحث عنه؟",mobile:{description:"حدد محفظة على الشاشة الرئيسية للبدء باستخدام موفر محفظة مختلف."},desktop:{compact_description:"حدد محفظة على الشاشة الرئيسية للبدء باستخدام موفر محفظة مختلف.",wide_description:"حدد محفظة على اليسار للبدء باستخدام موفر محفظة مختلف."}}},aiu={title:"ابدأ مع %{wallet}",short_title:"احصل على %{wallet}",mobile:{title:"%{wallet} للجوال",description:"استخدم محفظة الموبايل لاستكشاف عالم Ethereum.",download:{label:"احصل على التطبيق"}},extension:{title:"%{wallet} لـ %{browser}",description:"وصول لمحفظتك مباشرة من متصفح الويب المفضل لديك.",download:{label:"أضف إلى %{browser}"}}},oiu={title:"قم بالتثبيت %{wallet}",description:"استخدم هاتفك للتحميل على iOS أو Android",continue:{label:"استمر"}},siu={mobile:{connect:{label:"اتصل"},learn_more:{label:"تعلم المزيد"}},extension:{refresh:{label:"تحديث"},learn_more:{label:"تعلم المزيد"}}},liu={title:"تبديل الشبكات",wrong_network:"تم اكتشاف شبكة غير صحيحة، قم بالتبديل أو القطع للمتابعة.",confirm:"التأكيد في المحفظة",switching_not_supported:"محفظتك لا تدعم التبديل بين الشبكات من %{appName}. جرب التبديل بين الشبكات من داخل المحفظة بدلاً من ذلك.",switching_not_supported_fallback:"محفظتك لا تدعم تبديل الشبكات من هذا التطبيق. حاول تبديل الشبكات من داخل المحفظة بدلاً من ذلك.",disconnect:"قطع الاتصال",connected:"متصل"},ciu={disconnect:{label:"قطع الاتصال"},copy_address:{label:"نسخ العنوان",copied:"تم النسخ!"},explorer:{label:"عرض المزيد على المستكشف"},transactions:{description:"%{appName} ستظهر المعاملات هنا...",description_fallback:"سوف تظهر معاملاتك هنا...",recent:{title:"المعاملات الأخيرة"},clear:{label:"مسح الكل"}}},Eiu={argent:{qr_code:{step1:{description:"ضع أرجنت على شاشتك الرئيسية للوصول السريع إلى محفظتك.",title:"افتح تطبيق Argent"},step2:{description:"أنشئ محفظة واسم مستخدم، أو استورد محفظة موجودة بالفعل.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، سيظهر لك موجه الاتصال لتوصيل المحفظة الخاصة بك.",title:"اضغط على زر فحص الكود الشريطي"}}},bifrost:{qr_code:{step1:{description:"نوصي بوضع محفظة Bifrost على الشاشة الرئيسية للوصول الأسرع.",title:"افتح تطبيق محفظة Bifrost"},step2:{description:"أنشئ أو استورد محفظة باستخدام عبارة الاستعادة الخاصة بك.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، سيظهر موجه الاتصال لك لتوصيل محفظتك.",title:"اضغط على زر المسح"}}},bitget:{qr_code:{step1:{description:"نوصي بوضع محفظة Bitget على الشاشة الرئيسية للوصول الأسرع.",title:"افتح تطبيق محفظة Bitget"},step2:{description:"تأكد من عمل نسخة احتياطية لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أحد.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك موجه اتصال لتوصيل محفظتك.",title:"اضغط على زر الفحص"}},extension:{step1:{description:"نوصي بتثبيت محفظة Bitget على شريط المهام للوصول الأسرع إلى محفظتك.",title:"قم بتثبيت امتداد محفظة Bitget"},step2:{description:"تأكد من نسخ محفظتك احتياطيًا باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"أنشئ محفظة أو استورد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الامتداد.",title:"قم بتحديث متصفحك"}}},bitski:{extension:{step1:{description:"نوصي بتثبيت Bitski على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك.",title:"قم بتثبيت امتداد Bitski"},step2:{description:"تأكد من الاحتفاظ بنسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد إعداد المحفظة الخاصة بك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"تحديث المتصفح الخاص بك"}}},coin98:{qr_code:{step1:{description:"نوصي بوضع محفظة Coin98 على الشاشة الرئيسية لسرعة الوصول إلى محفظتك.",title:"افتح تطبيق محفظة Coin98"},step2:{description:"يمكنك بسهولة نسخ محفظتك الاحتياطي باستخدام ميزة النسخ الاحتياطي على هاتفك.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك مطالبة بالاتصال لتوصيل محفظتك.",title:"اضغط على زر WalletConnect"}},extension:{step1:{description:"انقر في الجزء العلوي الأيمن من المتصفح وثبت Coin98 Wallet لسهولة الوصول.",title:"قم بتثبيت امتداد Coin98 Wallet"},step2:{description:"أنشئ محفظة جديدة أو استورد واحدة موجودة بالفعل.",title:"أنشئ محفظة أو استورد محفظة"},step3:{description:"بمجرد إعداد Coin98 Wallet ، انقر أدناه لتحديث المتصفح وتحميل الامتداد.",title:"تحديث المتصفح الخاص بك"}}},coinbase:{qr_code:{step1:{description:"نوصي بوضع Coinbase Wallet على الشاشة الرئيسية لسهولة الوصول.",title:"افتح تطبيق Coinbase Wallet"},step2:{description:"يمكنك بسهولة النسخ الاحتياطي لمحفظتك باستخدام ميزة النسخ الاحتياطي السحابي.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك مطالبة بالاتصال لتوصيل محفظتك.",title:"اضغط على زر الفحص"}},extension:{step1:{description:"نوصي بتثبيت محفظة Coinbase على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك.",title:"تثبيت امتداد محفظة Coinbase"},step2:{description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد المحفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"تحديث المتصفح الخاص بك"}}},core:{qr_code:{step1:{description:"نوصي بوضع Core على الشاشة الرئيسية للوصول السريع إلى محفظتك.",title:"افتح تطبيق Core"},step2:{description:"يمكنك بسهولة النسخ الاحتياطي لمحفظتك باستخدام ميزة النسخ الاحتياطي على هاتفك.",title:"إنشاء أو استيراد المحفظة"},step3:{description:"بعد الفحص، سيظهر لك موجه الاتصال لتوصيل محفظتك.",title:"اضغط على زر WalletConnect"}},extension:{step1:{description:"نوصي بتثبيت Core على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك.",title:"قم بتثبيت امتداد Core"},step2:{description:"تأكد من عمل نسخة احتياطية لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الامتداد.",title:"تحديث متصفحك"}}},fox:{qr_code:{step1:{description:"نوصي بوضع FoxWallet على شاشتك الرئيسية للوصول الأسرع.",title:"افتح تطبيق FoxWallet"},step2:{description:"تأكد من الاحتفاظ بنسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء محفظة أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك موجه الاتصال لتتمكن من اتصال محفظتك.",title:"اضغط على زر الفحص"}}},frontier:{qr_code:{step1:{description:"نوصي بوضع Frontier Wallet على شاشتك الرئيسية للوصول الأسرع.",title:"افتح تطبيق Frontier Wallet"},step2:{description:"تأكد من نسخ محفظتك احتياطيا باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بعد الفحص، ستظهر لك موجه الاتصال لربط محفظتك.",title:"اضغط على زر الفحص"}},extension:{step1:{description:"نوصي بتثبيت محفظة Frontier على شريط المهام للوصول الأسرع إلى محفظتك.",title:"تثبيت امتداد محفظة Frontier"},step2:{description:"تأكد من نسخ محفظتك احتياطيا باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"إنشاء أو استيراد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"قم بتحديث المتصفح الخاص بك"}}},im_token:{qr_code:{step1:{title:"افتح تطبيق imToken",description:"ضع تطبيق imToken على الشاشة الرئيسية للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"قم بإنشاء محفظة جديدة أو استيراد واحدة موجودة."},step3:{title:"اضغط على أيقونة الماسح الضوئي في الزاوية العليا اليمنى",description:"اختر الاتصال الجديد، ثم امسح الرمز الشريطي وأكد الموجه للاتصال."}}},metamask:{qr_code:{step1:{title:"افتح تطبيق MetaMask",description:"نوصي بوضع MetaMask على الشاشة الرئيسية لديك للوصول بشكل أسرع."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ الحفاظ على محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"اضغط على زر المسح",description:"بعد الفحص، ستظهر لك موجه اتصال لتوصيل محفظتك."}},extension:{step1:{title:"قم بتثبيت امتداد MetaMask",description:"نوصي بتثبيت MetaMask في شريط المهام للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ احتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"تحديث متصفحك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الامتداد."}}},okx:{qr_code:{step1:{title:"افتح تطبيق محفظة OKX",description:"نوصي بوضع محفظة OKX على الشاشة الرئيسية للوصول الأسرع."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ احتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"اضغط على زر المسح",description:"بعد الفحص، ستظهر لك مطالبة بالاتصال لتوصيل محفظتك."}},extension:{step1:{title:"قم بتثبيت امتداد محفظة OKX",description:"نوصي بتثبيت محفظة OKX على شريط المهام للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من حفظ نسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"قم بتحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},omni:{qr_code:{step1:{title:"افتح تطبيق Omni",description:"أضف Omni إلى شاشتك الرئيسية للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"إنشاء محفظة جديدة أو استيراد واحدة موجودة."},step3:{title:"اضغط على أيقونة الرمز الاستجابة السريعة وامسحها",description:"اضغط على الرمز QR على الشاشة الرئيسية الخاصة بك، امسح الرمز وأكد الموافقة للاتصال."}}},token_pocket:{qr_code:{step1:{title:"افتح تطبيق TokenPocket",description:"نوصي بوضع TokenPocket على الشاشة الرئيسية للوصول السريع."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ احتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"اضغط على زر المسح",description:"بعد الفحص، ستظهر لك رسالة موجهة للاتصال بمحفظتك."}},extension:{step1:{title:"قم بتثبيت امتداد TokenPocket",description:"نوصي بتثبيت TokenPocket على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك."},step2:{title:"قم بإنشاء محفظة أو استيراد محفظة",description:"تأكد من الاحتفاظ بنسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"قم بتحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},trust:{qr_code:{step1:{title:"افتح تطبيق Trust Wallet",description:"ضع Trust Wallet على الشاشة الرئيسية للوصول السريع إلى محفظتك."},step2:{title:"أنشئ محفظة أو استورد محفظة",description:"أنشئ محفظة جديدة أو استورد واحدة موجودة."},step3:{title:"اضغط على WalletConnect في الإعدادات",description:"اختر الاتصال الجديد، ثم امسح الرمز الشريطي QR وأكد الموجه للاتصال."}},extension:{step1:{title:"قم بتثبيت امتداد Trust Wallet",description:"انقر في الجزء العلوي الأيمن من المتصفح وثبت Trust Wallet للوصول بسهولة."},step2:{title:"أنشئ محفظة أو استورد محفظة",description:"أنشئ محفظة جديدة أو استورد واحدة موجودة."},step3:{title:"قم بتحديث متصفحك",description:"بمجرد إعداد Trust Wallet، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},uniswap:{qr_code:{step1:{title:"افتح تطبيق Uniswap",description:"أضف محفظة Uniswap إلى شاشة الرئيسية للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"قم بإنشاء محفظة جديدة أو استيراد واحدة موجودة."},step3:{title:"اضغط على الأيقونة QR واقرأ الرمز",description:"اضغط على أيقونة QR على الشاشة الرئيسية، قراءة الرمز وتأكيد الرسالة الموجهة للاتصال."}}},zerion:{qr_code:{step1:{title:"افتح تطبيق Zerion",description:"نوصي بوضع Zerion على شاشتك الرئيسية للوصول الأسرع."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من حفظ نسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"اضغط على زر المسح",description:"بعد المسح، سوف يظهر لك نافذة الاتصال لتوصيل محفظتك."}},extension:{step1:{title:"تثبيت امتداد Zerion",description:"نوصي بتثبيت Zerion على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من الاحتفاظ بنسخة احتياطية من محفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"قم بتحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},rainbow:{qr_code:{step1:{title:"افتح تطبيق Rainbow",description:"نوصي بوضع Rainbow على شاشة البداية للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء محفظة أو استيراد محفظة",description:"يمكنك عمل نسخة احتياطية بسهولة لمحفظتك باستخدام ميزة النسخ الاحتياطي على هاتفك."},step3:{title:"اضغط على الزر الماسح الضوئي",description:"بعد الفحص، سيظهر لك موجه اتصال لربط محفظتك."}}},enkrypt:{extension:{step1:{description:"نوصي بتثبيت محفظة Enkrypt على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك.",title:"تثبيت امتداد محفظة Enkrypt"},step2:{description:"تأكد من عمل نسخة احتياطية لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"أنشئ أو استورد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"حدث المتصفح الخاص بك"}}},frame:{extension:{step1:{description:"نوصي بتعليق Frame على شريط المهام للوصول السريع إلى محفظتك.",title:"ثبت Frame والإضافة المصاحبة"},step2:{description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص.",title:"أنشئ أو استورد محفظة"},step3:{description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة.",title:"حدث المتصفح الخاص بك"}}},one_key:{extension:{step1:{title:"قم بتثبيت امتداد محفظة OneKey",description:"نوصي بتثبيت محفظة OneKey على شريط المهام للوصول السريع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ احتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"تحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الامتداد."}}},phantom:{extension:{step1:{title:"قم بتثبيت امتداد Phantom",description:"نوصي بتثبيت Phantom على شريط المهام للوصول الأسهل إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ محفظتك احتياطيًا باستخدام طريقة آمنة. لا تشارك عبارة الاستعادة السرية الخاصة بك مع أي شخص."},step3:{title:"قم بتحديث المتصفح",description:"بمجرد إعداد المحفظة، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},rabby:{extension:{step1:{title:"ثبت امتداد Rabby",description:"نوصي بتثبيت Rabby على شريط المهام للوصول الأسرع إلى محفظتك."},step2:{title:"أنشئ محفظة أو استورد محفظة",description:"تأكد من نسخ محفظتك احتياطيًا باستخدام طريقة آمنة. لا تشارك العبارة السرية مع أي شخص."},step3:{title:"قم بتحديث المتصفح",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},safeheron:{extension:{step1:{title:"قم بتثبيت إضافة النواة",description:"نوصي بتثبيت Safeheron على شريط المهام الخاص بك للوصول السريع إلى محفظتك."},step2:{title:"إنشاء أو استيراد محفظة",description:"تأكد من نسخ محفظتك بطريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"تحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},taho:{extension:{step1:{title:"تثبيت إضافة Taho",description:"نوصي بتثبيت Taho على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء محفظة أو استيراد محفظة",description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارتك السرية مع أي شخص."},step3:{title:"تحديث المتصفح الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}},talisman:{extension:{step1:{title:"تثبيت إضافة Talisman",description:"نوصي بتثبيت Talisman على شريط المهام الخاص بك للوصول الأسرع إلى محفظتك."},step2:{title:"إنشاء محفظة Ethereum أو استيرادها",description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك عبارة الاستعادة الخاصة بك مع أي شخص."},step3:{title:"قم بتحديث المستعرض الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المستعرض وتحميل الإضافة."}}},xdefi:{extension:{step1:{title:"قم بتثبيت إضافة XDEFI Wallet",description:"نوصي بتثبيت XDEFI Wallet على شريط المهام للوصول الأسرع إلى محفظتك."},step2:{title:"أنشئ محفظة أو استورد محفظة",description:"تأكد من النسخ الاحتياطي لمحفظتك باستخدام طريقة آمنة. لا تشارك العبارة السرية الخاصة بك مع أي شخص."},step3:{title:"قم بتحديث المستعرض الخاص بك",description:"بمجرد إعداد محفظتك، انقر أدناه لتحديث المتصفح وتحميل الإضافة."}}}},Wg={connect_wallet:uiu,intro:eiu,connect:tiu,connect_scan:niu,connector_group:riu,get:iiu,get_options:aiu,get_mobile:oiu,get_instructions:siu,chains:liu,profile:ciu,wallet_connectors:Eiu},diu={label:"Connect Wallet"},fiu={title:"What is a Wallet?",description:"A wallet is used to send, receive, store, and display digital assets. It's also a new way to log in, without needing to create new accounts and passwords on every website.",digital_asset:{title:"A Home for your Digital Assets",description:"Wallets are used to send, receive, store, and display digital assets like Ethereum and NFTs."},login:{title:"A New Way to Log In",description:"Instead of creating new accounts and passwords on every website, just connect your wallet."},get:{label:"Get a Wallet"},learn_more:{label:"Learn More"}},piu={label:"Connect",title:"Connect a Wallet",new_to_ethereum:{description:"New to Ethereum wallets?",learn_more:{label:"Learn More"}},learn_more:{label:"Learn more"},recent:"Recent",status:{opening:"Opening %{wallet}...",not_installed:"%{wallet} is not installed",not_available:"%{wallet} is not available",confirm:"Confirm connection in the extension"},secondary_action:{get:{description:"Don't have %{wallet}?",label:"GET"},install:{label:"INSTALL"},retry:{label:"RETRY"}},walletconnect:{description:{full:"Need the official WalletConnect modal?",compact:"Need the WalletConnect modal?"},open:{label:"OPEN"}}},hiu={title:"Scan with %{wallet}",fallback_title:"Scan with your phone"},Ciu={recommended:"Recommended",other:"Other",popular:"Popular",more:"More",others:"Others"},miu={title:"Get a Wallet",action:{label:"GET"},mobile:{description:"Mobile Wallet"},extension:{description:"Browser Extension"},mobile_and_extension:{description:"Mobile Wallet and Extension"},looking_for:{title:"Not what you're looking for?",mobile:{description:"Select a wallet on the main screen to get started with a different wallet provider."},desktop:{compact_description:"Select a wallet on the main screen to get started with a different wallet provider.",wide_description:"Select a wallet on the left to get started with a different wallet provider."}}},giu={title:"Get started with %{wallet}",short_title:"Get %{wallet}",mobile:{title:"%{wallet} for Mobile",description:"Use the mobile wallet to explore the world of Ethereum.",download:{label:"Get the app"}},extension:{title:"%{wallet} for %{browser}",description:"Access your wallet right from your favorite web browser.",download:{label:"Add to %{browser}"}}},Aiu={title:"Install %{wallet}",description:"Scan with your phone to download on iOS or Android",continue:{label:"Continue"}},yiu={mobile:{connect:{label:"Connect"},learn_more:{label:"Learn More"}},extension:{refresh:{label:"Refresh"},learn_more:{label:"Learn More"}}},Biu={title:"Switch Networks",wrong_network:"Wrong network detected, switch or disconnect to continue.",confirm:"Confirm in Wallet",switching_not_supported:"Your wallet does not support switching networks from %{appName}. Try switching networks from within your wallet instead.",switching_not_supported_fallback:"Your wallet does not support switching networks from this app. Try switching networks from within your wallet instead.",disconnect:"Disconnect",connected:"Connected"},viu={disconnect:{label:"Disconnect"},copy_address:{label:"Copy Address",copied:"Copied!"},explorer:{label:"View more on explorer"},transactions:{description:"%{appName} transactions will appear here...",description_fallback:"Your transactions will appear here...",recent:{title:"Recent Transactions"},clear:{label:"Clear All"}}},Fiu={argent:{qr_code:{step1:{description:"Put Argent on your home screen for faster access to your wallet.",title:"Open the Argent app"},step2:{description:"Create a wallet and username, or import an existing wallet.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the Scan QR button"}}},bifrost:{qr_code:{step1:{description:"We recommend putting Bifrost Wallet on your home screen for quicker access.",title:"Open the Bifrost Wallet app"},step2:{description:"Create or import a wallet using your recovery phrase.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}}},bitget:{qr_code:{step1:{description:"We recommend putting Bitget Wallet on your home screen for quicker access.",title:"Open the Bitget Wallet app"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}},extension:{step1:{description:"We recommend pinning Bitget Wallet to your taskbar for quicker access to your wallet.",title:"Install the Bitget Wallet extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},bitski:{extension:{step1:{description:"We recommend pinning Bitski to your taskbar for quicker access to your wallet.",title:"Install the Bitski extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},coin98:{qr_code:{step1:{description:"We recommend putting Coin98 Wallet on your home screen for faster access to your wallet.",title:"Open the Coin98 Wallet app"},step2:{description:"You can easily backup your wallet using our backup feature on your phone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the WalletConnect button"}},extension:{step1:{description:"Click at the top right of your browser and pin Coin98 Wallet for easy access.",title:"Install the Coin98 Wallet extension"},step2:{description:"Create a new wallet or import an existing one.",title:"Create or Import a wallet"},step3:{description:"Once you set up Coin98 Wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},coinbase:{qr_code:{step1:{description:"We recommend putting Coinbase Wallet on your home screen for quicker access.",title:"Open the Coinbase Wallet app"},step2:{description:"You can easily backup your wallet using the cloud backup feature.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}},extension:{step1:{description:"We recommend pinning Coinbase Wallet to your taskbar for quicker access to your wallet.",title:"Install the Coinbase Wallet extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},core:{qr_code:{step1:{description:"We recommend putting Core on your home screen for faster access to your wallet.",title:"Open the Core app"},step2:{description:"You can easily backup your wallet using our backup feature on your phone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the WalletConnect button"}},extension:{step1:{description:"We recommend pinning Core to your taskbar for quicker access to your wallet.",title:"Install the Core extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},fox:{qr_code:{step1:{description:"We recommend putting FoxWallet on your home screen for quicker access.",title:"Open the FoxWallet app"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}}},frontier:{qr_code:{step1:{description:"We recommend putting Frontier Wallet on your home screen for quicker access.",title:"Open the Frontier Wallet app"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"After you scan, a connection prompt will appear for you to connect your wallet.",title:"Tap the scan button"}},extension:{step1:{description:"We recommend pinning Frontier Wallet to your taskbar for quicker access to your wallet.",title:"Install the Frontier Wallet extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},im_token:{qr_code:{step1:{title:"Open the imToken app",description:"Put imToken app on your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap Scanner Icon in top right corner",description:"Choose New Connection, then scan the QR code and confirm the prompt to connect."}}},metamask:{qr_code:{step1:{title:"Open the MetaMask app",description:"We recommend putting MetaMask on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}},extension:{step1:{title:"Install the MetaMask extension",description:"We recommend pinning MetaMask to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},okx:{qr_code:{step1:{title:"Open the OKX Wallet app",description:"We recommend putting OKX Wallet on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}},extension:{step1:{title:"Install the OKX Wallet extension",description:"We recommend pinning OKX Wallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},omni:{qr_code:{step1:{title:"Open the Omni app",description:"Add Omni to your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap the QR icon and scan",description:"Tap the QR icon on your home screen, scan the code and confirm the prompt to connect."}}},token_pocket:{qr_code:{step1:{title:"Open the TokenPocket app",description:"We recommend putting TokenPocket on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}},extension:{step1:{title:"Install the TokenPocket extension",description:"We recommend pinning TokenPocket to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},trust:{qr_code:{step1:{title:"Open the Trust Wallet app",description:"Put Trust Wallet on your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap WalletConnect in Settings",description:"Choose New Connection, then scan the QR code and confirm the prompt to connect."}},extension:{step1:{title:"Install the Trust Wallet extension",description:"Click at the top right of your browser and pin Trust Wallet for easy access."},step2:{title:"Create or Import a wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Refresh your browser",description:"Once you set up Trust Wallet, click below to refresh the browser and load up the extension."}}},uniswap:{qr_code:{step1:{title:"Open the Uniswap app",description:"Add Uniswap Wallet to your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap the QR icon and scan",description:"Tap the QR icon on your homescreen, scan the code and confirm the prompt to connect."}}},zerion:{qr_code:{step1:{title:"Open the Zerion app",description:"We recommend putting Zerion on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}},extension:{step1:{title:"Install the Zerion extension",description:"We recommend pinning Zerion to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},rainbow:{qr_code:{step1:{title:"Open the Rainbow app",description:"We recommend putting Rainbow on your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"You can easily backup your wallet using our backup feature on your phone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}}},enkrypt:{extension:{step1:{description:"We recommend pinning Enkrypt Wallet to your taskbar for quicker access to your wallet.",title:"Install the Enkrypt Wallet extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},frame:{extension:{step1:{description:"We recommend pinning Frame to your taskbar for quicker access to your wallet.",title:"Install Frame & the companion extension"},step2:{description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone.",title:"Create or Import a Wallet"},step3:{description:"Once you set up your wallet, click below to refresh the browser and load up the extension.",title:"Refresh your browser"}}},one_key:{extension:{step1:{title:"Install the OneKey Wallet extension",description:"We recommend pinning OneKey Wallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},phantom:{extension:{step1:{title:"Install the Phantom extension",description:"We recommend pinning Phantom to your taskbar for easier access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret recovery phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},rabby:{extension:{step1:{title:"Install the Rabby extension",description:"We recommend pinning Rabby to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},safeheron:{extension:{step1:{title:"Install the Core extension",description:"We recommend pinning Safeheron to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},taho:{extension:{step1:{title:"Install the Taho extension",description:"We recommend pinning Taho to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},talisman:{extension:{step1:{title:"Install the Talisman extension",description:"We recommend pinning Talisman to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import an Ethereum Wallet",description:"Be sure to back up your wallet using a secure method. Never share your recovery phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},xdefi:{extension:{step1:{title:"Install the XDEFI Wallet extension",description:"We recommend pinning XDEFI Wallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},zeal:{extension:{step1:{title:"Install the Zeal extension",description:"We recommend pinning Zeal to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},safepal:{extension:{step1:{title:"Install the SafePal Wallet extension",description:"Click at the top right of your browser and pin SafePal Wallet for easy access."},step2:{title:"Create or Import a wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Refresh your browser",description:"Once you set up SafePal Wallet, click below to refresh the browser and load up the extension."}},qr_code:{step1:{title:"Open the SafePal Wallet app",description:"Put SafePal Wallet on your home screen for faster access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Create a new wallet or import an existing one."},step3:{title:"Tap WalletConnect in Settings",description:"Choose New Connection, then scan the QR code and confirm the prompt to connect."}}},desig:{extension:{step1:{title:"Install the Desig extension",description:"We recommend pinning Desig to your taskbar for easier access to your wallet."},step2:{title:"Create a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}}},subwallet:{extension:{step1:{title:"Install the SubWallet extension",description:"We recommend pinning SubWallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your recovery phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}},qr_code:{step1:{title:"Open the SubWallet app",description:"We recommend putting SubWallet on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}}},clv:{extension:{step1:{title:"Install the CLV Wallet extension",description:"We recommend pinning CLV Wallet to your taskbar for quicker access to your wallet."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Refresh your browser",description:"Once you set up your wallet, click below to refresh the browser and load up the extension."}},qr_code:{step1:{title:"Open the CLV Wallet app",description:"We recommend putting CLV Wallet on your home screen for quicker access."},step2:{title:"Create or Import a Wallet",description:"Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone."},step3:{title:"Tap the scan button",description:"After you scan, a connection prompt will appear for you to connect your wallet."}}},okto:{qr_code:{step1:{title:"Open the Okto app",description:"Add Okto to your home screen for quick access"},step2:{title:"Create an MPC Wallet",description:"Create an account and generate a wallet"},step3:{title:"Tap WalletConnect in Settings",description:"Tap the Scan QR icon at the top right and confirm the prompt to connect."}}}},qg={connect_wallet:diu,intro:fiu,connect:piu,connect_scan:hiu,connector_group:Ciu,get:miu,get_options:giu,get_mobile:Aiu,get_instructions:yiu,chains:Biu,profile:viu,wallet_connectors:Fiu},Diu={label:"Conectar la billetera"},biu={title:"¿Qué es una billetera?",description:"Una billetera se usa para enviar, recibir, almacenar y mostrar activos digitales. También es una nueva forma de iniciar sesión, sin necesidad de crear nuevas cuentas y contraseñas en cada sitio web.",digital_asset:{title:"Un hogar para tus Activos Digitales",description:"Las carteras se utilizan para enviar, recibir, almacenar y mostrar activos digitales como Ethereum y NFTs."},login:{title:"Una nueva forma de iniciar sesión",description:"En lugar de crear nuevas cuentas y contraseñas en cada sitio web, simplemente conecta tu cartera."},get:{label:"Obtener una billetera"},learn_more:{label:"Obtener más información"}},wiu={label:"Conectar",title:"Conectar una billetera",new_to_ethereum:{description:"¿Eres nuevo en las billeteras Ethereum?",learn_more:{label:"Obtener más información"}},learn_more:{label:"Obtener más información"},recent:"Reciente",status:{opening:"Abriendo %{wallet}...",not_installed:"%{wallet} no está instalado",not_available:"%{wallet} no está disponible",confirm:"Confirma la conexión en la extensión"},secondary_action:{get:{description:"¿No tienes %{wallet}?",label:"OBTENER"},install:{label:"INSTALAR"},retry:{label:"REINTENTAR"}},walletconnect:{description:{full:"¿Necesitas el modal oficial de WalletConnect?",compact:"¿Necesitas el modal de WalletConnect?"},open:{label:"ABRIR"}}},xiu={title:"Escanea con %{wallet}",fallback_title:"Escanea con tu teléfono"},kiu={recommended:"Recomendado",other:"Otro",popular:"Popular",more:"Más",others:"Otros"},_iu={title:"Obtener una billetera",action:{label:"OBTENER"},mobile:{description:"Billetera Móvil"},extension:{description:"Extensión de navegador"},mobile_and_extension:{description:"Billetera móvil y extensión"},looking_for:{title:"¿No es lo que estás buscando?",mobile:{description:"Seleccione una billetera en la pantalla principal para comenzar con un proveedor de billetera diferente."},desktop:{compact_description:"Seleccione una cartera en la pantalla principal para comenzar con un proveedor de cartera diferente.",wide_description:"Seleccione una cartera a la izquierda para comenzar con un proveedor de cartera diferente."}}},Siu={title:"Comienza con %{wallet}",short_title:"Obtener %{wallet}",mobile:{title:"%{wallet} para móvil",description:"Use la billetera móvil para explorar el mundo de Ethereum.",download:{label:"Obtener la aplicación"}},extension:{title:"%{wallet} para %{browser}",description:"Acceda a su billetera directamente desde su navegador web favorito.",download:{label:"Añadir a %{browser}"}}},Piu={title:"Instalar %{wallet}",description:"Escanee con su teléfono para descargar en iOS o Android",continue:{label:"Continuar"}},Tiu={mobile:{connect:{label:"Conectar"},learn_more:{label:"Obtener más información"}},extension:{refresh:{label:"Actualizar"},learn_more:{label:"Obtener más información"}}},Iiu={title:"Cambiar redes",wrong_network:"Se detectó la red incorrecta, cambia o desconéctate para continuar.",confirm:"Confirmar en la cartera",switching_not_supported:"Tu cartera no admite cambiar las redes desde %{appName}. Intenta cambiar las redes desde tu cartera.",switching_not_supported_fallback:"Su billetera no admite el cambio de redes desde esta aplicación. Intente cambiar de red desde dentro de su billetera en su lugar.",disconnect:"Desconectar",connected:"Conectado"},Oiu={disconnect:{label:"Desconectar"},copy_address:{label:"Copiar dirección",copied:"¡Copiado!"},explorer:{label:"Ver más en el explorador"},transactions:{description:"%{appName} transacciones aparecerán aquí...",description_fallback:"Tus transacciones aparecerán aquí...",recent:{title:"Transacciones recientes"},clear:{label:"Borrar Todo"}}},Niu={argent:{qr_code:{step1:{description:"Coloque Argent en su pantalla de inicio para un acceso más rápido a su billetera.",title:"Abra la aplicación Argent"},step2:{description:"Cree una billetera y un nombre de usuario, o importe una billetera existente.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un mensaje de conexión para que conecte su billetera.",title:"Toque el botón Escanear QR"}}},bifrost:{qr_code:{step1:{description:"Recomendamos poner Bifrost Wallet en su pantalla de inicio para un acceso más rápido.",title:"Abra la aplicación Bifrost Wallet"},step2:{description:"Cree o importe una billetera usando su frase de recuperación.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que conecte su billetera.",title:"Toque el botón de escaneo"}}},bitget:{qr_code:{step1:{description:"Recomendamos colocar Bitget Wallet en su pantalla de inicio para un acceso más rápido.",title:"Abra la aplicación Bitget Wallet"},step2:{description:"Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que pueda conectar su billetera.",title:"Toque el botón de escanear"}},extension:{step1:{description:"Recomendamos anclar Bitget Wallet a su barra de tareas para un acceso más rápido a su billetera.",title:"Instale la extensión de la Billetera Bitget"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",title:"Refrescar tu navegador"}}},bitski:{extension:{step1:{description:"Recomendamos anclar Bitski a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala la extensión Bitski"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensión.",title:"Actualiza tu navegador"}}},coin98:{qr_code:{step1:{description:"Recomendamos poner Coin98 Wallet en la pantalla de inicio para un acceso más rápido a su billetera.",title:"Abra la aplicación Coin98 Wallet"},step2:{description:"Puede respaldar fácilmente su billetera utilizando nuestra función de respaldo en su teléfono.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que conecte su billetera.",title:"Toque el botón WalletConnect"}},extension:{step1:{description:"Haga clic en la parte superior derecha de su navegador y fije Coin98 Wallet para un fácil acceso.",title:"Instale la extensión Coin98 Wallet"},step2:{description:"Crea una nueva billetera o importa una existente.",title:"Crear o Importar una billetera"},step3:{description:"Una vez que configures Coin98 Wallet, haz clic a continuación para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},coinbase:{qr_code:{step1:{description:"Recomendamos poner Coinbase Wallet en tu pantalla de inicio para un acceso más rápido.",title:"Abre la aplicación de la Billetera Coinbase"},step2:{description:"Puedes respaldar tu billetera fácilmente utilizando la función de respaldo en la nube.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera.",title:"Pulsa el botón de escanear"}},extension:{step1:{description:"Te recomendamos anclar la Billetera Coinbase a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala la extensión de la Billetera Coinbase"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configure su billetera, haga clic abajo para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},core:{qr_code:{step1:{description:"Recomendamos poner Core en su pantalla de inicio para un acceso más rápido a su billetera.",title:"Abra la aplicación Core"},step2:{description:"Puedes respaldar fácilmente tu billetera utilizando nuestra función de respaldo en tu teléfono.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera.",title:"Toque el botón WalletConnect"}},extension:{step1:{description:"Recomendamos fijar Core a tu barra de tareas para acceder más rápido a tu billetera.",title:"Instala la extensión Core"},step2:{description:"Asegúrate de hacer una copia de seguridad de tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},fox:{qr_code:{step1:{description:"Recomendamos poner FoxWallet en tu pantalla de inicio para un acceso más rápido.",title:"Abre la aplicación FoxWallet"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá una solicitud de conexión para que conectes tu billetera.",title:"Toca el botón de escanear"}}},frontier:{qr_code:{step1:{description:"Recomendamos poner la Billetera Frontier en tu pantalla principal para un acceso más rápido.",title:"Abre la aplicación de la Billetera Frontier"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Después de escanear, aparecerá un mensaje para que conectes tu billetera.",title:"Haz clic en el botón de escaneo"}},extension:{step1:{description:"Recomendamos anclar la billetera Frontier a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala la extensión de la billetera Frontier"},step2:{description:"Asegúrese de hacer una copia de seguridad de su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configure su billetera, haga clic a continuación para actualizar el navegador y cargar la extensión.",title:"Actualizar tu navegador"}}},im_token:{qr_code:{step1:{title:"Abrir la aplicación imToken",description:"Pon la aplicación imToken en tu pantalla de inicio para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Crea una nueva billetera o importa una existente."},step3:{title:"Toca el Icono del Escáner en la esquina superior derecha",description:"Elija Nueva Conexión, luego escanee el código QR y confirme el aviso para conectar."}}},metamask:{qr_code:{step1:{title:"Abre la aplicación MetaMask",description:"Recomendamos colocar MetaMask en tu pantalla de inicio para un acceso más rápido."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Toca el botón de escanear",description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."}},extension:{step1:{title:"Instala la extensión MetaMask",description:"Recomendamos anclar MetaMask a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de hacer una copia de seguridad de tu billetera usando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Refresca tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},okx:{qr_code:{step1:{title:"Abre la aplicación OKX Wallet",description:"Recomendamos colocar OKX Wallet en tu pantalla de inicio para un acceso más rápido."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Toca el botón de escanear",description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."}},extension:{step1:{title:"Instala la extensión de Billetera OKX",description:"Recomendamos anclar la Billetera OKX a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Refresca tu navegador",description:"Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensión."}}},omni:{qr_code:{step1:{title:"Abra la aplicación Omni",description:"Agregue Omni a su pantalla de inicio para un acceso más rápido a su billetera."},step2:{title:"Crear o Importar una Billetera",description:"Crear una nueva billetera o importar una existente."},step3:{title:"Toque el icono de QR y escanee",description:"Toca el icono QR en tu pantalla principal, escanea el código y confirma el aviso para conectar."}}},token_pocket:{qr_code:{step1:{title:"Abre la aplicación TokenPocket",description:"Recomendamos colocar TokenPocket en tu pantalla principal para un acceso más rápido."},step2:{title:"Crear o importar una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Toca el botón de escaneo",description:"Después de escanear, aparecerá una solicitud de conexión para que puedas conectar tu billetera."}},extension:{step1:{title:"Instala la extensión TokenPocket",description:"Recomendamos anclar TokenPocket a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic a continuación para actualizar el navegador y cargar la extensión."}}},trust:{qr_code:{step1:{title:"Abre la aplicación Trust Wallet",description:"Ubica Trust Wallet en tu pantalla de inicio para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Crea una nueva billetera o importa una existente."},step3:{title:"Toca WalletConnect en Configuraciones",description:"Elige Nueva Conexión, luego escanea el código QR y confirma el aviso para conectar."}},extension:{step1:{title:"Instala la extensión de Trust Wallet",description:"Haz clic en la parte superior derecha de tu navegador y fija Trust Wallet para un fácil acceso."},step2:{title:"Crea o Importa una billetera",description:"Crea una nueva billetera o importa una existente."},step3:{title:"Refresca tu navegador",description:"Una vez que configures Trust Wallet, haz clic abajo para refrescar el navegador y cargar la extensión."}}},uniswap:{qr_code:{step1:{title:"Abre la aplicación Uniswap",description:"Agrega la billetera Uniswap a tu pantalla de inicio para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Crea una nueva billetera o importa una existente."},step3:{title:"Toca el icono QR y escanea",description:"Toca el icono QR en tu pantalla de inicio, escanea el código y confirma el prompt para conectar."}}},zerion:{qr_code:{step1:{title:"Abre la aplicación Zerion",description:"Recomendamos poner Zerion en tu pantalla de inicio para un acceso más rápido."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de hacer una copia de seguridad de tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Toca el botón de escanear",description:"Después de escanear, aparecerá un aviso de conexión para que conectes tu billetera."}},extension:{step1:{title:"Instala la extensión Zerion",description:"Recomendamos anclar Zerion a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic a continuación para actualizar el navegador y cargar la extensión."}}},rainbow:{qr_code:{step1:{title:"Abre la aplicación Rainbow",description:"Recomendamos poner Rainbow en tu pantalla de inicio para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Puedes respaldar fácilmente tu billetera usando nuestra función de respaldo en tu teléfono."},step3:{title:"Toca el botón de escanear",description:"Después de escanear, aparecerá una solicitud de conexión para que conectes tu billetera."}}},enkrypt:{extension:{step1:{description:"Recomendamos anclar la Billetera Enkrypt a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala la extensión de Billetera Enkrypt"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},frame:{extension:{step1:{description:"Recomendamos anclar Frame a tu barra de tareas para un acceso más rápido a tu billetera.",title:"Instala Frame y la extensión complementaria"},step2:{description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie.",title:"Crear o Importar una Billetera"},step3:{description:"Una vez que configures tu billetera, haz clic a continuación para refrescar el navegador y cargar la extensión.",title:"Refresca tu navegador"}}},one_key:{extension:{step1:{title:"Instale la extensión de Billetera OneKey",description:"Recomendamos anclar la Billetera OneKey a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic a continuación para actualizar el navegador y cargar la extensión."}}},phantom:{extension:{step1:{title:"Instala la extensión Phantom",description:"Recomendamos fijar Phantom a tu barra de tareas para un acceso más fácil a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrese de respaldar su billetera usando un método seguro. Nunca comparta su frase secreta de recuperación con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},rabby:{extension:{step1:{title:"Instala la extensión Rabby",description:"Recomendamos anclar Rabby a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de hacer una copia de seguridad de tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Actualiza tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para actualizar el navegador y cargar la extensión."}}},safeheron:{extension:{step1:{title:"Instala la extensión Core",description:"Recomendamos anclar Safeheron a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Refresca tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},taho:{extension:{step1:{title:"Instala la extensión de Taho",description:"Recomendamos anclar Taho a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crea o Importa una Billetera",description:"Asegúrate de respaldar tu billetera utilizando un método seguro. Nunca compartas tu frase secreta con nadie."},step3:{title:"Refresca tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},talisman:{extension:{step1:{title:"Instala la extensión de Talisman",description:"Recomendamos anclar Talisman a tu barra de tareas para un acceso más rápido a tu billetera."},step2:{title:"Crea o importa una billetera Ethereum",description:"Asegúrate de respaldar tu billetera usando un método seguro. Nunca compartas tu frase de recuperación con nadie."},step3:{title:"Recarga tu navegador",description:"Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensión."}}},xdefi:{extension:{step1:{title:"Instala la extensión de la billetera XDEFI",description:"Recomendamos anclar XDEFI Wallet a su barra de tareas para un acceso más rápido a su billetera."},step2:{title:"Crear o Importar una Billetera",description:"Asegúrese de respaldar su billetera utilizando un método seguro. Nunca comparta su frase secreta con nadie."},step3:{title:"Actualice su navegador",description:"Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensión."}}}},Hg={connect_wallet:Diu,intro:biu,connect:wiu,connect_scan:xiu,connector_group:kiu,get:_iu,get_options:Siu,get_mobile:Piu,get_instructions:Tiu,chains:Iiu,profile:Oiu,wallet_connectors:Niu},Riu={label:"Connecter le portefeuille"},jiu={title:"Qu'est-ce qu'un portefeuille?",description:"Un portefeuille est utilisé pour envoyer, recevoir, stocker et afficher des actifs numériques. C'est aussi une nouvelle façon de se connecter, sans avoir besoin de créer de nouveaux comptes et mots de passe sur chaque site.",digital_asset:{title:"Un foyer pour vos actifs numériques",description:"Les portefeuilles sont utilisés pour envoyer, recevoir, stocker et afficher des actifs numériques comme Ethereum et les NFTs."},login:{title:"Une nouvelle façon de se connecter",description:"Au lieu de créer de nouveaux comptes et mots de passe sur chaque site Web, connectez simplement votre portefeuille."},get:{label:"Obtenir un portefeuille"},learn_more:{label:"En savoir plus"}},ziu={label:"Connecter",title:"Connecter un portefeuille",new_to_ethereum:{description:"Nouveau aux portefeuilles Ethereum?",learn_more:{label:"En savoir plus"}},learn_more:{label:"En savoir plus"},recent:"Récents",status:{opening:"Ouverture %{wallet}...",not_installed:"%{wallet} n'est pas installé",not_available:"%{wallet} n'est pas disponible",confirm:"Confirmez la connexion dans l'extension"},secondary_action:{get:{description:"Vous n'avez pas de %{wallet}?",label:"OBTENIR"},install:{label:"INSTALLER"},retry:{label:"RÉESSAYER"}},walletconnect:{description:{full:"Vous avez besoin du modal officiel de WalletConnect ?",compact:"Besoin du modal de WalletConnect ?"},open:{label:"OUVRIR"}}},Miu={title:"Scannez avec %{wallet}",fallback_title:"Scannez avec votre téléphone"},Uiu={recommended:"Recommandé",other:"Autre",popular:"Populaire",more:"Plus",others:"Autres"},Liu={title:"Obtenez un portefeuille",action:{label:"OBTENIR"},mobile:{description:"Portefeuille mobile"},extension:{description:"Extension de navigateur"},mobile_and_extension:{description:"Portefeuille mobile et extension"},looking_for:{title:"Ce n'est pas ce que vous cherchez ?",mobile:{description:"Sélectionnez un portefeuille sur l'écran principal pour commencer avec un autre fournisseur de portefeuille."},desktop:{compact_description:"Sélectionnez un portefeuille sur l'écran principal pour commencer avec un autre fournisseur de portefeuille.",wide_description:"Sélectionnez un portefeuille sur la gauche pour commencer avec un autre fournisseur de portefeuille."}}},$iu={title:"Commencez avec %{wallet}",short_title:"Obtenez %{wallet}",mobile:{title:"%{wallet} pour mobile",description:"Utilisez le portefeuille mobile pour explorer le monde d'Ethereum.",download:{label:"Obtenez l'application"}},extension:{title:"%{wallet} pour %{browser}",description:"Accédez à votre portefeuille directement depuis votre navigateur web préféré.",download:{label:"Ajouter à %{browser}"}}},Wiu={title:"Installer %{wallet}",description:"Scannez avec votre téléphone pour télécharger sur iOS ou Android",continue:{label:"Continuer"}},qiu={mobile:{connect:{label:"Connecter"},learn_more:{label:"En savoir plus"}},extension:{refresh:{label:"Rafraîchir"},learn_more:{label:"En savoir plus"}}},Hiu={title:"Changer de Réseaux",wrong_network:"Mauvais réseau détecté, changez ou déconnectez-vous pour continuer.",confirm:"Confirmer dans le portefeuille",switching_not_supported:"Votre portefeuille ne supporte pas le changement de réseaux depuis %{appName}. Essayez de changer de réseau depuis votre portefeuille.",switching_not_supported_fallback:"Votre portefeuille ne prend pas en charge le changement de réseaux à partir de cette application. Essayez de changer de réseau à partir de votre portefeuille à la place.",disconnect:"Déconnecter",connected:"Connecté"},Giu={disconnect:{label:"Déconnecter"},copy_address:{label:"Copier l'adresse",copied:"Copié !"},explorer:{label:"Voir plus sur l'explorateur"},transactions:{description:"%{appName} transactions apparaîtront ici...",description_fallback:"Vos transactions apparaîtront ici...",recent:{title:"Transactions Récentes"},clear:{label:"Tout supprimer"}}},Kiu={argent:{qr_code:{step1:{description:"Mettez Argent sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",title:"Ouvrez l'application Argent"},step2:{description:"Créez un portefeuille et un nom d'utilisateur, ou importez un portefeuille existant.",title:"Créer ou Importer un Portefeuille"},step3:{description:"Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton Scan QR"}}},bifrost:{qr_code:{step1:{description:"Nous vous recommandons de mettre le portefeuille Bifrost sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application Bifrost Wallet"},step2:{description:"Créez ou importez un portefeuille en utilisant votre phrase de récupération.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après votre scan, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}}},bitget:{qr_code:{step1:{description:"Nous vous recommandons de placer Bitget Wallet sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application Bitget Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après le scan, une incitation de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}},extension:{step1:{description:"Nous vous recommandons d'épingler Bitget Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension de portefeuille Bitget"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créez ou Importez un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},bitski:{extension:{step1:{description:"Nous recommandons d'épingler Bitski à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Bitski"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},coin98:{qr_code:{step1:{description:"Nous vous recommandons de placer Coin98 Wallet sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",title:"Ouvrez l'application Coin98 Wallet"},step2:{description:"Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après que vous ayez scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton WalletConnect"}},extension:{step1:{description:"Cliquez en haut à droite de votre navigateur et épinglez Coin98 Wallet pour un accès facile.",title:"Installez l'extension Coin98 Wallet"},step2:{description:"Créez un nouveau portefeuille ou importez-en un existant.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré Coin98 Wallet, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},coinbase:{qr_code:{step1:{description:"Nous recommandons de placer Coinbase Wallet sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application Coinbase Wallet"},step2:{description:"Vous pouvez facilement sauvegarder votre portefeuille en utilisant la fonction de sauvegarde cloud.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après avoir scanné, une invite de connexion s'affichera pour que vous puissiez connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}},extension:{step1:{description:"Nous recommandons d'épingler Coinbase Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Coinbase Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sûre. Ne partagez jamais votre phrase secrète avec quiconque.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",title:"Actualisez votre navigateur"}}},core:{qr_code:{step1:{description:"Nous recommandons de placer Core sur votre écran d'accueil pour un accès plus rapide à votre portefeuille.",title:"Ouvrez l'application Core"},step2:{description:"Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après avoir scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton WalletConnect"}},extension:{step1:{description:"Nous recommandons d'épingler Core à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Core"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque.",title:"Créez ou Importer un Portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},fox:{qr_code:{step1:{description:"Nous recommandons de mettre FoxWallet sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application FoxWallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après avoir scanné, une invitation à la connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}}},frontier:{qr_code:{step1:{description:"Nous vous recommandons de placer le portefeuille Frontier sur votre écran d'accueil pour un accès plus rapide.",title:"Ouvrez l'application Frontier Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créer ou Importer un portefeuille"},step3:{description:"Après avoir scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille.",title:"Appuyez sur le bouton de scan"}},extension:{step1:{description:"Nous recommandons d'épingler Frontier Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Frontier Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créez ou importez un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},im_token:{qr_code:{step1:{title:"Ouvrez l'application imToken",description:"Placez l'application imToken sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou importez un portefeuille",description:"Créez un nouveau portefeuille ou importez-en un existant ."},step3:{title:"Appuyez sur l'icône du scanner dans le coin supérieur droit",description:"Choisissez Nouvelle Connexion, puis scannez le code QR et confirmez l'invite pour vous connecter."}}},metamask:{qr_code:{step1:{title:"Ouvrez l'application MetaMask",description:"Nous vous recommandons de mettre MetaMask sur votre écran d'accueil pour un accès plus rapide."},step2:{title:"Créer ou Importer un Portefeuille",description:"Veillez à sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Appuyez sur le bouton de scan",description:"Après avoir scanné, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."}},extension:{step1:{title:"Installez l’extension de MetaMask",description:"Nous recommandons d'épingler MetaMask à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},okx:{qr_code:{step1:{title:"Ouvrez l'application OKX Wallet",description:"Nous recommandons de mettre OKX Wallet sur votre écran d'accueil pour un accès plus rapide."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."},step3:{title:"Appuyez sur le bouton de numérisation",description:"Après avoir numérisé, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."}},extension:{step1:{title:"Installez l'extension de portefeuille OKX",description:"Nous vous recommandons d'épingler le portefeuille OKX à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."}}},omni:{qr_code:{step1:{title:"Ouvrez l'application Omni",description:"Ajoutez Omni à votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un Portefeuille",description:"Créez un nouveau portefeuille ou importez-en un existant."},step3:{title:"Touchez l'icône QR et scannez",description:"Appuyez sur l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."}}},token_pocket:{qr_code:{step1:{title:"Ouvrez l'application TokenPocket",description:"Nous vous recommandons de mettre TokenPocket sur votre écran d'accueil pour un accès plus rapide."},step2:{title:"Créez ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille à l'aide d'une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Appuyez sur le bouton de scan",description:"Après votre scan, une invite de connexion apparaîtra pour vous permettre de connecter votre portefeuille."}},extension:{step1:{title:"Installez l'extension TokenPocket",description:"Nous recommandons d'épingler TokenPocket à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},trust:{qr_code:{step1:{title:"Ouvrez l'application Trust Wallet",description:"Placez Trust Wallet sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Créer un nouveau portefeuille ou en importer un existant."},step3:{title:"Appuyez sur WalletConnect dans les paramètres",description:"Choisissez Nouvelle Connexion, puis scannez le code QR et confirmez l'invite pour vous connecter."}},extension:{step1:{title:"Installez l'extension Trust Wallet",description:"Cliquez en haut à droite de votre navigateur et épinglez Trust Wallet pour un accès facile."},step2:{title:"Créer ou importer un portefeuille",description:"Créer un nouveau portefeuille ou en importer un existant."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré Trust Wallet, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},uniswap:{qr_code:{step1:{title:"Ouvrez l'application Uniswap",description:"Ajoutez Uniswap Wallet à votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou importez un portefeuille",description:"Créez un nouveau portefeuille ou importez-en un existant."},step3:{title:"Tapez sur l'icône QR et scannez",description:"Touchez l'icône QR sur votre écran d'accueil, scannez le code et confirmez l'invite pour vous connecter."}}},zerion:{qr_code:{step1:{title:"Ouvrez l'application Zerion",description:"Nous vous recommandons de mettre Zerion sur votre écran d'accueil pour un accès plus rapide."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne."},step3:{title:"Appuyez sur le bouton de scan",description:"Une fois que vous avez scanné, une invite de connexion apparaîtra pour que vous puissiez connecter votre portefeuille."}},extension:{step1:{title:"Installer l'extension Zerion",description:"Nous recommandons d'épingler Zerion à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou Importez un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quiconque."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},rainbow:{qr_code:{step1:{title:"Ouvre l'application Rainbow",description:"Nous vous recommandons de mettre Rainbow sur votre écran d'accueil pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou Importez un portefeuille",description:"Vous pouvez facilement sauvegarder votre portefeuille en utilisant notre fonction de sauvegarde sur votre téléphone."},step3:{title:"Appuyez sur le bouton de scan",description:"Après avoir scanné, une invite de connexion apparaîtra pour que vous connectiez votre portefeuille."}}},enkrypt:{extension:{step1:{description:"Nous vous recommandons d'épingler Enkrypt Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez l'extension Enkrypt Wallet"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quelqu'un.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l’extension.",title:"Rafraîchissez votre navigateur"}}},frame:{extension:{step1:{description:"Nous vous recommandons d'épingler Frame à votre barre des tâches pour un accès plus rapide à votre portefeuille.",title:"Installez Frame & l'extension complémentaire"},step2:{description:"Assurez-vous de sauvegarder votre portefeuille à l'aide d'une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne.",title:"Créer ou Importer un portefeuille"},step3:{description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension.",title:"Rafraîchissez votre navigateur"}}},one_key:{extension:{step1:{title:"Installez l'extension OneKey Wallet",description:"Nous vous recommandons d'épingler OneKey Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec personne."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},phantom:{extension:{step1:{title:"Installez l'extension Phantom",description:"Nous vous recommandons d'épingler Phantom à votre barre des tâches pour un accès plus facile à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase de récupération secrète avec personne."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},rabby:{extension:{step1:{title:"Installez l'extension Rabby",description:"Nous recommandons d'épingler Rabby à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Actualisez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour actualiser le navigateur et charger l'extension."}}},safeheron:{extension:{step1:{title:"Installez l'extension Core",description:"Nous recommandons d'épingler Safeheron à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quelqu'un."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},taho:{extension:{step1:{title:"Installez l'extension Taho",description:"Nous vous recommandons d'épingler Taho à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créez ou Importez un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec quelqu'un."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},talisman:{extension:{step1:{title:"Installez l'extension Talisman",description:"Nous vous recommandons d'épingler Talisman à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou importer un portefeuille Ethereum",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase de récupération avec personne."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}},xdefi:{extension:{step1:{title:"Installez l'extension du portefeuille XDEFI",description:"Nous vous recommandons d'épingler XDEFI Wallet à votre barre des tâches pour un accès plus rapide à votre portefeuille."},step2:{title:"Créer ou Importer un portefeuille",description:"Assurez-vous de sauvegarder votre portefeuille en utilisant une méthode sécurisée. Ne partagez jamais votre phrase secrète avec qui que ce soit."},step3:{title:"Rafraîchissez votre navigateur",description:"Une fois que vous avez configuré votre portefeuille, cliquez ci-dessous pour rafraîchir le navigateur et charger l'extension."}}}},Gg={connect_wallet:Riu,intro:jiu,connect:ziu,connect_scan:Miu,connector_group:Uiu,get:Liu,get_options:$iu,get_mobile:Wiu,get_instructions:qiu,chains:Hiu,profile:Giu,wallet_connectors:Kiu},Qiu={label:"वॉलेट को कनेक्ट करें"},Viu={title:"वॉलेट क्या है?",description:"एक वॉलेट का उपयोग डिजिटल संपत्तियों को भेजने, प्राप्त करने, संग्रहित करने और प्रदर्शित करने के लिए किया जाता है। यह एक नया तरीका भी है लॉग इन करने का, हर वेबसाइट पर नए खाते और पासवर्ड बनाने की जरूरत के बिना।",digital_asset:{title:"अपने डिजिटल संपत्तियों के लिए एक घर",description:"वॉलेट का उपयोग Ethereum और NFTs जैसी डिजिटल संपत्तियों को भेजने, प्राप्त करने, संग्रहित करने और प्रदर्शित करने के लिए किया जाता है."},login:{title:"लॉग इन करने का एक नया तरीका",description:"हर वेबसाइट पर नए खाते और पासवर्ड बनाने की बजाय, बस अपना वॉलेट कनेक्ट करें."},get:{label:"एक वॉलेट प्राप्त करें"},learn_more:{label:"और जानें"}},Jiu={label:"कनेक्ट करें",title:"वॉलेट को कनेक्ट करें",new_to_ethereum:{description:"Ethereum वॉलेट्स में नए हैं?",learn_more:{label:"और जानें"}},learn_more:{label:"और जानें।"},recent:"हाल ही में",status:{opening:"%{wallet}खोल रहा है...",not_installed:"%{wallet} स्थापित नहीं है",not_available:"%{wallet} उपलब्ध नहीं है",confirm:"एक्सटेंशन में कनेक्शन की पुष्टि करें"},secondary_action:{get:{description:"क्या आपके पास %{wallet}नहीं है ?",label:"प्राप्त करें"},install:{label:"स्थापित करें"},retry:{label:"पुनः प्रयास करें"}},walletconnect:{description:{full:"क्या आपको आधिकारिक WalletConnect मोडल की आवश्यकता है?",compact:"क्या आपको WalletConnect मोडल की आवश्यकता है?"},open:{label:"खोलें"}}},Yiu={title:"स्कैन करें विथ %{wallet}",fallback_title:"अपने फोन से स्कैन करें"},Xiu={recommended:"अनुशंसित",other:"अन्य",popular:"लोकप्रिय",more:"अधिक",others:"अन्य लोग"},Ziu={title:"एक वॉलेट प्राप्त करें",action:{label:"प्राप्त करें"},mobile:{description:"मोबाइल वॉलेट"},extension:{description:"ब्राउज़र एक्सटेंशन"},mobile_and_extension:{description:"मोबाइल वॉलेट और एक्सटेंशन"},looking_for:{title:"क्या आपको जो चाहिए वह नहीं मिल रहा है?",mobile:{description:"मुख्य स्क्रीन पर एक बटुआ चुनें ताकि आप एक अलग बटुआ प्रदाता के साथ शुरू कर सकें।"},desktop:{compact_description:"मुख्य स्क्रीन पर एक बटुआ चुनें ताकि आप एक अलग बटुआ प्रदाता के साथ शुरू कर सकें।",wide_description:"बाएं एक बटुआ चुनें ताकि आप एक अलग बटुआ प्रदाता के साथ शुरू कर सकें।"}}},uau={title:"%{wallet}के साथ शुरू करें",short_title:"%{wallet}प्राप्त करें",mobile:{title:"मोबाइल के लिए %{wallet}",description:"मोबाइल वॉलेट का उपयोग करके Ethereum की दुनिया का अन्वेषण करें।",download:{label:"ऐप प्राप्त करें"}},extension:{title:"%{wallet} के लिए %{browser}",description:"अपने पसंदीदा वेब ब्राउज़र से अपने वॉलेट तक पहुंचें।",download:{label:"करें जोड़ें %{browser}"}}},eau={title:"स्थापित करें %{wallet}",description:"iOS या Android पर डाउनलोड करने के लिए अपने फोन से स्कैन करें",continue:{label:"जारी रखें"}},tau={mobile:{connect:{label:"जोड़ें"},learn_more:{label:"और जानें"}},extension:{refresh:{label:"ताज़ा करें"},learn_more:{label:"और जानें"}}},nau={title:"नेटवर्क स्विच करें",wrong_network:"गलत नेटवर्क का पता चला, जारी रखने के लिए स्विच करें या कनेक्ट करें।",confirm:"वॉलेट में पुष्टि करें",switching_not_supported:"आपका वॉलेट नेटवर्क्स को %{appName}से स्विच करना समर्थन नहीं करता . बजाय अपने वॉलेट के भीतर से नेटवर्क स्विच करने का प्रयास करें।",switching_not_supported_fallback:"आपका वॉलेट इस एप से नेटवर्क्स स्विच करने का समर्थन नहीं करता। बजाय उसके, अपना वॉलेट द्वारा नेटवर्क्स स्विच करने की कोशिश करें।",disconnect:"डिकनेक्ट",connected:"कनेक्ट किया गया"},rau={disconnect:{label:"डिकनेक्ट"},copy_address:{label:"पता कॉपी करें",copied:"कॉपी कर दिया गया!"},explorer:{label:"एक्सप्लोरर पर अधिक देखें"},transactions:{description:"%{appName} लेन - देन यहां दिखाई देंगे...",description_fallback:"आपके लेन-देन यहां दिखाई देंगे...",recent:{title:"हाल के लेन - देन"},clear:{label:"सभी को हटाएं"}}},iau={argent:{qr_code:{step1:{description:"अपने वॉलेट को जल्दी से एक्सेस करने के लिए आपके होम स्क्रीन पर Argent डालें।",title:"Argent ऐप खोलें"},step2:{description:"वॉलेट और उपयोगकर्ता नाम बनाएं, या मौजूदा वॉलेट को आयात करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"जैसे ही आप स्कैन करेंगे, एक कनेक्शन संकेत आपके वॉलेट को कनेक्ट करने के लिए प्रकट होगा।",title:"QR स्कैन बटन को टैप करें"}}},bifrost:{qr_code:{step1:{description:"हम आपको सलाह देते हैं कि Bifrost Wallet को अपने होम स्क्रीन पर लगाएं, ताकि त्वरित एक्सेस को सुनिश्चित किया जा सके।",title:"Bifrost Wallet ऐप को खोलें"},step2:{description:"अपने रिकवरी फ़्रेज़ का उपयोग करके एक वॉलेट बनाएं या इंपोर्ट करें।",title:"वॉलेट बनाएं या इंपोर्ट करें"},step3:{description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत दिखाई देगा।",title:"स्कैन बटन को टैप करें"}}},bitget:{qr_code:{step1:{description:"हम इसे सुझाव देते हैं कि आप अपने होम स्क्रीन पर Bitget वॉलेट को रखें ताकि जल्दी एक्सेस कर सकें।",title:"Bitget वॉलेट एप को खोलें"},step2:{description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने के लिए सुनिश्चित करें। किसी के साथ भी अपना गुप्त वाक्यांश साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने का एक संकेत दिखाई देगा।",title:"स्कैन बटन पर टैप करें"}},extension:{step1:{description:"हम इसे सुझाव देते हैं कि आप Bitget वॉलेट को आपके टास्कबार में पिन करें ताकि आपके वॉलेट तक जल्दी पहुंच सकें।",title:"Bitget Wallet एक्सटेंशन स्थापित करें"},step2:{description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप किसी सुरक्षित तरीके से ले रहे हैं। अपनी गुप्त वाक्यांश को कभी किसी के साथ साझा न करें।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन लोड करें।",title:"अपने ब्राउज़र को ताज़ा करें"}}},bitski:{extension:{step1:{description:"हम आपको अपने वॉलेट तक जल्दी पहुंचने के लिए Bitski को अपने टास्कबार में पिन करने की सलाह देते हैं।",title:"Bitski एक्सटेंशन स्थापित करें"},step2:{description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपने वॉलेट का बैकअप बना रहे हैं। कभी भी किसी के साथ अपने गोपनीय वाक्यांश को साझा न करें।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपना वॉलेट सेट कर लेते हैं, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।",title:"अपने ब्राउज़र को ताज़ा करें"}}},coin98:{qr_code:{step1:{description:"हम आपके वॉलेट तक तेजी से पहुंचने के लिए अपने होम स्क्रीन पर Coin98 वॉलेट रखने की सलाह देते हैं।",title:"Coin98 वॉलेट ऐप को खोलें"},step2:{description:"आप अपने फोन पर हमारे बैकअप फीचर का उपयोग करके आसानी से अपने वॉलेट का बैकअप कर सकते हैं।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन प्रांप्ट दिखाई देगा।",title:"WalletConnect बटन पर टैप करें"}},extension:{step1:{description:"अपने ब्राउज़र के ऊपरी दाएं हिस्से पर क्लिक करें और आसानी से पहुंच के लिए Coin98 वॉलेट को पिन करें।",title:"Coin98 वॉलेट एक्सटेंशन स्थापित करें"},step2:{description:"नया बटुआ बनाएं या मौजूदा को आयात करें।",title:"एक बटुआ बनाएं या आयात करें"},step3:{description:"एक बार जब आप Coin98 वॉलेट सेट करते हैं, तो नीचे क्लिक करके ब्राउजर को ताजा करें और एक्सटेंशन को लोड करें।",title:"अपने ब्राउज़र को ताज़ा करें"}}},coinbase:{qr_code:{step1:{description:"हम आपको सलाह देते हैं कि आपकी मुख्य बिल्ड स्क्रीन पर Coinbase वॉलेट को रखें जिससे आपकी पहुंच तेज हो।",title:"Coinbase वॉलेट ऐप खोलें"},step2:{description:"आप बादल बैकअप सुविधा का उपयोग करके आसानी से अपने वॉलेट का बैकअप ले सकते हैं।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"जैसे ही आप स्कैन करते हैं, आपको अपने वॉलेट से कनेक्ट करने के लिए एक कनेक्शन संकेत दिखाई देगा।",title:"स्कैन बटन को छूना"}},extension:{step1:{description:"हमारा सिफारिश है कि आप अपने वॉलेट तक जल्दी पहुंचने के लिए Coinbase वॉलेट को अपने टास्कबार पर पिन पर रखें।",title:"Coinbase वॉलेट एक्सटेंशन स्थापित करें"},step2:{description:"सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त पुनर्प्राप्ति वाक्यांश कभी भी किसी के साथ साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपना वॉलेट सेट अप करते हैं, तो ब्राउज़र को ताजगी देने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें.",title:"अपना ब्राउज़र ताजा करें"}}},core:{qr_code:{step1:{description:"हम आपकी वॉलेट के तेज एक्सेस के लिए Core को आपके होम स्क्रीन पर डालने की सलाह देते हैं.",title:"Core एप खोलें"},step2:{description:"आप आसानी से अपने फ़ोन पर हमारे बैकअप फीचर का उपयोग करके अपना वॉलेट बैकअप कर सकते हैं.",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए आपके लिए कनेक्शन प्राम्प्ट प्रकट होगा.",title:"WalletConnect बटन को छूने के साथ"}},extension:{step1:{description:"हम अपने वॉलेट के लिए तेज एक्सेस के लिए कोर को अपने टास्कबार में पिन करने की सिफारिश करते हैं।",title:"कोर एक्सटेंशन स्थापित करें"},step2:{description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले। कभी भी किसी के साथ अपनी गुप्त वाक्यांश साझा न करें।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपने वॉलेट की स्थापना कर लें, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा कर सकें और एक्सटेंशन को लोड कर सकें।",title:"अपने ब्राउज़र को ताज़ा करें"}}},fox:{qr_code:{step1:{description:"हम FoxWallet को अपने होम स्क्रीन पर रखने की सिफारिश करते हैं ताकि त्वरित एक्सेस मिल सके।",title:"FoxWallet ऐप खोलें"},step2:{description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके का उपयोग करके अपने वॉलेट का बैकअप ले रहे हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"जब आप स्कैन करेंगे, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।",title:"स्कैन बटन पर टैप करें"}}},frontier:{qr_code:{step1:{description:"हमारी सिफारिश है कि आप अपने होम स्क्रीन पर फ्रंटियर वॉलेट रखें जिससे कि आपको त्वरित पहुंच मिले।",title:"फ्रंटियर वॉलेट ऐप को खोलें"},step2:{description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके का उपयोग करके अपने वॉलेट का बैकअप ले रहे हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"जब आप स्कैन करते हैं, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।",title:"स्कैन बटन को टैप करें"}},extension:{step1:{description:"हम आपके वॉलेट की तेजी से पहुंच के लिए Frontier Wallet को अपने टास्कबार में पिन करने की सिफारिश करते हैं।",title:"Frontier Wallet एक्सटेंशन इंस्टॉल करें"},step2:{description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपना वॉलेट बैकअप कर रहे हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"वॉलेट सेटअप होने के बाद, ब्राउज़र को रिफ्रेश करने के लिए नीचे क्लिक करें और एक्सटेंशन लोड करें।",title:"अपना ब्राउज़र रिफ्रेश करें"}}},im_token:{qr_code:{step1:{title:"imToken ऐप खोलें",description:"अपने वॉलेट के तेजी से पहुँच के लिए imToken एप्लीकेशन को अपने होम स्क्रीन पर रखें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा एक को आयात करें।"},step3:{title:"ऊपरी दाएं कोने में स्कैनर आइकॉन पर टैप करें",description:"नया कनेक्शन चुनें, फिर QR कोड स्कैन करें और कनेक्ट करने के लिए प्रॉम्प्ट की पुष्टि करें।"}}},metamask:{qr_code:{step1:{title:"MetaMask ऐप को खोलें",description:"हम आपको MetaMask को आपकी होम स्क्रीन पर रखने की सलाह देते हैं, इससे आपको त्वरित पहुँच मिलेगी।"},step2:{title:"एक वॉलेट बनाएं या इम्पोर्ट करें",description:"सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त वाक्यांश कभी भी किसी के साथ साझा न करें।"},step3:{title:"स्कैन बटन पर टैप करें",description:"स्कैन करने के बाद, आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन प्रॉम्प्ट दिखाई देगा।"}},extension:{step1:{title:"MetaMask एक्सटेंशन स्थापित करें",description:"हम अपने वॉलेट तक जल्दी से पहुँचने के लिए MetaMask को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेना सुनिश्चित करें। अपनी गुप्त वाक्यांश को किसी के साथ शेयर न करें।"},step3:{title:"अपना ब्राउज़र ताज़ा करें",description:"एक बार जब आप अपना वॉलेट सेट अप करते हैं, तो ब्राउजर को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}},okx:{qr_code:{step1:{title:"OKX Wallet ऐप खोलें",description:"हम आपको OKX Wallet को अपने होम स्क्रीन पर रखने की सलाह देते हैं, जिससे आप जल्दी से पहुंच सकें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने का यकीन करें। कभी भी किसी के साथ अपने गुप्त वाक्यांश साझा न करें।"},step3:{title:"स्कैन बटन पर टैप करें",description:"जब आप स्कैन करते हैं, तो आपके वॉलेट को कनेक्ट करने के लिए एक कनेक्शन संकेत प्रकट होगा।"}},extension:{step1:{title:"OKX वॉलेट एक्सटेंशन स्थापित करें",description:"हम अपने वॉलेट तक तेज़ी से पहुंचने के लिए आपको OKX वॉलेट को अपने कार्यपट्टी में पिन करने की सलाह देते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेने का यकीन करें। कभी भी किसी के साथ अपने गुप्त वाक्यांश साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"जब आप अपना वॉलेट सेट अप कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताजा करें और एक्सटेंशन को लोड करें।"}}},omni:{qr_code:{step1:{title:"Omni ऐप को खोलें",description:"अपने वॉलेट तक अधिक जल्दी पहुंचने के लिए Omni को अपने होम स्क्रीन पर जोड़ें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा एक को आयात करें।"},step3:{title:"QR आइकन पर टैप करें और स्कैन करें",description:"अपने होम स्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और कनेक्ट करने के लिए प्रॉम्प्ट की पुष्टि करें।"}}},token_pocket:{qr_code:{step1:{title:"TokenPocket ऐप को खोलें",description:"हम आपको TokenPocket को अपने होम स्क्रीन पर रखने की सलाह देते हैं ताकि आपको तेज एक्सेस मिल सके।"},step2:{title:"एक वॉलेट बनाएँ या आयात करें",description:"सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त वाक्यांश कभी भी किसी के साथ साझा न करें।"},step3:{title:"स्कैन बटन पर टैप करें",description:"एक बार स्कैन करने के बाद, आपके लिए एक कनेक्शन प्रॉम्प्ट प्रकट होगा ताकि आप अपने वॉलेट को कनेक्ट कर सकें।"}},extension:{step1:{title:"TokenPocket एक्सटेंशन स्थापित करें",description:"हम अपने वॉलेट तक त्वरित पहुंच के लिए TokenPocket को अपने taskbar पर pin करने की सिफारिश करते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेते हैं। कभी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।"},step3:{title:"अपना ब्राउज़र ताज़ा करें",description:"एक बार जब आप अपना वॉलेट सेटअप कर लेते हैं, तो नीचे क्लिक करें ताज़ा ब्राउज़र लोड करें और एक्सटेंशन अप करें।"}}},trust:{qr_code:{step1:{title:"Trust Wallet ऐप खोलें",description:"अपने वॉलेट तक तेज़ी से पहुंचने के लिए Trust Wallet को अपने होम स्क्रीन पर रखें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा वॉलेट आयात करें।"},step3:{title:"सेटिंग्स में WalletConnect को टैप करें",description:"नया कनेक्शन चुनें, फिर QR कोड स्कैन करें और प्रम्प्ट की पुष्टि करें।"}},extension:{step1:{title:"Trust Wallet एक्सटेंशन को इंस्टॉल करें",description:"अपने ब्राउज़र के ऊपरी दाएं कोने पर क्लिक करें और Trust Wallet को आसानी से प्रवेश के लिए पिन करें।"},step2:{title:"एक वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा वॉलेट आयात करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार Trust Wallet सेट अप करने के बाद, नीचे क्लिक करें ब्राउज़र को ताज़ा करने और एक्सटेंशन लोड करने के लिए।"}}},uniswap:{qr_code:{step1:{title:"Uniswap ऐप को खोलें",description:"अपने होम स्क्रीन पर Uniswap वॉलेट जोड़ें, इससे आपके वॉलेट तक तेजी से पहुंचने की सुविधा होगी।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"एक नया वॉलेट बनाएं या मौजूदा वॉलेट को आयात करें।"},step3:{title:"QR आइकन पर टैप करें और स्कैन करें",description:"अपने होमस्क्रीन पर QR आइकन पर टैप करें, कोड स्कैन करें और प्रम्प्ट को कनेक्ट करने की पुष्टि करें।"}}},zerion:{qr_code:{step1:{title:"Zerion ऐप को खोलें",description:"हम सलाह देते हैं कि आप Zerion को अपने होम स्क्रीन पर रखें, इससे तेजी से एक्सेस करने में आसानी होगी।"},step2:{title:"एक वॉलेट बनाएं या आयात करें",description:"सुरक्षित विधि का उपयोग करके अपने बटुए का बैकअप लेना सुनिश्चित करें। अपना गुप्त वाक्यांश कभी भी किसी के साथ साझा न करें।"},step3:{title:"स्कैन बटन को टैप करें",description:"आप स्कैन करने के बाद, एक कनेक्शन प्रोम्प्ट आपके बटुए को कनेक्ट करने के लिए प्रकट होगा।"}},extension:{step1:{title:"Zerion एक्सटेंशन स्थापित करें",description:"हमारी सिफारिश है कि आप अपने वॉलेट तक जल्दी पहुँचने के लिए Zerion को अपने टास्कबार में पिन करें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप एक सुरक्षित विधि का उपयोग करके अपने वॉलेट का बैकअप ले रहे हैं। अपना गुप्त वाक्य कभी किसी के साथ साझा न करें।"},step3:{title:"अपना ब्राउज़र ताज़ा करें",description:"एक बार जब आप अपने वॉलेट की स्थापना कर लें, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}},rainbow:{qr_code:{step1:{title:"Rainbow ऐप को खोलें",description:"हम अपने वॉलेट के तेज एक्सेस के लिए Rainbow को अपने होम स्क्रीन पर रखने की सलाह देते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"आप अपने फ़ोन पर हमारे बैकअप फीचर का उपयोग करके अपने वॉलेट का बैकअप आसानी से ले सकते हैं।"},step3:{title:"स्कैन बटन पर टैप करें",description:"जब आप स्कैन करते हैं, तो आपकी वॉलेट से कनेक्ट करने के लिए एक कनेक्शन संकेत दिखाई देगा।"}}},enkrypt:{extension:{step1:{description:"हम अपनी वॉलेट तक तेज़ी से पहुँच के लिए Enkrypt वॉलेट को अपने टास्कबार में पिन करने की सलाह देते हैं।",title:"Enkrypt वॉलेट एक्सटेंशन स्थापित करें"},step2:{description:"सुनिश्चित करें कि आप अपनी वॉलेट का बैकअप एक सुरक्षित तरीके से ले। अपनी गुप्त वाक्यांश को कभी भी किसी के साथ साझा न करें।",title:"एक वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपनी वॉलेट सेट कर लें, तो नीचे क्लिक करें ब्राउज़र को ताज़ा करने और एक्सटेंशन लोड करने के लिए।",title:"अपने ब्राउज़र को ताज़ा करें"}}},frame:{extension:{step1:{description:"हम अपनी वॉलेट तक तेज़ी से पहुँच के लिए Frame को अपने टास्कबार में पिन करने की सलाह देते हैं।",title:"Frame और साथी एक्सटेंशन स्थापित करें"},step2:{description:"अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेना सुनिश्चित करें। कभी भी अपनी गुप्त वाक्यांश को किसी के साथ साझा न करें।",title:"वॉलेट बनाएं या आयात करें"},step3:{description:"एक बार जब आप अपने वॉलेट की सेटअप कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।",title:"अपना ब्राउज़र ताज़ा करें"}}},one_key:{extension:{step1:{title:"OneKey Wallet एक्सटेंशन स्थापित करें",description:"हम आपको अपने वॉलेट की तेज एक्सेस के लिए OneKey Wallet को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले रहे हैं। अपना गुप्त वाक्यांश किसी के साथ भी साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपना वॉलेट सेट अप कर लेते हैं, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}},phantom:{extension:{step1:{title:"फैंटम एक्सटेंशन स्थापित करें",description:"हम आपके वॉलेट के आसान उपयोग के लिए फैंटम को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"एक वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से ले रहे हैं। अपना गुप्त वसूली वाक्यांश किसी के साथ भी साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपना वॉलेट सेट कर लें, तो ब्राउज़र को ताजगी देने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}},rabby:{extension:{step1:{title:"Rabby एक्सटेंशन स्थापित करें",description:"हम आपको सलाह देते हैं कि अपने वॉलेट की जल्दी से पहुँच के लिए Rabby को अपने टास्कबार में पिन करें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप अपने वॉलेट का बैकअप एक सुरक्षित तरीके से लेते हैं। कभी भी किसी के साथ अपना गुप्त वाक्यांश साझा न करें।"},step3:{title:"अपना ब्राउज़र ताज़ा करें",description:"जब आप अपना वॉलेट सेट अप कर लेते हैं, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन लोड करने के लिए नीचे क्लिक करें।"}}},safeheron:{extension:{step1:{title:"कोर एक्सटेंशन स्थापित करें",description:"हम आपको सलाह देते हैं कि अपने वॉलेट की जल्दी से पहुँच के लिए Safeheron को अपने टास्कबार में पिन करें।"},step2:{title:"वॉलेट बनाएं या आयात करें",description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपना वॉलेट बैकअप कर रहे हैं। कभी भी किसी के साथ अपने गुप्त वाक्यांश को साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपने वॉलेट को सेट अप करते हैं, तो नीचे क्लिक करें ताकि ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।"}}},taho:{extension:{step1:{title:"ताहो एक्सटेंशन स्थापित करें",description:"हम आपके वॉलेट तक त्वरित पहुँच के लिए ताहो को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"एक वॉलेट बनाएँ या आयात करें",description:"सुनिश्चित करें कि आप एक सुरक्षित तरीके से अपना वॉलेट बैकअप कर रहे हैं। कभी भी किसी के साथ अपने गुप्त वाक्यांश को साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपना बटुआ सेट कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।"}}},talisman:{extension:{step1:{title:"तालिसमान एक्सटेंशन स्थापित करें",description:"हम आपके बटुए के त्वरित पहुँच के लिए तालिसमान को अपने टास्कबार में पिन करने की सिफारिश करते हैं।"},step2:{title:"एक ईथेरियम बटुए बनाएं या आयात करें",description:"अपने बटुए का बैकअप एक सुरक्षित तरीके से लेने का ध्यान रखें। कभी भी अपनी वसूली वाक्यांश को किसी के साथ साझा न करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आप अपना बटुआ सेट कर लेते हैं, तो नीचे क्लिक करके ब्राउज़र को ताज़ा करें और एक्सटेंशन को लोड करें।"}}},xdefi:{extension:{step1:{title:"XDEFI वॉलेट एक्सटेंशन स्थापित करें",description:"हम आपकी वॉलेट की जल्दी से पहुँच के लिए XDEFI Wallet को अपने टास्कबार में पिन करने की सलाह देते हैं।"},step2:{title:"एक वॉलेट बनाएं या आयात करें",description:"निश्चित रूप से अपने वॉलेट का बैकअप किसी सुरक्षित तरीके से लें। अपनी गोपनीय वाक्यांश को किसी के साथ शेयर ना करें।"},step3:{title:"अपने ब्राउज़र को ताज़ा करें",description:"एक बार जब आपने अपनी वॉलेट सेट अप कर ली हो, तो ब्राउज़र को ताज़ा करने और एक्सटेंशन को लोड करने के लिए नीचे क्लिक करें।"}}}},Kg={connect_wallet:Qiu,intro:Viu,connect:Jiu,connect_scan:Yiu,connector_group:Xiu,get:Ziu,get_options:uau,get_mobile:eau,get_instructions:tau,chains:nau,profile:rau,wallet_connectors:iau},aau={label:"Hubungkan Dompet"},oau={title:"Apa itu Dompet?",description:"Sebuah dompet digunakan untuk mengirim, menerima, menyimpan, dan menampilkan aset digital. Ini juga cara baru untuk masuk, tanpa perlu membuat akun dan kata sandi baru di setiap situs web.",digital_asset:{title:"Sebuah Rumah untuk Aset Digital Anda",description:"Dompet digunakan untuk mengirim, menerima, menyimpan, dan menampilkan aset digital seperti Ethereum dan NFTs."},login:{title:"Cara Baru untuk Masuk",description:"Alih-alih membuat akun dan kata sandi baru di setiap situs web, cukup hubungkan dompet Anda."},get:{label:"Dapatkan Dompet"},learn_more:{label:"Pelajari lebih lanjut"}},sau={label:"Hubungkan",title:"Hubungkan Dompet",new_to_ethereum:{description:"Baru dalam dompet Ethereum?",learn_more:{label:"Pelajari lebih lanjut"}},learn_more:{label:"Pelajari lebih lanjut"},recent:"Terkini",status:{opening:"Membuka %{wallet}...",not_installed:"%{wallet} tidak terpasang",not_available:"%{wallet} tidak tersedia",confirm:"Konfirmasikan koneksi di ekstensi"},secondary_action:{get:{description:"Tidak memiliki %{wallet}?",label:"DAPATKAN"},install:{label:"PASANG"},retry:{label:"COBA LAGI"}},walletconnect:{description:{full:"Perlu modal resmi WalletConnect?",compact:"Perlu modal WalletConnect?"},open:{label:"BUKA"}}},lau={title:"Pindai dengan %{wallet}",fallback_title:"Pindai dengan ponsel Anda"},cau={recommended:"Direkomendasikan",other:"Lainnya",popular:"Populer",more:"Lebih Banyak",others:"Lainnya"},Eau={title:"Dapatkan Dompet",action:{label:"DAPATKAN"},mobile:{description:"Dompet Mobile"},extension:{description:"Ekstensi Browser"},mobile_and_extension:{description:"Dompet Mobile dan Ekstensi"},looking_for:{title:"Bukan yang Anda cari?",mobile:{description:"Pilih dompet di layar utama untuk memulai dengan penyedia dompet yang berbeda."},desktop:{compact_description:"Pilih dompet di layar utama untuk memulai dengan penyedia dompet yang berbeda.",wide_description:"Pilih dompet di sebelah kiri untuk memulai dengan penyedia dompet yang berbeda."}}},dau={title:"Mulai dengan %{wallet}",short_title:"Dapatkan %{wallet}",mobile:{title:"%{wallet} untuk Mobile",description:"Gunakan dompet mobile untuk menjelajahi dunia Ethereum.",download:{label:"Dapatkan aplikasinya"}},extension:{title:"%{wallet} untuk %{browser}",description:"Akses dompet Anda langsung dari browser web favorit Anda.",download:{label:"Tambahkan ke %{browser}"}}},fau={title:"Instal %{wallet}",description:"Pindai dengan ponsel Anda untuk mengunduh di iOS atau Android",continue:{label:"Lanjutkan"}},pau={mobile:{connect:{label:"Hubungkan"},learn_more:{label:"Pelajari lebih lanjut"}},extension:{refresh:{label:"Segarkan"},learn_more:{label:"Pelajari lebih lanjut"}}},hau={title:"Alihkan Jaringan",wrong_network:"Jaringan yang salah terdeteksi, alihkan atau diskonek untuk melanjutkan.",confirm:"Konfirmasi di Dompet",switching_not_supported:"Dompet Anda tidak mendukung pengalihan jaringan dari %{appName}. Coba alihkan jaringan dari dalam dompet Anda.",switching_not_supported_fallback:"Wallet Anda tidak mendukung penggantian jaringan dari aplikasi ini. Cobalah ganti jaringan dari dalam wallet Anda.",disconnect:"Putuskan koneksi",connected:"Terkoneksi"},Cau={disconnect:{label:"Putuskan koneksi"},copy_address:{label:"Salin Alamat",copied:"Tersalin!"},explorer:{label:"Lihat lebih banyak di penjelajah"},transactions:{description:"%{appName} transaksi akan muncul di sini...",description_fallback:"Transaksi Anda akan muncul di sini...",recent:{title:"Transaksi Terbaru"},clear:{label:"Hapus Semua"}}},mau={argent:{qr_code:{step1:{description:"Letakkan Argent di layar utama Anda untuk akses lebih cepat ke dompet Anda.",title:"Buka aplikasi Argent"},step2:{description:"Buat dompet dan nama pengguna, atau impor dompet yang ada.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menghubungkan dompet Anda.",title:"Tekan tombol Scan QR"}}},bifrost:{qr_code:{step1:{description:"Kami merekomendasikan untuk menempatkan Bifrost Wallet di layar utama anda untuk akses yang lebih cepat.",title:"Buka aplikasi Bifrost Wallet"},step2:{description:"Buat atau impor sebuah dompet menggunakan frasa pemulihan Anda.",title:"Buat atau Impor sebuah Wallet"},step3:{description:"Setelah Anda memindai, sebuah pesan akan muncul untuk menghubungkan dompet Anda.",title:"Tekan tombol scan"}}},bitget:{qr_code:{step1:{description:"Kami menyarankan untuk meletakkan Bitget Wallet di layar depan Anda untuk akses yang lebih cepat.",title:"Buka aplikasi Bitget Wallet"},step2:{description:"Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda pindai, akan muncul petunjuk untuk menghubungkan wallet Anda.",title:"Tekan tombol pindai"}},extension:{step1:{description:"Kami menyarankan untuk memasang Bitget Wallet ke taskbar Anda untuk akses yang lebih cepat ke wallet Anda.",title:"Instal ekstensi Dompet Bitget"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frasa rahasia Anda kepada siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},bitski:{extension:{step1:{description:"Kami merekomendasikan untuk memasang Bitski ke taskbar Anda untuk akses dompet Anda yang lebih cepat.",title:"Pasang ekstensi Bitski"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},coin98:{qr_code:{step1:{description:"Kami merekomendasikan untuk menaruh Coin98 Wallet di layar utama Anda untuk akses wallet Anda lebih cepat.",title:"Buka aplikasi Coin98 Wallet"},step2:{description:"Anda dapat dengan mudah mencadangkan wallet Anda menggunakan fitur cadangan kami di telepon Anda.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda melakukan pemindaian, akan muncul prompt koneksi untuk Anda menghubungkan wallet Anda.",title:"Ketuk tombol WalletConnect"}},extension:{step1:{description:"Klik di pojok kanan atas browser Anda dan sematkan Coin98 Wallet untuk akses mudah.",title:"Pasang ekstensi Coin98 Wallet"},step2:{description:"Buat dompet baru atau impor yang sudah ada.",title:"Buat atau Impor sebuah dompet"},step3:{description:"Setelah Anda menyiapkan Coin98 Wallet, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},coinbase:{qr_code:{step1:{description:"Kami merekomendasikan memasang Coinbase Wallet di layar utama Anda untuk akses yang lebih cepat.",title:"Buka aplikasi Coinbase Wallet"},step2:{description:"Anda dapat dengan mudah mencadangkan dompet Anda menggunakan fitur cadangan awan.",title:"Buat atau Impor sebuah Dompet"},step3:{description:"Setelah Anda memindai, akan muncul sebuah petunjuk koneksi untuk Anda menyambungkan dompet Anda.",title:"Ketuk tombol pindai"}},extension:{step1:{description:"Kami merekomendasikan untuk menempel Coinbase Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda.",title:"Instal ekstensi Coinbase Wallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun.",title:"Buat atau Import Wallet"},step3:{description:"Setelah Anda menyiapkan wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},core:{qr_code:{step1:{description:"Kami merekomendasikan untuk meletakkan Core di layar utama Anda untuk akses lebih cepat ke wallet Anda.",title:"Buka aplikasi Core"},step2:{description:"Anda dapat dengan mudah mencadangkan wallet Anda dengan menggunakan fitur cadangan kami di telepon Anda.",title:"Buat atau Import Wallet"},step3:{description:"Setelah Anda memindai, akan muncul petunjuk koneksi untuk Anda menyambungkan wallet Anda.",title:"Ketuk tombol WalletConnect"}},extension:{step1:{description:"Kami merekomendasikan untuk menempelkan Core pada taskbar Anda untuk akses ke dompet Anda lebih cepat.",title:"Pasang ekstensi Core"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},fox:{qr_code:{step1:{description:"Kami merekomendasikan untuk menaruh FoxWallet pada layar utama Anda untuk akses lebih cepat.",title:"Buka aplikasi FoxWallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda memindai, prompt koneksi akan muncul untuk Anda hubungkan dompet Anda.",title:"Ketuk tombol pindai"}}},frontier:{qr_code:{step1:{description:"Kami merekomendasikan untuk meletakkan Frontier Wallet di layar awal Anda untuk akses yang lebih cepat.",title:"Buka aplikasi Frontier Wallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda memindai, prompt koneksi akan muncul untuk Anda menghubungkan dompet Anda.",title:"Ketuk tombol pindai"}},extension:{step1:{description:"Kami menyarankan menempelkan Frontier Wallet ke taskbar Anda untuk akses yang lebih cepat ke dompet Anda.",title:"Instal ekstensi Frontier Wallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},im_token:{qr_code:{step1:{title:"Buka aplikasi imToken",description:"Letakkan aplikasi imToken di layar utama Anda untuk akses yang lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Dompet",description:"Buat dompet baru atau impor yang sudah ada."},step3:{title:"Ketuk Ikon Scanner di pojok kanan atas",description:"Pilih Koneksi Baru, lalu pindai kode QR dan konfirmasi petunjuk untuk terhubung."}}},metamask:{qr_code:{step1:{title:"Buka aplikasi MetaMask",description:"Kami merekomendasikan untuk meletakkan MetaMask di layar beranda Anda untuk akses yang lebih cepat."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun."},step3:{title:"Ketuk tombol pindai",description:"Setelah Anda memindai, petunjuk koneksi akan muncul untuk Anda menyambungkan dompet Anda."}},extension:{step1:{title:"Pasang ekstensi MetaMask",description:"Kami menyarankan untuk memasang MetaMask pada taskbar Anda untuk akses wallet lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},okx:{qr_code:{step1:{title:"Buka aplikasi OKX Wallet",description:"Kami menyarankan untuk menaruh OKX Wallet di layar utama Anda untuk akses lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frasa rahasia Anda kepada siapa pun."},step3:{title:"Ketuk tombol scan",description:"Setelah Anda memindai, prompt koneksi akan muncul untuk Anda hubungkan dompet Anda."}},extension:{step1:{title:"Instal ekstensi OKX Wallet",description:"Kami menyarankan untuk menempelkan OKX Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frasa rahasia Anda kepada siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},omni:{qr_code:{step1:{title:"Buka aplikasi Omni",description:"Tambahkan Omni ke layar utama Anda untuk akses yang lebih cepat ke wallet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Buat wallet baru atau impor yang sudah ada."},step3:{title:"Ketuk ikon QR dan scan",description:"Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi petunjuk untuk terhubung."}}},token_pocket:{qr_code:{step1:{title:"Buka aplikasi TokenPocket",description:"Kami sarankan meletakkan TokenPocket di layar utama Anda untuk akses yang lebih cepat."},step2:{title:"Buat atau impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."},step3:{title:"Ketuk tombol pindai",description:"Setelah Anda memindai, Indikasi sambungan akan muncul untuk Anda menghubungkan dompet Anda."}},extension:{step1:{title:"Instal ekstensi TokenPocket",description:"Kami merekomendasikan penambatan TokenPocket ke taskbar Anda untuk akses dompet Anda lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagi frasa rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},trust:{qr_code:{step1:{title:"Buka aplikasi Trust Wallet",description:"Pasang Trust Wallet di layar utama Anda untuk akses dompet Anda lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Buat dompet baru atau impor yang sudah ada."},step3:{title:"Ketuk WalletConnect di Pengaturan",description:"Pilih Koneksi Baru, kemudian pindai kode QR dan konfirmasi perintah untuk terhubung."}},extension:{step1:{title:"Instal ekstensi Trust Wallet",description:"Klik di pojok kanan atas browser Anda dan sematkan Trust Wallet untuk akses mudah."},step2:{title:"Buat atau Impor dompet",description:"Buat dompet baru atau impor yang sudah ada."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur Trust Wallet, klik di bawah untuk menyegarkan browser dan memuat ekstensi."}}},uniswap:{qr_code:{step1:{title:"Buka aplikasi Uniswap",description:"Tambahkan Uniswap Wallet ke layar utama Anda untuk akses ke wallet Anda lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Buat wallet baru atau impor yang sudah ada."},step3:{title:"Ketuk ikon QR dan pindai",description:"Ketuk ikon QR di layar utama Anda, pindai kode dan konfirmasi prompt untuk terhubung."}}},zerion:{qr_code:{step1:{title:"Buka aplikasi Zerion",description:"Kami merekomendasikan untuk meletakkan Zerion di layar utama Anda untuk akses lebih cepat."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."},step3:{title:"Ketuk tombol scan",description:"Setelah Anda scan, muncul prompt koneksi untuk Anda menghubungkan dompet Anda."}},extension:{step1:{title:"Instal ekstensi Zerion",description:"Kami menyarankan untuk menempelkan Zerion ke taskbar Anda untuk akses lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur wallet Anda, klik di bawah untuk menyegarkan browser dan memuat ekstensi."}}},rainbow:{qr_code:{step1:{title:"Buka aplikasi Rainbow",description:"Kami menyarankan menempatkan Rainbow di layar home Anda untuk akses yang lebih cepat ke wallet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Anda dapat dengan mudah mencadangkan wallet Anda menggunakan fitur cadangan kami di telepon Anda."},step3:{title:"Tekan tombol scan",description:"Setelah Anda memindai, akan muncul pesan untuk menghubungkan dompet Anda."}}},enkrypt:{extension:{step1:{description:"Kami menyarankan untuk memasang Enkrypt Wallet ke taskbar Anda untuk akses dompet yang lebih cepat.",title:"Instal ekstensi Enkrypt Wallet"},step2:{description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frase rahasia Anda dengan siapa pun.",title:"Buat atau Impor Dompet"},step3:{description:"Setelah Anda menyiapkan dompet, klik di bawah ini untuk memuat ulang peramban dan meload ekstensi.",title:"Segarkan browser Anda"}}},frame:{extension:{step1:{description:"Kami menyarankan untuk memasang Frame ke taskbar Anda untuk akses dompet yang lebih cepat.",title:"Instal Frame & ekstensi pendamping"},step2:{description:"Pastikan untuk mencadangkan wallet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun.",title:"Buat atau Impor Wallet"},step3:{description:"Setelah Anda menyetel wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi.",title:"Segarkan browser Anda"}}},one_key:{extension:{step1:{title:"Instal ekstensi OneKey Wallet",description:"Kami menyarankan untuk menempelkan OneKey Wallet ke taskbar Anda untuk akses wallet yang lebih cepat."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase rahasia Anda kepada siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},phantom:{extension:{step1:{title:"Instal ekstensi Phantom",description:"Kami menyarankan untuk mem-pin Phantom ke taskbar Anda untuk akses dompet yang lebih mudah."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah membagikan frase pemulihan rahasia Anda kepada siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},rabby:{extension:{step1:{title:"Instal ekstensi Rabby",description:"Kami merekomendasikan menempelkan Rabby ke taskbar Anda untuk akses lebih cepat ke wallet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan wallet Anda dengan metode yang aman. Jangan pernah berbagi frase rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan wallet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},safeheron:{extension:{step1:{title:"Instal ekstensi Core",description:"Kami merekomendasikan menempelkan Safeheron ke taskbar Anda untuk akses lebih cepat ke wallet Anda."},step2:{title:"Buat atau Impor Wallet",description:"Pastikan untuk mencadangkan dompet Anda dengan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda mengatur dompet Anda, klik di bawah untuk menyegarkan browser dan memuat ekstensi."}}},taho:{extension:{step1:{title:"Instal ekstensi Taho",description:"Kami merekomendasikan pengepinan Taho ke taskbar Anda untuk akses yang lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda dengan metode yang aman. Jangan pernah berbagi frasa rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},talisman:{extension:{step1:{title:"Instal ekstensi Talisman",description:"Kami merekomendasikan menempelkan Talisman ke taskbar Anda untuk akses dompet Anda lebih cepat."},step2:{title:"Buat atau Impor Dompet Ethereum",description:"Pastikan untuk mencadangkan dompet Anda menggunakan metode yang aman. Jangan pernah berbagi frase pemulihan Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}},xdefi:{extension:{step1:{title:"Instal ekstensi Dompet XDEFI",description:"Kami merekomendasikan menempelkan XDEFI Wallet ke taskbar Anda untuk akses lebih cepat ke dompet Anda."},step2:{title:"Buat atau Impor Dompet",description:"Pastikan untuk mencadangkan dompet Anda dengan metode yang aman. Jangan pernah berbagi frase rahasia Anda dengan siapa pun."},step3:{title:"Segarkan browser Anda",description:"Setelah Anda menyiapkan dompet Anda, klik di bawah ini untuk menyegarkan browser dan memuat ekstensi."}}}},Qg={connect_wallet:aau,intro:oau,connect:sau,connect_scan:lau,connector_group:cau,get:Eau,get_options:dau,get_mobile:fau,get_instructions:pau,chains:hau,profile:Cau,wallet_connectors:mau},gau={label:"ウォレットを接続する"},Aau={title:"ウォレットとは何ですか?",description:"ウォレットは、デジタルアセットを送信、受信、保存、表示するために使用されます。また、各ウェブサイトで新たなアカウントやパスワードを作成する必要なく、ログインする新しい方法でもあります。",digital_asset:{title:"あなたのデジタル資産のための家",description:"ウォレットは、EthereumやNFTのようなデジタル資産を送信、受信、保存、表示するために使用されます。"},login:{title:"新しいログイン方法",description:"すべてのウェブサイトで新しいアカウントとパスワードを作成する代わりに、ウォレットを接続します。"},get:{label:"ウォレットを取得する"},learn_more:{label:"詳しくはこちら"}},yau={label:"接続",title:"ウォレットを接続する",new_to_ethereum:{description:"Ethereumのウォレットが初めてですか?",learn_more:{label:"詳しくはこちら"}},learn_more:{label:"詳しくはこちら"},recent:"最近",status:{opening:"%{wallet}を開いています...",not_installed:"%{wallet} はインストールされていません",not_available:"%{wallet} は利用できません",confirm:"エクステンションで接続を確認してください"},secondary_action:{get:{description:"%{wallet}がありませんか?",label:"取得"},install:{label:"インストール"},retry:{label:"再試行"}},walletconnect:{description:{full:"公式のWalletConnectモーダルが必要ですか?",compact:"WalletConnectモーダルが必要ですか?"},open:{label:"開く"}}},Bau={title:"%{wallet}でスキャン",fallback_title:"携帯電話でスキャンしてください"},vau={recommended:"推奨",other:"その他",popular:"人気",more:"もっと",others:"その他"},Fau={title:"ウォレットを取得",action:{label:"取得"},mobile:{description:"モバイルウォレット"},extension:{description:"ブラウザ拡張"},mobile_and_extension:{description:"モバイルウォレットと拡張機能"},looking_for:{title:"お探しのものではありませんか?",mobile:{description:"メイン画面でウォレットを選択し、異なるウォレットプロバイダーで始めてください。"},desktop:{compact_description:"メイン画面でウォレットを選択し、異なるウォレットプロバイダーで始めてください。",wide_description:"左側のウォレットを選択して、別のウォレットプロバイダーで始めてください。"}}},Dau={title:"%{wallet}で始める",short_title:"%{wallet}を取得する",mobile:{title:"モバイル用 %{wallet}",description:"モバイルウォレットを使用して、イーサリアムの世界を探索します。",download:{label:"アプリを取得"}},extension:{title:"%{wallet} for %{browser}",description:"お好きなウェブブラウザからウォレットに直接アクセスします。",download:{label:"%{browser}に追加"}}},bau={title:"%{wallet}をインストール",description:"iOSまたはAndroidでダウンロードするために電話でスキャン",continue:{label:"続行"}},wau={mobile:{connect:{label:"接続"},learn_more:{label:"詳しくはこちら"}},extension:{refresh:{label:"更新"},learn_more:{label:"詳しくはこちら"}}},xau={title:"ネットワークを切り替える",wrong_network:"誤ったネットワークが検出されました、続行するには切り替えるか切断してください。",confirm:"ウォレットで確認する",switching_not_supported:"あなたのウォレットは %{appName}からネットワークを切り替えることをサポートしていません。ウォレット内でネットワークを切り替えてみてください。",switching_not_supported_fallback:"あなたのウォレットは、このアプリからネットワークを切り替えることをサポートしていません。代わりにウォレット内からネットワークを切り替えてみてください。",disconnect:"切断する",connected:"接続しました"},kau={disconnect:{label:"切断する"},copy_address:{label:"アドレスをコピーする",copied:"コピーしました!"},explorer:{label:"エクスプローラーで詳しく見る"},transactions:{description:"%{appName} トランザクションがここに表示されます...",description_fallback:"あなたのトランザクションはここに表示されます...",recent:{title:"最近のトランザクション"},clear:{label:"すべてクリア"}}},_au={argent:{qr_code:{step1:{description:"より速くウォレットにアクセスするために、Argentをホーム画面に置いてください。",title:"Argentアプリを開く"},step2:{description:"ウォレットとユーザーネームを作成するか、既存のウォレットをインポートします。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。",title:"「QRをスキャン」ボタンをタップします"}}},bifrost:{qr_code:{step1:{description:"より速くアクセスできるように、Bifrost Walletをホーム画面に置くことをお勧めします。",title:"Bifrost Walletアプリを開きます"},step2:{description:"リカバリーフレーズを使用してウォレットを作成またはインポートします。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。",title:"「スキャン」ボタンをタップします"}}},bitget:{qr_code:{step1:{description:"より迅速なアクセスのために、ホーム画面にBitget Walletを配置することをお勧めします。",title:"Bitget Walletアプリを開く"},step2:{description:"ウォレットは安全な方法でバックアップしてください。秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。",title:"スキャンボタンをタップする"}},extension:{step1:{description:"ウォレットへのより迅速なアクセスのためにBitget Walletをタスクバーにピン留めすることをお勧めします。",title:"Bitget Wallet拡張機能をインストールします"},step2:{description:"ウォレットを安全な方法でバックアップしてください。秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成またはインポートします"},step3:{description:"ウォレットを設定したら、以下をクリックしてブラウザを更新し、拡張機能を読み込みます。",title:"ブラウザを更新する"}}},bitski:{extension:{step1:{description:"ウォレットへの素早いアクセスのために、Bitskiをタスクバーにピン留めすることをお勧めします。",title:"Bitskiエクステンションをインストールする"},step2:{description:"ウォレットを安全な方法でバックアップしてください。シークレットフレーズは誰とも共有しないでください。",title:"ウォレットを作成するか、インポートする"},step3:{description:"ウォレットのセットアップが完了したら、以下をクリックしてブラウザを更新し、エクステンションを読み込みます。",title:"ブラウザを更新する"}}},coin98:{qr_code:{step1:{description:"Coin98ウォレットをホーム画面に置くことで、ウォレットへのアクセスが高速化されることをお勧めします。",title:"Coin98ウォレットアプリを開きます"},step2:{description:"電話のバックアップ機能を使用して、ウォレットを簡単にバックアップすることができます。",title:"ウォレットを作成またはインポートする"},step3:{description:"スキャン後、ウォレットへの接続を促すプロンプトが表示されます。",title:"WalletConnectボタンをタップします"}},extension:{step1:{description:"ブラウザの右上をクリックして、Coin98ウォレットをピン留めして簡単にアクセスできるようにします。",title:"Coin98ウォレットの拡張機能をインストールします"},step2:{description:"新しいウォレットを作成するか、既存のものをインポートします。",title:"ウォレットを作成またはインポートする"},step3:{description:"Coin98ウォレットをセットアップしたら、下のリンクをクリックしてブラウザを更新し、拡張機能をロードします。",title:"ブラウザを更新する"}}},coinbase:{qr_code:{step1:{description:"より素早くアクセスできるように、Coinbaseウォレットをホームスクリーンに置くことをお勧めします。",title:"Coinbase Walletアプリを開く"},step2:{description:"クラウドバックアップ機能を使用して、簡単にウォレットをバックアップできます。",title:"ウォレットを作成またはインポートする"},step3:{description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。",title:"スキャンボタンをタップする"}},extension:{step1:{description:"タスクバーにCoinbase Walletをピン留めして、ウォレットにより早くアクセスできるように推奨します。",title:"Coinbase Wallet拡張機能をインストールする"},step2:{description:"必ず安全な方法を使用してウォレットをバックアップしてください。秘密のフレーズを誰にも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"ウォレットの設定が完了したら、下のボタンをクリックしてブラウザを更新し、拡張機能をロードします。",title:"ブラウザを更新する"}}},core:{qr_code:{step1:{description:"ウォレットへの迅速なアクセスのため、コアをホーム画面に設定することを推奨します。",title:"Coreアプリを開く"},step2:{description:"電話のバックアップ機能を使って、簡単にウォレットをバックアップできます。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後、ウォレットを接続するようにプロンプトが表示されます。",title:"WalletConnectボタンをタップする"}},extension:{step1:{description:"ウォレットへのより迅速なアクセスのために、タスクバーにCoreをピン留めすることをお勧めします。",title:"Core拡張機能をインストールする"},step2:{description:"セキュアな方法を使用してウォレットをバックアップしてください。秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成またはインポートする"},step3:{description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。",title:"ブラウザを更新する"}}},fox:{qr_code:{step1:{description:"より迅速なアクセスのために、ホーム画面にFoxWalletを置くことをお勧めします。",title:"FoxWalletアプリを開く"},step2:{description:"セキュアな方法を使用してウォレットをバックアップすることを確認してください。秘密のフレーズは誰とも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャンした後、ウォレットを接続するための接続プロンプトが表示されます。",title:"スキャンボタンをタップします"}}},frontier:{qr_code:{step1:{description:"Frontierウォレットをホーム画面に置くことで、より早くアクセスできることをお勧めします。",title:"Frontierウォレットアプリを開きます"},step2:{description:"セキュアな方法を使用してウォレットをバックアップすることを確認してください。秘密のフレーズは誰とも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"スキャン後に、ウォレットの接続を促すメッセージが表示されます。",title:"スキャンボタンをタップします"}},extension:{step1:{description:"より迅速なウォレットへのアクセスを可能にするために、フロンティアウォレットをタスクバーにピン留めすることを推奨します。",title:"フロンティアウォレットの拡張機能をインストールします"},step2:{description:"安全な方法を使用してウォレットをバックアップしてください。秘密のフレーズは決して誰とも共有しないでください。",title:"ウォレットを作成またはインポート"},step3:{description:"ウォレットの設定が完了したら、ブラウザを更新して拡張機能を読み込みます。",title:"ブラウザを更新する"}}},im_token:{qr_code:{step1:{title:"imTokenアプリを開く",description:"ウォレットへのアクセスを速くするために、imTokenアプリをホーム画面に置いてください。"},step2:{title:"ウォレットを作成またはインポート",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"右上隅のスキャナーアイコンをタップします",description:"新しい接続を選択し、QRコードをスキャンしてプロンプトを確認し接続します。"}}},metamask:{qr_code:{step1:{title:"MetaMaskアプリを開きます",description:"迅速なアクセスのために、MetaMaskをホーム画面に置くことをお勧めします。"},step2:{title:"ウォレットを作成またはインポートします",description:"必ず安全な方法を使用してウォレットをバックアップしてください。秘密の回復フレーズを誰にも共有しないでください。"},step3:{title:"スキャンボタンをタップします",description:"スキャンすると、ウォレットを接続するための接続プロンプトが表示されます。"}},extension:{step1:{title:"MetaMaskの拡張機能をインストールします",description:"ウォレットへのより速いアクセスのために、MetaMaskをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"安全な方法を使用してウォレットをバックアップし、秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新",description:"ウォレットを設定した後は、下のリンクをクリックしてブラウザを更新し、エクステンションを読み込んでください。"}}},okx:{qr_code:{step1:{title:"OKX Walletアプリを開く",description:"OKX Walletをホーム画面に配置して、より早くアクセスできるようにすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"セキュアな方法を使ってウォレットをバックアップしてください。秘密フレーズは誰とも共有しないでください。"},step3:{title:"スキャンボタンをタップする",description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。"}},extension:{step1:{title:"OKXウォレット拡張機能をインストールする",description:"ウォレットへの迅速なアクセスのため、OKXウォレットをタスクバーにピン止めすることをお勧めします。"},step2:{title:"ウォレットを作成するか、インポートする",description:"セキュアな方法を使ってウォレットをバックアップしてください。秘密フレーズは誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットを設定したら、下をクリックしてブラウザをリフレッシュし、拡張機能を読み込みます。"}}},omni:{qr_code:{step1:{title:"Omniアプリを開く",description:"Omniをホーム画面に追加して、ウォレットへのアクセスを早めます。"},step2:{title:"ウォレットを作成またはインポート",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"QRアイコンをタップしてスキャン",description:"ホーム画面のQRアイコンをタップし、コードをスキャンし、プロンプトを確認して接続します。"}}},token_pocket:{qr_code:{step1:{title:"TokenPocketアプリを開く",description:"より速いアクセスのために、TokenPocketをホーム画面に置くことをお勧めします。"},step2:{title:"ウォレットを作成またはインポートする",description:"必ず安全な方法を使用してウォレットをバックアップしてください。秘密の回復フレーズを誰にも共有しないでください。"},step3:{title:"スキャンボタンをタップする",description:"スキャン後、ウォレットを接続するための接続プロンプトが表示されます。"}},extension:{step1:{title:"TokenPocketエクステンションをインストールする",description:"ウォレットへのより早いアクセスのために、TokenPocketをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"ウォレットを安全な方法でバックアップすることを確認してください。シークレットフレーズを決して他の人と共有しないでください。"},step3:{title:"ブラウザを更新",description:"ウォレットのセットアップが完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},trust:{qr_code:{step1:{title:"Trust Walletアプリを開く",description:"ウォレットへの高速アクセスのために、Trust Walletをホーム画面に置きます。"},step2:{title:"ウォレットを作成またはインポート",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"設定でWalletConnectをタップします",description:"新しい接続を選択し、QRコードをスキャンして、プロンプトで接続を確認します。"}},extension:{step1:{title:"Trust Wallet拡張機能をインストールします",description:"ブラウザの右上をクリックし、Trust Walletをピン留めして簡単にアクセスできるようにします。"},step2:{title:"ウォレットを作成するかインポートします",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"ブラウザを更新する",description:"Trust Walletの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能を読み込みます。"}}},uniswap:{qr_code:{step1:{title:"Uniswapアプリを開く",description:"Uniswapウォレットをホーム画面に追加して、ウォレットへのアクセスを高速化します。"},step2:{title:"ウォレットを作成またはインポートする",description:"新しいウォレットを作成するか、既存のものをインポートします。"},step3:{title:"QRアイコンをタップしてスキャンする",description:"ホーム画面のQRアイコンをタップし、コードをスキャンしてプロンプトを確認して接続します。"}}},zerion:{qr_code:{step1:{title:"Zerionアプリを開く",description:"より速くアクセスするために、Zerionをホーム画面に置くことをお勧めします。"},step2:{title:"ウォレットを作成するか、インポートする",description:"必ず安全な方法を使用してウォレットをバックアップしてください。秘密の回復フレーズを誰にも共有しないでください。"},step3:{title:"スキャンボタンを押す",description:"スキャンした後、ウォレットを接続するための接続プロンプトが表示されます。"}},extension:{step1:{title:"Zerion拡張機能をインストールする",description:"ウォレットへの素早いアクセスのため、Zerionをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"ウォレットをセキュアな方法でバックアップすることを確認してください。秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットをセットアップしたら、下のボタンをクリックしてブラウザを更新し、拡張機能をロードします。"}}},rainbow:{qr_code:{step1:{title:"Rainbowアプリを開く",description:"ウォレットへの早いアクセスのために、Rainbowをホーム画面に置くことをおすすめします。"},step2:{title:"ウォレットを作成またはインポート",description:"電話のバックアップ機能を使用して、簡単にウォレットをバックアップすることができます。"},step3:{title:"スキャンボタンをタップする",description:"スキャンした後、ウォレットを接続するための接続プロンプトが表示されます。"}}},enkrypt:{extension:{step1:{description:"ウォレットへのアクセスをより早くするため、タスクバーにEnkrypt Walletをピン留めすることを推奨します。",title:"Enkrypt Wallet拡張機能をインストールしてください"},step2:{description:"安全な方法でウォレットのバックアップを必ず取り、秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成するか、インポートする"},step3:{description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能を読み込みます。",title:"ブラウザを更新する"}}},frame:{extension:{step1:{description:"ウォレットへのアクセスをより早くするため、タスクバーにFrameをピン留めすることを推奨します。",title:"Frameとその付属の拡張機能をインストール"},step2:{description:"ウォレットを安全な方法でバックアップしてください。秘密のフレーズを誰とも共有しないでください。",title:"ウォレットを作成、またはインポート"},step3:{description:"ウォレットの設定が完了したら、下のリンクをクリックしてブラウザを更新し、拡張機能をロードします。",title:"ブラウザを更新"}}},one_key:{extension:{step1:{title:"OneKey Wallet拡張機能をインストール",description:"ウォレットへのアクセスを素早く行うため、OneKey Walletをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成、またはインポート",description:"安全な方法を使用してウォレットをバックアップしてください。秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットを設定したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},phantom:{extension:{step1:{title:"Phantom拡張機能をインストールする",description:"ウォレットへの容易なアクセスのため、Phantomをタスクバーにピン留めすることを推奨します。"},step2:{title:"ウォレットを作成またはインポートする",description:"安全な方法を使用してウォレットをバックアップしてください。秘密の回復フレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、エクステンションを読み込みます。"}}},rabby:{extension:{step1:{title:"Rabbyエクステンションをインストールする",description:"ウォレットへの素早いアクセスのため、タスクバーにRabbyをピン止めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"セキュアな方法を使用してウォレットをバックアップしてください。秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新",description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},safeheron:{extension:{step1:{title:"コア拡張機能をインストール",description:"ウォレットへの素早いアクセスのため、タスクバーにSafeheronをピン止めすることをお勧めします。"},step2:{title:"ウォレットを作成またはインポート",description:"確実に安全な方法でウォレットをバックアップしてください。秘密のフレーズは決して誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},taho:{extension:{step1:{title:"Taho拡張機能をインストールする",description:"ウォレットへのより迅速なアクセスのため、Tahoをタスクバーにピン留めすることをお勧めします。"},step2:{title:"ウォレットを作成するか、インポートする",description:"確実に安全な方法でウォレットをバックアップしてください。秘密のフレーズは決して誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},talisman:{extension:{step1:{title:"Talisman拡張機能をインストールする",description:"ウォレットへのより早いアクセスのために、Talismanをタスクバーにピン留めすることをお勧めします。"},step2:{title:"Ethereumウォレットを作成するか、インポートする",description:"ウォレットを安全な方法でバックアップしておくことを確認してください。リカバリーフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、下をクリックしてブラウザを更新し、拡張機能をロードします。"}}},xdefi:{extension:{step1:{title:"XDEFI Wallet拡張機能をインストールする",description:"XDEFI Walletをタスクバーにピン留めすることで、ウォレットへのアクセスが速くなることをお勧めします。"},step2:{title:"ウォレットの作成またはインポート",description:"ウォレットを安全な方法でバックアップしてください。秘密のフレーズを誰とも共有しないでください。"},step3:{title:"ブラウザを更新する",description:"ウォレットの設定が完了したら、以下をクリックしてブラウザを更新し、拡張機能をロードしてください。"}}}},Vg={connect_wallet:gau,intro:Aau,connect:yau,connect_scan:Bau,connector_group:vau,get:Fau,get_options:Dau,get_mobile:bau,get_instructions:wau,chains:xau,profile:kau,wallet_connectors:_au},Sau={label:"지갑 연결"},Pau={title:"지갑이란 무엇인가요?",description:"지갑은 디지털 자산을 보내고, 받고, 저장하고, 표시하는 데 사용됩니다. 또한, 모든 웹 사이트에서 새 계정과 비밀번호를 생성할 필요 없이 로그인하는 새로운 방법입니다.",digital_asset:{title:"당신의 디지털 자산을 위한 집",description:"지갑은 이더리움 및 NFT와 같은 디지털 자산을 보내고, 받고, 저장하고, 표시하는데 사용됩니다."},login:{title:"새로운 로그인 방식",description:"모든 웹사이트에서 새 계정과 비밀번호를 생성하는 대신, 당신의 지갑을 연결하기만 하면 됩니다."},get:{label:"지갑 가져오기"},learn_more:{label:"더 알아보기"}},Tau={label:"연결",title:"지갑 연결",new_to_ethereum:{description:"이더리움 지갑에 처음 접하시나요?",learn_more:{label:"더 알아보기"}},learn_more:{label:"더 알아보기"},recent:"최근",status:{opening:"%{wallet}열기 ...",not_installed:"%{wallet} 가 설치되어 있지 않습니다",not_available:"%{wallet} 를 사용할 수 없습니다",confirm:"확장기능에서 연결을 확인하세요"},secondary_action:{get:{description:"%{wallet}가 없나요?",label:"GET"},install:{label:"설치"},retry:{label:"다시 시도"}},walletconnect:{description:{full:"공식 WalletConnect 모달이 필요한가요?",compact:"WalletConnect 모달이 필요한가요?"},open:{label:"열기"}}},Iau={title:"%{wallet}로 스캔하기",fallback_title:"휴대폰으로 스캔하기"},Oau={recommended:"추천",other:"기타",popular:"인기",more:"더 보기",others:"다른 사항들"},Nau={title:"월렛 받기",action:{label:"받기"},mobile:{description:"모바일 월렛"},extension:{description:"브라우저 확장 프로그램"},mobile_and_extension:{description:"모바일 지갑 및 확장 프로그램"},looking_for:{title:"찾고 계신 것이 아닌가요?",mobile:{description:"메인 화면에서 다른 지갑 제공자를 사용하기 위해 지갑을 선택하세요."},desktop:{compact_description:"메인 화면에서 다른 지갑 제공자를 사용하기 위해 지갑을 선택하세요.",wide_description:"왼쪽에서 지갑을 선택하여 다른 지갑 제공자를 사용하기 시작하세요."}}},Rau={title:"%{wallet}로 시작하십시오",short_title:"%{wallet}얻기",mobile:{title:"모바일용 %{wallet}",description:"모바일 지갑으로 이더리움 세계를 탐험하세요.",download:{label:"앱 받기"}},extension:{title:"%{browser}용 %{wallet}",description:"가장 좋아하는 웹 브라우저에서 바로 지갑에 접근하세요.",download:{label:"추가하기 %{browser}"}}},jau={title:"설치하기 %{wallet}",description:"iOS 또는 Android에서 다운로드하기 위해 휴대폰으로 스캔하세요",continue:{label:"계속"}},zau={mobile:{connect:{label:"연결"},learn_more:{label:"더 알아보기"}},extension:{refresh:{label:"새로고침"},learn_more:{label:"더 알아보기"}}},Mau={title:"네트워크 전환",wrong_network:"잘못된 네트워크를 탐지했습니다, 계속하려면 전환하거나 연결을 해제하세요.",confirm:"지갑에서 승인",switching_not_supported:"지갑에서 %{appName}네트워크를 전환하는 것은 지원되지 않습니다. 대신 지갑 내에서 네트워크를 전환해 보세요.",switching_not_supported_fallback:"당신의 지갑은 이 앱에서 네트워크를 바꾸는 것을 지원하지 않습니다. 대신 지갑 내에서 네트워크를 변경해 보십시오.",disconnect:"연결 해제",connected:"연결됨"},Uau={disconnect:{label:"연결 해제"},copy_address:{label:"주소 복사",copied:"복사됨!"},explorer:{label:"탐색기에서 더 보기"},transactions:{description:"%{appName} 거래가 여기에 나타납니다...",description_fallback:"여기에 트랜잭션이 표시됩니다...",recent:{title:"최근 거래 내역"},clear:{label:"모두 지우기"}}},Lau={argent:{qr_code:{step1:{description:"지갑에 더 빠르게 액세스하려면 Argent를 홈 화면에 놓으십시오.",title:"Argent 앱을 열기"},step2:{description:"지갑과 사용자 이름을 생성하거나 기존의 지갑을 가져옵니다.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔 후에 지갑을 연결하기 위한 연결 요청이 표시됩니다.",title:"QR 코드 스캔 버튼을 누르기"}}},bifrost:{qr_code:{step1:{description:"더 빠른 접근을 위해 홈 화면에 Bifrost Wallet을 놓는 것을 권장합니다.",title:"Bifrost 지갑 앱을 열어주세요"},step2:{description:"복구 문구를 사용하여 지갑을 생성하거나 가져옵니다.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔 후 연결 프롬프트가 나타나고 지갑을 연결할 수 있습니다.",title:"스캔 버튼을 누릅니다"}}},bitget:{qr_code:{step1:{description:"더 빠른 접근을 위해 Bitget 지갑을 홈 화면에 두는 것을 권장합니다.",title:"Bitget 지갑 앱을 열십시오"},step2:{description:"안전한 방법을 사용하여 지갑을 백업하십시오. 절대로 비밀 구문을 누구와도 공유하지 마십시오.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔 후, 지갑을 연결하라는 연결 요청 메시지가 나타납니다.",title:"스캔 버튼을 누르십시오"}},extension:{step1:{description:"지갑에 빠르게 액세스하기 위해 Bitget Wallet을 작업 표시줄에 고정하는 것을 권장합니다.",title:"Bitget Wallet 확장 프로그램을 설치하세요"},step2:{description:"지갑을 안전한 방법으로 백업하십시오. 절대로 비밀 문구를 누구와도 공유하지 마십시오.",title:"지갑 생성 또는 가져오기"},step3:{description:"지갑 설정을 마친 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하세요.",title:"브라우저를 새로 고침하세요"}}},bitski:{extension:{step1:{description:"지갑에 더 빠르게 액세스하기 위해 Bitski를 작업 표시줄에 고정하는 것을 권장합니다.",title:"Bitski 확장 기능을 설치합니다"},step2:{description:"안전한 방법을 사용하여 지갑을 백업하십시오. 비밀 문구를 누구와도 공유하지 마십시오.",title:"지갑 만들기 또는 가져오기"},step3:{description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드하세요.",title:"브라우저를 새로고침하세요"}}},coin98:{qr_code:{step1:{description:"지갑에 빠르게 액세스하기 위해 Coin98 Wallet을 홈 화면에 두는 것을 권장합니다.",title:"Coin98 Wallet 앱을 열기"},step2:{description:"휴대폰에서 백업 기능을 이용하여 지갑을 쉽게 백업할 수 있습니다.",title:"지갑 만들기 또는 가져오기"},step3:{description:"스캔한 후 연결 프롬프트가 나타나 지갑을 연결하도록 합니다.",title:"WalletConnect 버튼을 누르십시오"}},extension:{step1:{description:"브라우저 오른쪽 상단을 클릭하고 쉽게 액세스할 수 있도록 Coin98 Wallet을 고정하십시오.",title:"Coin98 Wallet 확장 프로그램을 설치하십시오"},step2:{description:"새로운 지갑을 만들거나 기존의 지갑을 가져옵니다.",title:"지갑을 만들거나 가져옵니다"},step3:{description:"Coin98 Wallet을 설정하면 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오.",title:"브라우저를 새로 고치십시오"}}},coinbase:{qr_code:{step1:{description:"더 빠른 액세스를 위해 Coinbase Wallet을 홈 화면에 두는 것을 권장합니다.",title:"Coinbase Wallet 앱을 엽니다"},step2:{description:"클라우드 백업 기능을 사용하여 지갑을 쉽게 백업할 수 있습니다.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔한 후에 지갑을 연결하라는 연결 프롬프트가 나타납니다.",title:"스캔 버튼을 탭하세요"}},extension:{step1:{description:"지갑에 더 빠르게 접근할 수 있도록 Coinbase Wallet을 작업 표시줄에 고정하는 것을 권장합니다.",title:"Coinbase Wallet 확장 프로그램을 설치하세요"},step2:{description:"안전한 방법을 사용하여 지갑을 백업하십시오. 비밀 문구는 절대로 누구와도 공유하지 마십시오.",title:"지갑 만들기 또는 가져오기"},step3:{description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오.",title:"브라우저 새로 고침"}}},core:{qr_code:{step1:{description:"지갑에 빠르게 액세스할 수 있도록 Core를 홈 화면에 두는 것을 추천드립니다.",title:"Core 앱 열기"},step2:{description:"휴대폰에서 우리의 백업 기능을 이용해 지갑을 쉽게 백업할 수 있습니다.",title:"지갑 만들기 또는 가져오기"},step3:{description:"스캔 한 후에는 지갑을 연결하라는 연결 요청이 표시됩니다.",title:"WalletConnect 버튼을 누르세요"}},extension:{step1:{description:"지갑에 더 빠르게 액세스하기 위해 작업 표시줄에 Core를 고정하는 것을 권장합니다.",title:"Core 확장 프로그램을 설치하십시오"},step2:{description:"안전한 방법을 사용하여 지갑을 백업해야 합니다. 절대로 비밀 문구를 다른 사람과 공유하지 마십시오.",title:"지갑 만들기 또는 가져오기"},step3:{description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오.",title:"브라우저를 새로 고치세요"}}},fox:{qr_code:{step1:{description:"FoxWallet을 홈 화면에 놓는 것을 추천합니다. 이렇게 하면 더 빠르게 접근할 수 있습니다.",title:"FoxWallet 앱을 열어주세요"},step2:{description:"지갑을 안전한 방법으로 백업하십시오. 절대로 비밀 문구를 다른 사람과 공유하지 마십시오.",title:"지갑을 생성하거나 가져오기"},step3:{description:"스캔 후, 지갑을 연결하라는 연결 프롬프트가 표시됩니다.",title:"스캔 버튼을 누르세요"}}},frontier:{qr_code:{step1:{description:"Frontier Wallet을 홈 화면에 놓는 것을 추천합니다. 이렇게 하면 더 빠르게 접근할 수 있습니다.",title:"Frontier Wallet 앱을 열어주세요"},step2:{description:"지갑을 안전한 방법으로 백업해야 합니다. 비밀 구문을 누구와도 공유하지 마세요.",title:"지갑 생성 또는 가져오기"},step3:{description:"스캔 후에 지갑을 연결하라는 연결 프롬프트가 표시됩니다.",title:"스캔 버튼을 누르세요"}},extension:{step1:{description:"지갑에 더 빠르게 액세스 할 수 있도록 Frontier Wallet을 작업 표시줄에 고정하는 것을 권장합니다.",title:"Frontier Wallet 확장 기능 설치"},step2:{description:"지갑을 안전한 방법으로 백업해야 합니다. 비밀 구문을 누구와도 공유하지 마세요.",title:"지갑 생성 또는 가져오기"},step3:{description:"지갑을 설정한 후에 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오.",title:"브라우저를 새로 고칩니다"}}},im_token:{qr_code:{step1:{title:"imToken 앱을 연다",description:"당신의 지갑에 더 빠르게 접근하기 위해 imToken 앱을 홈 화면에 둡니다."},step2:{title:"지갑을 만들거나 불러옵니다",description:"새 지갑을 생성하거나 기존의 것을 가져옵니다."},step3:{title:"오른쪽 상단의 스캐너 아이콘을 누릅니다",description:"새 연결을 선택하고 QR 코드를 스캔한 뒤, 연결하려는 프롬프트를 확인합니다."}}},metamask:{qr_code:{step1:{title:"MetaMask 앱을 엽니다",description:"빠른 액세스를 위해 MetaMask를 홈 화면에 두는 것을 권장합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"당신의 지갑을 안전한 방법으로 백업하는 것을 잊지 마세요. 절대로 비밀 구절을 공유하지 마세요."},step3:{title:"스캔 버튼을 누릅니다",description:"스캔한 후에 지갑을 연결하라는 연결 프롬프트가 나타납니다."}},extension:{step1:{title:"MetaMask 확장 프로그램을 설치하세요",description:"지갑에 빠르게 접근하기 위해 MetaMask를 작업표시줄에 고정하는 것을 추천합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하세요. 결코 비밀 문구를 다른 사람과 공유하지 마세요."},step3:{title:"브라우저를 새로 고치세요",description:"지갑 설정을 마친 후에는 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하세요."}}},okx:{qr_code:{step1:{title:"OKX Wallet 앱을 열기",description:"더 빠른 접근을 위해 OKX 지갑을 홈 화면에 두는 것을 추천합니다."},step2:{title:"지갑 만들기 또는 불러오기",description:"안전한 방법으로 지갑을 백업하십시오. 절대 비밀 문구를 다른 사람과 공유하지 마세요."},step3:{title:"스캔 버튼을 탭하세요",description:"스캔 후 연결 요청이 나타나며, 이를 통해 지갑을 연결할 수 있습니다."}},extension:{step1:{title:"OKX 지갑 확장 프로그램 설치하기",description:"지갑에 빠르게 접근할 수 있도록 OKX 지갑을 작업 표시줄에 고정하는 것을 추천합니다."},step2:{title:"지갑 만들기 또는 불러오기",description:"당신의 지갑을 안전한 방법으로 백업해야 합니다. 비밀 문구를 절대로 다른 사람과 공유하지 마세요."},step3:{title:"브라우저를 새로 고치세요",description:"지갑을 설정한 후, 브라우저를 새로 고치고 확장 기능을 로드하기 위해 아래를 클릭하세요."}}},omni:{qr_code:{step1:{title:"Omni 앱을 열기",description:"더 빠른 액세스를 위해 Omni를 홈 스크린에 추가하세요."},step2:{title:"지갑 만들기 또는 가져오기",description:"새로운 지갑을 만들거나 기존의 하나를 가져옵니다."},step3:{title:"QR 아이콘을 탭하고 스캔하기",description:"홈 화면의 QR 아이콘을 탭하고, 코드를 스캔하고 프롬프트를 확인하여 연결하세요."}}},token_pocket:{qr_code:{step1:{title:"TokenPocket 앱을 열어주세요",description:"빠른 접근을 위해 홈 화면에 TokenPocket을 추가하는 것을 권장합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하세요. 절대로 누구에게도 비밀 문구를 공유하지 마세요."},step3:{title:"스캔 버튼을 탭하세요",description:"스캔 후에 지갑을 연결하라는 프롬프트가 표시됩니다."}},extension:{step1:{title:"TokenPocket 확장 기능을 설치하십시오",description:"지갑에 빠르게 접근하기 위해 TokenPocket를 작업 표시줄에 고정하는 것을 추천합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하세요. 절대로 비밀 문구를 다른 사람과 공유하지 마세요."},step3:{title:"브라우저 새로 고침",description:"지갑을 설정하면 아래를 클릭하여 브라우저를 새로 고침하고 확장 기능을 로드합니다."}}},trust:{qr_code:{step1:{title:"Trust Wallet 앱을 열기",description:"지갑에 빠르게 접근하기 위해 Trust Wallet을 홈 스크린에 두십시오."},step2:{title:"지갑 생성 또는 가져오기",description:"새로운 지갑을 생성하거나 기존의 것을 가져오십시오."},step3:{title:"설정에서 WalletConnect를 탭하십시오",description:"새 연결을 선택한 다음 QR 코드를 스캔하고, 연결을 확인하는 프롬프트를 확인하십시오."}},extension:{step1:{title:"Trust Wallet 확장 기능을 설치하십시오",description:"브라우저의 오른쪽 상단을 클릭하고 Trust Wallet을 고정하여 쉽게 접근하십시오."},step2:{title:"지갑 생성 또는 가져오기",description:"새로운 지갑을 생성하거나 기존의 것을 가져오십시오."},step3:{title:"브라우저를 새로고침하세요",description:"Trust Wallet을 설정한 후 아래를 클릭하여 브라우저를 새로고침하고 확장 프로그램을 로드합니다."}}},uniswap:{qr_code:{step1:{title:"Uniswap 앱을 엽니다",description:"Uniswap Wallet을 홈 화면에 추가하여 지갑에 더 빠르게 액세스하세요."},step2:{title:"지갑을 만들거나 가져오기",description:"새 지갑을 생성하거나 기존의 것을 가져옵니다."},step3:{title:"QR 아이콘을 누르고 스캔하기",description:"홈화면의 QR 아이콘을 누르고 코드를 스캔하고 프롬프트를 확인하여 연결하세요."}}},zerion:{qr_code:{step1:{title:"Zerion 앱을 엽니다",description:"더 빠른 접근을 위해 Zerion을 홈 화면에 두는 것을 권장합니다."},step2:{title:"지갑 만들기 또는 가져오기",description:"안전한 방법으로 지갑을 백업하십시오. 절대로 비밀 구절을 누군가와 공유하지 마십시오."},step3:{title:"스캔 버튼을 탭하십시오",description:"스캔 후 연결 프롬프트가 나타나 지갑을 연결하십시오."}},extension:{step1:{title:"Zerion 확장 프로그램을 설치하십시오",description:"지갑에 더 빠르게 접근할 수 있도록 Zerion을 작업 표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하세요. 비밀 구문을 절대로 다른 사람과 공유하지 마세요."},step3:{title:"브라우저를 새로 고치세요",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하세요."}}},rainbow:{qr_code:{step1:{title:"Rainbow 앱 열기",description:"지갑에 더 빠르게 접근하기 위해 홈 화면에 Rainbow를 두는 것을 추천합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"휴대폰에 있는 백업 기능을 사용하여 지갑을 쉽게 백업할 수 있습니다."},step3:{title:"스캔 버튼을 누르세요",description:"스캔 후, 지갑을 연결하라는 연결 프롬프트가 나타납니다."}}},enkrypt:{extension:{step1:{description:"지갑에 더 빠르게 접근하기 위해 작업 표시줄에 Enkrypt Wallet를 고정하는 것을 추천합니다.",title:"Enkrypt Wallet 확장 프로그램을 설치하세요"},step2:{description:"지갑을 안전한 방법으로 백업하십시오. 절대로 비밀 문구를 다른 사람과 공유하지 마십시오.",title:"지갑 생성 또는 가져오기"},step3:{description:"지갑을 설정한 후에는 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드하세요.",title:"브라우저 새로 고침"}}},frame:{extension:{step1:{description:"지갑에 더 빠르게 접근할 수 있도록 Frame을 작업 표시줄에 고정하는 것을 추천합니다.",title:"Frame 및 동반 확장 프로그램 설치"},step2:{description:"안전한 방법을 사용하여 지갑을 백업하십시오. 절대로 비밀 구문을 다른 사람과 공유하지 마세요.",title:"지갑 생성 또는 가져오기"},step3:{description:"지갑을 설정한 후에는 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드하세요.",title:"브라우저 새로 고침"}}},one_key:{extension:{step1:{title:"OneKey Wallet 확장 프로그램을 설치하세요",description:"지갑에 빠르게 접근할 수 있도록 OneKey Wallet을 작업 표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 생성 또는 불러오기",description:"지갑을 안전한 방법으로 백업하십시오. 절대로 비밀 문구를 다른 사람과 공유하지 마십시오."},step3:{title:"브라우저를 새로 고침하십시오",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드하십시오."}}},phantom:{extension:{step1:{title:"Phantom 확장 프로그램을 설치하세요",description:"지갑에 더 쉽게 접근할 수 있도록 Phantom을 작업 표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 생성 또는 불러오기",description:"안전한 방법을 사용하여 지갑을 백업하십시오. 절대로 누구와도 비밀 복구 구문을 공유하지 마십시오."},step3:{title:"브라우저를 새로고침하십시오",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로고침하고 확장 기능을 로드하십시오."}}},rabby:{extension:{step1:{title:"Rabby 확장 프로그램을 설치하십시오",description:"지갑에 더 빠르게 액세스할 수 있도록 Rabby를 작업표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 만들기 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하십시오. 절대로 누구와도 비밀 구문을 공유하지 마십시오."},step3:{title:"브라우저를 새로 고침하십시오",description:"지갑 설정을 완료하면 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드합니다."}}},safeheron:{extension:{step1:{title:"코어 확장 프로그램 설치",description:"지갑에 빠르게 액세스하기 위해 Safeheron을 작업 표시줄에 고정하는 것을 권장합니다."},step2:{title:"지갑 만들기 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하십시오. 비밀 문구를 절대 다른 사람과 공유하지 마십시오."},step3:{title:"브라우저 새로 고침",description:"지갑 설정을 완료하면 아래를 클릭하여 브라우저를 새로 고침하고 확장 프로그램을 로드합니다."}}},taho:{extension:{step1:{title:"Taho 확장 프로그램 설치",description:"지갑에 더 빠르게 액세스하기 위해 Taho를 작업 표시줄에 고정하는 것을 추천합니다."},step2:{title:"지갑 생성 또는 가져오기",description:"안전한 방법을 사용하여 지갑을 백업하십시오. 결코 비밀 문구를 누군가와 공유하지 마십시오."},step3:{title:"브라우저를 새로 고치십시오",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로 고치고 확장 프로그램을 로드하십시오."}}},talisman:{extension:{step1:{title:"탈리스만 확장 프로그램 설치",description:"지갑에 더 빠르게 접근하기 위해 Talisman을 작업 표시줄에 고정하는 것을 추천합니다."},step2:{title:"이더리움 지갑 생성 또는 가져오기",description:"반드시 안전한 방법을 사용하여 지갑을 백업하십시오. 복구 문구를 누구와도 공유하지 마십시오."},step3:{title:"브라우저를 새로 고침하십시오",description:"지갑을 설정 한 후 아래를 클릭하여 브라우저를 새로 고침하고 확장 기능을 로드하십시오."}}},xdefi:{extension:{step1:{title:"XDEFI 지갑 확장 기능을 설치하십시오",description:"지갑에 빠르게 액세스하기 위해 작업 표시줄에 XDEFI Wallet을 고정하는 것을 권장합니다."},step2:{title:"지갑을 만들거나 가져오기",description:"반드시 안전한 방법을 사용하여 지갑을 백업하십시오. 비밀 문구를 누구와도 공유하지 마십시오."},step3:{title:"브라우저를 새로 고침하십시오",description:"지갑을 설정한 후 아래를 클릭하여 브라우저를 새로고침하고 확장 프로그램을 로드하십시오."}}}},Jg={connect_wallet:Sau,intro:Pau,connect:Tau,connect_scan:Iau,connector_group:Oau,get:Nau,get_options:Rau,get_mobile:jau,get_instructions:zau,chains:Mau,profile:Uau,wallet_connectors:Lau},$au={label:"Conectar Carteira"},Wau={title:"O que é uma Carteira?",description:"Uma carteira é usada para enviar, receber, armazenar e exibir ativos digitais. Também é uma nova forma de se conectar, sem precisar criar novas contas e senhas em todo site.",digital_asset:{title:"Um lar para seus ativos digitais",description:"Carteiras são usadas para enviar, receber, armazenar e exibir ativos digitais como Ethereum e NFTs."},login:{title:"Uma nova maneira de fazer login",description:"Em vez de criar novas contas e senhas em todos os sites, basta conectar sua carteira."},get:{label:"Obter uma Carteira"},learn_more:{label:"Saiba mais"}},qau={label:"Conectar",title:"Conectar uma Carteira",new_to_ethereum:{description:"Novo nas carteiras Ethereum?",learn_more:{label:"Saiba mais"}},learn_more:{label:"Saiba mais"},recent:"Recente",status:{opening:"Abrindo %{wallet}...",not_installed:"%{wallet} não está instalado",not_available:"%{wallet} não está disponível",confirm:"Confirme a conexão na extensão"},secondary_action:{get:{description:"Não tem %{wallet}?",label:"OBTER"},install:{label:"INSTALAR"},retry:{label:"TENTAR DE NOVO"}},walletconnect:{description:{full:"Precisa do modal oficial do WalletConnect?",compact:"Precisa do modal WalletConnect?"},open:{label:"ABRIR"}}},Hau={title:"Digitalize com %{wallet}",fallback_title:"Digitalize com o seu telefone"},Gau={recommended:"Recomendado",other:"Outro",popular:"Popular",more:"Mais",others:"Outros"},Kau={title:"Obter uma Carteira",action:{label:"OBTER"},mobile:{description:"Carteira Móvel"},extension:{description:"Extensão do Navegador"},mobile_and_extension:{description:"Carteira Móvel e Extensão"},looking_for:{title:"Não é o que você está procurando?",mobile:{description:"Selecione uma carteira na tela principal para começar com um provedor de carteira diferente."},desktop:{compact_description:"Selecione uma carteira na tela principal para começar com um provedor de carteira diferente.",wide_description:"Selecione uma carteira à esquerda para começar com um provedor de carteira diferente."}}},Qau={title:"Comece com %{wallet}",short_title:"Obtenha %{wallet}",mobile:{title:"%{wallet} para Móvel",description:"Use a carteira móvel para explorar o mundo do Ethereum.",download:{label:"Baixe o aplicativo"}},extension:{title:"%{wallet} para %{browser}",description:"Acesse sua carteira diretamente do seu navegador web favorito.",download:{label:"Adicionar ao %{browser}"}}},Vau={title:"Instale %{wallet}",description:"Escaneie com seu celular para baixar no iOS ou Android",continue:{label:"Continuar"}},Jau={mobile:{connect:{label:"Conectar"},learn_more:{label:"Saiba mais"}},extension:{refresh:{label:"Atualizar"},learn_more:{label:"Saiba mais"}}},Yau={title:"Mudar Redes",wrong_network:"Rede errada detectada, mude ou desconecte para continuar.",confirm:"Confirme na Carteira",switching_not_supported:"Sua carteira não suporta a mudança de redes de %{appName}. Tente mudar de redes dentro da sua carteira.",switching_not_supported_fallback:"Sua carteira não suporta a troca de redes a partir deste aplicativo. Tente trocar de rede dentro de sua carteira.",disconnect:"Desconectar",connected:"Conectado"},Xau={disconnect:{label:"Desconectar"},copy_address:{label:"Copiar Endereço",copied:"Copiado!"},explorer:{label:"Veja mais no explorador"},transactions:{description:"%{appName} transações aparecerão aqui...",description_fallback:"Suas transações aparecerão aqui...",recent:{title:"Transações Recentes"},clear:{label:"Limpar Tudo"}}},Zau={argent:{qr_code:{step1:{description:"Coloque o Argent na tela inicial para um acesso mais rápido à sua carteira.",title:"Abra o aplicativo Argent"},step2:{description:"Crie uma carteira e nome de usuário, ou importe uma carteira existente.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois que você escanear, um prompt de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão Scan QR"}}},bifrost:{qr_code:{step1:{description:"Recomendamos colocar a Bifrost Wallet na sua tela inicial para um acesso mais rápido.",title:"Abra o aplicativo Bifrost Wallet"},step2:{description:"Crie ou importe uma carteira usando sua frase de recuperação.",title:"Criar ou Importar uma Carteira"},step3:{description:"Após você escanear, um prompt de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão de escanear"}}},bitget:{qr_code:{step1:{description:"Recomendamos colocar a Bitget Wallet na sua tela inicial para um acesso mais rápido.",title:"Abra o aplicativo Bitget Wallet"},step2:{description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, um prompt de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão de escaneamento"}},extension:{step1:{description:"Recomendamos fixar a Bitget Wallet na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão da Carteira Bitget"},step2:{description:"Certifique-se de fazer o backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},bitski:{extension:{step1:{description:"Recomendamos fixar o Bitski na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão Bitski"},step2:{description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},coin98:{qr_code:{step1:{description:"Recomendamos colocar a Carteira Coin98 na tela inicial para um acesso mais rápido à sua carteira.",title:"Abra o aplicativo Carteira Coin98"},step2:{description:"Você pode facilmente fazer backup de sua carteira usando nosso recurso de backup em seu telefone.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, uma solicitação de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão WalletConnect"}},extension:{step1:{description:"Clique no canto superior direito do seu navegador e fixe a Carteira Coin98 para fácil acesso.",title:"Instale a extensão da Carteira Coin98"},step2:{description:"Crie uma nova carteira ou importe uma existente.",title:"Criar ou Importar uma carteira"},step3:{description:"Depois de configurar a Carteira Coin98, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},coinbase:{qr_code:{step1:{description:"Recomendamos colocar a Carteira Coinbase na tela inicial para um acesso mais rápido.",title:"Abra o aplicativo Coinbase Wallet"},step2:{description:"Você pode fazer backup da sua carteira facilmente usando o recurso de backup na nuvem.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, um prompt de conexão aparecerá para que você conecte sua carteira.",title:"Toque no botão de escanear"}},extension:{step1:{description:"Recomendamos fixar o Coinbase Wallet na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão Coinbase Wallet"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Uma vez que você configurou sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},core:{qr_code:{step1:{description:"Recomendamos colocar o Core na tela inicial para um acesso mais rápido à sua carteira.",title:"Abra o aplicativo Core"},step2:{description:"Você pode facilmente salvar sua carteira usando nosso recurso de backup no seu celular.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, um prompt de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão WalletConnect"}},extension:{step1:{description:"Recomendamos fixar o Core na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão Core"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},fox:{qr_code:{step1:{description:"Recomendamos colocar o FoxWallet na tela inicial para um acesso mais rápido.",title:"Abra o aplicativo FoxWallet"},step2:{description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, uma solicitação de conexão aparecerá para você conectar sua carteira.",title:"Toque no botão de escaneamento"}}},frontier:{qr_code:{step1:{description:"Recomendamos colocar o Frontier Wallet na tela inicial para um acesso mais rápido.",title:"Abra o aplicativo Frontier Wallet"},step2:{description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de escanear, aparecerá um prompt de conexão para você conectar sua carteira.",title:"Toque no botão de varredura"}},extension:{step1:{description:"Recomendamos fixar a Carteira Frontier na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão da Carteira Frontier"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},im_token:{qr_code:{step1:{title:"Abra o aplicativo imToken",description:"Coloque o aplicativo imToken na tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Toque no ícone do Scanner no canto superior direito",description:"Escolha Nova Conexão, em seguida, escaneie o código QR e confirme o prompt para conectar."}}},metamask:{qr_code:{step1:{title:"Abra o aplicativo MetaMask",description:"Recomendamos colocar o MetaMask na tela inicial para um acesso mais rápido."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Toque no botão escanear",description:"Depois de escanear, aparecerá um prompt de conexão para você conectar sua carteira."}},extension:{step1:{title:"Instale a extensão MetaMask",description:"Recomendamos fixar o MetaMask na barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize o seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},okx:{qr_code:{step1:{title:"Abra o aplicativo da Carteira OKX",description:"Recomendamos colocar a Carteira OKX na tela inicial para um acesso mais rápido."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer o backup da sua carteira utilizando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Toque no botão de digitalização",description:"Depois de escanear, aparecerá um prompt de conexão para você conectar sua carteira."}},extension:{step1:{title:"Instale a extensão OKX Wallet",description:"Recomendamos fixar a OKX Wallet na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer o backup da sua carteira utilizando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize o seu navegador",description:"Uma vez que você configurou sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},omni:{qr_code:{step1:{title:"Abra o aplicativo Omni",description:"Adicione o Omni à sua tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Toque no ícone do QR e escaneie",description:"Toque no ícone QR na tela inicial, escaneie o código e confirme o prompt para conectar."}}},token_pocket:{qr_code:{step1:{title:"Abra o aplicativo TokenPocket",description:"Recomendamos colocar o TokenPocket na tela inicial para um acesso mais rápido."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Toque no botão de digitalização",description:"Depois de escanear, aparecerá um prompt de conexão para você conectar sua carteira."}},extension:{step1:{title:"Instale a extensão TokenPocket",description:"Recomendamos fixar o TokenPocket em sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Uma vez que você configurou sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},trust:{qr_code:{step1:{title:"Abra o aplicativo Trust Wallet",description:"Coloque o Trust Wallet na tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Toque em WalletConnect nas Configurações",description:"Escolha Nova Conexão, depois escaneie o QR code e confirme o prompt para se conectar."}},extension:{step1:{title:"Instale a extensão Trust Wallet",description:"Clique no canto superior direito do seu navegador e marque Trust Wallet para fácil acesso."},step2:{title:"Crie ou Importe uma carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Atualize seu navegador",description:"Depois que configurar a Trust Wallet, clique abaixo para atualizar o navegador e carregar a extensão."}}},uniswap:{qr_code:{step1:{title:"Abra o aplicativo Uniswap",description:"Adicione a Carteira Uniswap à sua tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Crie uma nova carteira ou importe uma existente."},step3:{title:"Toque no ícone QR e escaneie",description:"Toque no ícone QR na sua tela inicial, escaneie o código e confirme o prompt para conectar."}}},zerion:{qr_code:{step1:{title:"Abra o aplicativo Zerion",description:"Recomendamos colocar o Zerion na sua tela inicial para um acesso mais rápido."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Toque no botão de digitalização",description:"Depois de digitalizar, um prompt de conexão aparecerá para que você possa conectar sua carteira."}},extension:{step1:{title:"Instale a extensão Zerion",description:"Recomendamos fixar o Zerion na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},rainbow:{qr_code:{step1:{title:"Abra o aplicativo Rainbow",description:"Recomendamos colocar o Rainbow na tela inicial para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Você pode facilmente fazer backup da sua carteira usando nosso recurso de backup no seu telefone."},step3:{title:"Toque no botão de digitalizar",description:"Depois de escanear, uma solicitação de conexão aparecerá para você conectar sua carteira."}}},enkrypt:{extension:{step1:{description:"Recomendamos fixar a Carteira Enkrypt na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale a extensão da Carteira Enkrypt"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize o seu navegador"}}},frame:{extension:{step1:{description:"Recomendamos fixar o Frame na sua barra de tarefas para um acesso mais rápido à sua carteira.",title:"Instale o Frame e a extensão complementar"},step2:{description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém.",title:"Criar ou Importar uma Carteira"},step3:{description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão.",title:"Atualize seu navegador"}}},one_key:{extension:{step1:{title:"Instale a extensão OneKey Wallet",description:"Recomendamos fixar a OneKey Wallet na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Uma vez que você configurou sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},phantom:{extension:{step1:{title:"Instale a extensão Phantom",description:"Recomendamos fixar o Phantom na sua barra de tarefas para facilitar o acesso à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta de recuperação com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},rabby:{extension:{step1:{title:"Instale a extensão Rabby",description:"Recomendamos fixar Rabby na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},safeheron:{extension:{step1:{title:"Instale a extensão Core",description:"Recomendamos fixar Safeheron na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer o backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},taho:{extension:{step1:{title:"Instale a extensão Taho",description:"Recomendamos fixar o Taho na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer o backup da sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},talisman:{extension:{step1:{title:"Instale a extensão Talisman",description:"Recomendamos fixar o Talisman na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Crie ou Importe uma Carteira Ethereum",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase de recuperação com ninguém."},step3:{title:"Atualize o seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}},xdefi:{extension:{step1:{title:"Instale a extensão XDEFI Wallet",description:"Recomendamos fixar a Carteira XDEFI na sua barra de tarefas para um acesso mais rápido à sua carteira."},step2:{title:"Criar ou Importar uma Carteira",description:"Certifique-se de fazer backup de sua carteira usando um método seguro. Nunca compartilhe sua frase secreta com ninguém."},step3:{title:"Atualize seu navegador",description:"Depois de configurar sua carteira, clique abaixo para atualizar o navegador e carregar a extensão."}}}},Yg={connect_wallet:$au,intro:Wau,connect:qau,connect_scan:Hau,connector_group:Gau,get:Kau,get_options:Qau,get_mobile:Vau,get_instructions:Jau,chains:Yau,profile:Xau,wallet_connectors:Zau},uou={label:"Подключить кошелек"},eou={title:"Что такое кошелек?",description:"Кошелек используется для отправки, получения, хранения и отображения цифровых активов. Это также новый способ входа в систему, без необходимости создания новых учетных записей и паролей на каждом сайте.",digital_asset:{title:"Дом для ваших цифровых активов",description:"Кошельки используются для отправки, получения, хранения и отображения цифровых активов, таких как Ethereum и NFT."},login:{title:"Новый способ входа в систему",description:"Вместо создания новых аккаунтов и паролей на каждом сайте, просто подключите ваш кошелек."},get:{label:"Получить кошелек"},learn_more:{label:"Узнать больше"}},tou={label:"Подключить",title:"Подключить кошелек",new_to_ethereum:{description:"Впервые столкнулись с кошельками Ethereum?",learn_more:{label:"Узнать больше"}},learn_more:{label:"Узнать больше"},recent:"Недавние",status:{opening:"Открывается %{wallet}...",not_installed:"%{wallet} не установлен",not_available:"%{wallet} не доступен",confirm:"Подтвердите подключение в расширении"},secondary_action:{get:{description:"У вас нет %{wallet}?",label:"ПОЛУЧИТЬ"},install:{label:"УСТАНОВИТЬ"},retry:{label:"ПОВТОРИТЬ"}},walletconnect:{description:{full:"Нужен официальный модальный окно WalletConnect?",compact:"Нужен модальный окно WalletConnect?"},open:{label:"ОТКРЫТЬ"}}},nou={title:"Сканировать с помощью %{wallet}",fallback_title:"Сканировать с помощью вашего телефона"},rou={recommended:"Рекомендуемые",other:"Другие",popular:"Популярные",more:"Больше",others:"Другие"},iou={title:"Получить кошелек",action:{label:"ПОЛУЧИТЬ"},mobile:{description:"Мобильный кошелек"},extension:{description:"Расширение для браузера"},mobile_and_extension:{description:"Мобильный кошелек и расширение"},looking_for:{title:"Не то, что вы ищете?",mobile:{description:"Выберите кошелек на главном экране, чтобы начать работу с другим провайдером кошелька."},desktop:{compact_description:"Выберите кошелек на главном экране, чтобы начать работу с другим провайдером кошелька.",wide_description:"Выберите кошелек слева, чтобы начать работу с другим провайдером кошелька."}}},aou={title:"Начните с %{wallet}",short_title:"Получить %{wallet}",mobile:{title:"%{wallet} для мобильных",description:"Используйте мобильный кошелек для исследования мира Ethereum.",download:{label:"Скачать приложение"}},extension:{title:"%{wallet} для %{browser}",description:"Доступ к вашему кошельку прямо из вашего любимого веб-браузера.",download:{label:"Добавить в %{browser}"}}},oou={title:"Установить %{wallet}",description:"Отсканируйте на своем телефоне для скачивания на iOS или Android",continue:{label:"Продолжить"}},sou={mobile:{connect:{label:"Подключить"},learn_more:{label:"Узнать больше"}},extension:{refresh:{label:"Обновить"},learn_more:{label:"Узнать больше"}}},lou={title:"Переключить сети",wrong_network:"Обнаружена неверная сеть, переключитесь или отключитесь для продолжения.",confirm:"Подтвердить в кошельке",switching_not_supported:"Ваш кошелек не поддерживает переключение сетей с %{appName}. Попробуйте переключить сети из вашего кошелька.",switching_not_supported_fallback:"Ваш кошелек не поддерживает переключение сетей из этого приложения. Попробуйте переключить сети из вашего кошелька.",disconnect:"Отключить",connected:"Подключено"},cou={disconnect:{label:"Отключить"},copy_address:{label:"Скопировать адрес",copied:"Скопировано!"},explorer:{label:"Посмотреть больше в эксплорере"},transactions:{description:"%{appName} транзакции появятся здесь...",description_fallback:"Ваши транзакции появятся здесь...",recent:{title:"Недавние транзакции"},clear:{label:"Очистить все"}}},Eou={argent:{qr_code:{step1:{description:"Добавьте Argent на домашний экран для более быстрого доступа к вашему кошельку.",title:"Откройте приложение Argent"},step2:{description:"Создайте кошелек и имя пользователя или импортируйте существующий кошелек.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение для подключения вашего кошелька.",title:"Нажмите кнопку Сканировать QR"}}},bifrost:{qr_code:{step1:{description:"Мы рекомендуем добавить кошелек Bifrost на ваш начальный экран для более быстрого доступа.",title:"Откройте приложение Bifrost Wallet"},step2:{description:"Создайте или импортируйте кошелек, используя вашу фразу восстановления.",title:"Создать или импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение вашего кошелька.",title:"Нажмите кнопку сканирования"}}},bitget:{qr_code:{step1:{description:"Мы рекомендуем добавить Bitget Wallet на ваш экран для более быстрого доступа.",title:"Откройте приложение Bitget Wallet"},step2:{description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение вашего кошелька.",title:"Нажмите кнопку сканирования"}},extension:{step1:{description:"Мы рекомендуем закрепить Bitget Wallet на панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Bitget Wallet"},step2:{description:"Обязательно сохраните резервную копию вашего кошелька с помощью надёжного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},bitski:{extension:{step1:{description:"Мы рекомендуем прикрепить Bitski к вашей панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Bitski"},step2:{description:"Обязательно сохраните резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать кошелек или Импортировать кошелек"},step3:{description:"После того как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},coin98:{qr_code:{step1:{description:"Мы рекомендуем добавить Coin98 Wallet на ваш главный экран для более быстрого доступа к вашему кошельку.",title:"Откройте приложение Coin98 Wallet"},step2:{description:"Вы можете легко сделать резервную копию вашего кошелька, используя нашу функцию резервного копирования на вашем телефоне.",title:"Создать или импортировать кошелек"},step3:{description:"После сканирования для вас появится запрос на подключение, чтобы подключить ваш кошелек.",title:"Нажмите кнопку WalletConnect"}},extension:{step1:{description:"Нажмите в верхнем правом углу вашего браузера и закрепите Coin98 Wallet для удобного доступа.",title:"Установите расширение Coin98 Wallet"},step2:{description:"Создайте новый кошелек или импортируйте существующий.",title:"Создайте или импортируйте кошелек"},step3:{description:"После того как вы настроите Кошелек Coin98, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},coinbase:{qr_code:{step1:{description:"Мы рекомендуем добавить Coinbase Wallet на ваш экран начала для более быстрого доступа.",title:"Откройте приложение Coinbase Wallet"},step2:{description:"Вы легко можете сделать резервную копию вашего кошелька, используя функцию облачного резервного копирования.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение для подключения вашего кошелька.",title:"Нажмите кнопку сканирования"}},extension:{step1:{description:"Мы рекомендуем закрепить Coinbase Wallet на вашей панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Coinbase Wallet"},step2:{description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},core:{qr_code:{step1:{description:"Мы рекомендуем добавить Core на ваш экран быстрого доступа для ускоренного доступа к вашему кошельку.",title:"Открыть приложение Core"},step2:{description:"Вы можете легко создать резервную копию вашего кошелька, используя нашу функцию резервного копирования на вашем телефоне.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение, чтобы вы могли подключить ваш кошелек.",title:"Нажмите кнопку WalletConnect"}},extension:{step1:{description:"Мы рекомендуем закрепить Core на панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Core"},step2:{description:"Обязательно создайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь вашей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"Как только вы настроите ваш кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},fox:{qr_code:{step1:{description:"Мы рекомендуем поместить FoxWallet на ваш экран начального экрана для более быстрого доступа.",title:"Откройте приложение FoxWallet"},step2:{description:"Обязательно сделайте резервное копирование вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится приглашение для подключения вашего кошелька.",title:"Нажмите кнопку сканирования"}}},frontier:{qr_code:{step1:{description:"Мы рекомендуем установить Frontier Wallet на экран вашего смартфона для более быстрого доступа.",title:"Откройте приложение Frontier Wallet"},step2:{description:"Обязательно сделайте резервное копирование вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или Импортировать кошелек"},step3:{description:"После сканирования появится запрос на подключение кошелька.",title:"Нажмите кнопку сканирования"}},extension:{step1:{description:"Мы рекомендуем прикрепить кошелек Frontier к панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение кошелька Frontier"},step2:{description:"Обязательно сделайте резервную копию своего кошелька с использованием надежного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или импортировать кошелек"},step3:{description:"После настройки вашего кошелька нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},im_token:{qr_code:{step1:{title:"Откройте приложение imToken",description:"Поместите приложение imToken на главный экран для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Нажмите на иконку сканера в верхнем правом углу",description:"Выберите Новое соединение, затем отсканируйте QR-код и подтвердите запрос на соединение."}}},metamask:{qr_code:{step1:{title:"Откройте приложение MetaMask",description:"Мы рекомендуем поместить MetaMask на главный экран для быстрого доступа."},step2:{title:"Создайте или импортируйте кошелек",description:"Обязательно сохраните копию своего кошелька с помощью надежного метода. Никогда не делитесь своей секретной фразой с кем бы то ни было."},step3:{title:"Нажмите кнопку сканирования",description:"После сканирования появится запрос на соединение вашего кошелька."}},extension:{step1:{title:"Установите расширение MetaMask",description:"Мы рекомендуем закрепить MetaMask на вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сохраните резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После настройки вашего кошелька, щелкните ниже, чтобы обновить браузер и загрузить расширение."}}},okx:{qr_code:{step1:{title:"Откройте приложение кошелька OKX",description:"Мы рекомендуем разместить кошелек OKX на вашем главном экране для более быстрого доступа."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сохраните резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Нажмите на кнопку сканирования",description:"После сканирования появится запрос на подключение вашего кошелька."}},extension:{step1:{title:"Установите расширение кошелька OKX",description:"Мы рекомендуем закрепить OKX Wallet на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать кошелек или импортировать кошелек",description:"Обязательно сохраните резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"Как только вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},omni:{qr_code:{step1:{title:"Откройте приложение Omni",description:"Добавьте Omni на свой домашний экран для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Нажмите на иконку QR и отсканируйте",description:"Нажмите на иконку QR на вашем домашнем экране, отсканируйте код и подтвердите подсказку, чтобы подключиться."}}},token_pocket:{qr_code:{step1:{title:"Откройте приложение TokenPocket",description:"Мы рекомендуем разместить TokenPocket на вашем домашнем экране для быстрого доступа."},step2:{title:"Создать или Импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька при помощи безопасного метода. Никогда не делитесь своим секретным кодом с кем-либо."},step3:{title:"Нажмите на кнопку сканирования",description:"После сканирования появится подсказка о подключении для подключения вашего кошелька."}},extension:{step1:{title:"Установите расширение TokenPocket",description:"Мы рекомендуем закрепить TokenPocket на вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или Импортировать кошелек",description:"Обязательно создайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После того как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},trust:{qr_code:{step1:{title:"Откройте приложение Trust Wallet",description:"Разместите Trust Wallet на вашем домашнем экране для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или Импортировать кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Нажмите WalletConnect в настройках",description:"Выберите Новое соединение, затем сканируйте QR-код и подтвердите запрос на подключение."}},extension:{step1:{title:"Установите расширение Trust Wallet",description:"Кликните в правом верхнем углу вашего браузера и закрепите Trust Wallet для легкого доступа."},step2:{title:"Создайте или импортируйте кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Обновите ваш браузер",description:"После настройки Trust Wallet, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},uniswap:{qr_code:{step1:{title:"Откройте приложение Uniswap",description:"Добавьте кошелек Uniswap на главный экран для быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Создайте новый кошелек или импортируйте существующий."},step3:{title:"Нажмите на иконку QR и отсканируйте",description:"Нажмите на иконку QR на главном экране, отсканируйте код и подтвердите запрос на подключение."}}},zerion:{qr_code:{step1:{title:"Откройте приложение Zerion",description:"Мы рекомендуем разместить Zerion на главном экране для более быстрого доступа."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно создайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Нажмите кнопку сканирования",description:"После сканирования вам будет предложено подключить ваш кошелек."}},extension:{step1:{title:"Установите расширение Zerion",description:"Мы рекомендуем прикрепить Zerion к вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создайте или импортируйте кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делясь своим секретным паролем с кем-либо."},step3:{title:"Обновите ваш браузер",description:"Как только вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},rainbow:{qr_code:{step1:{title:"Откройте приложение Rainbow",description:"Мы рекомендуем поместить Rainbow на ваш экран главного меню для более быстрого доступа к вашему кошельку."},step2:{title:"Создайте или импортируйте кошелек",description:"Вы можете легко сделать резервную копию вашего кошелька с помощью нашей функции резервного копирования на вашем телефоне."},step3:{title:"Нажмите кнопку сканировать",description:"После сканирования появится запрос на подключение вашего кошелька."}}},enkrypt:{extension:{step1:{description:"Мы рекомендуем закрепить Enkrypt Wallet на панели задач для более быстрого доступа к вашему кошельку.",title:"Установите расширение Enkrypt Wallet"},step2:{description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создать или импортировать кошелек"},step3:{description:"Как только вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},frame:{extension:{step1:{description:"Мы рекомендуем закрепить Frame на панели задач для более быстрого доступа к вашему кошельку.",title:"Установите Frame и дополнительное расширение"},step2:{description:"Обязательно создайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо.",title:"Создайте или Импортируйте кошелек"},step3:{description:"После того как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение.",title:"Обновите ваш браузер"}}},one_key:{extension:{step1:{title:"Установите расширение OneKey Wallet",description:"Мы рекомендуем закрепить OneKey Wallet на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создайте или Импортируйте кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После настройки кошелька нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},phantom:{extension:{step1:{title:"Установите расширение Phantom",description:"Мы рекомендуем закрепить Phantom на панели задач для более удобного доступа к вашему кошельку."},step2:{title:"Создать или Импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой восстановления с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После того как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},rabby:{extension:{step1:{title:"Установите расширение Rabby",description:"Мы рекомендуем закрепить Rabby на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем бы то ни было."},step3:{title:"Обновите ваш браузер",description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},safeheron:{extension:{step1:{title:"Установите основное расширение",description:"Мы рекомендуем закрепить SafeHeron на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После того, как вы настроите ваш кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},taho:{extension:{step1:{title:"Установите расширение Taho",description:"Мы рекомендуем закрепить Taho на вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или импортировать кошелек",description:"Обязательно сделайте резервную копию вашего кошелька с использованием безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},talisman:{extension:{step1:{title:"Установите расширение Talisman",description:"Мы рекомендуем закрепить Talisman на вашей панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создайте или импортируйте кошелек Ethereum",description:"Обязательно сделайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь вашей фразой восстановления с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После настройки вашего кошелька, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}},xdefi:{extension:{step1:{title:"Установите расширение кошелька XDEFI",description:"Мы рекомендуем закрепить XDEFI Wallet на панели задач для более быстрого доступа к вашему кошельку."},step2:{title:"Создать или Импортировать кошелек",description:"Обязательно создайте резервную копию вашего кошелька с помощью безопасного метода. Никогда не делитесь своей секретной фразой с кем-либо."},step3:{title:"Обновите ваш браузер",description:"После того, как вы настроите свой кошелек, нажмите ниже, чтобы обновить браузер и загрузить расширение."}}}},Xg={connect_wallet:uou,intro:eou,connect:tou,connect_scan:nou,connector_group:rou,get:iou,get_options:aou,get_mobile:oou,get_instructions:sou,chains:lou,profile:cou,wallet_connectors:Eou},dou={label:"เชื่อมต่อกระเป๋าเงิน"},fou={title:"อะไรคือกระเป๋าเงิน?",description:"กระเป๋าเงินใช้ในการส่ง, รับ, เก็บ, และแสดงสินทรัพย์ดิจิทัล มันยังเป็นวิธีใหม่ในการเข้าสู่ระบบ, โดยไม่จำเป็นต้องสร้างบัญชีและรหัสผ่านใหม่ในทุกเว็บไซต์.",digital_asset:{title:"บ้านสำหรับสินทรัพย์ดิจิทัลของคุณ",description:"กระเป๋าเงินถูกใช้เพื่อส่ง, รับ, เก็บ, แสดงสินทรัพย์ดิจิทัล เช่น Ethereum และ NFTs."},login:{title:"วิธีใหม่ในการเข้าสู่ระบบ",description:"แทนที่จะสร้างบัญชีและรหัสผ่านใหม่ในทุกเว็บไซต์, แค่เชื่อมต่อกระเป๋าของคุณ."},get:{label:"รับกระเป๋าเงิน"},learn_more:{label:"เรียนรู้เพิ่มเติม"}},pou={label:"เชื่อมต่อ",title:"เชื่อมต่อกระเป๋าเงิน",new_to_ethereum:{description:"ใหม่กับกระเป๋า Ethereum หรือไม่?",learn_more:{label:"เรียนรู้เพิ่มเติม"}},learn_more:{label:"เรียนรู้เพิ่มเติม"},recent:"ล่าสุด",status:{opening:"กำลังเปิด %{wallet}...",not_installed:"%{wallet} ไม่ได้ติดตั้ง",not_available:"%{wallet} ไม่สามารถใช้ได้",confirm:"ยืนยันการเชื่อมต่อในส่วนขยาย"},secondary_action:{get:{description:"ไม่มี %{wallet}?",label:"รับ"},install:{label:"ติดตั้ง"},retry:{label:"ลองใหม่"}},walletconnect:{description:{full:"ต้องการ modal อย่างเป็นทางการจาก WalletConnect หรือไม่?",compact:"ต้องการ modal จาก WalletConnect หรือไม่?"},open:{label:"เปิด"}}},hou={title:"สแกนด้วย %{wallet}",fallback_title:"สแกนด้วยโทรศัพท์ของคุณ"},Cou={recommended:"แนะนำ",other:"อื่น ๆ",popular:"ยอดนิยม",more:"เพิ่มเติม",others:"อื่น ๆ"},mou={title:"รับ Wallet",action:{label:"รับ"},mobile:{description:"Wallet บนมือถือ"},extension:{description:"ส่วนขยายบราวเซอร์"},mobile_and_extension:{description:"กระเป๋าเงินมือถือและส่วนขยาย"},looking_for:{title:"ไม่ใช่สิ่งที่คุณกำลังหาหรือไม่?",mobile:{description:"เลือกกระเป๋าเงินบนหน้าจอหลักเพื่อเริ่มต้นใช้งานกับผู้ให้บริการกระเป๋าเงินที่แตกต่างกัน"},desktop:{compact_description:"เลือกกระเป๋าเงินบนหน้าจอหลักเพื่อเริ่มต้นใช้งานกับผู้ให้บริการกระเป๋าเงินที่แตกต่างกัน",wide_description:"เลือกกระเป๋าเงินที่อยู่ทางซ้ายเพื่อเริ่มต้นใช้งานกับผู้ให้บริการกระเป๋าเงินที่แตกต่างกัน"}}},gou={title:"เริ่มต้นกับ %{wallet}",short_title:"รับ %{wallet}",mobile:{title:"%{wallet} สำหรับมือถือ",description:"ใช้กระเป๋าระบบมือถือในการสำรวจโลกของ Ethereum.",download:{label:"รับแอป"}},extension:{title:"%{wallet} สำหรับ %{browser}",description:"เข้าถึงกระเป๋าเงินของคุณได้โดยตรงจากบราวเซอร์ที่คุณชื่นชอบ.",download:{label:"เพิ่มไปยัง %{browser}"}}},Aou={title:"ติดตั้ง %{wallet}",description:"สแกนด้วยโทรศัพท์ของคุณเพื่อดาวน์โหลดบน iOS หรือ Android",continue:{label:"ดำเนินการต่อ"}},you={mobile:{connect:{label:"เชื่อมต่อ"},learn_more:{label:"เรียนรู้เพิ่มเติม"}},extension:{refresh:{label:"รีเฟรช"},learn_more:{label:"เรียนรู้เพิ่มเติม"}}},Bou={title:"เปลี่ยนเครือข่าย",wrong_network:"ตรวจสอบพบเครือข่ายที่ไม่ถูกต้อง สลับหรือตัดการเชื่อมต่อเพื่อดำเนินการต่อ.",confirm:"ยืนยันใน Wallet",switching_not_supported:"กระเป๋าสตางค์ของคุณไม่สนับสนุนการเปลี่ยนเครือข่ายจาก %{appName}ลองเปลี่ยนเครือข่ายจากภายในกระเป๋าสตางค์ของคุณแทน",switching_not_supported_fallback:"กระเป๋าสตางค์ของคุณไม่สนับสนุนการสลับเครือข่ายจากแอปนี้ ลองสลับเครือข่ายจากภายในกระเป๋าสตางค์ของคุณแทน",disconnect:"ตัดการเชื่อมต่อ",connected:"เชื่อมต่อแล้ว"},vou={disconnect:{label:"ตัดการเชื่อมต่อ"},copy_address:{label:"คัดลอกที่อยู่",copied:"คัดลอกแล้ว!"},explorer:{label:"ดูเพิ่มเติมบน explorer"},transactions:{description:"%{appName} รายการจะปรากฎที่นี่...",description_fallback:"การทำธุรกรรมของคุณจะปรากฎที่นี่...",recent:{title:"ธุรกรรมล่าสุด"},clear:{label:"ลบทั้งหมด"}}},Fou={argent:{qr_code:{step1:{description:"วาง Argent บนหน้าจอหลักของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น",title:"เปิดแอป Argent"},step2:{description:"สร้างกระเป๋าเงินและชื่อผู้ใช้หรือนำเข้ากระเป๋าเงินที่มีอยู่แล้ว",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"หลังจากคุณสแกน จะปรากฏหน้าต่างเชื่อมต่อให้คุณเชื่อมต่อกระเป๋าเงินของคุณ",title:"แตะที่คุ่มุ่งสแกน QR"}}},bifrost:{qr_code:{step1:{description:"เราขอแนะนำให้คุณวาง Bifrost Wallet บนหน้าจอหลักของคุณเพื่อเข้าถึงได้เร็วขึ้น",title:"เปิดแอพฯ Bifrost Wallet"},step2:{description:"สร้างหรือนำเข้ากระเป๋าเงินด้วย recovery phrase ของคุณ",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"หลังจากที่คุณสแกนแล้วยินยันการเชื่อมต่อกับกระเป๋าเงินของคุณ",title:"แตะปุ่มสแกน"}}},bitget:{qr_code:{step1:{description:"เราขอแนะนำให้วาง Bitget Wallet บนหน้าจอหน้าแรกของคุณเพื่อการเข้าถึงที่รวดเร็วขึ้น.",title:"เปิดแอพ Bitget Wallet"},step2:{description:"ตรวจสอบการสำรองข้อมูลกระเป๋าสตางค์ของคุณให้แน่นอนโดยใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใครเป็นอันขาด.",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"หลังจากที่คุณสแกน จะมีข้อความขอเชื่อมต่อที่จะปรากฏขึ้นให้คุณเชื่อมต่อกระเป๋าสตางค์ของคุณ.",title:"แตะปุ่มสแกน"}},extension:{step1:{description:"เราแนะนำให้คุณปัก Bitget Wallet ไว้บนแถบงานของคุณเพื่อเข้าถึงกระเป๋าสตางค์ได้เร็วขึ้น",title:"ติดตั้งส่วนเสริม Bitget Wallet"},step2:{description:"โปรดแน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับบุคคลใดๆ",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้วคลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนเสริม",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},bitski:{extension:{step1:{description:"เราแนะนำให้ทำปัก Bitski ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าเงินได้โดยไม่ต้องรอ",title:"ติดตั้งส่วนขยาย Bitski"},step2:{description:"ควรสำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยคำลับของคุณให้ใครทราบ",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},coin98:{qr_code:{step1:{description:"เราขอแนะนำให้คุณวาง Coin98 Wallet บนหน้าจอหลักของคุณ เพื่อให้เข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น.",title:"เปิดแอพ Coin98 Wallet"},step2:{description:"คุณสามารถสำรองข้อมูลกระเป๋าเงินของคุณได้ง่ายๆ ด้วยฟีเจอร์สำรองข้อมูลบนโทรศัพท์ของคุณ.",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"หลังจากคุณสแกน จะมีเตือนการเชื่อมต่อที่ปรากฏขึ้นให้คุณเชื่อมต่อกระเป๋าเงินของคุณ.",title:"แตะที่ปุ่ม WalletConnect"}},extension:{step1:{description:"คลิกที่ด้านบนขวาของเบราว์เซอร์ของคุณและปัก Coin98 Wallet ไว้เพื่อให้เข้าถึงได้ง่าย.",title:"ติดตั้งส่วนขยาย Coin98 Wallet"},step2:{description:"สร้างกระเป๋าเงินใหม่หรือนำเข้าที่มีอยู่แล้ว.",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"เมื่อคุณตั้งค่า Coin98 Wallet แล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยายขึ้นมา.",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},coinbase:{qr_code:{step1:{description:"เราแนะนำให้วาง Coinbase Wallet ไว้ที่หน้าจอหลักของคุณเพื่อให้เข้าถึงได้เร็วขึ้น.",title:"เปิดแอป Coinbase Wallet"},step2:{description:"คุณสามารถสำรองข้อมูลกระเป๋าสตางค์ของคุณได้ง่ายๆ โดยใช้ฟีเจอร์การสำรองข้อมูลด้วยคลาวด์",title:"สร้างหรือนำเข้ากระเป๋าสตางค์"},step3:{description:"หลังจากที่คุณสแกนแล้ว จะมีการแสดงขอ้มูลเพื่อให้คุณเชื่อมต่อกระเป๋าสตางค์ของคุณ",title:"แตะที่ปุ่มสแกน"}},extension:{step1:{description:"เราแนะนำให้คุณยัด Coinbase Wallet ไว้ที่แถบงานของคุณเพื่อให้สามารถเข้าถึงกระเป๋าสตางค์ของคุณได้เร็วขึ้น",title:"ติดตั้งส่วนขยาย Coinbase Wallet"},step2:{description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยประโยคลับของคุณให้กับใครเลย",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"เมื่อคุณได้ตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อเรียกดูเบราว์เซอร์ใหม่และโหลดส่วนขยาย",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},core:{qr_code:{step1:{description:"เราแนะนำให้คุณวาง Core ลงสนามหลักเพื่อให้เข้าถึงกระเป๋าเงินได้เร็วขึ้น",title:"เปิดแอปเครื่องมือช่วยอีเกิร์น"},step2:{description:"คุณสามารถสำรองกระเป๋าเงินของคุณได้ง่ายๆ โดยใช้ฟีเจอร์สำรองของเราบนโทรศัพท์ของคุณ",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"หลังจากที่คุณสแกนแล้ว จะมีการแจ้งเตือนเพื่อให้คุณเชื่อมต่อกับกระเป๋าสตางค์ของคุณ",title:"แตะปุ่ม WalletConnect"}},extension:{step1:{description:"เราขอแนะนำให้คุณปัก Core ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าสตางค์ของคุณได้อย่างรวดเร็ว",title:"ติดตั้งส่วนขยาย Core"},step2:{description:"โปรดแน่ใจว่าคุณได้สำรองกระเป๋าสตางค์ของคุณใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใคร",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"เมื่อคุณตั้งค่ากระเป๋าสตางค์ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},fox:{qr_code:{step1:{description:"เราขอแนะนำให้คุณวาง FoxWallet บนหน้าจอหลักเพื่อให้เข้าถึงได้เร็วขึ้น",title:"เปิดแอป FoxWallet"},step2:{description:"ตรวจสอบที่จะสำรองข้อมูลกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย จงอย่าเปิดเผยประโยคลับลับของคุณให้ผู้อื่นรู้",title:"สร้างหรือนำเข้ากระเป๋าเงิน"},step3:{description:"หลังจากที่คุณสแกน จะมีการเชื่อมต่อที่แสดงให้คุณเชื่อมต่อกระเป๋าเงินของคุณ",title:"แตะปุ่มสแกน"}}},frontier:{qr_code:{step1:{description:"เราขอแนะนำให้คุณวาง Frontier Wallet บนหน้าจอหลักเพื่อให้เข้าถึงได้เร็วขึ้น",title:"เปิดแอป Frontier Wallet"},step2:{description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าสตางค์ของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใคร",title:"สร้างหรือนำเข้ากระเป๋าสตางค์"},step3:{description:"หลังจากที่คุณสแกนแล้ว จะมีการแสดงข้อมูลเพื่อให้คุณเชื่อมต่อกับกระเป๋าสตางค์ของคุณ",title:"แตะปุ่มสแกน"}},extension:{step1:{description:"เราแนะนำให้คุณปักหมุด Frontier Wallet ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าสตางค์ของคุณได้ง่ายขึ้น",title:"ติดตั้งส่วนเสริม Frontier Wallet"},step2:{description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าสตางค์ของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใคร",title:"สร้างหรือนำเข้ากระเป๋าสตางค์"},step3:{description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย",title:"รีเฟรชเบราว์เซอร์ของคุณ"}}},im_token:{qr_code:{step1:{title:"เปิดแอพ imToken",description:"ใส่แอพ imToken ไว้ที่หน้าจอหลักเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น."},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"สร้างกระเป๋าเงินใหม่หรือนำเข้ากระเป๋าเงินที่มีอยู่แล้ว"},step3:{title:"แตะไอคอนสแกนเนอร์ในมุมบนขวา",description:"เลือก New Connection, แล้วสแกน QR code และยืนยันการรับรองสำหรับการเชื่อมต่อ"}}},metamask:{qr_code:{step1:{title:"เปิดแอป MetaMask",description:"เราขอแนะนำให้วาง MetaMask บนหน้าจอหลักของคุณเพื่อเข้าถึงได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"ตรวจสอบว่าได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้กับใคร"},step3:{title:"แตะที่ปุ่มสแกน",description:"หลังจากการสแกน, จะปรากฏข้อความเชื่อมต่อสำหรับคุณเพื่อเชื่อมต่อกับกระเป๋าเงินของคุณ"}},extension:{step1:{title:"ติดตั้งส่วนขยาย MetaMask",description:"เราขอแนะนำให้คุณปัก MetaMask ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้รวดเร็ว"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"อย่างแน่นอนให้สำรองข้อมูลกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์ประโยคลับของคุณกับใครเลย"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},okx:{qr_code:{step1:{title:"เปิดแอพ OKX Wallet",description:"เราแนะนำให้วาง OKX Wallet บนหน้าจอหลักของคุณเพื่อให้เข้าถึงได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"จงแน่ใจว่าคุณได้สำรองข้อมูล wallet ของคุณด้วยวิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณให้คนอื่น"},step3:{title:"แตะปุ่มสแกน",description:"หลังจากคุณสแกน จะมีการแสดงข้อมูลเพื่อให้คุณเชื่อมต่อ wallet ของคุณ"}},extension:{step1:{title:"ติดตั้งส่วนเสริม OKX Wallet",description:"เราแนะนำให้ยึด OKX Wallet ไว้ที่แถบงานของคุณเพื่อให้เข้าถึง wallet ของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"โปรดแน่ใจว่าคุณได้สำรองกระเป๋าสตางค์ของคุณด้วยวิธีที่ปลอดภัย อย่าเปิดเผยประโยคลับของคุณให้ใครทราบ"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าสตางค์ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},omni:{qr_code:{step1:{title:"เปิดแอป Omni",description:"เพิ่ม Omni ไปยังหน้าจอแรกเพื่อเข้าถึงกระเป๋าสตางค์ของคุณได้รวดเร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าสตางค์",description:"สร้างกระเป๋าสตางค์ใหม่หรือนำเข้ากระเป๋าสตางค์ที่มีอยู่"},step3:{title:"แตะที่ไอคอน QR แล้วสแกน",description:"แตะที่ไอคอน QR บนหน้าจอหน้าแรกของคุณ, สแกนรหัสและยืนยันการเตือนเพื่อเชื่อมต่อ."}}},token_pocket:{qr_code:{step1:{title:"เปิดแอป TokenPocket",description:"เราแนะนำให้วาง TokenPocket บนหน้าจอหน้าแรกของคุณเพื่อเข้าถึงได้เร็วขึ้น."},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"ตรวจสอบว่าได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้ผู้อื่นทราบในทางใดทางหนึ่ง."},step3:{title:"แตะปุ่มสแกน",description:"หลังจากที่คุณสแกนแล้ว จะมีการเรียกให้เชื่อมต่อกับกระเป๋าเงินของคุณ"}},extension:{step1:{title:"ติดตั้งส่วนขยาย TokenPocket",description:"เราขอแนะนำให้คุณปัก TokenPocket ไว้ที่แถบงานเพื่อทำให้สามารถเข้าถึงกระเป๋าเงินของคุณได้ง่ายขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าเงินของคุณด้วยวิธีที่ปลอดภัย อย่าทำการแชร์ประโยคลับด้วยความลับของคุณกับใคร"},step3:{title:"รีเฟรชบราวเซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชบราวเซอร์และโหลดส่วนขยาย"}}},trust:{qr_code:{step1:{title:"เปิดแอพ Trust Wallet",description:"วาง Trust Wallet ที่หน้าจอหลักของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้รวดเร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"สร้าง wallet ใหม่หรือนำเข้า wallet ที่มีอยู่แล้ว"},step3:{title:"แตะ WalletConnect ในการตั้งค่า",description:"เลือก New Connection จากนั้นสแกน QR code และยืนยันการแจ้งเตือนเพื่อเชื่อมต่อ"}},extension:{step1:{title:"ติดตั้งส่วนขยาย Trust Wallet",description:"คลิกที่มุมบนขวาของเบราว์เซอร์ของคุณและปัก Trust Wallet เพื่อเข้าถึงได้ง่าย"},step2:{title:"สร้างหรือนำเข้า wallet",description:"สร้าง wallet ใหม่หรือนำเข้า wallet ที่มีอยู่แล้ว"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่า Trust Wallet แล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยายขึ้นมา"}}},uniswap:{qr_code:{step1:{title:"เปิดแอป Uniswap",description:"เพิ่ม Uniswap Wallet ไปยังหน้าจอหลักของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"สร้างกระเป๋าเงินใหม่หรือนำเข้ากระเป๋าเงินที่มีอยู่แล้ว"},step3:{title:"แตะที่ไอคอน QR และสแกน",description:"แตะที่ไอคอน QR บนหน้าจอหลักของคุณ สแกนรหัสและยืนยันการเชื่อมต่อ"}}},zerion:{qr_code:{step1:{title:"เปิดแอป Zerion",description:"เราแนะนำให้คุณวาง Zerion บนหน้าจอหลักของคุณเพื่อเข้าถึงได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้า Wallet",description:"ลองทำสำเนาข้อมูล wallet ของคุณไว้ในช่องทางที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้กับผู้อื่น"},step3:{title:"แตะที่ปุ่มสแกน",description:"หลังจากสแกน จะมีหน้าต่างแสดงคำสั่งเชื่อมต่อให้คุณเชื่อมต่อ wallet ของคุณ"}},extension:{step1:{title:"ติดตั้งส่วนขยาย Zerion",description:"เราแนะนำให้คุณติด Zerion บนแถบงานของคุณเพื่อเข้าถึง wallet ของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลกระเป๋าเงินของคุณโดยวิธีที่ปลอดภัย อย่าเปิดเผยประโยคลับลับของคุณให้ใครทราบครับ"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},rainbow:{qr_code:{step1:{title:"เปิดแอป Rainbow",description:"เราขอแนะนำให้คุณวาง Rainbow อยู่บนหน้าจอหลักของคุณเพื่อรับผิดชอบจากกระเป๋าสตางค์ของคุณอย่างรวดเร็ว"},step2:{title:"สร้างหรือนำเข้ากระเป๋าสตางค์",description:"คุณสามารถสำรองข้อมูลกระเป๋าสตางค์ของคุณได้ง่ายๆ ด้วยฟีเจอร์สำรองข้อมูลบนโทรศัพท์ของคุณ"},step3:{title:"แตะปุ่มสแกน",description:"หลังจากสแกนแล้ว จะแสดงข้อความขอเชื่อมต่อเพื่อให้คุณเชื่อมต่อกระเป๋าสตางค์ของคุณ"}}},enkrypt:{extension:{step1:{description:"เราขอแนะนำให้คุณปัก Enkrypt Wallet ไว้ที่แทบงานของคุณเพื่อให้สามารถเข้าถึงกระเป๋าสตางค์ของคุณได้เร็วขึ้น",title:"ติดตั้งส่วนขยาย Enkrypt Wallet"},step2:{description:"ตรวจสอบให้แน่ใจว่าคุณได้สำรองกระเป๋าสตางค์ของคุณโดยใช้วิธีที่ปลอดภัย ห้ามแชร์วลีลับของคุณให้กับใคร",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"เมื่อคุณตั้งค่า wallet ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรช browser และโหลดขึ้น extension",title:"รีเฟรช browser ของคุณ"}}},frame:{extension:{step1:{description:"เราแนะนำให้หมุน Frame ไว้บน taskbar ของคุณเพื่อให้เข้าถึง wallet ได้เร็วขึ้น",title:"ติดตั้ง Frame และ extension ที่เป็นคู่"},step2:{description:"ตรวจสอบว่าได้สำรอง wallet ของคุณโดยใช้วิธีการที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้กับใคร",title:"สร้างหรือนำเข้า Wallet"},step3:{description:"เมื่อคุณตั้งค่า wallet ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรช browser และโหลดขึ้น extension",title:"รีเฟรช browser ของคุณ"}}},one_key:{extension:{step1:{title:"ติดตั้งส่วนเสริม OneKey Wallet",description:"เราแนะนำการปัก OneKey Wallet ไว้บนแทบงานของคุณเพื่อเข้าถึงกระเป๋าเงินได้ง่ายขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"อย่าลืมสำรองกระเป๋าเงินของคุณด้วยวิธีที่ปลอดภัย อย่าแชร์วลีลับของคุณกับใคร"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนเสริม"}}},phantom:{extension:{step1:{title:"ติดตั้งส่วนเสริม Phantom",description:"เราแนะนำการปัก Phantom ไว้บนแทบงานของคุณเพื่อเข้าถึงกระเป๋าเงินได้ง่ายขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"แน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยข้อความลับสำหรับการกู้คืนของคุณกับบุคคลใด ๆ"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินเรียบร้อยแล้ว, คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},rabby:{extension:{step1:{title:"ติดตั้งส่วนขยาย Rabby",description:"เราแนะนำให้คุณปัก Rabby ไว้ที่แถบงานเพื่อให้เข้าถึงกระเป๋าเงินของคุณได้รวดเร็วขึ้น."},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"แน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์ข้อความลับของคุณกับบุคคลอื่น"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},safeheron:{extension:{step1:{title:"ติดตั้งส่วนขยาย Core",description:"เราขอแนะนำให้คุณปัก Safeheron ไว้ที่แถบงานเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"อย่าลืมสำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยประโยคลับของคุณให้ผู้อื่นทราบ"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},taho:{extension:{step1:{title:"ติดตั้งส่วนขยาย Taho",description:"เราแนะนำให้คุณปัก Taho ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"โปรดแน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าแชร์ประโยคลับคุณกับผู้อื่น"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},talisman:{extension:{step1:{title:"ติดตั้งส่วนขยาย Talisman",description:"เราแนะนำให้คุณปัก Talisman ไว้ที่แถบงานของคุณเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน Ethereum",description:"ให้แน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยวลีการกู้คืนของคุณให้ใครทราบเด็ดขาด"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"เมื่อคุณตั้งค่ากระเป๋าเงินของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชเบราว์เซอร์และโหลดส่วนขยาย"}}},xdefi:{extension:{step1:{title:"ติดตั้งส่วนขยาย XDEFI Wallet",description:"เราแนะนำให้คุณตรา XDEFI Wallet ไว้ที่แถบงานเพื่อเข้าถึงกระเป๋าเงินของคุณได้เร็วขึ้น"},step2:{title:"สร้างหรือนำเข้ากระเป๋าเงิน",description:"ให้แน่ใจว่าคุณได้สำรองกระเป๋าเงินของคุณโดยใช้วิธีที่ปลอดภัย อย่าเปิดเผยวลีลับของคุณให้ใครทราบเด็ดขาด"},step3:{title:"รีเฟรชเบราว์เซอร์ของคุณ",description:"หลังจากที่คุณตั้งค่ากระเป๋าสตางค์ของคุณแล้ว คลิกด้านล่างเพื่อรีเฟรชบราวเซอร์และโหลดส่วนเสริม."}}}},Zg={connect_wallet:dou,intro:fou,connect:pou,connect_scan:hou,connector_group:Cou,get:mou,get_options:gou,get_mobile:Aou,get_instructions:you,chains:Bou,profile:vou,wallet_connectors:Fou},Dou={label:"Cüzdanı Bağla"},bou={title:"Cüzdan nedir?",description:"Bir cüzdan, dijital varlıkları göndermek, almak, saklamak ve görüntülemek için kullanılır. Aynı zamanda her web sitesinde yeni hesaplar ve şifreler oluşturmanıza gerek kalmadan oturum açmanın yeni bir yoludur.",digital_asset:{title:"Dijital Varlıklarınız İçin Bir Ev",description:"Cüzdanlar, Ethereum ve NFT'ler gibi dijital varlıkları göndermek, almak, depolamak ve görüntülemek için kullanılır."},login:{title:"Yeni Bir Giriş Yolu",description:"Her web sitesinde yeni hesap ve parolalar oluşturmak yerine, sadece cüzdanınızı bağlayın."},get:{label:"Bir Cüzdan Edinin"},learn_more:{label:"Daha fazla bilgi edinin"}},wou={label:"Bağlan",title:"Bir Cüzdanı Bağla",new_to_ethereum:{description:"Ethereum cüzdanlarına yeni misiniz?",learn_more:{label:"Daha fazla bilgi edinin"}},learn_more:{label:"Daha fazla bilgi edinin"},recent:"Son",status:{opening:"%{wallet}açılıyor...",not_installed:"%{wallet} yüklü değil",not_available:"%{wallet} kullanılabilir değil",confirm:"Bağlantıyı eklentide onaylayın"},secondary_action:{get:{description:"%{wallet}yok mu?",label:"AL"},install:{label:"YÜKLE"},retry:{label:"YENİDEN DENE"}},walletconnect:{description:{full:"Resmi WalletConnect modalına mı ihtiyacınız var?",compact:"WalletConnect modalına mı ihtiyacınız var?"},open:{label:"AÇ"}}},xou={title:"%{wallet}ile tarama yapın",fallback_title:"Telefonunuzla tarama yapın"},kou={recommended:"Tavsiye Edilen",other:"Diğer",popular:"Popüler",more:"Daha Fazla",others:"Diğerleri"},_ou={title:"Bir Cüzdan Edinin",action:{label:"AL"},mobile:{description:"Mobil Cüzdan"},extension:{description:"Tarayıcı Eklentisi"},mobile_and_extension:{description:"Mobil Cüzdan ve Eklenti"},looking_for:{title:"Aradığınız şey bu değil mi?",mobile:{description:"Ana ekranda başka bir cüzdan sağlayıcısıyla başlamak için bir cüzdan seçin."},desktop:{compact_description:"Ana ekranda başka bir cüzdan sağlayıcısıyla başlamak için bir cüzdan seçin.",wide_description:"Başka bir cüzdan sağlayıcısıyla başlamak için sol tarafta bir cüzdan seçin."}}},Sou={title:"%{wallet}ile başlayın",short_title:"%{wallet}Edinin",mobile:{title:"%{wallet} Mobil İçin",description:"Mobil cüzdanı kullanarak Ethereum dünyasını keşfedin.",download:{label:"Uygulamayı alın"}},extension:{title:"%{wallet} için %{browser}",description:"Cüzdanınıza favori web tarayıcınızdan doğrudan erişin.",download:{label:"%{browser}'e ekle"}}},Pou={title:"%{wallet}'i yükleyin",description:"iOS veya Android'de indirmek için telefonunuzla tarayın",continue:{label:"Devam et"}},Tou={mobile:{connect:{label:"Bağlan"},learn_more:{label:"Daha fazla bilgi edinin"}},extension:{refresh:{label:"Yenile"},learn_more:{label:"Daha fazla bilgi edinin"}}},Iou={title:"Ağları Değiştir",wrong_network:"Yanlış ağ algılandı, devam etmek için bağlantıyı kesin veya değiştirin.",confirm:"Cüzdanında Onayla",switching_not_supported:"Cüzdanınız %{appName}. ağları değiştirmeyi desteklemiyor. Bunun yerine cüzdanınızdan ağları değiştirmeyi deneyin.",switching_not_supported_fallback:"Cüzdanınız bu uygulamadan ağları değiştirmeyi desteklemiyor. Bunun yerine cüzdanınızdaki ağları değiştirmeyi deneyin.",disconnect:"Bağlantıyı Kes",connected:"Bağlı"},Oou={disconnect:{label:"Bağlantıyı Kes"},copy_address:{label:"Adresi Kopyala",copied:"Kopyalandı!"},explorer:{label:"Explorer üzerinde daha fazlasını görün"},transactions:{description:"%{appName} işlem burada görünecek...",description_fallback:"İşlemleriniz burada görünecek...",recent:{title:"Son İşlemler"},clear:{label:"Hepsini Temizle"}}},Nou={argent:{qr_code:{step1:{description:"Cüzdanınıza daha hızlı erişim için Argent'i ana ekranınıza koyun.",title:"Argent uygulamasını açın"},step2:{description:"Bir cüzdan ve kullanıcı adı oluşturun veya mevcut bir cüzdanı içe aktarın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Taradıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi görünecektir.",title:"QR tarayıcı düğmesine dokunun"}}},bifrost:{qr_code:{step1:{description:"Daha hızlı erişim için Bifrost Cüzdan'ı ana ekranınıza koymanızı öneririz.",title:"Bifrost Cüzdan uygulamasını açın"},step2:{description:"Kurtarma ifadenizle bir cüzdan oluşturun veya içe aktarın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Tarama işlemi sonrasında, cüzdanınızı bağlamak için bir bağlantı istemi gözükecektir.",title:"Tarayıcı düğmesine dokunun"}}},bitget:{qr_code:{step1:{description:"Daha hızlı erişim için Bitget Cüzdanınızı ana ekranınıza koymanızı öneririz.",title:"Bitget Cüzdan uygulamasını açın"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklemeye emin olun. Gizli ifadenizi asla kimseyle paylaşmayın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Tarama yaptıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi görünecektir.",title:"Tarama düğmesine dokunun"}},extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Bitget Cüzdanını görev çubuğunuza sabitlemenizi öneririz.",title:"Bitget Cüzdan eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklemekten emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Cüzdanınızı kurduktan sonra, aşağıya tıklayın ve tarayıcıyı yenileyin ve eklentiyi yükleyin.",title:"Tarayıcınızı yenileyin"}}},bitski:{extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Bitski'yi görev çubuğunuza sabitlemenizi öneririz.",title:"Bitski eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi kimseyle paylaşmayın.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},coin98:{qr_code:{step1:{description:"Cüzdanınıza daha hızlı erişim için Coin98 Cüzdanınızı ana ekranınıza koymanızı öneririz.",title:"Coin98 Cüzdan uygulamasını açın"},step2:{description:"Telefonunuzdaki yedekleme özelliğimizi kullanarak cüzdanınızı kolayca yedekleyebilirsiniz.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Tarama işlemi yaptıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi görünecektir.",title:"CüzdanBağlantısı düğmesine dokunun"}},extension:{step1:{description:"Tarayıcınızın sağ üst köşesinde tıklayın ve Coin98 Cüzdanınızı kolay erişim için sabitleyin.",title:"Coin98 Cüzdan eklentisini yükleyin"},step2:{description:"Yeni bir cüzdan oluşturun veya mevcut birini içe aktarın.",title:"Bir cüzdan oluşturun veya içe aktarın"},step3:{description:"Coin98 Cüzdan'ı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},coinbase:{qr_code:{step1:{description:"Coinbase Cüzdan'ı ana ekranınıza koymanızı öneririz, böylece daha hızlı erişim sağlanır.",title:"Coinbase Wallet uygulamasını açın"},step2:{description:"Cüzdanınızı bulut yedekleme özelliğini kullanarak kolayca yedekleyebilirsiniz.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Tarama yaptıktan sonra, cüzdanınızı bağlamanız için bir bağlantı istemi belirecektir.",title:"Tarama düğmesine dokunun"}},extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Coinbase Wallet'ı görev çubuğunuza sabitlemenizi öneririz.",title:"Coinbase Wallet uzantısını yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedekleyin. Gizli ifadenizi asla başkalarıyla paylaşmayın.",title:"Cüzdan Oluştur veya İçe Aktar"},step3:{description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},core:{qr_code:{step1:{description:"Cüzdanınıza daha hızlı erişim için Core'u ana ekranınıza koymanızı öneririz.",title:"Core uygulamasını açın"},step2:{description:"Cüzdanınızın yedeğini telefonunuzda bulunan yedekleme özelliğimizi kullanarak kolayca alabilirsiniz.",title:"Cüzdan Oluştur veya İçe Aktar"},step3:{description:"Tarama yaptıktan sonra, cüzdanınızı bağlamak üzere bir bağlantı istemi görünecektir.",title:"WalletConnect düğmesine dokunun"}},extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Core'u görev çubuğunuza sabitlemenizi öneririz.",title:"Core eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklemeye dikkat edin. Gizli ifadenizi asla kimseyle paylaşmayın.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Cüzdanınızı kurduktan sonra, aşağıya tıklayarak tarayıcıyı yenileyin ve eklentiyi yükleyin.",title:"Tarayıcınızı yenileyin"}}},fox:{qr_code:{step1:{description:"Daha hızlı erişim için FoxWallet'ı ana ekranınıza koymanızı öneririz.",title:"FoxWallet uygulamasını açın"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi asla kimseyle paylaşmayın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Tarama yaptıktan sonra cüzdanınızı bağlamanız için bir bağlantı istemi belirecektir.",title:"Tarama düğmesine dokunun"}}},frontier:{qr_code:{step1:{description:"Daha hızlı erişim için Frontier Cüzdanını ana ekranınıza koymanızı öneririz.",title:"Frontier Cüzdan uygulamasını açın"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi asla kimseyle paylaşmayın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Taramadan sonra, cüzdanınızı bağlamak için bir bağlantı istemi görünecektir.",title:"Tarama düğmesine dokunun"}},extension:{step1:{description:"Cüzdanınıza daha hızlı erişim için Frontier Cüzdanını görev çubuğunuza sabitlemenizi öneririz.",title:"Frontier Cüzdan eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın.",title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar"},step3:{description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemeye ve eklentiyi yüklemeye başlamak için aşağıya tıklayın.",title:"Tarayıcınızı Yenileyin"}}},im_token:{qr_code:{step1:{title:"imToken uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için imToken uygulamasını ana ekranınıza koyun."},step2:{title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar",description:"Yeni bir cüzdan oluşturun veya mevcut bir cüzdanı içe aktarın."},step3:{title:"Sağ üst köşede Tarayıcı Simgesine dokunun",description:"Yeni Bağlantı'yı seçin, ardından QR kodunu tarayın ve bağlantıyı onaylamak için istemi onaylayın."}}},metamask:{qr_code:{step1:{title:"MetaMask uygulamasını açın",description:"Daha hızlı erişim için MetaMask'ı ana ekranınıza koymanızı öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedekleyin. Gizli kurtarma ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarama düğmesine dokunun",description:"Taramayı yaptıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi belirecektir."}},extension:{step1:{title:"MetaMask eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için MetaMask'i görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı Yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},okx:{qr_code:{step1:{title:"OKX Wallet uygulamasını açın",description:"Daha hızlı erişim için OKX Wallet'ı ana ekranınıza koymanızı öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli cümlenizi asla kimseyle paylaşmayın."},step3:{title:"Tarama düğmesine dokunun",description:"Tarama yaptıktan sonra, cüzdanınızı bağlama istemi görünecektir."}},extension:{step1:{title:"OKX Cüzdan eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için OKX Cüzdan'ı görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli cümlenizi asla kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},omni:{qr_code:{step1:{title:"Omni uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için Omni'yi ana ekranınıza ekleyin."},step2:{title:"Bir Cüzdan Oluşturun ya da İçe Aktarın",description:"Yeni bir cüzdan oluşturun veya mevcut birini içe aktarın."},step3:{title:"QR simgesine dokunun ve tarayın",description:"Ana ekranınızdaki QR simgesine dokunun, kodu tarayın ve bağlanmak için istemi onaylayın."}}},token_pocket:{qr_code:{step1:{title:"TokenPocket uygulamasını açın",description:"Daha hızlı erişim için TokenPocket'ı ana ekranınıza koymanızı öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya Cüzdanı İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedekleyin. Gizli ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarama düğmesine dokunun",description:"Taramayı yaptıktan sonra, cüzdanınızı bağlamak için bir bağlantı istemi belirecektir."}},extension:{step1:{title:"TokenPocket eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için TokenPocket'i görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli cümlenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemekte ve eklentiyi yüklemek için aşağıya tıklayın."}}},trust:{qr_code:{step1:{title:"Trust Wallet uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için Trust Wallet'ı ana ekranınıza koyun."},step2:{title:"Cüzdan Oluştur veya Cüzdanı İçe Aktar",description:"Yeni bir cüzdan oluşturun veya mevcut bir tane içe aktarın."},step3:{title:"Ayarlar'da WalletConnect'e dokunun",description:"Yeni Bağlantı'yı seçin, ardından QR kodunu tarayın ve bağlanmak için istemi onaylayın."}},extension:{step1:{title:"Trust Wallet eklentisini yükleyin",description:"Tarayıcınızın sağ üst köşesine tıklayın ve kolay erişim için Trust Wallet'i sabitleyin."},step2:{title:"Bir cüzdan oluşturun veya içe aktarın",description:"Yeni bir cüzdan oluşturun veya mevcut bir tane içe aktarın."},step3:{title:"Tarayıcınızı yenileyin",description:"Trust Wallet'ı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},uniswap:{qr_code:{step1:{title:"Uniswap uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için Uniswap Cüzdanınızı ana ekranınıza ekleyin."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Yeni bir cüzdan oluşturun veya mevcut birini içe aktarın."},step3:{title:"QR ikonuna dokunun ve tarama yapın",description:"Ana ekranınızdaki QR simgesine dokunun, kodu tarayın ve bağlanmayı onaylamak için istemi kabul edin."}}},zerion:{qr_code:{step1:{title:"Zerion uygulamasını açın",description:"Daha hızlı erişim için Zerion'un ana ekranınıza konumlandırmanızı öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedekleyin. Gizli ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarama düğmesine basın",description:"Taramadan sonra, cüzdanınızı bağlamak için bir bağlantı istemi belirecektir."}},extension:{step1:{title:"Zerion eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için Zerion'u görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklemeye emin olun. Gizli ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},rainbow:{qr_code:{step1:{title:"Rainbow uygulamasını açın",description:"Cüzdanınıza daha hızlı erişim için Rainbow'u ana ekranınıza koymanızı öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Telefonunuzdaki yedekleme özelliğimizi kullanarak cüzdanınızı kolayca yedekleyebilirsiniz."},step3:{title:"Tarama düğmesine dokunun",description:"Tarama yaptıktan sonra, cüzdanınızı bağlamanız için bir bağlantı istemi belirecektir."}}},enkrypt:{extension:{step1:{description:"Cüzdanınıza daha hızlı erişim sağlamak için Enkrypt Cüzdan'ı görev çubuğunuza sabitlemenizi öneririz.",title:"Enkrypt Cüzdan eklentisini yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın.",title:"Bir Cüzdan Oluşturun veya İçe Aktarın"},step3:{description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},frame:{extension:{step1:{description:"Cüzdanınıza daha hızlı erişim sağlamak için Frame'ı görev çubuğunuza sabitlemenizi öneririz.",title:"Frame ve eşlik eden uzantıyı yükleyin"},step2:{description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi asla başkasıyla paylaşmayın.",title:"Cüzdan Oluştur veya İçe Aktar"},step3:{description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve uzantıyı yüklemek için aşağıya tıklayın.",title:"Tarayıcınızı yenileyin"}}},one_key:{extension:{step1:{title:"OneKey Wallet uzantısını yükleyin",description:"Cüzdanınıza daha hızlı erişim için OneKey Wallet'ı görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli ifadenizi kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},phantom:{extension:{step1:{title:"Phantom eklentisini yükleyin",description:"Cüzdanınıza daha kolay erişim sağlamak için Phantom'u görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntem kullanarak yedeklediğinizden emin olun. Gizli kurtarma ifadenizi kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},rabby:{extension:{step1:{title:"Rabby eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için Rabby'yi görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi asla başkalarıyla paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı kurduktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıdaki düğmeye tıklayın."}}},safeheron:{extension:{step1:{title:"Core eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için Safeheron'u görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Cüzdan Oluştur veya İçe Aktar",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},taho:{extension:{step1:{title:"Taho uzantısını yükleyin",description:"Cüzdanınıza daha hızlı erişim için Taho'yu görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},talisman:{extension:{step1:{title:"Talisman eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için Talisman'ı görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Ethereum Cüzdanı Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Kurtarma ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}},xdefi:{extension:{step1:{title:"XDEFI Cüzdan eklentisini yükleyin",description:"Cüzdanınıza daha hızlı erişim için XDEFI Wallet'ı görev çubuğunuza sabitlemenizi öneririz."},step2:{title:"Bir Cüzdan Oluşturun veya İçe Aktarın",description:"Cüzdanınızı güvenli bir yöntemle yedeklediğinizden emin olun. Gizli ifadenizi hiç kimseyle paylaşmayın."},step3:{title:"Tarayıcınızı yenileyin",description:"Cüzdanınızı ayarladıktan sonra, tarayıcıyı yenilemek ve eklentiyi yüklemek için aşağıya tıklayın."}}}},uA={connect_wallet:Dou,intro:bou,connect:wou,connect_scan:xou,connector_group:kou,get:_ou,get_options:Sou,get_mobile:Pou,get_instructions:Tou,chains:Iou,profile:Oou,wallet_connectors:Nou},Rou={label:"连接钱包"},jou={title:"什么是钱包?",description:"钱包用于发送、接收、存储和显示数字资产。它也是一种新型的登录方式,无需在每个网站上创建新账户和密码。",digital_asset:{title:"您的数字资产之家",description:"钱包用于发送、接收、存储和显示像以太坊和NFT这样的数字资产。"},login:{title:"一种新的登录方式",description:"而不是在每个网站上创建新的账户和密码,只需连接您的钱包。"},get:{label:"获取钱包"},learn_more:{label:"了解更多"}},zou={label:"连接",title:"连接钱包",new_to_ethereum:{description:"对以太坊钱包不熟悉?",learn_more:{label:"了解更多"}},learn_more:{label:"了解更多"},recent:"近期",status:{opening:"正在打开 %{wallet}...",not_installed:"%{wallet} 尚未安装",not_available:"%{wallet} 不可用",confirm:"在扩展中确认连接"},secondary_action:{get:{description:"没有 %{wallet}吗?",label:"获取"},install:{label:"安装"},retry:{label:"重试"}},walletconnect:{description:{full:"需要官方的 WalletConnect 弹窗吗?",compact:"需要 WalletConnect 弹窗吗?"},open:{label:"打开"}}},Mou={title:"使用 %{wallet}扫描",fallback_title:"使用您的手机扫描"},Uou={recommended:"推荐",other:"其他",popular:"流行",more:"更多",others:"其他的"},Lou={title:"获取一个钱包",action:{label:"获取"},mobile:{description:"移动钱包"},extension:{description:"浏览器扩展"},mobile_and_extension:{description:"移动钱包和扩展"},looking_for:{title:"不是你要找的吗?",mobile:{description:"在主屏幕上选择一个钱包,以开始使用不同的钱包提供商。"},desktop:{compact_description:"在主屏幕上选择一个钱包,以开始使用不同的钱包提供商。",wide_description:"在左侧选择一个钱包,以开始使用不同的钱包提供商。"}}},$ou={title:"开始使用 %{wallet}",short_title:"获取 %{wallet}",mobile:{title:"%{wallet} 用于移动",description:"使用移动钱包探索以太坊的世界。",download:{label:"获取应用"}},extension:{title:"%{wallet} 为 %{browser}",description:"从您最喜欢的网络浏览器直接访问您的钱包。",download:{label:"添加到 %{browser}"}}},Wou={title:"安装 %{wallet}",description:"用手机扫描下载 iOS 或 Android",continue:{label:"继续"}},qou={mobile:{connect:{label:"连接"},learn_more:{label:"了解更多"}},extension:{refresh:{label:"刷新"},learn_more:{label:"了解更多"}}},Hou={title:"切换网络",wrong_network:"检测到错误的网络,请切换或断开连接以继续。",confirm:"在钱包中确认",switching_not_supported:"您的钱包不支持从 %{appName}切换网络。请尝试从您的钱包内部切换网络。",switching_not_supported_fallback:"您的钱包不支持从此应用切换网络。尝试从您的钱包内切换网络。",disconnect:"断开连接",connected:"已连接"},Gou={disconnect:{label:"断开连接"},copy_address:{label:"复制地址",copied:"已复制!"},explorer:{label:"在浏览器上查看更多"},transactions:{description:"%{appName} 交易将会出现在这里...",description_fallback:"您的交易将会出现在这里...",recent:{title:"最近交易"},clear:{label:"清除全部"}}},Kou={argent:{qr_code:{step1:{description:"将 Argent 放到您的主屏幕上,以便更快地访问您的钱包。",title:"打开 Argent 应用"},step2:{description:"创建钱包和用户名,或导入现有钱包。",title:"创建或导入钱包"},step3:{description:"在您扫描后,将出现连接提示,供您连接您的钱包。",title:"点击扫描二维码按钮"}}},bifrost:{qr_code:{step1:{description:"我们建议将Bifrost Wallet放在您的主屏幕上,以便更快地访问。",title:"打开 Bifrost Wallet 应用"},step2:{description:"使用恢复短语创建或导入钱包。",title:"创建或导入钱包"},step3:{description:"在您扫描后,将出现连接提示,供您连接您的钱包。",title:"点击扫描按钮"}}},bitget:{qr_code:{step1:{description:"我们建议您将Bitget钱包添加到主屏幕,以便更快地访问。",title:"打开Bitget钱包应用程序"},step2:{description:"务必使用安全的方法备份您的钱包。决不与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现一个连接提示,供您连接您的钱包。",title:"点击扫描按钮"}},extension:{step1:{description:"我们建议您将Bitget钱包固定在任务栏,以便更快地访问您的钱包。",title:"安装Bitget Wallet扩展"},step2:{description:"确保使用安全的方式备份您的钱包。绝不与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置钱包后,点击下方刷新浏览器并加载扩展。",title:"刷新您的浏览器"}}},bitski:{extension:{step1:{description:"我们建议您将Bitski固定在任务栏上,以便更快地访问您的钱包。",title:"安装Bitski扩展"},step2:{description:"请确保用安全的方法备份您的钱包。绝不与任何人共享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置完您的钱包后,点击下方以刷新浏览器并加载扩展程序。",title:"刷新您的浏览器"}}},coin98:{qr_code:{step1:{description:"我们建议将Coin98钱包放在您的主屏幕上,以便更快地访问您的钱包。",title:"打开Coin98钱包应用程序"},step2:{description:"您可以使用我们的手机上的备份功能轻松备份您的钱包。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现一个连接提示,让您连接您的钱包。",title:"点击WalletConnect按钮"}},extension:{step1:{description:"点击浏览器右上角并固定Coin98钱包,以便轻松访问。",title:"安装Coin98钱包扩展"},step2:{description:"创建新钱包或导入现有钱包。",title:"创建或导入钱包。"},step3:{description:"设置完成Coin98 钱包后,单击下方以刷新浏览器并加载扩展程序。",title:"刷新您的浏览器"}}},coinbase:{qr_code:{step1:{description:"我们建议您把Coinbase钱包放到主屏幕上,以便更快地访问。",title:"打开Coinbase钱包应用"},step2:{description:"您可以轻松地使用云备份功能备份您的钱包。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现连接提示,供您连接您的钱包。",title:"点击扫描按钮"}},extension:{step1:{description:"我们建议您将Coinbase钱包固定在任务栏上,以便更快地访问您的钱包。",title:"安装Coinbase钱包扩展"},step2:{description:"务必使用安全的方法备份您的钱包。永远不要与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置好钱包后,点击下方以刷新浏览器并加载扩展。",title:"刷新您的浏览器"}}},core:{qr_code:{step1:{description:"我们建议您将Core添加到主屏幕,以便更快地访问您的钱包。",title:"打开Core应用程序"},step2:{description:"您可以使用我们的手机备份功能轻松备份您的钱包。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现连接提示,让您连接您的钱包。",title:"点击WalletConnect按钮"}},extension:{step1:{description:"我们建议将 Core 固定到任务栏,以便更快地访问您的钱包。",title:"安装 Core 扩展"},step2:{description:"一定要使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置好钱包后,点击下方以刷新浏览器并加载扩展。",title:"刷新你的浏览器"}}},fox:{qr_code:{step1:{description:"我们建议您将 FoxWallet 放到主屏幕上,以便更快的访问。",title:"打开 FoxWallet 应用"},step2:{description:"确保使用安全的方法备份您的钱包。永远不要与任何人共享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现连接提示,让您连接您的钱包。",title:"点击扫描按钮"}}},frontier:{qr_code:{step1:{description:"我们建议将 Frontier 钱包放在您的主屏幕上,以便更快地访问。",title:"打开 Frontier 钱包应用"},step2:{description:"确保使用安全的方法备份您的钱包。永远不要与任何人共享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"扫描后,将出现连接提示,让您连接您的钱包。",title:"点击扫描按钮"}},extension:{step1:{description:"我们建议您将Frontier钱包固定到任务栏,以便更快地访问您的钱包。",title:"安装Frontier钱包扩展"},step2:{description:"确保使用安全的方法备份您的钱包。永远不要与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置完成钱包后,点击下方刷新浏览器并加载扩展。",title:"刷新你的浏览器"}}},im_token:{qr_code:{step1:{title:"打开imToken应用",description:"将imToken应用放在您的主屏幕上,以更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"创建新钱包或导入已有的钱包。"},step3:{title:"点击右上角的扫描图标",description:"选择新连接,然后扫描二维码并确认提示以进行连接。"}}},metamask:{qr_code:{step1:{title:"打开 MetaMask 应用",description:"我们建议将 MetaMask 放在您的主屏幕上,以便更快地访问。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。永远不要与任何人分享你的秘密短语。"},step3:{title:"点击扫描按钮",description:"扫描后,将出现连接提示,以便你连接你的钱包。"}},extension:{step1:{title:"安装 MetaMask 扩展",description:"我们建议将MetaMask固定在您的任务栏上,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"请务必使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"一旦您设置好您的钱包,点击下面刷新浏览器并加载扩展。"}}},okx:{qr_code:{step1:{title:"打开OKX钱包应用程序",description:"我们建议将OKX钱包放在您的主屏幕上,以便更快地访问。"},step2:{title:"创建或导入钱包",description:"务必使用安全的方法备份您的钱包。千万不要与任何人分享您的秘密短语。"},step3:{title:"点击扫描按钮",description:"扫描后,将出现一个连接提示,让您连接您的钱包。"}},extension:{step1:{title:"安装 OKX 钱包扩展",description:"我们建议将 OKX 钱包固定到您的任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"务必使用安全的方法备份您的钱包。千万不要与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"一旦你设置好你的钱包,点击下方刷新浏览器并加载扩展。"}}},omni:{qr_code:{step1:{title:"打开Omni应用",description:"将Omni添加到你的主屏幕,以便更快地访问你的钱包。"},step2:{title:"创建或导入钱包",description:"创建新的钱包或导入现有的钱包。"},step3:{title:"点击QR图标并扫描",description:"点击首页的二维码图标,扫描代码并确认提示以连接。"}}},token_pocket:{qr_code:{step1:{title:"打开TokenPocket应用",description:"我们建议将TokenPocket放在您的主屏幕上以便更快的访问。"},step2:{title:"创建或导入钱包",description:"一定要使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"点击扫描按钮",description:"扫描后,将出现连接提示,供您连接钱包。"}},extension:{step1:{title:"安装TokenPocket扩展",description:"我们建议将TokenPocket固定到任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入一个钱包",description:"一定要使用安全的方法备份您的钱包。绝对不要与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下面刷新浏览器并加载扩展。"}}},trust:{qr_code:{step1:{title:"打开Trust Wallet应用",description:"将Trust Wallet放在主屏幕上,以便更快地访问您的钱包。"},step2:{title:"创建或导入一个钱包",description:"创建新的钱包或导入现有的钱包。"},step3:{title:"在设置中点击WalletConnect",description:"选择新的连接,然后扫描二维码并确认提示以进行连接。"}},extension:{step1:{title:"安装Trust Wallet扩展程序",description:"在浏览器的右上角点击并固定Trust Wallet以便于访问。"},step2:{title:"创建或导入钱包",description:"创建新的钱包或导入现有的钱包。"},step3:{title:"刷新您的浏览器",description:"设置Trust Wallet后,点击下面以刷新浏览器并加载扩展程序。"}}},uniswap:{qr_code:{step1:{title:"打开Uniswap应用",description:"将Uniswap钱包添加到您的主屏幕,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"创建新钱包或导入现有钱包。"},step3:{title:"点击QR图标并扫描",description:"在您的主屏幕上点击QR图标,扫描代码并确认提示以进行连接。"}}},zerion:{qr_code:{step1:{title:"打开Zerion应用",description:"我们建议将Zerion放在您的主屏幕上以便更快地访问。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方式备份你的钱包。绝对不要与任何人分享你的私人密语。"},step3:{title:"点击扫描按钮",description:"你扫描后,会出现一个连接提示让你连接你的钱包。"}},extension:{step1:{title:"安装 Zerion 扩展",description:"我们建议将 Zerion 固定在你的任务栏以便更快访问你的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份你的钱包。永远不要与任何人分享你的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置您的钱包后,点击下面以刷新浏览器并加载扩展程序。"}}},rainbow:{qr_code:{step1:{title:"打开 Rainbow 应用",description:"我们建议将 Rainbow 放在您的主屏幕上,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"您可以使用我们的备份功能在您的手机上轻松备份你的钱包。"},step3:{title:"点击扫描按钮",description:"扫描后,将出现连接提示,让您连接您的钱包。"}}},enkrypt:{extension:{step1:{description:"我们建议将Enkrypt Wallet固定到任务栏,以便更快地访问您的钱包。",title:"安装Enkrypt Wallet扩展"},step2:{description:"请确保使用安全方法备份您的钱包。永远不要与任何人分享您的秘密短语。",title:"创建钱包或导入钱包"},step3:{description:"设置钱包后,点击下面刷新浏览器并加载扩展。",title:"刷新您的浏览器"}}},frame:{extension:{step1:{description:"我们建议将Frame固定到任务栏,以便更快地访问您的钱包。",title:"安装Frame及其配套扩展"},step2:{description:"务必使用安全的方法备份您的钱包。决不与任何人分享您的秘密短语。",title:"创建或导入钱包"},step3:{description:"设置钱包后,点击下方以刷新浏览器并加载扩展。",title:"刷新你的浏览器"}}},one_key:{extension:{step1:{title:"安装OneKey Wallet扩展",description:"我们建议将OneKey Wallet固定到任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},phantom:{extension:{step1:{title:"安装 Phantom 扩展程序",description:"我们建议将 Phantom 固定到您的任务栏,以便更容易访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。切勿与任何人分享您的秘密恢复短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},rabby:{extension:{step1:{title:"安装 Rabby 扩展程序",description:"我们建议将 Rabby 固定在您的任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"一定要使用安全的方法备份您的钱包。切勿与任何人分享您的密钥短语。"},step3:{title:"刷新您的浏览器",description:"一旦您设置好您的钱包,点击以下以刷新浏览器并加载扩展程序。"}}},safeheron:{extension:{step1:{title:"安装 Core 扩展",description:"我们建议将 Safeheron 固定在您的任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},taho:{extension:{step1:{title:"安装Taho扩展程序",description:"我们建议将Taho固定在您的任务栏上,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。切勿与任何人分享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},talisman:{extension:{step1:{title:"安装 Talisman 扩展程序",description:"我们建议将 Talisman 固定在任务栏上,以便更快地访问您的钱包。"},step2:{title:"创建或导入以太坊钱包",description:"确保使用安全的方法备份您的钱包。永远不要与任何人分享您的恢复短语。"},step3:{title:"刷新您的浏览器",description:"设置好您的钱包后,点击下方以刷新浏览器并加载扩展程序。"}}},xdefi:{extension:{step1:{title:"安装 XDEFI 钱包扩展程序",description:"我们建议将XDEFI钱包固定到您的任务栏,以便更快地访问您的钱包。"},step2:{title:"创建或导入钱包",description:"确保使用安全的方法备份您的钱包。永远不要与任何人共享您的秘密短语。"},step3:{title:"刷新您的浏览器",description:"一旦你设置好你的钱包,点击下面刷新浏览器和加载扩展。"}}}},eA={connect_wallet:Rou,intro:jou,connect:zou,connect_scan:Mou,connector_group:Uou,get:Lou,get_options:$ou,get_mobile:Wou,get_instructions:qou,chains:Hou,profile:Gou,wallet_connectors:Kou},Zi=new yD.I18n({ar:Wg,"ar-AR":Wg,en:qg,"en-US":qg,es:Hg,"es-419":Hg,fr:Gg,"fr-FR":Gg,hi:Kg,"hi-IN":Kg,id:Qg,"id-ID":Qg,ja:Vg,"ja-JP":Vg,ko:Jg,"ko-KR":Jg,pt:Yg,"pt-BR":Yg,ru:Xg,"ru-RU":Xg,th:Zg,"th-TH":Zg,tr:uA,"tr-TR":uA,zh:eA,"zh-CN":eA});Zi.defaultLocale="en-US";Zi.locale="en-US";Zi.enableFallback=!0;var Qou=()=>{var u;if(typeof window<"u"&&typeof navigator<"u"){if((u=navigator.languages)!=null&&u.length)return navigator.languages[0];if(navigator.language)return navigator.language}},i0=M.createContext(Zi),Vou=({children:u,locale:e})=>{const t=M.useMemo(()=>Qou(),[]),n=M.useMemo(()=>(e?Zi.locale=e:!e&&t&&(Zi.locale=t),Zi),[e,t]);return b.createElement(i0.Provider,{value:n},u)};function q5(u){return u!=null}var tA={iconBackground:"#96bedc",iconUrl:async()=>(await qu(()=>import("./arbitrum-LYDBJZP3-eb03435b.js"),[])).default},nA={iconBackground:"#e84141",iconUrl:async()=>(await qu(()=>import("./avalanche-TFPKP544-83c89fd5.js"),[])).default},rA={iconBackground:"#0052ff",iconUrl:async()=>(await qu(()=>import("./base-3MIUIYGA-d99275a3.js"),[])).default},iA={iconBackground:"#ebac0e",iconUrl:async()=>(await qu(()=>import("./bsc-S2GSW6VX-05341716.js"),[])).default},aA={iconBackground:"#002D74",iconUrl:async()=>(await qu(()=>import("./cronos-DQKKIEX7-67e88155.js"),[])).default},cr={iconBackground:"#484c50",iconUrl:async()=>(await qu(()=>import("./ethereum-4FY57XJF-20f89eb8.js"),[])).default},Jou={iconBackground:"#f9f7ec",iconUrl:async()=>(await qu(()=>import("./hardhat-ARRFHFKB-687e462a.js"),[])).default},A1={iconBackground:"#ff5a57",iconUrl:async()=>(await qu(()=>import("./optimism-UUP5Y7TB-96a3957f.js"),[])).default},oA={iconBackground:"#9f71ec",iconUrl:async()=>(await qu(()=>import("./polygon-Z4QITDL7-953b4259.js"),[])).default},sA={iconBackground:"#000000",iconUrl:async()=>(await qu(()=>import("./zora-KVO7WIOK-bf3eb886.js"),[])).default},lA={iconBackground:"#f9f7ec",iconUrl:async()=>(await qu(()=>import("./zkSync-XRUC4ZHO-c03c3379.js"),[])).default},You={arbitrum:{chainId:42161,name:"Arbitrum",...tA},arbitrumGoerli:{chainId:421613,...tA},avalanche:{chainId:43114,...nA},avalancheFuji:{chainId:43113,...nA},base:{chainId:8453,name:"Base",...rA},baseGoerli:{chainId:84531,...rA},bsc:{chainId:56,name:"BSC",...iA},bscTestnet:{chainId:97,...iA},cronos:{chainId:25,...aA},cronosTestnet:{chainId:338,...aA},goerli:{chainId:5,...cr},hardhat:{chainId:31337,...Jou},holesky:{chainId:17e3,...cr},kovan:{chainId:42,...cr},localhost:{chainId:1337,...cr},mainnet:{chainId:1,name:"Ethereum",...cr},optimism:{chainId:10,name:"Optimism",...A1},optimismGoerli:{chainId:420,...A1},optimismKovan:{chainId:69,...A1},polygon:{chainId:137,name:"Polygon",...oA},polygonMumbai:{chainId:80001,...oA},rinkeby:{chainId:4,...cr},ropsten:{chainId:3,...cr},sepolia:{chainId:11155111,...cr},zora:{chainId:7777777,name:"Zora",...sA},zoraTestnet:{chainId:999,...sA},zkSync:{chainId:324,name:"zkSync",...lA},zkSyncTestnet:{chainId:280,...lA}},Xou=Object.fromEntries(Object.values(You).filter(q5).map(({chainId:u,...e})=>[u,e])),Zou=u=>u.map(e=>{var t,n,r,i;const a=(t=Xou[e.id])!=null?t:{};return{...e,name:(n=a.name)!=null?n:e.name,iconUrl:(r=e.iconUrl)!=null?r:a.iconUrl,iconBackground:(i=e.iconBackground)!=null?i:a.iconBackground}}),H5=M.createContext({chains:[]});function usu({chains:u,children:e,initialChain:t}){return b.createElement(H5.Provider,{value:M.useMemo(()=>({chains:Zou(u),initialChainId:typeof t=="number"?t:t==null?void 0:t.id}),[u,t])},e)}var Hl=()=>M.useContext(H5).chains,esu=()=>M.useContext(H5).initialChainId,tsu=()=>{const u=Hl();return M.useMemo(()=>{const e={};return u.forEach(t=>{e[t.id]=t}),e},[u])},nsu=()=>{const[u,e]=M.useReducer(()=>!0,!1);return M.useEffect(e,[e]),u};function hw(){const u=l5.id,e=Rl(),t=Array.isArray(e.chains)?e.chains:[],n=t==null?void 0:t.some(r=>(r==null?void 0:r.id)===u);return{chainId:u,enabled:n}}function Cw(u){const{chainId:e,enabled:t}=hw(),{data:n}=uM({chainId:e,enabled:t,name:u});return n}function mw(u){const{chainId:e,enabled:t}=hw(),{data:n}=nM({address:u,chainId:e,enabled:t});return n}function G5(){var u;const{chain:e}=ga();return(u=e==null?void 0:e.id)!=null?u:null}var gw="rk-transactions";function rsu(u){try{const e=u?JSON.parse(u):{};return typeof e=="object"?e:{}}catch{return{}}}function cA(){return rsu(typeof localStorage<"u"?localStorage.getItem(gw):null)}var isu=/^0x([A-Fa-f0-9]{64})$/;function asu(u){const e=[];return isu.test(u.hash)||e.push("Invalid transaction hash"),typeof u.description!="string"&&e.push("Transaction must have a description"),typeof u.confirmations<"u"&&(!Number.isInteger(u.confirmations)||u.confirmations<1)&&e.push("Transaction confirmations must be a positiver integer"),e}function osu({provider:u}){let e=cA(),t=u;const n=new Set,r=new Map;function i(h){t=h}function a(h,B){var g,m;return(m=(g=e[h])==null?void 0:g[B])!=null?m:[]}function o(h,B,g){const m=asu(g);if(m.length>0)throw new Error(["Unable to add transaction",...m].join(` +`));E(h,B,y=>[{...g,status:"pending"},...y.filter(({hash:v})=>v!==g.hash)])}function s(h,B){E(h,B,()=>[])}function l(h,B,g,m){E(h,B,y=>y.map(v=>v.hash===g?{...v,status:m}:v))}async function c(h,B){await Promise.all(a(h,B).filter(g=>g.status==="pending").map(async g=>{const{confirmations:m,hash:y}=g,v=r.get(y);if(v)return await v;const w=t.waitForTransactionReceipt({confirmations:m,hash:y}).then(({status:D})=>{r.delete(y),D!==void 0&&l(h,B,y,D===0||D==="reverted"?"failed":"confirmed")});return r.set(y,w),await w}))}function E(h,B,g){var m,y;e=cA(),e[h]=(m=e[h])!=null?m:{};let v=0;const w=10,D=g((y=e[h][B])!=null?y:[]).filter(({status:p})=>p==="pending"?!0:v++<=w);e[h][B]=D.length>0?D:void 0,d(),f(),c(h,B)}function d(){localStorage.setItem(gw,JSON.stringify(e))}function f(){n.forEach(h=>h())}function C(h){return n.add(h),()=>{n.delete(h)}}return{addTransaction:o,clearTransactions:s,getTransactions:a,onChange:C,setProvider:i,waitForPendingTransactions:c}}var y1,Aw=M.createContext(null);function ssu({children:u}){const e=Rl(),{address:t}=Q0(),n=G5(),[r]=M.useState(()=>y1??(y1=osu({provider:e})));return M.useEffect(()=>{r.setProvider(e)},[r,e]),M.useEffect(()=>{t&&n&&r.waitForPendingTransactions(t,n)},[r,t,n]),b.createElement(Aw.Provider,{value:r},u)}function yw(){const u=M.useContext(Aw);if(!u)throw new Error("Transaction hooks must be used within RainbowKitProvider");return u}function Bw(){const u=yw(),{address:e}=Q0(),t=G5(),[n,r]=M.useState(()=>u&&e&&t?u.getTransactions(e,t):[]);return M.useEffect(()=>{if(u&&e&&t)return r(u.getTransactions(e,t)),u.onChange(()=>{r(u.getTransactions(e,t))})},[u,e,t]),n}var EA=u=>typeof u=="function"?u():u;function lsu(u,{extends:e}={}){const t={...Rg(Ug,EA(u))};if(!e)return t;const n=Rg(Ug,EA(e));return Object.fromEntries(Object.entries(t).filter(([i,a])=>a!==n[i]))}function dA(u,e={}){return Object.entries(lsu(u,e)).map(([t,n])=>`${t}:${n.replace(/[:;{}]/g,"")};`).join("")}var vw=()=>{const[u,e]=M.useState({height:void 0,width:void 0});return M.useEffect(()=>{function t(){e({height:window.innerHeight,width:window.innerWidth})}return window.addEventListener("resize",t),t(),()=>window.removeEventListener("resize",t)},[]),u},Fw={appName:void 0,disclaimer:void 0,learnMoreUrl:"https://learn.rainbow.me/understanding-web3?utm_source=rainbowkit&utm_campaign=learnmore"},n4=M.createContext(Fw),Dw=M.createContext(!1),$3={COMPACT:"compact",WIDE:"wide"},Hd=M.createContext($3.WIDE),K5=M.createContext(!1),csu="rk-version";function Esu({version:u}){localStorage.setItem(csu,u)}function dsu(){const u=M.useCallback(()=>{Esu({version:"1.1.3"})},[]);M.useEffect(()=>{u()},[u])}function fsu(u){const e=[];for(const t of u)e.push(...t);return e}function psu(u,e){const t={};return u.forEach(n=>{const r=e(n);r&&(t[r]=n)}),t}function Q5(){return typeof navigator<"u"&&/Version\/([0-9._]+).*Safari/.test(navigator.userAgent)}function hsu(){return typeof document<"u"&&getComputedStyle(document.body).getPropertyValue("--arc-palette-focus")!==""}function V5(){var u;if(typeof navigator>"u")return"Browser";const e=navigator.userAgent.toLowerCase();return(u=navigator.brave)!=null&&u.isBrave?"Brave":e.indexOf("edg/")>-1?"Edge":e.indexOf("op")>-1?"Opera":hsu()?"Arc":e.indexOf("chrome")>-1?"Chrome":e.indexOf("firefox")>-1?"Firefox":Q5()?"Safari":"Browser"}var Csu=u=>{var e,t,n,r,i,a,o,s,l,c,E,d;const f=V5();return(d={Arc:(e=u==null?void 0:u.downloadUrls)==null?void 0:e.chrome,Brave:(t=u==null?void 0:u.downloadUrls)==null?void 0:t.chrome,Chrome:(n=u==null?void 0:u.downloadUrls)==null?void 0:n.chrome,Edge:((r=u==null?void 0:u.downloadUrls)==null?void 0:r.edge)||((i=u==null?void 0:u.downloadUrls)==null?void 0:i.chrome),Firefox:(a=u==null?void 0:u.downloadUrls)==null?void 0:a.firefox,Opera:((o=u==null?void 0:u.downloadUrls)==null?void 0:o.opera)||((s=u==null?void 0:u.downloadUrls)==null?void 0:s.chrome),Safari:(l=u==null?void 0:u.downloadUrls)==null?void 0:l.safari,Browser:(c=u==null?void 0:u.downloadUrls)==null?void 0:c.browserExtension}[f])!=null?d:(E=u==null?void 0:u.downloadUrls)==null?void 0:E.browserExtension},msu=u=>{var e,t,n,r;return(r=va()?(e=u==null?void 0:u.downloadUrls)==null?void 0:e.ios:(t=u==null?void 0:u.downloadUrls)==null?void 0:t.android)!=null?r:(n=u==null?void 0:u.downloadUrls)==null?void 0:n.mobile},bw="rk-recent";function gsu(u){try{const e=u?JSON.parse(u):[];return Array.isArray(e)?e:[]}catch{return[]}}function ww(){return typeof localStorage<"u"?gsu(localStorage.getItem(bw)):[]}function Asu(u){return[...new Set(u)]}function ysu(u){const e=Asu([u,...ww()]);localStorage.setItem(bw,JSON.stringify(e))}function Gd(){const u=Hl(),e=esu(),{connectAsync:t,connectors:n}=jz(),r=n;async function i(f,C){var h,B,g;const m=await C.getChainId(),y=await t({chainId:(g=e??((h=u.find(({id:v})=>v===m))==null?void 0:h.id))!=null?g:(B=u[0])==null?void 0:B.id,connector:C});return y&&ysu(f),y}async function a(f,C){try{return await i(f,C)}catch(h){if(!(h.name==="UserRejectedRequestError"||h.message==="Connection request reset. Please try again."))throw h}}const o=fsu(r.map(f=>{var C;return(C=f._wallets)!=null?C:[]})).sort((f,C)=>f.index-C.index),s=psu(o,f=>f.id),l=3,c=ww().map(f=>s[f]).filter(q5).slice(0,l),E=[...c,...o.filter(f=>!c.includes(f))],d=[];return E.forEach(f=>{var C;if(!f)return;const h=c.includes(f);d.push({...f,connect:()=>f.connector.showQrModal?a(f.id,f.connector):i(f.id,f.connector),extensionDownloadUrl:Csu(f),groupName:f.groupName,mobileDownloadUrl:msu(f),onConnecting:B=>f.connector.on("message",({type:g})=>g==="connecting"?B():void 0),ready:((C=f.installed)!=null?C:!0)&&f.connector.ready,recent:h,showWalletConnectModal:f.walletConnectModalConnector?()=>a(f.id,f.walletConnectModalConnector):void 0})}),d}var xw=async()=>(await qu(()=>import("./assets-26YY4GVD-ebee59af.js"),[])).default,Bsu=()=>Zr(xw),vsu=()=>b.createElement(ze,{background:"#d0d5de",borderRadius:"10",height:"48",src:xw,width:"48"}),kw=async()=>(await qu(()=>import("./login-ZSMM5UYL-b8add756.js"),[])).default,Fsu=()=>Zr(kw),Dsu=()=>b.createElement(ze,{background:"#d0d5de",borderRadius:"10",height:"48",src:kw,width:"48"}),wu=b.forwardRef(({as:u="div",children:e,className:t,color:n,display:r,font:i="body",id:a,size:o="16",style:s,tabIndex:l,textAlign:c="inherit",weight:E="regular",testId:d},f)=>b.createElement(N,{as:u,className:t,color:n,display:r,fontFamily:i,fontSize:o,fontWeight:E,id:a,ref:f,style:s,tabIndex:l,textAlign:c,testId:d},e));wu.displayName="Text";var bsu={large:{fontSize:"16",paddingX:"24",paddingY:"10"},medium:{fontSize:"14",height:"28",paddingX:"12",paddingY:"4"},small:{fontSize:"14",paddingX:"10",paddingY:"5"}};function S0({disabled:u=!1,href:e,label:t,onClick:n,rel:r="noreferrer noopener",size:i="medium",target:a="_blank",testId:o,type:s="primary"}){const l=s==="primary",c=i!=="large",E=He(),d=u?"actionButtonSecondaryBackground":l?"accentColor":c?"actionButtonSecondaryBackground":null,{fontSize:f,height:C,paddingX:h,paddingY:B}=bsu[i],g=!E||!c;return b.createElement(N,{...e?u?{}:{as:"a",href:e,rel:r,target:a}:{as:"button",type:"button"},onClick:u?void 0:n,...g?{borderColor:E&&!c&&!l?"actionButtonBorderMobile":"actionButtonBorder",borderStyle:"solid",borderWidth:"1"}:{},borderRadius:"actionButton",className:!u&&Te({active:"shrinkSm",hover:"grow"}),display:"block",paddingX:h,paddingY:B,style:{willChange:"transform"},testId:o,textAlign:"center",transition:"transform",...d?{background:d}:{},...C?{height:C}:{}},b.createElement(wu,{color:u?"modalTextSecondary":l?"accentColorForeground":"accentColor",size:f,weight:"bold"},t))}var wsu=()=>He()?b.createElement("svg",{"aria-hidden":!0,fill:"none",height:"11.5",viewBox:"0 0 11.5 11.5",width:"11.5",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M2.13388 0.366117C1.64573 -0.122039 0.854272 -0.122039 0.366117 0.366117C-0.122039 0.854272 -0.122039 1.64573 0.366117 2.13388L3.98223 5.75L0.366117 9.36612C-0.122039 9.85427 -0.122039 10.6457 0.366117 11.1339C0.854272 11.622 1.64573 11.622 2.13388 11.1339L5.75 7.51777L9.36612 11.1339C9.85427 11.622 10.6457 11.622 11.1339 11.1339C11.622 10.6457 11.622 9.85427 11.1339 9.36612L7.51777 5.75L11.1339 2.13388C11.622 1.64573 11.622 0.854272 11.1339 0.366117C10.6457 -0.122039 9.85427 -0.122039 9.36612 0.366117L5.75 3.98223L2.13388 0.366117Z",fill:"currentColor"})):b.createElement("svg",{"aria-hidden":!0,fill:"none",height:"10",viewBox:"0 0 10 10",width:"10",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M1.70711 0.292893C1.31658 -0.0976311 0.683417 -0.0976311 0.292893 0.292893C-0.0976311 0.683417 -0.0976311 1.31658 0.292893 1.70711L3.58579 5L0.292893 8.29289C-0.0976311 8.68342 -0.0976311 9.31658 0.292893 9.70711C0.683417 10.0976 1.31658 10.0976 1.70711 9.70711L5 6.41421L8.29289 9.70711C8.68342 10.0976 9.31658 10.0976 9.70711 9.70711C10.0976 9.31658 10.0976 8.68342 9.70711 8.29289L6.41421 5L9.70711 1.70711C10.0976 1.31658 10.0976 0.683417 9.70711 0.292893C9.31658 -0.0976311 8.68342 -0.0976311 8.29289 0.292893L5 3.58579L1.70711 0.292893Z",fill:"currentColor"})),ws=({"aria-label":u="Close",onClose:e})=>{const t=He();return b.createElement(N,{alignItems:"center","aria-label":u,as:"button",background:"closeButtonBackground",borderColor:"actionButtonBorder",borderRadius:"full",borderStyle:"solid",borderWidth:t?"0":"1",className:Te({active:"shrinkSm",hover:"growLg"}),color:"closeButton",display:"flex",height:t?"30":"28",justifyContent:"center",onClick:e,style:{willChange:"transform"},transition:"default",type:"button",width:t?"30":"28"},b.createElement(wsu,null))},_w=async()=>(await qu(()=>import("./sign-FZVB2CS6-f23ac888.js"),[])).default;function xsu({onClose:u}){const[{status:e,...t},n]=b.useState({status:"idle"}),r=Lru(),i=M.useCallback(async()=>{try{const d=await r.getNonce();n(f=>({...f,nonce:d}))}catch{n(d=>({...d,errorMessage:"Error preparing message, please retry!",status:"idle"}))}},[r]),a=M.useRef(!1);b.useEffect(()=>{a.current||(a.current=!0,i())},[i]);const o=He(),{address:s}=Q0(),{chain:l}=ga(),{signMessageAsync:c}=$z(),E=async()=>{try{const d=l==null?void 0:l.id,{nonce:f}=t;if(!s||!d||!f)return;n(B=>({...B,errorMessage:void 0,status:"signing"}));const C=r.createMessage({address:s,chainId:d,nonce:f});let h;try{h=await c({message:r.getMessageBody({message:C})})}catch(B){return B instanceof Se?n(g=>({...g,status:"idle"})):n(g=>({...g,errorMessage:"Error signing message, please retry!",status:"idle"}))}n(B=>({...B,status:"verifying"}));try{if(await r.verify({message:C,signature:h}))return;throw new Error}catch{return n(B=>({...B,errorMessage:"Error verifying signature, please retry!",status:"idle"}))}}catch{n({errorMessage:"Oops, something went wrong!",status:"idle"})}};return b.createElement(N,{position:"relative"},b.createElement(N,{display:"flex",paddingRight:"16",paddingTop:"16",position:"absolute",right:"0"},b.createElement(ws,{onClose:u})),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:o?"32":"24",padding:"24",paddingX:"18",style:{paddingTop:o?"60px":"36px"}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:o?"6":"4",style:{maxWidth:o?320:280}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:o?"32":"16"},b.createElement(ze,{height:40,src:_w,width:40}),b.createElement(wu,{color:"modalText",size:o?"20":"18",textAlign:"center",weight:"heavy"},"Verify your account")),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:o?"16":"12"},b.createElement(wu,{color:"modalTextSecondary",size:o?"16":"14",textAlign:"center"},"To finish connecting, you must sign a message in your wallet to verify that you are the owner of this account."),e==="idle"&&t.errorMessage?b.createElement(wu,{color:"error",size:o?"16":"14",textAlign:"center",weight:"bold"},t.errorMessage):null)),b.createElement(N,{alignItems:o?void 0:"center",display:"flex",flexDirection:"column",gap:"8",width:"full"},b.createElement(S0,{disabled:!t.nonce||e==="signing"||e==="verifying",label:t.nonce?e==="signing"?"Waiting for signature...":e==="verifying"?"Verifying signature...":"Send message":"Preparing message...",onClick:E,size:o?"large":"medium",testId:"auth-message-button"}),o?b.createElement(S0,{label:"Cancel",onClick:u,size:"large",type:"secondary"}):b.createElement(N,{as:"button",borderRadius:"full",className:Te({active:"shrink",hover:"grow"}),display:"block",onClick:u,paddingX:"10",paddingY:"5",rel:"noreferrer",style:{willChange:"transform"},target:"_blank",transition:"default"},b.createElement(wu,{color:"closeButton",size:o?"16":"14",weight:"bold"},"Cancel")))))}function ksu(){const u=Hl(),e=Gd(),t=qd()==="unauthenticated",n=M.useCallback(()=>{Zr(...e.map(r=>r.iconUrl),...u.map(r=>r.iconUrl).filter(q5)),He()||(Bsu(),Fsu()),t&&Zr(_w)},[e,u,t]);M.useEffect(()=>{n()},[n])}var Sw="WALLETCONNECT_DEEPLINK_CHOICE";function _su({mobileUri:u,name:e}){localStorage.setItem(Sw,JSON.stringify({href:u.split("?")[0],name:e}))}function Ssu(){localStorage.removeItem(Sw)}var Pw=M.createContext(void 0),Pf="data-rk",Tw=u=>({[Pf]:u||""}),Psu=u=>{if(u&&!/^[a-zA-Z0-9_]+$/.test(u))throw new Error(`Invalid ID: ${u}`);return u?`[${Pf}="${u}"]`:`[${Pf}]`},Tsu=()=>{const u=M.useContext(Pw);return Tw(u)},Isu=yy();function Osu({appInfo:u,avatar:e,chains:t,children:n,coolMode:r=!1,id:i,initialChain:a,locale:o,modalSize:s=$3.WIDE,showRecentTransactions:l=!1,theme:c=Isu}){if(ksu(),dsu(),Q0({onDisconnect:Ssu}),typeof c=="function")throw new Error('A theme function was provided to the "theme" prop instead of a theme object. You must execute this function to get the resulting theme object.');const E=Psu(i),d={...Fw,...u},f=e??dw,{width:C}=vw(),h=C&&C{const t=u.querySelectorAll("button:not(:disabled), a[href]");t.length!==0&&t[e==="end"?t.length-1:0].focus()};function jsu(u){const e=M.useRef(null);return M.useEffect(()=>{const t=document.activeElement;return()=>{var n;(n=t.focus)==null||n.call(t)}},[]),M.useEffect(()=>{if(e.current){const t=e.current.querySelector("[data-auto-focus]");t?t.focus():e.current.focus()}},[e]),b.createElement(b.Fragment,null,b.createElement("div",{onFocus:M.useCallback(()=>e.current&&fA(e.current,"end"),[]),tabIndex:0}),b.createElement("div",{ref:e,style:{outline:"none"},tabIndex:-1,...u}),b.createElement("div",{onFocus:M.useCallback(()=>e.current&&fA(e.current,"start"),[]),tabIndex:0}))}var zsu=u=>u.stopPropagation();function e2({children:u,onClose:e,open:t,titleId:n}){M.useEffect(()=>{const l=c=>t&&c.key==="Escape"&&e();return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[t,e]);const[r,i]=M.useState(!0);M.useEffect(()=>{i(getComputedStyle(window.document.body).overflow!=="hidden")},[]);const a=M.useCallback(()=>e(),[e]),o=Tsu(),s=He();return b.createElement(b.Fragment,null,t?Rv.createPortal(b.createElement(Hnu,{enabled:r},b.createElement(N,{...o},b.createElement(N,{...o,alignItems:s?"flex-end":"center","aria-labelledby":n,"aria-modal":!0,className:Rsu,onClick:a,position:"fixed",role:"dialog"},b.createElement(jsu,{className:Nsu,onClick:zsu,role:"document"},u)))),document.body):null)}var Msu="_1ckjpok7",Usu="_1ckjpok1 ju367vb0 ju367vdl ju367vp ju367vt ju367vv ju367vef ju367va ju367v10 ju367v67 ju367v8m",Lsu="_1ckjpok4 _1ckjpok1 ju367vb0 ju367vdl ju367vp ju367vt ju367vv ju367vef ju367va ju367v10 ju367v67 ju367v8m",$su="_1ckjpok6 ju367vq",Wsu="_1ckjpok3 _1ckjpok1 ju367vb0 ju367vdl ju367vp ju367vt ju367vv ju367vef ju367va ju367v10 ju367v67 ju367v8m",qsu="_1ckjpok2 _1ckjpok1 ju367vb0 ju367vdl ju367vp ju367vt ju367vv ju367vef ju367va ju367v10 ju367v67 ju367v8m";function t2({bottomSheetOnMobile:u=!1,children:e,marginTop:t,padding:n="16",paddingBottom:r,wide:i=!1}){const a=He(),s=M.useContext(Hd)===$3.COMPACT;return b.createElement(N,{marginTop:t},b.createElement(N,{className:[i?a?qsu:s?Lsu:Wsu:Usu,a?$su:null,a&&u?Msu:null].join(" ")},b.createElement(N,{padding:n,paddingBottom:r??n},e)))}var pA=["k","m","b","t"];function kc(u,e=1){return u.toString().replace(new RegExp(`(.+\\.\\d{${e}})\\d+`),"$1").replace(/(\.[1-9]*)0+$/,"$1").replace(/\.$/,"")}function Iw(u){if(u<1)return kc(u,3);if(u<10**2)return kc(u,2);if(u<10**4)return new Intl.NumberFormat().format(parseFloat(kc(u,1)));const e=10**1;let t=String(u);for(let n=pA.length-1;n>=0;n--){const r=10**((n+1)*3);if(r<=u){u=u*e/r/e,t=kc(u,1)+pA[n];break}}return t}function Ow(u){return u.length<4+4?u:`${u.substring(0,4)}…${u.substring(u.length-4)}`}function Nw(u){const e=u.split("."),t=e.pop();return e.join(".").length>24?`${e.join(".").substring(0,24)}...`:`${e.join(".")}.${t}`}var Hsu=()=>b.createElement("svg",{fill:"none",height:"13",viewBox:"0 0 13 13",width:"13",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M4.94568 12.2646C5.41052 12.2646 5.77283 12.0869 6.01892 11.7109L12.39 1.96973C12.5677 1.69629 12.6429 1.44336 12.6429 1.2041C12.6429 0.561523 12.1644 0.0966797 11.5082 0.0966797C11.057 0.0966797 10.7767 0.260742 10.5033 0.691406L4.9115 9.50977L2.07458 5.98926C1.82166 5.68848 1.54822 5.55176 1.16541 5.55176C0.502319 5.55176 0.0238037 6.02344 0.0238037 6.66602C0.0238037 6.95312 0.112671 7.20605 0.358765 7.48633L3.88611 11.7588C4.18005 12.1074 4.50818 12.2646 4.94568 12.2646Z",fill:"currentColor"})),Gsu=()=>b.createElement("svg",{fill:"none",height:"16",viewBox:"0 0 17 16",width:"17",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M3.04236 12.3027H4.18396V13.3008C4.18396 14.8525 5.03845 15.7002 6.59705 15.7002H13.6244C15.183 15.7002 16.0375 14.8525 16.0375 13.3008V6.24609C16.0375 4.69434 15.183 3.84668 13.6244 3.84668H12.4828V2.8418C12.4828 1.29688 11.6283 0.442383 10.0697 0.442383H3.04236C1.48376 0.442383 0.629272 1.29004 0.629272 2.8418V9.90332C0.629272 11.4551 1.48376 12.3027 3.04236 12.3027ZM3.23376 10.5391C2.68689 10.5391 2.39294 10.2656 2.39294 9.68457V3.06055C2.39294 2.47949 2.68689 2.21289 3.23376 2.21289H9.8783C10.4252 2.21289 10.7191 2.47949 10.7191 3.06055V3.84668H6.59705C5.03845 3.84668 4.18396 4.69434 4.18396 6.24609V10.5391H3.23376ZM6.78845 13.9365C6.24158 13.9365 5.94763 13.6699 5.94763 13.0889V6.45801C5.94763 5.87695 6.24158 5.61035 6.78845 5.61035H13.433C13.9799 5.61035 14.2738 5.87695 14.2738 6.45801V13.0889C14.2738 13.6699 13.9799 13.9365 13.433 13.9365H6.78845Z",fill:"currentColor"})),Ksu=()=>b.createElement("svg",{fill:"none",height:"16",viewBox:"0 0 18 16",width:"18",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M2.67834 15.5908H9.99963C11.5514 15.5908 12.399 14.7432 12.399 13.1777V10.2656H10.6354V12.9863C10.6354 13.5332 10.3688 13.8271 9.78772 13.8271H2.89026C2.3092 13.8271 2.0426 13.5332 2.0426 12.9863V3.15625C2.0426 2.60254 2.3092 2.30859 2.89026 2.30859H9.78772C10.3688 2.30859 10.6354 2.60254 10.6354 3.15625V5.89746H12.399V2.95801C12.399 1.39941 11.5514 0.544922 9.99963 0.544922H2.67834C1.12659 0.544922 0.278931 1.39941 0.278931 2.95801V13.1777C0.278931 14.7432 1.12659 15.5908 2.67834 15.5908ZM7.43616 8.85059H14.0875L15.0924 8.78906L14.566 9.14453L13.6842 9.96484C13.5406 10.1016 13.4586 10.2861 13.4586 10.4844C13.4586 10.8398 13.7321 11.168 14.1217 11.168C14.3199 11.168 14.4635 11.0928 14.6002 10.9561L16.7809 8.68652C16.986 8.48145 17.0543 8.27637 17.0543 8.06445C17.0543 7.85254 16.986 7.64746 16.7809 7.43555L14.6002 5.17285C14.4635 5.03613 14.3199 4.9541 14.1217 4.9541C13.7321 4.9541 13.4586 5.27539 13.4586 5.6377C13.4586 5.83594 13.5406 6.02734 13.6842 6.15723L14.566 6.98438L15.0924 7.33984L14.0875 7.27148H7.43616C7.01917 7.27148 6.65686 7.62012 6.65686 8.06445C6.65686 8.50195 7.01917 8.85059 7.43616 8.85059Z",fill:"currentColor"}));function Qsu(){const u=yw(),{address:e}=Q0(),t=G5();return M.useCallback(()=>{if(!e||!t)throw new Error("No address or chain ID found");u.clearTransactions(e,t)},[u,e,t])}var Rw=u=>{var e,t;return(t=(e=u==null?void 0:u.blockExplorers)==null?void 0:e.default)==null?void 0:t.url},jw=()=>b.createElement("svg",{fill:"none",height:"19",viewBox:"0 0 20 19",width:"20",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M10 18.9443C15.0977 18.9443 19.2812 14.752 19.2812 9.6543C19.2812 4.56543 15.0889 0.373047 10 0.373047C4.90234 0.373047 0.71875 4.56543 0.71875 9.6543C0.71875 14.752 4.91113 18.9443 10 18.9443ZM10 16.6328C6.1416 16.6328 3.03906 13.5215 3.03906 9.6543C3.03906 5.7959 6.13281 2.68457 10 2.68457C13.8584 2.68457 16.9697 5.7959 16.9697 9.6543C16.9785 13.5215 13.8672 16.6328 10 16.6328ZM12.7158 12.1416C13.2432 12.1416 13.5684 11.7549 13.5684 11.1836V7.19336C13.5684 6.44629 13.1377 6.05957 12.417 6.05957H8.40918C7.8291 6.05957 7.45117 6.38477 7.45117 6.91211C7.45117 7.43945 7.8291 7.77344 8.40918 7.77344H9.69238L10.7207 7.63281L9.53418 8.67871L6.73047 11.4912C6.53711 11.6758 6.41406 11.9395 6.41406 12.2031C6.41406 12.7832 6.85352 13.1699 7.39844 13.1699C7.68848 13.1699 7.92578 13.0732 8.1543 12.8623L10.9316 10.0762L11.9775 8.89844L11.8545 9.98828V11.1836C11.8545 11.7725 12.1885 12.1416 12.7158 12.1416Z",fill:"currentColor"})),Vsu=()=>b.createElement("svg",{fill:"none",height:"19",viewBox:"0 0 20 19",width:"20",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M10 18.9443C15.0977 18.9443 19.2812 14.752 19.2812 9.6543C19.2812 4.56543 15.0889 0.373047 10 0.373047C4.90234 0.373047 0.71875 4.56543 0.71875 9.6543C0.71875 14.752 4.91113 18.9443 10 18.9443ZM10 16.6328C6.1416 16.6328 3.03906 13.5215 3.03906 9.6543C3.03906 5.7959 6.13281 2.68457 10 2.68457C13.8584 2.68457 16.9697 5.7959 16.9697 9.6543C16.9785 13.5215 13.8672 16.6328 10 16.6328ZM7.29297 13.3018C7.58301 13.3018 7.81152 13.2139 7.99609 13.0205L10 11.0166L12.0127 13.0205C12.1973 13.2051 12.4258 13.3018 12.707 13.3018C13.2432 13.3018 13.6562 12.8887 13.6562 12.3525C13.6562 12.0977 13.5508 11.8691 13.3662 11.6934L11.3535 9.67188L13.375 7.6416C13.5596 7.44824 13.6562 7.22852 13.6562 6.98242C13.6562 6.44629 13.2432 6.0332 12.7158 6.0332C12.4346 6.0332 12.2148 6.12109 12.0215 6.31445L10 8.32715L7.9873 6.32324C7.80273 6.12988 7.58301 6.04199 7.29297 6.04199C6.76562 6.04199 6.35254 6.45508 6.35254 6.99121C6.35254 7.2373 6.44922 7.46582 6.63379 7.6416L8.65527 9.67188L6.63379 11.6934C6.44922 11.8691 6.35254 12.1064 6.35254 12.3525C6.35254 12.8887 6.76562 13.3018 7.29297 13.3018Z",fill:"currentColor"})),Jsu=()=>b.createElement("svg",{fill:"none",height:"20",viewBox:"0 0 20 20",width:"20",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M10 19.4443C15.0977 19.4443 19.2812 15.252 19.2812 10.1543C19.2812 5.06543 15.0889 0.873047 10 0.873047C4.90234 0.873047 0.71875 5.06543 0.71875 10.1543C0.71875 15.252 4.91113 19.4443 10 19.4443ZM10 17.1328C6.1416 17.1328 3.03906 14.0215 3.03906 10.1543C3.03906 6.2959 6.13281 3.18457 10 3.18457C13.8584 3.18457 16.9697 6.2959 16.9697 10.1543C16.9785 14.0215 13.8672 17.1328 10 17.1328ZM9.07715 14.3379C9.4375 14.3379 9.7627 14.1533 9.97363 13.8369L13.7441 8.00977C13.8848 7.79883 13.9814 7.5791 13.9814 7.36816C13.9814 6.84961 13.5244 6.48926 13.0322 6.48926C12.707 6.48926 12.4258 6.66504 12.2148 7.0166L9.05957 12.0967L7.5918 10.2949C7.37207 10.0225 7.13477 9.9082 6.84473 9.9082C6.33496 9.9082 5.92188 10.3125 5.92188 10.8223C5.92188 11.0684 6.00098 11.2793 6.18555 11.5078L8.1543 13.8545C8.40918 14.1709 8.70801 14.3379 9.07715 14.3379Z",fill:"currentColor"})),Ysu=u=>{switch(u){case"pending":return L3;case"confirmed":return Jsu;case"failed":return Vsu;default:return L3}};function Xsu({tx:u}){const e=He(),t=Ysu(u.status),n=u.status==="failed"?"error":"accentColor",{chain:r}=ga(),i=u.status==="confirmed"?"Confirmed":u.status==="failed"?"Failed":"Pending",a=Rw(r);return b.createElement(b.Fragment,null,b.createElement(N,{...a?{as:"a",background:{hover:"profileForeground"},borderRadius:"menuButton",className:Te({active:"shrink"}),href:`${a}/tx/${u.hash}`,rel:"noreferrer noopener",target:"_blank",transition:"default"}:{},color:"modalText",display:"flex",flexDirection:"row",justifyContent:"space-between",padding:"8",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:e?"16":"14"},b.createElement(N,{color:n},b.createElement(t,null)),b.createElement(N,{display:"flex",flexDirection:"column",gap:e?"3":"1"},b.createElement(N,null,b.createElement(wu,{color:"modalText",font:"body",size:e?"16":"14",weight:"bold"},u==null?void 0:u.description)),b.createElement(N,null,b.createElement(wu,{color:u.status==="pending"?"modalTextSecondary":n,font:"body",size:"14",weight:e?"medium":"regular"},i)))),a&&b.createElement(N,{alignItems:"center",color:"modalTextDim",display:"flex"},b.createElement(jw,null))))}var Zsu=3;function u4u({address:u}){const e=Bw(),t=Qsu(),{chain:n}=ga(),r=Rw(n),i=e.slice(0,Zsu),a=i.length>0,o=He(),{appName:s}=M.useContext(n4),l=M.useContext(i0);return b.createElement(b.Fragment,null,b.createElement(N,{display:"flex",flexDirection:"column",gap:"10",paddingBottom:"2",paddingTop:"16",paddingX:o?"8":"18"},a&&b.createElement(N,{paddingBottom:o?"4":"0",paddingTop:"8",paddingX:o?"12":"6"},b.createElement(N,{display:"flex",justifyContent:"space-between"},b.createElement(wu,{color:"modalTextSecondary",size:o?"16":"14",weight:"semibold"},l.t("profile.transactions.recent.title")),b.createElement(N,{style:{marginBottom:-6,marginLeft:-10,marginRight:-10,marginTop:-6}},b.createElement(N,{as:"button",background:{hover:"profileForeground"},borderRadius:"actionButton",className:Te({active:"shrink"}),onClick:t,paddingX:o?"8":"12",paddingY:o?"4":"5",transition:"default",type:"button"},b.createElement(wu,{color:"modalTextSecondary",size:o?"16":"14",weight:"semibold"},l.t("profile.transactions.clear.label")))))),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},a?i.map(c=>b.createElement(Xsu,{key:c.hash,tx:c})):b.createElement(b.Fragment,null,b.createElement(N,{padding:o?"12":"8"},b.createElement(wu,{color:"modalTextDim",size:o?"16":"14",weight:o?"medium":"bold"},s?l.t("profile.transactions.description",{appName:s}):l.t("profile.transactions.description_fallback"))),o&&b.createElement(N,{background:"generalBorderDim",height:"1",marginX:"12",marginY:"8"})))),r&&b.createElement(N,{paddingBottom:"18",paddingX:o?"8":"18"},b.createElement(N,{alignItems:"center",as:"a",background:{hover:"profileForeground"},borderRadius:"menuButton",className:Te({active:"shrink"}),color:"modalTextDim",display:"flex",flexDirection:"row",href:`${r}/address/${u}`,justifyContent:"space-between",paddingX:"8",paddingY:"12",rel:"noreferrer noopener",style:{willChange:"transform"},target:"_blank",transition:"default",width:"full",...o?{paddingLeft:"12"}:{}},b.createElement(wu,{color:"modalText",font:"body",size:o?"16":"14",weight:o?"semibold":"bold"},l.t("profile.explorer.label")),b.createElement(jw,null))))}function hA({action:u,icon:e,label:t,testId:n,url:r}){const i=He();return b.createElement(N,{...r?{as:"a",href:r,rel:"noreferrer noopener",target:"_blank"}:{as:"button",type:"button"},background:{base:"profileAction",...i?{}:{hover:"profileActionHover"}},borderRadius:"menuButton",boxShadow:"profileDetailsAction",className:Te({active:"shrinkSm",hover:i?void 0:"grow"}),display:"flex",onClick:u,padding:i?"6":"8",style:{willChange:"transform"},testId:n,transition:"default",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"1",justifyContent:"center",paddingTop:"2",width:"full"},b.createElement(N,{color:"modalText",height:"max"},e),b.createElement(N,null,b.createElement(wu,{color:"modalText",size:i?"12":"13",weight:"semibold"},t))))}function e4u({address:u,balanceData:e,ensAvatar:t,ensName:n,onClose:r,onDisconnect:i}){const a=M.useContext(K5),[o,s]=M.useState(!1),l=M.useContext(i0),c=M.useCallback(()=>{u&&(navigator.clipboard.writeText(u),s(!0))},[u]);if(M.useEffect(()=>{if(o){const B=setTimeout(()=>{s(!1)},1500);return()=>clearTimeout(B)}},[o]),!u)return null;const E=n?Nw(n):Ow(u),d=e==null?void 0:e.formatted,f=d?Iw(parseFloat(d)):void 0,C="rk_profile_title",h=He();return b.createElement(b.Fragment,null,b.createElement(N,{display:"flex",flexDirection:"column"},b.createElement(N,{background:"profileForeground",padding:"16"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:h?"16":"12",justifyContent:"center",margin:"8",style:{textAlign:"center"}},b.createElement(N,{style:{position:"absolute",right:16,top:16,willChange:"transform"}},b.createElement(ws,{onClose:r}))," ",b.createElement(N,{marginTop:h?"24":"0"},b.createElement(pw,{address:u,imageUrl:t,size:h?82:74})),b.createElement(N,{display:"flex",flexDirection:"column",gap:h?"4":"0",textAlign:"center"},b.createElement(N,{textAlign:"center"},b.createElement(wu,{as:"h1",color:"modalText",id:C,size:h?"20":"18",weight:"heavy"},E)),e&&b.createElement(N,{textAlign:"center"},b.createElement(wu,{as:"h1",color:"modalTextSecondary",id:C,size:h?"16":"14",weight:"semibold"},f," ",e.symbol)))),b.createElement(N,{display:"flex",flexDirection:"row",gap:"8",margin:"2",marginTop:"16"},b.createElement(hA,{action:c,icon:o?b.createElement(Hsu,null):b.createElement(Gsu,null),label:o?l.t("profile.copy_address.copied"):l.t("profile.copy_address.label")}),b.createElement(hA,{action:i,icon:b.createElement(Ksu,null),label:l.t("profile.disconnect.label"),testId:"disconnect-button"}))),a&&b.createElement(b.Fragment,null,b.createElement(N,{background:"generalBorder",height:"1",marginTop:"-1"}),b.createElement(N,null,b.createElement(u4u,{address:u})))))}function t4u({onClose:u,open:e}){const{address:t}=Q0(),{data:n}=mD({address:t}),r=mw(t),i=Cw(r),{disconnect:a}=C5();if(!t)return null;const o="rk_account_modal_title";return b.createElement(b.Fragment,null,t&&b.createElement(e2,{onClose:u,open:e,titleId:o},b.createElement(t2,{bottomSheetOnMobile:!0,padding:"0"},b.createElement(e4u,{address:t,balanceData:n,ensAvatar:i,ensName:r,onClose:u,onDisconnect:a}))))}var n4u=({size:u})=>b.createElement("svg",{fill:"none",height:u,viewBox:"0 0 28 28",width:u,xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M6.742 22.195h8.367c1.774 0 2.743-.968 2.743-2.758V16.11h-2.016v3.11c0 .625-.305.96-.969.96H6.984c-.664 0-.968-.335-.968-.96V7.984c0-.632.304-.968.968-.968h7.883c.664 0 .969.336.969.968v3.133h2.016v-3.36c0-1.78-.97-2.757-2.743-2.757H6.742C4.97 5 4 5.977 4 7.758v11.68c0 1.789.969 2.757 2.742 2.757Zm5.438-7.703h7.601l1.149-.07-.602.406-1.008.938a.816.816 0 0 0-.258.593c0 .407.313.782.758.782.227 0 .39-.086.547-.243l2.492-2.593c.235-.235.313-.47.313-.711 0-.242-.078-.477-.313-.719l-2.492-2.586c-.156-.156-.32-.25-.547-.25-.445 0-.758.367-.758.781 0 .227.094.446.258.594l1.008.945.602.407-1.149-.079H12.18a.904.904 0 0 0 0 1.805Z",fill:"currentColor"})),r4u="v9horb0",Tf=b.forwardRef(({children:u,currentlySelected:e=!1,onClick:t,testId:n,...r},i)=>{const a=He();return b.createElement(N,{as:"button",borderRadius:"menuButton",disabled:e,display:"flex",onClick:t,ref:i,testId:n,type:"button"},b.createElement(N,{borderRadius:"menuButton",className:[a?r4u:void 0,!e&&Te({active:"shrink"})],padding:a?"8":"6",transition:"default",width:"full",...e?{background:"accentColor",borderColor:"selectedOptionBorder",borderStyle:"solid",borderWidth:"1",boxShadow:"selectedOption",color:"accentColorForeground"}:{background:{hover:"menuItemBackground"},color:"modalText",transition:"default"},...r},u))});Tf.displayName="MenuButton";var i4u="_18dqw9x0",a4u="_18dqw9x1";function o4u({onClose:u,open:e}){var t;const{chain:n}=ga(),{chains:r,pendingChainId:i,reset:a,switchNetwork:o}=Hz({onSettled:()=>{a(),u()}}),s=M.useContext(i0),{disconnect:l}=C5(),c="rk_chain_modal_title",E=He(),d=(t=n==null?void 0:n.unsupported)!=null?t:!1,f=E?"36":"28",{appName:C}=M.useContext(n4),h=Hl();return!n||!(n!=null&&n.id)?null:b.createElement(e2,{onClose:u,open:e,titleId:c},b.createElement(t2,{bottomSheetOnMobile:!0,paddingBottom:"0"},b.createElement(N,{display:"flex",flexDirection:"column",gap:"14"},b.createElement(N,{display:"flex",flexDirection:"row",justifyContent:"space-between"},E&&b.createElement(N,{width:"30"}),b.createElement(N,{paddingBottom:"0",paddingLeft:"8",paddingTop:"4"},b.createElement(wu,{as:"h1",color:"modalText",id:c,size:E?"20":"18",weight:"heavy"},s.t("chains.title"))),b.createElement(ws,{onClose:u})),d&&b.createElement(N,{marginX:"8",textAlign:E?"center":"left"},b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},s.t("chains.wrong_network"))),b.createElement(N,{className:E?a4u:i4u,display:"flex",flexDirection:"column",gap:"4",padding:"2",paddingBottom:"16"},o?h.map(({iconBackground:B,iconUrl:g,id:m,name:y},v)=>{const w=r.find(x=>x.id===m);if(!w)return null;const D=w.id===(n==null?void 0:n.id),p=!D&&w.id===i;return b.createElement(M.Fragment,{key:w.id},b.createElement(Tf,{currentlySelected:D,onClick:D?void 0:()=>o(w.id),testId:`chain-option-${w.id}`},b.createElement(N,{fontFamily:"body",fontSize:"16",fontWeight:"bold"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",justifyContent:"space-between"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"4",height:f},g&&b.createElement(N,{height:"full",marginRight:"8"},b.createElement(ze,{alt:y??w.name,background:B,borderRadius:"full",height:f,src:g,width:f,testId:`chain-option-${w.id}-icon`})),b.createElement("div",null,y??w.name)),D&&b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",marginRight:"6"},b.createElement(wu,{color:"accentColorForeground",size:"14",weight:"medium"},s.t("chains.connected")),b.createElement(N,{background:"connectionIndicator",borderColor:"selectedOptionBorder",borderRadius:"full",borderStyle:"solid",borderWidth:"1",height:"8",marginLeft:"8",width:"8"})),p&&b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",marginRight:"6"},b.createElement(wu,{color:"modalText",size:"14",weight:"medium"},s.t("chains.confirm")),b.createElement(N,{background:"standby",borderRadius:"full",height:"8",marginLeft:"8",width:"8"}))))),E&&vl(),testId:"chain-option-disconnect"},b.createElement(N,{color:"error",fontFamily:"body",fontSize:"16",fontWeight:"bold"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",justifyContent:"space-between"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"4",height:f},b.createElement(N,{alignItems:"center",color:"error",height:f,justifyContent:"center",marginRight:"8"},b.createElement(n4u,{size:Number(f)})),b.createElement("div",null,s.t("chains.disconnect")))))))))))}function s4u(u,e){const t={};return u.forEach(n=>{const r=e(n);r&&(t[r]||(t[r]=[]),t[r].push(n))}),t}var J5=({children:u,href:e})=>b.createElement(N,{as:"a",color:"accentColor",href:e,rel:"noreferrer",target:"_blank"},u),Y5=({children:u})=>b.createElement(wu,{color:"modalTextSecondary",size:"12",weight:"medium"},u);function CA({compactModeEnabled:u=!1,getWallet:e}){const{disclaimer:t,learnMoreUrl:n}=M.useContext(n4),r=M.useContext(i0);return b.createElement(b.Fragment,null,b.createElement(N,{alignItems:"center",color:"accentColor",display:"flex",flexDirection:"column",height:"full",justifyContent:"space-around"},b.createElement(N,{marginBottom:"10"},!u&&b.createElement(wu,{color:"modalText",size:"18",weight:"heavy"},r.t("intro.title"))),b.createElement(N,{display:"flex",flexDirection:"column",gap:"32",justifyContent:"center",marginY:"20",style:{maxWidth:312}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16"},b.createElement(N,{borderRadius:"6",height:"48",minWidth:"48",width:"48"},b.createElement(vsu,null)),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},r.t("intro.digital_asset.title")),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},r.t("intro.digital_asset.description")))),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16"},b.createElement(N,{borderRadius:"6",height:"48",minWidth:"48",width:"48"},b.createElement(Dsu,null)),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},r.t("intro.login.title")),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},r.t("intro.login.description"))))),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"12",justifyContent:"center",margin:"10"},b.createElement(S0,{label:r.t("intro.get.label"),onClick:e}),b.createElement(N,{as:"a",className:Te({active:"shrink",hover:"grow"}),display:"block",href:n,paddingX:"12",paddingY:"4",rel:"noreferrer",style:{willChange:"transform"},target:"_blank",transition:"default"},b.createElement(wu,{color:"accentColor",size:"14",weight:"bold"},r.t("intro.learn_more.label")))),t&&!u&&b.createElement(N,{marginBottom:"8",marginTop:"12",textAlign:"center"},b.createElement(t,{Link:J5,Text:Y5}))))}var zw=()=>b.createElement("svg",{fill:"none",height:"17",viewBox:"0 0 11 17",width:"11",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M0.99707 8.6543C0.99707 9.08496 1.15527 9.44531 1.51562 9.79688L8.16016 16.3096C8.43262 16.5732 8.74902 16.7051 9.13574 16.7051C9.90918 16.7051 10.5508 16.0811 10.5508 15.3076C10.5508 14.9121 10.3838 14.5605 10.0938 14.2705L4.30176 8.64551L10.0938 3.0293C10.3838 2.74805 10.5508 2.3877 10.5508 2.00098C10.5508 1.23633 9.90918 0.603516 9.13574 0.603516C8.74902 0.603516 8.43262 0.735352 8.16016 0.999023L1.51562 7.51172C1.15527 7.85449 1.00586 8.21484 0.99707 8.6543Z",fill:"currentColor"})),l4u=()=>b.createElement("svg",{fill:"none",height:"12",viewBox:"0 0 8 12",width:"8",xmlns:"http://www.w3.org/2000/svg"},b.createElement("path",{d:"M3.64258 7.99609C4.19336 7.99609 4.5625 7.73828 4.68555 7.24609C4.69141 7.21094 4.70312 7.16406 4.70898 7.13477C4.80859 6.60742 5.05469 6.35547 6.04492 5.76367C7.14648 5.10156 7.67969 4.3457 7.67969 3.24414C7.67969 1.39844 6.17383 0.255859 3.95898 0.255859C2.32422 0.255859 1.05859 0.894531 0.548828 1.86719C0.396484 2.14844 0.320312 2.44727 0.320312 2.74023C0.314453 3.37305 0.742188 3.79492 1.42188 3.79492C1.91406 3.79492 2.33594 3.54883 2.53516 3.11523C2.78711 2.47656 3.23242 2.21289 3.83594 2.21289C4.55664 2.21289 5.10742 2.65234 5.10742 3.29102C5.10742 3.9707 4.7793 4.29883 3.81836 4.87891C3.02148 5.36523 2.50586 5.92773 2.50586 6.76562V6.90039C2.50586 7.55664 2.96289 7.99609 3.64258 7.99609ZM3.67188 11.4473C4.42773 11.4473 5.04297 10.8672 5.04297 10.1406C5.04297 9.41406 4.42773 8.83984 3.67188 8.83984C2.91602 8.83984 2.30664 9.41406 2.30664 10.1406C2.30664 10.8672 2.91602 11.4473 3.67188 11.4473Z",fill:"currentColor"})),c4u=({"aria-label":u="Info",onClick:e})=>{const t=He();return b.createElement(N,{alignItems:"center","aria-label":u,as:"button",background:"closeButtonBackground",borderColor:"actionButtonBorder",borderRadius:"full",borderStyle:"solid",borderWidth:t?"0":"1",className:Te({active:"shrinkSm",hover:"growLg"}),color:"closeButton",display:"flex",height:t?"30":"28",justifyContent:"center",onClick:e,style:{willChange:"transform"},transition:"default",type:"button",width:t?"30":"28"},b.createElement(l4u,null))},Mw=u=>{const e=M.useRef(null),t=M.useContext(Dw),n=W5(u);return M.useEffect(()=>{if(t&&e.current&&n)return d4u(e.current,n)},[t,n]),e},E4u=()=>{const u="_rk_coolMode",e=document.getElementById(u);if(e)return e;const t=document.createElement("div");return t.setAttribute("id",u),t.setAttribute("style",["overflow:hidden","position:fixed","height:100%","top:0","left:0","right:0","bottom:0","pointer-events:none","z-index:2147483647"].join(";")),document.body.appendChild(t),t},mA=0;function d4u(u,e){mA++;const t=[15,20,25,35,45],n=35;let r=[],i=!1,a=0,o=0;const s=E4u();function l(){const v=t[Math.floor(Math.random()*t.length)],w=Math.random()*10,D=Math.random()*25,p=Math.random()*360,x=Math.random()*35*(Math.random()<=.5?-1:1),j=o-v/2,O=a-v/2,Z=Math.random()<=.5?-1:1,ou=document.createElement("div");ou.innerHTML=``,ou.setAttribute("style",["position:absolute","will-change:transform",`top:${j}px`,`left:${O}px`,`transform:rotate(${p}deg)`].join(";")),s.appendChild(ou),r.push({direction:Z,element:ou,left:O,size:v,speedHorz:w,speedUp:D,spinSpeed:x,spinVal:p,top:j})}function c(){r.forEach(v=>{v.left=v.left-v.speedHorz*v.direction,v.top=v.top-v.speedUp,v.speedUp=Math.min(v.size,v.speedUp-1),v.spinVal=v.spinVal+v.spinSpeed,v.top>=Math.max(window.innerHeight,document.body.clientHeight)+v.size&&(r=r.filter(w=>w!==v),v.element.remove()),v.element.setAttribute("style",["position:absolute","will-change:transform",`top:${v.top}px`,`left:${v.left}px`,`transform:rotate(${v.spinVal}deg)`].join(";"))})}let E;function d(){i&&r.length{var w,D;"touches"in v?(a=(w=v.touches)==null?void 0:w[0].clientX,o=(D=v.touches)==null?void 0:D[0].clientY):(a=v.clientX,o=v.clientY)},m=v=>{g(v),i=!0},y=()=>{i=!1};return u.addEventListener(B,g,{passive:!1}),u.addEventListener(C,m),u.addEventListener(h,y),u.addEventListener("mouseleave",y),()=>{u.removeEventListener(B,g),u.removeEventListener(C,m),u.removeEventListener(h,y),u.removeEventListener("mouseleave",y);const v=setInterval(()=>{E&&r.length===0&&(cancelAnimationFrame(E),clearInterval(v),--mA===0&&s.remove())},500)}}var f4u="g5kl0l0",Uw=({as:u="button",currentlySelected:e=!1,iconBackground:t,iconUrl:n,name:r,onClick:i,ready:a,recent:o,testId:s,...l})=>{const c=Mw(n),[E,d]=M.useState(!1),f=M.useContext(i0);return b.createElement(N,{display:"flex",flexDirection:"column",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),ref:c},b.createElement(N,{as:u,borderRadius:"menuButton",borderStyle:"solid",borderWidth:"1",className:e?void 0:[f4u,Te({active:"shrink"})],disabled:e,onClick:i,padding:"5",style:{willChange:"transform"},testId:s,transition:"default",width:"full",...e?{background:"accentColor",borderColor:"selectedOptionBorder",boxShadow:"selectedWallet"}:{background:{hover:"menuItemBackground"}},...l},b.createElement(N,{color:e?"accentColorForeground":"modalText",disabled:!a,fontFamily:"body",fontSize:"16",fontWeight:"bold",transition:"default"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"12"},b.createElement(ze,{background:t,...E?{}:{borderColor:"actionButtonBorder"},borderRadius:"6",height:"28",src:n,width:"28"}),b.createElement(N,null,b.createElement(N,{style:{marginTop:o?-2:void 0}},r),o&&b.createElement(wu,{color:e?"accentColorForeground":"accentColor",size:"12",style:{lineHeight:1,marginTop:-1},weight:"medium"},f.t("connect.recent")))))))};Uw.displayName="ModalSelection";var B1=(u,e=1)=>{let t=u.replace("#","");t.length===3&&(t=`${t[0]}${t[0]}${t[1]}${t[1]}${t[2]}${t[2]}`);const n=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),i=parseInt(t.substring(4,6),16);return e>1&&e<=100&&(e=e/100),`rgba(${n},${r},${i},${e})`},p4u=u=>u?[B1(u,.2),B1(u,.14),B1(u,.1)]:null,h4u=u=>/^#([0-9a-f]{3}){1,2}$/i.test(u),Lw=async()=>(await qu(()=>import("./create-PAJXJDV3-ebff10a4.js"),[])).default,$w=()=>Zr(Lw),C4u=()=>b.createElement(ze,{background:"#e3a5e8",borderColor:"generalBorder",borderRadius:"10",height:"48",src:Lw,width:"48"}),Ww=async()=>(await qu(()=>import("./refresh-5KGGHTJP-ba752184.js"),[])).default,m4u=()=>Zr(Ww),g4u=()=>b.createElement(ze,{background:"#515a70",borderColor:"generalBorder",borderRadius:"10",height:"48",src:Ww,width:"48"}),qw=async()=>(await qu(()=>import("./scan-HZBLXLM4-eb21bae1.js"),[])).default,Hw=()=>Zr(qw),A4u=()=>b.createElement(ze,{background:"#515a70",borderColor:"generalBorder",borderRadius:"10",height:"48",src:qw,width:"48"}),y4u="_1vwt0cg0",B4u="_1vwt0cg2 ju367v75 ju367v7q",v4u="_1vwt0cg3",F4u="_1vwt0cg4",D4u=(u,e)=>{const t=Array.prototype.slice.call(Wl.create(u,{errorCorrectionLevel:e}).modules.data,0),n=Math.sqrt(t.length);return t.reduce((r,i,a)=>(a%n===0?r.push([i]):r[r.length-1].push(i))&&r,[])};function Gw({ecl:u="M",logoBackground:e,logoMargin:t=10,logoSize:n=50,logoUrl:r,size:i=200,uri:a}){const o="20",s=i-parseInt(o,10)*2,l=M.useMemo(()=>{const d=[],f=D4u(a,u),C=s/f.length;[{x:0,y:0},{x:1,y:0},{x:0,y:1}].forEach(({x:y,y:v})=>{const w=(f.length-7)*C*y,D=(f.length-7)*C*v;for(let p=0;p<3;p++)d.push(b.createElement("rect",{fill:p%2!==0?"white":"black",height:C*(7-p*2),key:`${p}-${y}-${v}`,rx:(p-2)*-5+(p===0?2:0),ry:(p-2)*-5+(p===0?2:0),width:C*(7-p*2),x:w+C*p,y:D+C*p}))});const B=Math.floor((n+25)/C),g=f.length/2-B/2,m=f.length/2+B/2-1;return f.forEach((y,v)=>{y.forEach((w,D)=>{f[v][D]&&(v<7&&D<7||v>f.length-8&&D<7||v<7&&D>f.length-8||v>g&&vg&&D{switch(V5()){case"Arc":return(await qu(()=>import("./Arc-QDJFTGH2-dedcf34b.js"),[])).default;case"Brave":return(await qu(()=>import("./Brave-YATE5BIM-7f4f924c.js"),[])).default;case"Chrome":return(await qu(()=>import("./Chrome-LGF33C3S-f104e3bc.js"),[])).default;case"Edge":return(await qu(()=>import("./Edge-K2JEGI5S-e4909cbd.js"),[])).default;case"Firefox":return(await qu(()=>import("./Firefox-NP5SYEK5-47084019.js"),[])).default;case"Opera":return(await qu(()=>import("./Opera-KV54PXPA-f31a1b5e.js"),[])).default;case"Safari":return(await qu(()=>import("./Safari-2QIYKJ4P-594ed864.js"),[])).default;default:return(await qu(()=>import("./Browser-HN7O5MN7-2ca1b32c.js"),[])).default}},b4u=()=>Zr(Kw);function w4u({getWalletDownload:u,compactModeEnabled:e}){const n=Gd().splice(0,5),r=M.useContext(i0);return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",height:"full",marginTop:"18",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"28",height:"full",width:"full"},n==null?void 0:n.filter(i=>{var a;return i.extensionDownloadUrl||i.qrCode&&((a=i.downloadUrls)==null?void 0:a.qrCode)}).map(i=>{const{downloadUrls:a,iconBackground:o,iconUrl:s,id:l,name:c,qrCode:E}=i,d=(a==null?void 0:a.qrCode)&&E,f=!!i.extensionDownloadUrl,C=(a==null?void 0:a.qrCode)&&f;return b.createElement(N,{alignItems:"center",display:"flex",gap:"16",justifyContent:"space-between",key:i.id,width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16"},b.createElement(ze,{background:o,borderColor:"actionButtonBorder",borderRadius:"10",height:"48",src:s,width:"48"}),b.createElement(N,{display:"flex",flexDirection:"column",gap:"2"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},c),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},C?r.t("get.mobile_and_extension.description"):d?r.t("get.mobile.description"):f?r.t("get.extension.description"):null))),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(S0,{label:r.t("get.action.label"),onClick:()=>u(l),type:"secondary"})))})),b.createElement(N,{alignItems:"center",borderRadius:"10",display:"flex",flexDirection:"column",gap:"8",justifyContent:"space-between",marginBottom:"4",paddingY:"8",style:{maxWidth:275,textAlign:"center"}},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},r.t("get.looking_for.title")),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},e?r.t("get.looking_for.desktop.compact_description"):r.t("get.looking_for.desktop.wide_description"))))}var v1="44";function x4u({changeWalletStep:u,compactModeEnabled:e,connectionError:t,onClose:n,qrCodeUri:r,reconnect:i,wallet:a}){var o;const{downloadUrls:s,iconBackground:l,iconUrl:c,name:E,qrCode:d,ready:f,showWalletConnectModal:C}=a,h=(o=a.desktop)==null?void 0:o.getUri,B=Q5(),g=M.useContext(i0),m=!!a.extensionDownloadUrl,y=(s==null?void 0:s.qrCode)&&m,v=d&&r,w=C?{description:e?g.t("connect.walletconnect.description.compact"):g.t("connect.walletconnect.description.full"),label:g.t("connect.walletconnect.open.label"),onClick:()=>{n(),C()}}:v?{description:g.t("connect.secondary_action.get.description",{wallet:E}),label:g.t("connect.secondary_action.get.label"),onClick:()=>u(y?"DOWNLOAD_OPTIONS":"DOWNLOAD")}:null,{width:D}=vw(),p=D&&D<768;return M.useEffect(()=>{b4u()},[]),b.createElement(N,{display:"flex",flexDirection:"column",height:"full",width:"full"},v?b.createElement(N,{alignItems:"center",display:"flex",height:"full",justifyContent:"center"},b.createElement(Gw,{logoBackground:l,logoSize:e?60:72,logoUrl:c,size:e?318:p?Math.max(280,Math.min(D-308,382)):382,uri:r})):b.createElement(N,{alignItems:"center",display:"flex",justifyContent:"center",style:{flexGrow:1}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"8"},b.createElement(N,{borderRadius:"10",height:v1,overflow:"hidden"},b.createElement(ze,{height:v1,src:c,width:v1})),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"4",paddingX:"32",style:{textAlign:"center"}},b.createElement(wu,{color:"modalText",size:"18",weight:"bold"},f?g.t("connect.status.opening",{wallet:E}):m?g.t("connect.status.not_installed",{wallet:E}):g.t("connect.status.not_available",{wallet:E})),!f&&m?b.createElement(N,{paddingTop:"20"},b.createElement(S0,{href:a.extensionDownloadUrl,label:g.t("connect.secondary_action.install.label"),type:"secondary"})):null,f&&!v&&b.createElement(b.Fragment,null,b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",justifyContent:"center"},b.createElement(wu,{color:"modalTextSecondary",size:"14",textAlign:"center",weight:"medium"},g.t("connect.status.confirm"))),b.createElement(N,{alignItems:"center",color:"modalText",display:"flex",flexDirection:"row",height:"32",marginTop:"8"},t?b.createElement(S0,{label:g.t("connect.secondary_action.retry.label"),onClick:h?async()=>{const x=await h();window.open(x,B?"_blank":"_self")}:()=>{i(a)}}):b.createElement(N,{color:"modalTextSecondary"},b.createElement(L3,null))))))),b.createElement(N,{alignItems:"center",borderRadius:"10",display:"flex",flexDirection:"row",gap:"8",height:"28",justifyContent:"space-between",marginTop:"12"},f&&w&&b.createElement(b.Fragment,null,b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},w.description),b.createElement(S0,{label:w.label,onClick:w.onClick,type:"secondary"}))))}var gA=({actionLabel:u,description:e,iconAccent:t,iconBackground:n,iconUrl:r,isCompact:i,onAction:a,title:o,url:s,variant:l})=>{const c=l==="browser",E=!c&&t&&p4u(t);return b.createElement(N,{alignItems:"center",borderRadius:"13",display:"flex",justifyContent:"center",overflow:"hidden",paddingX:i?"18":"44",position:"relative",style:{flex:1,isolation:"isolate"},width:"full"},b.createElement(N,{borderColor:"actionButtonBorder",borderRadius:"13",borderStyle:"solid",borderWidth:"1",style:{bottom:"0",left:"0",position:"absolute",right:"0",top:"0",zIndex:1}}),c&&b.createElement(N,{background:"downloadTopCardBackground",height:"full",position:"absolute",style:{zIndex:0},width:"full"},b.createElement(N,{display:"flex",flexDirection:"row",justifyContent:"space-between",style:{bottom:"0",filter:"blur(20px)",left:"0",position:"absolute",right:"0",top:"0",transform:"translate3d(0, 0, 0)"}},b.createElement(N,{style:{filter:"blur(100px)",marginLeft:-27,marginTop:-20,opacity:.6,transform:"translate3d(0, 0, 0)"}},b.createElement(ze,{borderRadius:"full",height:"200",src:r,width:"200"})),b.createElement(N,{style:{filter:"blur(100px)",marginRight:0,marginTop:105,opacity:.6,overflow:"auto",transform:"translate3d(0, 0, 0)"}},b.createElement(ze,{borderRadius:"full",height:"200",src:r,width:"200"})))),!c&&E&&b.createElement(N,{background:"downloadBottomCardBackground",style:{bottom:"0",left:"0",position:"absolute",right:"0",top:"0"}},b.createElement(N,{position:"absolute",style:{background:`radial-gradient(50% 50% at 50% 50%, ${E[0]} 0%, ${E[1]} 25%, rgba(0,0,0,0) 100%)`,height:564,left:-215,top:-197,transform:"translate3d(0, 0, 0)",width:564}}),b.createElement(N,{position:"absolute",style:{background:`radial-gradient(50% 50% at 50% 50%, ${E[2]} 0%, rgba(0, 0, 0, 0) 100%)`,height:564,left:-1,top:-76,transform:"translate3d(0, 0, 0)",width:564}})),b.createElement(N,{alignItems:"flex-start",display:"flex",flexDirection:"row",gap:"24",height:"max",justifyContent:"center",style:{zIndex:1}},b.createElement(N,null,b.createElement(ze,{height:"60",src:r,width:"60",...n?{background:n,borderColor:"generalBorder",borderRadius:"10"}:null})),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4",style:{flex:1},width:"full"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},o),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},e),b.createElement(N,{marginTop:"14",width:"max"},b.createElement(S0,{href:s,label:u,onClick:a,size:"medium"})))))};function k4u({changeWalletStep:u,wallet:e}){const t=V5(),r=M.useContext(Hd)==="compact",{extension:i,extensionDownloadUrl:a,mobileDownloadUrl:o}=e,s=M.useContext(i0);return M.useEffect(()=>{$w(),Hw(),m4u()},[]),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"24",height:"full",marginBottom:"8",marginTop:"4",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"8",height:"full",justifyContent:"center",width:"full"},a&&b.createElement(gA,{actionLabel:s.t("get_options.extension.download.label",{browser:t}),description:s.t("get_options.extension.description"),iconUrl:Kw,isCompact:r,onAction:()=>u(i!=null&&i.instructions?"INSTRUCTIONS_EXTENSION":"CONNECT"),title:s.t("get_options.extension.title",{wallet:e.name,browser:t}),url:a,variant:"browser"}),o&&b.createElement(gA,{actionLabel:s.t("get_options.mobile.download.label",{wallet:e.name}),description:s.t("get_options.mobile.description"),iconAccent:e.iconAccent,iconBackground:e.iconBackground,iconUrl:e.iconUrl,isCompact:r,onAction:()=>{u("DOWNLOAD")},title:s.t("get_options.mobile.title",{wallet:e.name}),variant:"app"})))}function _4u({changeWalletStep:u,wallet:e}){const{downloadUrls:t,qrCode:n}=e,r=M.useContext(i0);return M.useEffect(()=>{$w(),Hw()},[]),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"24",height:"full",width:"full"},b.createElement(N,{style:{maxWidth:220,textAlign:"center"}},b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"semibold"},r.t("get_mobile.description"))),b.createElement(N,{height:"full"},t!=null&&t.qrCode?b.createElement(Gw,{logoSize:0,size:268,uri:t.qrCode}):null),b.createElement(N,{alignItems:"center",borderRadius:"10",display:"flex",flexDirection:"row",gap:"8",height:"34",justifyContent:"space-between",marginBottom:"12",paddingY:"8"},b.createElement(S0,{label:r.t("get_mobile.continue.label"),onClick:()=>u(n!=null&&n.instructions?"INSTRUCTIONS_MOBILE":"CONNECT")})))}var n2={create:()=>b.createElement(C4u,null),install:u=>b.createElement(ze,{background:u.iconBackground,borderColor:"generalBorder",borderRadius:"10",height:"48",src:u.iconUrl,width:"48"}),refresh:()=>b.createElement(g4u,null),scan:()=>b.createElement(A4u,null)};function S4u({connectWallet:u,wallet:e}){var t,n,r,i;const a=M.useContext(i0);return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",height:"full",width:"full"},b.createElement(N,{display:"flex",flexDirection:"column",gap:"28",height:"full",justifyContent:"center",paddingY:"32",style:{maxWidth:320}},(n=(t=e==null?void 0:e.qrCode)==null?void 0:t.instructions)==null?void 0:n.steps.map((o,s)=>{var l;return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16",key:s},b.createElement(N,{borderRadius:"10",height:"48",minWidth:"48",overflow:"hidden",position:"relative",width:"48"},(l=n2[o.step])==null?void 0:l.call(n2,e)),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},a.t(o.title)),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},a.t(o.description))))})),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"12",justifyContent:"center",marginBottom:"16"},b.createElement(S0,{label:a.t("get_instructions.mobile.connect.label"),onClick:()=>u(e)}),b.createElement(N,{as:"a",className:Te({active:"shrink",hover:"grow"}),display:"block",href:(i=(r=e==null?void 0:e.qrCode)==null?void 0:r.instructions)==null?void 0:i.learnMoreUrl,paddingX:"12",paddingY:"4",rel:"noreferrer",style:{willChange:"transform"},target:"_blank",transition:"default"},b.createElement(wu,{color:"accentColor",size:"14",weight:"bold"},a.t("get_instructions.mobile.learn_more.label")))))}function P4u({wallet:u}){var e,t,n,r;const i=M.useContext(i0);return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",height:"full",width:"full"},b.createElement(N,{display:"flex",flexDirection:"column",gap:"28",height:"full",justifyContent:"center",paddingY:"32",style:{maxWidth:320}},(t=(e=u==null?void 0:u.extension)==null?void 0:e.instructions)==null?void 0:t.steps.map((a,o)=>{var s;return b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"16",key:o},b.createElement(N,{borderRadius:"10",height:"48",minWidth:"48",overflow:"hidden",position:"relative",width:"48"},(s=n2[a.step])==null?void 0:s.call(n2,u)),b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},b.createElement(wu,{color:"modalText",size:"14",weight:"bold"},i.t(a.title)),b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},i.t(a.description))))})),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"12",justifyContent:"center",marginBottom:"16"},b.createElement(S0,{label:i.t("get_instructions.extension.refresh.label"),onClick:window.location.reload.bind(window.location)}),b.createElement(N,{as:"a",className:Te({active:"shrink",hover:"grow"}),display:"block",href:(r=(n=u==null?void 0:u.extension)==null?void 0:n.instructions)==null?void 0:r.learnMoreUrl,paddingX:"12",paddingY:"4",rel:"noreferrer",style:{willChange:"transform"},target:"_blank",transition:"default"},b.createElement(wu,{color:"accentColor",size:"14",weight:"bold"},i.t("get_instructions.extension.learn_more.label")))))}function T4u({onClose:u}){const e="rk_connect_title",t=Q5(),[n,r]=M.useState(),[i,a]=M.useState(),[o,s]=M.useState(),l=!!(i!=null&&i.qrCode)&&o,[c,E]=M.useState(!1),f=M.useContext(Hd)===$3.COMPACT,{disclaimer:C}=M.useContext(n4),h=M.useContext(i0),B=Gd().filter(W=>W.ready||!!W.extensionDownloadUrl).sort((W,iu)=>W.groupIndex-iu.groupIndex),g=s4u(B,W=>W.groupName),m=["Recommended","Other","Popular","More","Others"],y=W=>{var iu,lu,cu;if(E(!1),W.ready){(lu=(iu=W==null?void 0:W.connect)==null?void 0:iu.call(W))==null||lu.catch(()=>{E(!0)});const pu=(cu=W.desktop)==null?void 0:cu.getUri;pu&&setTimeout(async()=>{const fu=await pu();window.open(fu,t?"_blank":"_self")},0)}},v=W=>{var iu;if(y(W),r(W.id),W.ready){let lu=!1;(iu=W==null?void 0:W.onConnecting)==null||iu.call(W,async()=>{var cu,pu;if(lu)return;lu=!0;const fu=B.find(xu=>W.id===xu.id),J=await((cu=fu==null?void 0:fu.qrCode)==null?void 0:cu.getUri());s(J),setTimeout(()=>{a(fu),p("CONNECT")},J?0:50);const _u=await(fu==null?void 0:fu.connector.getProvider()),Du=(pu=_u==null?void 0:_u.signer)==null?void 0:pu.connection;if(Du!=null&&Du.on&&(Du!=null&&Du.off)){const xu=()=>{bu(),v(W)},bu=()=>{Du.off("close",xu),Du.off("open",bu)};Du.on("close",xu),Du.on("open",bu)}})}else a(W),p(W!=null&&W.extensionDownloadUrl?"DOWNLOAD_OPTIONS":"CONNECT")},w=W=>{var iu;r(W);const lu=B.find(fu=>W===fu.id),cu=(iu=lu==null?void 0:lu.downloadUrls)==null?void 0:iu.qrCode,pu=!!(lu!=null&&lu.extensionDownloadUrl);a(lu),p(cu&&pu?"DOWNLOAD_OPTIONS":cu?"DOWNLOAD":"INSTRUCTIONS_EXTENSION")},D=()=>{r(void 0),a(void 0),s(void 0)},p=(W,iu=!1)=>{iu&&W==="GET"&&x==="GET"?D():!iu&&W==="GET"?j("GET"):!iu&&W==="CONNECT"&&j("CONNECT"),Z(W)},[x,j]=M.useState("NONE"),[O,Z]=M.useState("NONE");let ou=null,su=null,hu=null,eu;M.useEffect(()=>{E(!1)},[O,i]);const nu=!!(!!(i!=null&&i.extensionDownloadUrl)&&(i!=null&&i.mobileDownloadUrl));switch(O){case"NONE":ou=b.createElement(CA,{getWallet:()=>p("GET")});break;case"LEARN_COMPACT":ou=b.createElement(CA,{compactModeEnabled:f,getWallet:()=>p("GET")}),su=h.t("intro.title"),hu="NONE";break;case"GET":ou=b.createElement(w4u,{getWalletDownload:w,compactModeEnabled:f}),su=h.t("get.title"),hu=f?"LEARN_COMPACT":"NONE";break;case"CONNECT":ou=i&&b.createElement(x4u,{changeWalletStep:p,compactModeEnabled:f,connectionError:c,onClose:u,qrCodeUri:o,reconnect:y,wallet:i}),su=l&&(i.name==="WalletConnect"?h.t("connect_scan.fallback_title"):h.t("connect_scan.title",{wallet:i.name})),hu=f?"NONE":null,eu=f?D:()=>{};break;case"DOWNLOAD_OPTIONS":ou=i&&b.createElement(k4u,{changeWalletStep:p,wallet:i}),su=i&&h.t("get_options.short_title",{wallet:i.name}),hu=nu?x:null;break;case"DOWNLOAD":ou=i&&b.createElement(_4u,{changeWalletStep:p,wallet:i}),su=i&&h.t("get_mobile.title",{wallet:i.name}),hu=nu?"DOWNLOAD_OPTIONS":x;break;case"INSTRUCTIONS_MOBILE":ou=i&&b.createElement(S4u,{connectWallet:v,wallet:i}),su=i&&h.t("get_options.title",{wallet:f&&i.shortName||i.name}),hu="DOWNLOAD";break;case"INSTRUCTIONS_EXTENSION":ou=i&&b.createElement(P4u,{wallet:i}),su=i&&h.t("get_options.title",{wallet:f&&i.shortName||i.name}),hu="DOWNLOAD_OPTIONS";break}return b.createElement(N,{display:"flex",flexDirection:"row",style:{maxHeight:f?468:504}},(f?O==="NONE":!0)&&b.createElement(N,{className:f?F4u:v4u,display:"flex",flexDirection:"column",marginTop:"16"},b.createElement(N,{display:"flex",justifyContent:"space-between"},f&&C&&b.createElement(N,{marginLeft:"16",width:"28"},b.createElement(c4u,{onClick:()=>p("LEARN_COMPACT")})),f&&!C&&b.createElement(N,{marginLeft:"16",width:"28"}),b.createElement(N,{marginLeft:f?"0":"6",paddingBottom:"8",paddingTop:"2",paddingX:"18"},b.createElement(wu,{as:"h1",color:"modalText",id:e,size:"18",weight:"heavy",testId:"connect-header-label"},h.t("connect.title"))),f&&b.createElement(N,{marginRight:"16"},b.createElement(ws,{onClose:u}))),b.createElement(N,{className:B4u,paddingBottom:"18"},Object.entries(g).map(([W,iu],lu)=>iu.length>0&&b.createElement(M.Fragment,{key:lu},W?b.createElement(N,{marginBottom:"8",marginTop:"16",marginX:"6"},b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"bold"},m.includes(W)?h.t(`connector_group.${W.toLowerCase()}`):W)):null,b.createElement(N,{display:"flex",flexDirection:"column",gap:"4"},iu.map(cu=>b.createElement(Uw,{currentlySelected:cu.id===n,iconBackground:cu.iconBackground,iconUrl:cu.iconUrl,key:cu.id,name:cu.name,onClick:()=>v(cu),ready:cu.ready,recent:cu.recent,testId:`wallet-option-${cu.id}`})))))),f&&b.createElement(b.Fragment,null,b.createElement(N,{background:"generalBorder",height:"1",marginTop:"-1"}),C?b.createElement(N,{paddingX:"24",paddingY:"16",textAlign:"center"},b.createElement(C,{Link:J5,Text:Y5})):b.createElement(N,{alignItems:"center",display:"flex",justifyContent:"space-between",paddingX:"24",paddingY:"16"},b.createElement(N,{paddingY:"4"},b.createElement(wu,{color:"modalTextSecondary",size:"14",weight:"medium"},h.t("connect.new_to_ethereum.description"))),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"row",gap:"4",justifyContent:"center"},b.createElement(N,{className:Te({active:"shrink",hover:"grow"}),cursor:"pointer",onClick:()=>p("LEARN_COMPACT"),paddingY:"4",style:{willChange:"transform"},transition:"default"},b.createElement(wu,{color:"accentColor",size:"14",weight:"bold"},h.t("connect.new_to_ethereum.learn_more.label"))))))),(f?O!=="NONE":!0)&&b.createElement(b.Fragment,null,!f&&b.createElement(N,{background:"generalBorder",minWidth:"1",width:"1"}),b.createElement(N,{display:"flex",flexDirection:"column",margin:"16",style:{flexGrow:1}},b.createElement(N,{alignItems:"center",display:"flex",justifyContent:"space-between",marginBottom:"12"},b.createElement(N,{width:"28"},hu&&b.createElement(N,{as:"button",className:Te({active:"shrinkSm",hover:"growLg"}),color:"accentColor",onClick:()=>{hu&&p(hu,!0),eu==null||eu()},paddingX:"8",paddingY:"4",style:{boxSizing:"content-box",height:17,willChange:"transform"},transition:"default",type:"button"},b.createElement(zw,null))),b.createElement(N,{display:"flex",justifyContent:"center",style:{flexGrow:1}},su&&b.createElement(wu,{color:"modalText",size:"18",textAlign:"center",weight:"heavy"},su)),b.createElement(ws,{onClose:u})),b.createElement(N,{display:"flex",flexDirection:"column",style:{minHeight:f?396:432}},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"6",height:"full",justifyContent:"center",marginX:"8"},ou)))))}var I4u="_1am14410";function O4u({onClose:u,wallet:e}){const{connect:t,connector:n,iconBackground:r,iconUrl:i,id:a,mobile:o,name:s,onConnecting:l,ready:c,shortName:E}=e,d=o==null?void 0:o.getUri,f=Mw(i),C=M.useContext(i0);return b.createElement(N,{as:"button",color:c?"modalText":"modalTextSecondary",disabled:!c,fontFamily:"body",key:a,onClick:M.useCallback(async()=>{a==="walletConnect"&&(u==null||u()),t==null||t();let h=!1;l==null||l(async()=>{if(!h&&(h=!0,d)){const B=await d();if((n.id==="walletConnect"||n.id==="walletConnectLegacy")&&_su({mobileUri:B,name:s}),B.startsWith("http")){const g=document.createElement("a");g.href=B,g.target="_blank",g.rel="noreferrer noopener",g.click()}else window.location.href=B}})},[n,t,d,l,u,s,a]),ref:f,style:{overflow:"visible",textAlign:"center"},testId:`wallet-option-${a}`,type:"button",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",justifyContent:"center"},b.createElement(N,{paddingBottom:"8",paddingTop:"10"},b.createElement(ze,{background:r,borderRadius:"13",boxShadow:"walletLogo",height:"60",src:i,width:"60"})),b.createElement(N,{display:"flex",flexDirection:"column",textAlign:"center"},b.createElement(wu,{as:"h2",color:e.ready?"modalText":"modalTextSecondary",size:"13",weight:"medium"},b.createElement(N,{as:"span",position:"relative"},E??s,!e.ready&&" (unsupported)")),e.recent&&b.createElement(wu,{color:"accentColor",size:"12",weight:"medium"},C.t("connect.recent")))))}function N4u({onClose:u}){var e;const t="rk_connect_title",n=Gd(),{disclaimer:r,learnMoreUrl:i}=M.useContext(n4);let a=null,o=null,s=!1,l=null;const[c,E]=M.useState("CONNECT"),d=M.useContext(i0),f=va();switch(c){case"CONNECT":{a=d.t("connect.title"),s=!0,o=b.createElement(N,null,b.createElement(N,{background:"profileForeground",className:I4u,display:"flex",paddingBottom:"20",paddingTop:"6"},b.createElement(N,{display:"flex",style:{margin:"0 auto"}},n.filter(C=>C.ready).map(C=>b.createElement(N,{key:C.id,paddingX:"20"},b.createElement(N,{width:"60"},b.createElement(O4u,{onClose:u,wallet:C})))))),b.createElement(N,{background:"generalBorder",height:"1",marginBottom:"32",marginTop:"-1"}),b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",gap:"32",paddingX:"32",style:{textAlign:"center"}},b.createElement(N,{display:"flex",flexDirection:"column",gap:"8",textAlign:"center"},b.createElement(wu,{color:"modalText",size:"16",weight:"bold"},d.t("intro.title")),b.createElement(wu,{color:"modalTextSecondary",size:"16"},d.t("intro.description")))),b.createElement(N,{paddingTop:"32",paddingX:"20"},b.createElement(N,{display:"flex",gap:"14",justifyContent:"center"},b.createElement(S0,{label:d.t("intro.get.label"),onClick:()=>E("GET"),size:"large",type:"secondary"}),b.createElement(S0,{href:i,label:d.t("intro.learn_more.label"),size:"large",type:"secondary"}))),r&&b.createElement(N,{marginTop:"28",marginX:"32",textAlign:"center"},b.createElement(r,{Link:J5,Text:Y5})));break}case"GET":{a=d.t("get.title"),l="CONNECT";const C=(e=n==null?void 0:n.filter(h=>{var B,g,m;return((B=h.downloadUrls)==null?void 0:B.ios)||((g=h.downloadUrls)==null?void 0:g.android)||((m=h.downloadUrls)==null?void 0:m.mobile)}))==null?void 0:e.splice(0,3);o=b.createElement(N,null,b.createElement(N,{alignItems:"center",display:"flex",flexDirection:"column",height:"full",marginBottom:"36",marginTop:"5",paddingTop:"12",width:"full"},C.map((h,B)=>{const{downloadUrls:g,iconBackground:m,iconUrl:y,name:v}=h;return!(g!=null&&g.ios)&&!(g!=null&&g.android)&&!(g!=null&&g.mobile)?null:b.createElement(N,{display:"flex",gap:"16",key:h.id,paddingX:"20",width:"full"},b.createElement(N,{style:{minHeight:48,minWidth:48}},b.createElement(ze,{background:m,borderColor:"generalBorder",borderRadius:"10",height:"48",src:y,width:"48"})),b.createElement(N,{display:"flex",flexDirection:"column",width:"full"},b.createElement(N,{alignItems:"center",display:"flex",height:"48"},b.createElement(N,{width:"full"},b.createElement(wu,{color:"modalText",size:"18",weight:"bold"},v)),b.createElement(S0,{href:(f?g==null?void 0:g.ios:g==null?void 0:g.android)||(g==null?void 0:g.mobile),label:d.t("get.action.label"),size:"small",type:"secondary"})),BE(l),padding:"16",style:{height:17,willChange:"transform"},transition:"default",type:"button"},b.createElement(zw,null))),b.createElement(N,{marginTop:"4",textAlign:"center",width:"full"},b.createElement(wu,{as:"h1",color:"modalText",id:t,size:"20",weight:"bold"},a)),b.createElement(N,{alignItems:"center",display:"flex",height:"32",paddingRight:"14",position:"absolute",right:"0"},b.createElement(N,{style:{marginBottom:-20,marginTop:-20}},b.createElement(ws,{onClose:u}))))),b.createElement(N,{display:"flex",flexDirection:"column"},o))}function R4u({onClose:u}){return He()?b.createElement(N4u,{onClose:u}):b.createElement(T4u,{onClose:u})}function j4u({onClose:u,open:e}){const t="rk_connect_title",n=L5(),{disconnect:r}=C5(),i=b.useCallback(()=>{u(),r()},[u,r]);return n==="disconnected"?b.createElement(e2,{onClose:u,open:e,titleId:t},b.createElement(t2,{bottomSheetOnMobile:!0,padding:"0",wide:!0},b.createElement(R4u,{onClose:u}))):n==="unauthenticated"?b.createElement(e2,{onClose:i,open:e,titleId:t},b.createElement(t2,{bottomSheetOnMobile:!0,padding:"0"},b.createElement(xsu,{onClose:i}))):null}function F1(){const[u,e]=M.useState(!1);return{closeModal:M.useCallback(()=>e(!1),[]),isModalOpen:u,openModal:M.useCallback(()=>e(!0),[])}}var Gl=M.createContext({accountModalOpen:!1,chainModalOpen:!1,connectModalOpen:!1});function z4u({children:u}){const{closeModal:e,isModalOpen:t,openModal:n}=F1(),{closeModal:r,isModalOpen:i,openModal:a}=F1(),{closeModal:o,isModalOpen:s,openModal:l}=F1(),c=L5(),{chain:E}=ga(),d=!(E!=null&&E.unsupported);function f({keepConnectModalOpen:h=!1}={}){h||e(),r(),o()}const C=qd()==="unauthenticated";return Q0({onConnect:()=>f({keepConnectModalOpen:C}),onDisconnect:()=>f()}),b.createElement(Gl.Provider,{value:M.useMemo(()=>({accountModalOpen:i,chainModalOpen:s,connectModalOpen:t,openAccountModal:d&&c==="connected"?a:void 0,openChainModal:c==="connected"?l:void 0,openConnectModal:c==="disconnected"||c==="unauthenticated"?n:void 0}),[c,d,i,s,t,a,l,n])},u,b.createElement(j4u,{onClose:e,open:t}),b.createElement(t4u,{onClose:r,open:i}),b.createElement(o4u,{onClose:o,open:s}))}function M4u(){const{accountModalOpen:u,chainModalOpen:e,connectModalOpen:t}=M.useContext(Gl);return{accountModalOpen:u,chainModalOpen:e,connectModalOpen:t}}function U4u(){const{accountModalOpen:u,openAccountModal:e}=M.useContext(Gl);return{accountModalOpen:u,openAccountModal:e}}function L4u(){const{chainModalOpen:u,openChainModal:e}=M.useContext(Gl);return{chainModalOpen:u,openChainModal:e}}function $4u(){const{connectModalOpen:u,openConnectModal:e}=M.useContext(Gl);return{connectModalOpen:u,openConnectModal:e}}var D1=()=>{};function X5({children:u}){var e,t,n,r;const i=nsu(),{address:a}=Q0(),o=mw(a),s=Cw(o),{data:l}=mD({address:a}),{chain:c}=ga(),E=tsu(),d=(e=qd())!=null?e:void 0,f=c?E[c.id]:void 0,C=(t=f==null?void 0:f.name)!=null?t:void 0,h=(n=f==null?void 0:f.iconUrl)!=null?n:void 0,B=(r=f==null?void 0:f.iconBackground)!=null?r:void 0,g=W5(h),m=M.useContext(K5),y=Bw().some(({status:Z})=>Z==="pending")&&m,v=l?`${Iw(parseFloat(l.formatted))} ${l.symbol}`:void 0,{openConnectModal:w}=$4u(),{openChainModal:D}=L4u(),{openAccountModal:p}=U4u(),{accountModalOpen:x,chainModalOpen:j,connectModalOpen:O}=M4u();return b.createElement(b.Fragment,null,u({account:a?{address:a,balanceDecimals:l==null?void 0:l.decimals,balanceFormatted:l==null?void 0:l.formatted,balanceSymbol:l==null?void 0:l.symbol,displayBalance:v,displayName:o?Nw(o):Ow(a),ensAvatar:s??void 0,ensName:o??void 0,hasPendingTransactions:y}:void 0,accountModalOpen:x,authenticationStatus:d,chain:c?{hasIcon:!!h,iconBackground:B,iconUrl:g,id:c.id,name:C??c.name,unsupported:c.unsupported}:void 0,chainModalOpen:j,connectModalOpen:O,mounted:i,openAccountModal:p??D1,openChainModal:D??D1,openConnectModal:w??D1}))}X5.displayName="ConnectButton.Custom";var _4={accountStatus:"full",chainStatus:{largeScreen:"full",smallScreen:"icon"},label:"Connect Wallet",showBalance:{largeScreen:!0,smallScreen:!1}};function Z5({accountStatus:u=_4.accountStatus,chainStatus:e=_4.chainStatus,label:t=_4.label,showBalance:n=_4.showBalance}){const r=Hl(),i=L5(),a=M.useContext(i0);return b.createElement(X5,null,({account:o,chain:s,mounted:l,openAccountModal:c,openChainModal:E,openConnectModal:d})=>{var f,C,h;const B=l&&i!=="loading",g=(f=s==null?void 0:s.unsupported)!=null?f:!1;return b.createElement(N,{display:"flex",gap:"12",...!B&&{"aria-hidden":!0,style:{opacity:0,pointerEvents:"none",userSelect:"none"}}},B&&o&&i==="connected"?b.createElement(b.Fragment,null,s&&(r.length>1||g)&&b.createElement(N,{alignItems:"center","aria-label":"Chain Selector",as:"button",background:g?"connectButtonBackgroundError":"connectButtonBackground",borderRadius:"connectButton",boxShadow:"connectButton",className:Te({active:"shrink",hover:"grow"}),color:g?"connectButtonTextError":"connectButtonText",display:_a(e,m=>m==="none"?"none":"flex"),fontFamily:"body",fontWeight:"bold",gap:"6",key:g?"unsupported":"supported",onClick:E,paddingX:"10",paddingY:"8",testId:g?"wrong-network-button":"chain-button",transition:"default",type:"button"},g?b.createElement(N,{alignItems:"center",display:"flex",height:"24",paddingX:"4"},"Wrong network"):b.createElement(N,{alignItems:"center",display:"flex",gap:"6"},s.hasIcon?b.createElement(N,{display:_a(e,m=>m==="full"||m==="icon"?"block":"none"),height:"24",width:"24"},b.createElement(ze,{alt:(C=s.name)!=null?C:"Chain icon",background:s.iconBackground,borderRadius:"full",height:"24",src:s.iconUrl,width:"24"})):null,b.createElement(N,{display:_a(e,m=>m==="icon"&&!s.iconUrl||m==="full"||m==="name"?"block":"none")},(h=s.name)!=null?h:s.id)),b.createElement($g,null)),!g&&b.createElement(N,{alignItems:"center",as:"button",background:"connectButtonBackground",borderRadius:"connectButton",boxShadow:"connectButton",className:Te({active:"shrink",hover:"grow"}),color:"connectButtonText",display:"flex",fontFamily:"body",fontWeight:"bold",onClick:c,testId:"account-button",transition:"default",type:"button"},o.displayBalance&&b.createElement(N,{display:_a(n,m=>m?"block":"none"),padding:"8",paddingLeft:"12"},o.displayBalance),b.createElement(N,{background:jru(n)[He()?"smallScreen":"largeScreen"]?"connectButtonInnerBackground":"connectButtonBackground",borderColor:"connectButtonBackground",borderRadius:"connectButton",borderStyle:"solid",borderWidth:"2",color:"connectButtonText",fontFamily:"body",fontWeight:"bold",paddingX:"8",paddingY:"6",transition:"default"},b.createElement(N,{alignItems:"center",display:"flex",gap:"6",height:"24"},b.createElement(N,{display:_a(u,m=>m==="full"||m==="avatar"?"block":"none")},b.createElement(pw,{address:o.address,imageUrl:o.ensAvatar,loading:o.hasPendingTransactions,size:24})),b.createElement(N,{alignItems:"center",display:"flex",gap:"6"},b.createElement(N,{display:_a(u,m=>m==="full"||m==="address"?"block":"none")},o.displayName),b.createElement($g,null)))))):b.createElement(N,{as:"button",background:"accentColor",borderRadius:"connectButton",boxShadow:"connectButton",className:Te({active:"shrink",hover:"grow"}),color:"accentColorForeground",fontFamily:"body",fontWeight:"bold",height:"40",key:"connect",onClick:d,paddingX:"14",testId:"connect-button",transition:"default",type:"button"},l&&t==="Connect Wallet"?a.t("connect_wallet.label"):t))})}Z5.__defaultProps=_4;Z5.Custom=X5;var uC={},Kd={},Uu={},Qw={};(function(u){Object.defineProperty(u,"__esModule",{value:!0});function e(o,s){var l=o>>>16&65535,c=o&65535,E=s>>>16&65535,d=s&65535;return c*d+(l*d+c*E<<16>>>0)|0}u.mul=Math.imul||e;function t(o,s){return o+s|0}u.add=t;function n(o,s){return o-s|0}u.sub=n;function r(o,s){return o<>>32-s}u.rotl=r;function i(o,s){return o<<32-s|o>>>s}u.rotr=i;function a(o){return typeof o=="number"&&isFinite(o)&&Math.floor(o)===o}u.isInteger=Number.isInteger||a,u.MAX_SAFE_INTEGER=9007199254740991,u.isSafeInteger=function(o){return u.isInteger(o)&&o>=-u.MAX_SAFE_INTEGER&&o<=u.MAX_SAFE_INTEGER}})(Qw);Object.defineProperty(Uu,"__esModule",{value:!0});var Vw=Qw;function W4u(u,e){return e===void 0&&(e=0),(u[e+0]<<8|u[e+1])<<16>>16}Uu.readInt16BE=W4u;function q4u(u,e){return e===void 0&&(e=0),(u[e+0]<<8|u[e+1])>>>0}Uu.readUint16BE=q4u;function H4u(u,e){return e===void 0&&(e=0),(u[e+1]<<8|u[e])<<16>>16}Uu.readInt16LE=H4u;function G4u(u,e){return e===void 0&&(e=0),(u[e+1]<<8|u[e])>>>0}Uu.readUint16LE=G4u;function Jw(u,e,t){return e===void 0&&(e=new Uint8Array(2)),t===void 0&&(t=0),e[t+0]=u>>>8,e[t+1]=u>>>0,e}Uu.writeUint16BE=Jw;Uu.writeInt16BE=Jw;function Yw(u,e,t){return e===void 0&&(e=new Uint8Array(2)),t===void 0&&(t=0),e[t+0]=u>>>0,e[t+1]=u>>>8,e}Uu.writeUint16LE=Yw;Uu.writeInt16LE=Yw;function If(u,e){return e===void 0&&(e=0),u[e]<<24|u[e+1]<<16|u[e+2]<<8|u[e+3]}Uu.readInt32BE=If;function Of(u,e){return e===void 0&&(e=0),(u[e]<<24|u[e+1]<<16|u[e+2]<<8|u[e+3])>>>0}Uu.readUint32BE=Of;function Nf(u,e){return e===void 0&&(e=0),u[e+3]<<24|u[e+2]<<16|u[e+1]<<8|u[e]}Uu.readInt32LE=Nf;function Rf(u,e){return e===void 0&&(e=0),(u[e+3]<<24|u[e+2]<<16|u[e+1]<<8|u[e])>>>0}Uu.readUint32LE=Rf;function r2(u,e,t){return e===void 0&&(e=new Uint8Array(4)),t===void 0&&(t=0),e[t+0]=u>>>24,e[t+1]=u>>>16,e[t+2]=u>>>8,e[t+3]=u>>>0,e}Uu.writeUint32BE=r2;Uu.writeInt32BE=r2;function i2(u,e,t){return e===void 0&&(e=new Uint8Array(4)),t===void 0&&(t=0),e[t+0]=u>>>0,e[t+1]=u>>>8,e[t+2]=u>>>16,e[t+3]=u>>>24,e}Uu.writeUint32LE=i2;Uu.writeInt32LE=i2;function K4u(u,e){e===void 0&&(e=0);var t=If(u,e),n=If(u,e+4);return t*4294967296+n-(n>>31)*4294967296}Uu.readInt64BE=K4u;function Q4u(u,e){e===void 0&&(e=0);var t=Of(u,e),n=Of(u,e+4);return t*4294967296+n}Uu.readUint64BE=Q4u;function V4u(u,e){e===void 0&&(e=0);var t=Nf(u,e),n=Nf(u,e+4);return n*4294967296+t-(t>>31)*4294967296}Uu.readInt64LE=V4u;function J4u(u,e){e===void 0&&(e=0);var t=Rf(u,e),n=Rf(u,e+4);return n*4294967296+t}Uu.readUint64LE=J4u;function Xw(u,e,t){return e===void 0&&(e=new Uint8Array(8)),t===void 0&&(t=0),r2(u/4294967296>>>0,e,t),r2(u>>>0,e,t+4),e}Uu.writeUint64BE=Xw;Uu.writeInt64BE=Xw;function Zw(u,e,t){return e===void 0&&(e=new Uint8Array(8)),t===void 0&&(t=0),i2(u>>>0,e,t),i2(u/4294967296>>>0,e,t+4),e}Uu.writeUint64LE=Zw;Uu.writeInt64LE=Zw;function Y4u(u,e,t){if(t===void 0&&(t=0),u%8!==0)throw new Error("readUintBE supports only bitLengths divisible by 8");if(u/8>e.length-t)throw new Error("readUintBE: array is too short for the given bitLength");for(var n=0,r=1,i=u/8+t-1;i>=t;i--)n+=e[i]*r,r*=256;return n}Uu.readUintBE=Y4u;function X4u(u,e,t){if(t===void 0&&(t=0),u%8!==0)throw new Error("readUintLE supports only bitLengths divisible by 8");if(u/8>e.length-t)throw new Error("readUintLE: array is too short for the given bitLength");for(var n=0,r=1,i=t;i=n;i--)t[i]=e/r&255,r*=256;return t}Uu.writeUintBE=Z4u;function u3u(u,e,t,n){if(t===void 0&&(t=new Uint8Array(u/8)),n===void 0&&(n=0),u%8!==0)throw new Error("writeUintLE supports only bitLengths divisible by 8");if(!Vw.isSafeInteger(e))throw new Error("writeUintLE value must be an integer");for(var r=1,i=n;i>>32-16|eu<<16,Z=Z+eu|0,p^=Z,p=p>>>32-12|p<<12,v=v+x|0,au^=v,au=au>>>32-16|au<<16,ou=ou+au|0,x^=ou,x=x>>>32-12|x<<12,w=w+j|0,nu^=w,nu=nu>>>32-16|nu<<16,su=su+nu|0,j^=su,j=j>>>32-12|j<<12,D=D+O|0,W^=D,W=W>>>32-16|W<<16,hu=hu+W|0,O^=hu,O=O>>>32-12|O<<12,w=w+j|0,nu^=w,nu=nu>>>32-8|nu<<8,su=su+nu|0,j^=su,j=j>>>32-7|j<<7,D=D+O|0,W^=D,W=W>>>32-8|W<<8,hu=hu+W|0,O^=hu,O=O>>>32-7|O<<7,v=v+x|0,au^=v,au=au>>>32-8|au<<8,ou=ou+au|0,x^=ou,x=x>>>32-7|x<<7,y=y+p|0,eu^=y,eu=eu>>>32-8|eu<<8,Z=Z+eu|0,p^=Z,p=p>>>32-7|p<<7,y=y+x|0,W^=y,W=W>>>32-16|W<<16,su=su+W|0,x^=su,x=x>>>32-12|x<<12,v=v+j|0,eu^=v,eu=eu>>>32-16|eu<<16,hu=hu+eu|0,j^=hu,j=j>>>32-12|j<<12,w=w+O|0,au^=w,au=au>>>32-16|au<<16,Z=Z+au|0,O^=Z,O=O>>>32-12|O<<12,D=D+p|0,nu^=D,nu=nu>>>32-16|nu<<16,ou=ou+nu|0,p^=ou,p=p>>>32-12|p<<12,w=w+O|0,au^=w,au=au>>>32-8|au<<8,Z=Z+au|0,O^=Z,O=O>>>32-7|O<<7,D=D+p|0,nu^=D,nu=nu>>>32-8|nu<<8,ou=ou+nu|0,p^=ou,p=p>>>32-7|p<<7,v=v+j|0,eu^=v,eu=eu>>>32-8|eu<<8,hu=hu+eu|0,j^=hu,j=j>>>32-7|j<<7,y=y+x|0,W^=y,W=W>>>32-8|W<<8,su=su+W|0,x^=su,x=x>>>32-7|x<<7;Ve.writeUint32LE(y+n|0,u,0),Ve.writeUint32LE(v+r|0,u,4),Ve.writeUint32LE(w+i|0,u,8),Ve.writeUint32LE(D+a|0,u,12),Ve.writeUint32LE(p+o|0,u,16),Ve.writeUint32LE(x+s|0,u,20),Ve.writeUint32LE(j+l|0,u,24),Ve.writeUint32LE(O+c|0,u,28),Ve.writeUint32LE(Z+E|0,u,32),Ve.writeUint32LE(ou+d|0,u,36),Ve.writeUint32LE(su+f|0,u,40),Ve.writeUint32LE(hu+C|0,u,44),Ve.writeUint32LE(eu+h|0,u,48),Ve.writeUint32LE(au+B|0,u,52),Ve.writeUint32LE(nu+g|0,u,56),Ve.writeUint32LE(W+m|0,u,60)}function ux(u,e,t,n,r){if(r===void 0&&(r=0),u.length!==32)throw new Error("ChaCha: key size must be 32 bytes");if(n.length>>=8,e++;if(n>0)throw new Error("ChaCha: counter overflow")}var ex={},li={};Object.defineProperty(li,"__esModule",{value:!0});function p3u(u,e,t){return~(u-1)&e|u-1&t}li.select=p3u;function h3u(u,e){return(u|0)-(e|0)-1>>>31&1}li.lessOrEqual=h3u;function tx(u,e){if(u.length!==e.length)return 0;for(var t=0,n=0;n>>8}li.compare=tx;function C3u(u,e){return u.length===0||e.length===0?!1:tx(u,e)!==0}li.equal=C3u;(function(u){Object.defineProperty(u,"__esModule",{value:!0});var e=li,t=$t;u.DIGEST_LENGTH=16;var n=function(){function a(o){this.digestLength=u.DIGEST_LENGTH,this._buffer=new Uint8Array(16),this._r=new Uint16Array(10),this._h=new Uint16Array(10),this._pad=new Uint16Array(8),this._leftover=0,this._fin=0,this._finished=!1;var s=o[0]|o[1]<<8;this._r[0]=s&8191;var l=o[2]|o[3]<<8;this._r[1]=(s>>>13|l<<3)&8191;var c=o[4]|o[5]<<8;this._r[2]=(l>>>10|c<<6)&7939;var E=o[6]|o[7]<<8;this._r[3]=(c>>>7|E<<9)&8191;var d=o[8]|o[9]<<8;this._r[4]=(E>>>4|d<<12)&255,this._r[5]=d>>>1&8190;var f=o[10]|o[11]<<8;this._r[6]=(d>>>14|f<<2)&8191;var C=o[12]|o[13]<<8;this._r[7]=(f>>>11|C<<5)&8065;var h=o[14]|o[15]<<8;this._r[8]=(C>>>8|h<<8)&8191,this._r[9]=h>>>5&127,this._pad[0]=o[16]|o[17]<<8,this._pad[1]=o[18]|o[19]<<8,this._pad[2]=o[20]|o[21]<<8,this._pad[3]=o[22]|o[23]<<8,this._pad[4]=o[24]|o[25]<<8,this._pad[5]=o[26]|o[27]<<8,this._pad[6]=o[28]|o[29]<<8,this._pad[7]=o[30]|o[31]<<8}return a.prototype._blocks=function(o,s,l){for(var c=this._fin?0:2048,E=this._h[0],d=this._h[1],f=this._h[2],C=this._h[3],h=this._h[4],B=this._h[5],g=this._h[6],m=this._h[7],y=this._h[8],v=this._h[9],w=this._r[0],D=this._r[1],p=this._r[2],x=this._r[3],j=this._r[4],O=this._r[5],Z=this._r[6],ou=this._r[7],su=this._r[8],hu=this._r[9];l>=16;){var eu=o[s+0]|o[s+1]<<8;E+=eu&8191;var au=o[s+2]|o[s+3]<<8;d+=(eu>>>13|au<<3)&8191;var nu=o[s+4]|o[s+5]<<8;f+=(au>>>10|nu<<6)&8191;var W=o[s+6]|o[s+7]<<8;C+=(nu>>>7|W<<9)&8191;var iu=o[s+8]|o[s+9]<<8;h+=(W>>>4|iu<<12)&8191,B+=iu>>>1&8191;var lu=o[s+10]|o[s+11]<<8;g+=(iu>>>14|lu<<2)&8191;var cu=o[s+12]|o[s+13]<<8;m+=(lu>>>11|cu<<5)&8191;var pu=o[s+14]|o[s+15]<<8;y+=(cu>>>8|pu<<8)&8191,v+=pu>>>5|c;var fu=0,J=fu;J+=E*w,J+=d*(5*hu),J+=f*(5*su),J+=C*(5*ou),J+=h*(5*Z),fu=J>>>13,J&=8191,J+=B*(5*O),J+=g*(5*j),J+=m*(5*x),J+=y*(5*p),J+=v*(5*D),fu+=J>>>13,J&=8191;var _u=fu;_u+=E*D,_u+=d*w,_u+=f*(5*hu),_u+=C*(5*su),_u+=h*(5*ou),fu=_u>>>13,_u&=8191,_u+=B*(5*Z),_u+=g*(5*O),_u+=m*(5*j),_u+=y*(5*x),_u+=v*(5*p),fu+=_u>>>13,_u&=8191;var Du=fu;Du+=E*p,Du+=d*D,Du+=f*w,Du+=C*(5*hu),Du+=h*(5*su),fu=Du>>>13,Du&=8191,Du+=B*(5*ou),Du+=g*(5*Z),Du+=m*(5*O),Du+=y*(5*j),Du+=v*(5*x),fu+=Du>>>13,Du&=8191;var xu=fu;xu+=E*x,xu+=d*p,xu+=f*D,xu+=C*w,xu+=h*(5*hu),fu=xu>>>13,xu&=8191,xu+=B*(5*su),xu+=g*(5*ou),xu+=m*(5*Z),xu+=y*(5*O),xu+=v*(5*j),fu+=xu>>>13,xu&=8191;var bu=fu;bu+=E*j,bu+=d*x,bu+=f*p,bu+=C*D,bu+=h*w,fu=bu>>>13,bu&=8191,bu+=B*(5*hu),bu+=g*(5*su),bu+=m*(5*ou),bu+=y*(5*Z),bu+=v*(5*O),fu+=bu>>>13,bu&=8191;var Iu=fu;Iu+=E*O,Iu+=d*j,Iu+=f*x,Iu+=C*p,Iu+=h*D,fu=Iu>>>13,Iu&=8191,Iu+=B*w,Iu+=g*(5*hu),Iu+=m*(5*su),Iu+=y*(5*ou),Iu+=v*(5*Z),fu+=Iu>>>13,Iu&=8191;var S=fu;S+=E*Z,S+=d*O,S+=f*j,S+=C*x,S+=h*p,fu=S>>>13,S&=8191,S+=B*D,S+=g*w,S+=m*(5*hu),S+=y*(5*su),S+=v*(5*ou),fu+=S>>>13,S&=8191;var T=fu;T+=E*ou,T+=d*Z,T+=f*O,T+=C*j,T+=h*x,fu=T>>>13,T&=8191,T+=B*p,T+=g*D,T+=m*w,T+=y*(5*hu),T+=v*(5*su),fu+=T>>>13,T&=8191;var I=fu;I+=E*su,I+=d*ou,I+=f*Z,I+=C*O,I+=h*j,fu=I>>>13,I&=8191,I+=B*x,I+=g*p,I+=m*D,I+=y*w,I+=v*(5*hu),fu+=I>>>13,I&=8191;var L=fu;L+=E*hu,L+=d*su,L+=f*ou,L+=C*Z,L+=h*O,fu=L>>>13,L&=8191,L+=B*j,L+=g*x,L+=m*p,L+=y*D,L+=v*w,fu+=L>>>13,L&=8191,fu=(fu<<2)+fu|0,fu=fu+J|0,J=fu&8191,fu=fu>>>13,_u+=fu,E=J,d=_u,f=Du,C=xu,h=bu,B=Iu,g=S,m=T,y=I,v=L,s+=16,l-=16}this._h[0]=E,this._h[1]=d,this._h[2]=f,this._h[3]=C,this._h[4]=h,this._h[5]=B,this._h[6]=g,this._h[7]=m,this._h[8]=y,this._h[9]=v},a.prototype.finish=function(o,s){s===void 0&&(s=0);var l=new Uint16Array(10),c,E,d,f;if(this._leftover){for(f=this._leftover,this._buffer[f++]=1;f<16;f++)this._buffer[f]=0;this._fin=1,this._blocks(this._buffer,0,16)}for(c=this._h[1]>>>13,this._h[1]&=8191,f=2;f<10;f++)this._h[f]+=c,c=this._h[f]>>>13,this._h[f]&=8191;for(this._h[0]+=c*5,c=this._h[0]>>>13,this._h[0]&=8191,this._h[1]+=c,c=this._h[1]>>>13,this._h[1]&=8191,this._h[2]+=c,l[0]=this._h[0]+5,c=l[0]>>>13,l[0]&=8191,f=1;f<10;f++)l[f]=this._h[f]+c,c=l[f]>>>13,l[f]&=8191;for(l[9]-=8192,E=(c^1)-1,f=0;f<10;f++)l[f]&=E;for(E=~E,f=0;f<10;f++)this._h[f]=this._h[f]&E|l[f];for(this._h[0]=(this._h[0]|this._h[1]<<13)&65535,this._h[1]=(this._h[1]>>>3|this._h[2]<<10)&65535,this._h[2]=(this._h[2]>>>6|this._h[3]<<7)&65535,this._h[3]=(this._h[3]>>>9|this._h[4]<<4)&65535,this._h[4]=(this._h[4]>>>12|this._h[5]<<1|this._h[6]<<14)&65535,this._h[5]=(this._h[6]>>>2|this._h[7]<<11)&65535,this._h[6]=(this._h[7]>>>5|this._h[8]<<8)&65535,this._h[7]=(this._h[8]>>>8|this._h[9]<<5)&65535,d=this._h[0]+this._pad[0],this._h[0]=d&65535,f=1;f<8;f++)d=(this._h[f]+this._pad[f]|0)+(d>>>16)|0,this._h[f]=d&65535;return o[s+0]=this._h[0]>>>0,o[s+1]=this._h[0]>>>8,o[s+2]=this._h[1]>>>0,o[s+3]=this._h[1]>>>8,o[s+4]=this._h[2]>>>0,o[s+5]=this._h[2]>>>8,o[s+6]=this._h[3]>>>0,o[s+7]=this._h[3]>>>8,o[s+8]=this._h[4]>>>0,o[s+9]=this._h[4]>>>8,o[s+10]=this._h[5]>>>0,o[s+11]=this._h[5]>>>8,o[s+12]=this._h[6]>>>0,o[s+13]=this._h[6]>>>8,o[s+14]=this._h[7]>>>0,o[s+15]=this._h[7]>>>8,this._finished=!0,this},a.prototype.update=function(o){var s=0,l=o.length,c;if(this._leftover){c=16-this._leftover,c>l&&(c=l);for(var E=0;E=16&&(c=l-l%16,this._blocks(o,s,c),s+=c,l-=c),l){for(var E=0;E16)throw new Error("ChaCha20Poly1305: incorrect nonce length");var f=new Uint8Array(16);f.set(l,f.length-l.length);var C=new Uint8Array(32);e.stream(this._key,f,C,4);var h=c.length+this.tagLength,B;if(d){if(d.length!==h)throw new Error("ChaCha20Poly1305: incorrect destination length");B=d}else B=new Uint8Array(h);return e.streamXOR(this._key,f,c,B,4),this._authenticate(B.subarray(B.length-this.tagLength,B.length),C,B.subarray(0,B.length-this.tagLength),E),n.wipe(f),B},s.prototype.open=function(l,c,E,d){if(l.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");if(c.length0&&f.update(a.subarray(d.length%16))),f.update(E),E.length%16>0&&f.update(a.subarray(E.length%16));var C=new Uint8Array(8);d&&r.writeUint64LE(d.length,C),f.update(C),r.writeUint64LE(E.length,C),f.update(C);for(var h=f.digest(),B=0;Bthis.blockSize?this._inner.update(t).finish(n).clean():n.set(t);for(var r=0;r1&&this._hmac.update(this._buffer),this._info&&this._hmac.update(this._info),this._hmac.update(this._counter),this._hmac.finish(this._buffer),this._bufpos=0},u.prototype.expand=function(e){for(var t=new Uint8Array(e),n=0;n256)throw new Error("randomString charset is too long");let d="";const f=c.length,C=256-256%f;for(;l>0;){const h=r(Math.ceil(l*256/C),E);for(let B=0;B0;B++){const g=h[B];g0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=s[c++],l--;this._bufferLength===this.blockSize&&(i(this._temp,this._state,this._buffer,0,this.blockSize),this._bufferLength=0)}for(l>=this.blockSize&&(c=i(this._temp,this._state,s,c,l),l%=this.blockSize);l>0;)this._buffer[this._bufferLength++]=s[c++],l--;return this},o.prototype.finish=function(s){if(!this._finished){var l=this._bytesHashed,c=this._bufferLength,E=l/536870912|0,d=l<<3,f=l%64<56?64:128;this._buffer[c]=128;for(var C=c+1;C0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},o.prototype.restoreState=function(s){return this._state.set(s.state),this._bufferLength=s.bufferLength,s.buffer&&this._buffer.set(s.buffer),this._bytesHashed=s.bytesHashed,this._finished=!1,this},o.prototype.cleanSavedState=function(s){t.wipe(s.state),s.buffer&&t.wipe(s.buffer),s.bufferLength=0,s.bytesHashed=0},o}();u.SHA256=n;var r=new Int32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function i(o,s,l,c,E){for(;E>=64;){for(var d=s[0],f=s[1],C=s[2],h=s[3],B=s[4],g=s[5],m=s[6],y=s[7],v=0;v<16;v++){var w=c+v*4;o[v]=e.readUint32BE(l,w)}for(var v=16;v<64;v++){var D=o[v-2],p=(D>>>17|D<<32-17)^(D>>>19|D<<32-19)^D>>>10;D=o[v-15];var x=(D>>>7|D<<32-7)^(D>>>18|D<<32-18)^D>>>3;o[v]=(p+o[v-7]|0)+(x+o[v-16]|0)}for(var v=0;v<64;v++){var p=(((B>>>6|B<<26)^(B>>>11|B<<21)^(B>>>25|B<<7))+(B&g^~B&m)|0)+(y+(r[v]+o[v]|0)|0)|0,x=((d>>>2|d<<32-2)^(d>>>13|d<<32-13)^(d>>>22|d<<32-22))+(d&f^d&C^f&C)|0;y=m,m=g,g=B,B=h+p|0,h=C,C=f,f=d,d=p+x|0}s[0]+=d,s[1]+=f,s[2]+=C,s[3]+=h,s[4]+=B,s[5]+=g,s[6]+=m,s[7]+=y,c+=64,E-=64}return c}function a(o){var s=new n;s.update(o);var l=s.digest();return s.clean(),l}u.hash=a})(Xd);var tC={};(function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.sharedKey=u.generateKeyPair=u.generateKeyPairFromSeed=u.scalarMultBase=u.scalarMult=u.SHARED_KEY_LENGTH=u.SECRET_KEY_LENGTH=u.PUBLIC_KEY_LENGTH=void 0;const e=Qd,t=$t;u.PUBLIC_KEY_LENGTH=32,u.SECRET_KEY_LENGTH=32,u.SHARED_KEY_LENGTH=32;function n(v){const w=new Float64Array(16);if(v)for(let D=0;D>16&1),D[O-1]&=65535;D[15]=p[15]-32767-(D[14]>>16&1);const j=D[15]>>16&1;D[14]&=65535,o(p,D,1-j)}for(let x=0;x<16;x++)v[2*x]=p[x]&255,v[2*x+1]=p[x]>>8}function l(v,w){for(let D=0;D<16;D++)v[D]=w[2*D]+(w[2*D+1]<<8);v[15]&=32767}function c(v,w,D){for(let p=0;p<16;p++)v[p]=w[p]+D[p]}function E(v,w,D){for(let p=0;p<16;p++)v[p]=w[p]-D[p]}function d(v,w,D){let p,x,j=0,O=0,Z=0,ou=0,su=0,hu=0,eu=0,au=0,nu=0,W=0,iu=0,lu=0,cu=0,pu=0,fu=0,J=0,_u=0,Du=0,xu=0,bu=0,Iu=0,S=0,T=0,I=0,L=0,U=0,q=0,Y=0,$=0,H=0,V=0,G=D[0],ru=D[1],Cu=D[2],Au=D[3],Tu=D[4],Nu=D[5],Wu=D[6],k=D[7],A=D[8],F=D[9],P=D[10],z=D[11],K=D[12],uu=D[13],Fu=D[14],Pu=D[15];p=w[0],j+=p*G,O+=p*ru,Z+=p*Cu,ou+=p*Au,su+=p*Tu,hu+=p*Nu,eu+=p*Wu,au+=p*k,nu+=p*A,W+=p*F,iu+=p*P,lu+=p*z,cu+=p*K,pu+=p*uu,fu+=p*Fu,J+=p*Pu,p=w[1],O+=p*G,Z+=p*ru,ou+=p*Cu,su+=p*Au,hu+=p*Tu,eu+=p*Nu,au+=p*Wu,nu+=p*k,W+=p*A,iu+=p*F,lu+=p*P,cu+=p*z,pu+=p*K,fu+=p*uu,J+=p*Fu,_u+=p*Pu,p=w[2],Z+=p*G,ou+=p*ru,su+=p*Cu,hu+=p*Au,eu+=p*Tu,au+=p*Nu,nu+=p*Wu,W+=p*k,iu+=p*A,lu+=p*F,cu+=p*P,pu+=p*z,fu+=p*K,J+=p*uu,_u+=p*Fu,Du+=p*Pu,p=w[3],ou+=p*G,su+=p*ru,hu+=p*Cu,eu+=p*Au,au+=p*Tu,nu+=p*Nu,W+=p*Wu,iu+=p*k,lu+=p*A,cu+=p*F,pu+=p*P,fu+=p*z,J+=p*K,_u+=p*uu,Du+=p*Fu,xu+=p*Pu,p=w[4],su+=p*G,hu+=p*ru,eu+=p*Cu,au+=p*Au,nu+=p*Tu,W+=p*Nu,iu+=p*Wu,lu+=p*k,cu+=p*A,pu+=p*F,fu+=p*P,J+=p*z,_u+=p*K,Du+=p*uu,xu+=p*Fu,bu+=p*Pu,p=w[5],hu+=p*G,eu+=p*ru,au+=p*Cu,nu+=p*Au,W+=p*Tu,iu+=p*Nu,lu+=p*Wu,cu+=p*k,pu+=p*A,fu+=p*F,J+=p*P,_u+=p*z,Du+=p*K,xu+=p*uu,bu+=p*Fu,Iu+=p*Pu,p=w[6],eu+=p*G,au+=p*ru,nu+=p*Cu,W+=p*Au,iu+=p*Tu,lu+=p*Nu,cu+=p*Wu,pu+=p*k,fu+=p*A,J+=p*F,_u+=p*P,Du+=p*z,xu+=p*K,bu+=p*uu,Iu+=p*Fu,S+=p*Pu,p=w[7],au+=p*G,nu+=p*ru,W+=p*Cu,iu+=p*Au,lu+=p*Tu,cu+=p*Nu,pu+=p*Wu,fu+=p*k,J+=p*A,_u+=p*F,Du+=p*P,xu+=p*z,bu+=p*K,Iu+=p*uu,S+=p*Fu,T+=p*Pu,p=w[8],nu+=p*G,W+=p*ru,iu+=p*Cu,lu+=p*Au,cu+=p*Tu,pu+=p*Nu,fu+=p*Wu,J+=p*k,_u+=p*A,Du+=p*F,xu+=p*P,bu+=p*z,Iu+=p*K,S+=p*uu,T+=p*Fu,I+=p*Pu,p=w[9],W+=p*G,iu+=p*ru,lu+=p*Cu,cu+=p*Au,pu+=p*Tu,fu+=p*Nu,J+=p*Wu,_u+=p*k,Du+=p*A,xu+=p*F,bu+=p*P,Iu+=p*z,S+=p*K,T+=p*uu,I+=p*Fu,L+=p*Pu,p=w[10],iu+=p*G,lu+=p*ru,cu+=p*Cu,pu+=p*Au,fu+=p*Tu,J+=p*Nu,_u+=p*Wu,Du+=p*k,xu+=p*A,bu+=p*F,Iu+=p*P,S+=p*z,T+=p*K,I+=p*uu,L+=p*Fu,U+=p*Pu,p=w[11],lu+=p*G,cu+=p*ru,pu+=p*Cu,fu+=p*Au,J+=p*Tu,_u+=p*Nu,Du+=p*Wu,xu+=p*k,bu+=p*A,Iu+=p*F,S+=p*P,T+=p*z,I+=p*K,L+=p*uu,U+=p*Fu,q+=p*Pu,p=w[12],cu+=p*G,pu+=p*ru,fu+=p*Cu,J+=p*Au,_u+=p*Tu,Du+=p*Nu,xu+=p*Wu,bu+=p*k,Iu+=p*A,S+=p*F,T+=p*P,I+=p*z,L+=p*K,U+=p*uu,q+=p*Fu,Y+=p*Pu,p=w[13],pu+=p*G,fu+=p*ru,J+=p*Cu,_u+=p*Au,Du+=p*Tu,xu+=p*Nu,bu+=p*Wu,Iu+=p*k,S+=p*A,T+=p*F,I+=p*P,L+=p*z,U+=p*K,q+=p*uu,Y+=p*Fu,$+=p*Pu,p=w[14],fu+=p*G,J+=p*ru,_u+=p*Cu,Du+=p*Au,xu+=p*Tu,bu+=p*Nu,Iu+=p*Wu,S+=p*k,T+=p*A,I+=p*F,L+=p*P,U+=p*z,q+=p*K,Y+=p*uu,$+=p*Fu,H+=p*Pu,p=w[15],J+=p*G,_u+=p*ru,Du+=p*Cu,xu+=p*Au,bu+=p*Tu,Iu+=p*Nu,S+=p*Wu,T+=p*k,I+=p*A,L+=p*F,U+=p*P,q+=p*z,Y+=p*K,$+=p*uu,H+=p*Fu,V+=p*Pu,j+=38*_u,O+=38*Du,Z+=38*xu,ou+=38*bu,su+=38*Iu,hu+=38*S,eu+=38*T,au+=38*I,nu+=38*L,W+=38*U,iu+=38*q,lu+=38*Y,cu+=38*$,pu+=38*H,fu+=38*V,x=1,p=j+x+65535,x=Math.floor(p/65536),j=p-x*65536,p=O+x+65535,x=Math.floor(p/65536),O=p-x*65536,p=Z+x+65535,x=Math.floor(p/65536),Z=p-x*65536,p=ou+x+65535,x=Math.floor(p/65536),ou=p-x*65536,p=su+x+65535,x=Math.floor(p/65536),su=p-x*65536,p=hu+x+65535,x=Math.floor(p/65536),hu=p-x*65536,p=eu+x+65535,x=Math.floor(p/65536),eu=p-x*65536,p=au+x+65535,x=Math.floor(p/65536),au=p-x*65536,p=nu+x+65535,x=Math.floor(p/65536),nu=p-x*65536,p=W+x+65535,x=Math.floor(p/65536),W=p-x*65536,p=iu+x+65535,x=Math.floor(p/65536),iu=p-x*65536,p=lu+x+65535,x=Math.floor(p/65536),lu=p-x*65536,p=cu+x+65535,x=Math.floor(p/65536),cu=p-x*65536,p=pu+x+65535,x=Math.floor(p/65536),pu=p-x*65536,p=fu+x+65535,x=Math.floor(p/65536),fu=p-x*65536,p=J+x+65535,x=Math.floor(p/65536),J=p-x*65536,j+=x-1+37*(x-1),x=1,p=j+x+65535,x=Math.floor(p/65536),j=p-x*65536,p=O+x+65535,x=Math.floor(p/65536),O=p-x*65536,p=Z+x+65535,x=Math.floor(p/65536),Z=p-x*65536,p=ou+x+65535,x=Math.floor(p/65536),ou=p-x*65536,p=su+x+65535,x=Math.floor(p/65536),su=p-x*65536,p=hu+x+65535,x=Math.floor(p/65536),hu=p-x*65536,p=eu+x+65535,x=Math.floor(p/65536),eu=p-x*65536,p=au+x+65535,x=Math.floor(p/65536),au=p-x*65536,p=nu+x+65535,x=Math.floor(p/65536),nu=p-x*65536,p=W+x+65535,x=Math.floor(p/65536),W=p-x*65536,p=iu+x+65535,x=Math.floor(p/65536),iu=p-x*65536,p=lu+x+65535,x=Math.floor(p/65536),lu=p-x*65536,p=cu+x+65535,x=Math.floor(p/65536),cu=p-x*65536,p=pu+x+65535,x=Math.floor(p/65536),pu=p-x*65536,p=fu+x+65535,x=Math.floor(p/65536),fu=p-x*65536,p=J+x+65535,x=Math.floor(p/65536),J=p-x*65536,j+=x-1+37*(x-1),v[0]=j,v[1]=O,v[2]=Z,v[3]=ou,v[4]=su,v[5]=hu,v[6]=eu,v[7]=au,v[8]=nu,v[9]=W,v[10]=iu,v[11]=lu,v[12]=cu,v[13]=pu,v[14]=fu,v[15]=J}function f(v,w){d(v,w,w)}function C(v,w){const D=n();for(let p=0;p<16;p++)D[p]=w[p];for(let p=253;p>=0;p--)f(D,D),p!==2&&p!==4&&d(D,D,w);for(let p=0;p<16;p++)v[p]=D[p]}function h(v,w){const D=new Uint8Array(32),p=new Float64Array(80),x=n(),j=n(),O=n(),Z=n(),ou=n(),su=n();for(let nu=0;nu<31;nu++)D[nu]=v[nu];D[31]=v[31]&127|64,D[0]&=248,l(p,w);for(let nu=0;nu<16;nu++)j[nu]=p[nu];x[0]=Z[0]=1;for(let nu=254;nu>=0;--nu){const W=D[nu>>>3]>>>(nu&7)&1;o(x,j,W),o(O,Z,W),c(ou,x,O),E(x,x,O),c(O,j,Z),E(j,j,Z),f(Z,ou),f(su,x),d(x,O,x),d(O,j,ou),c(ou,x,O),E(x,x,O),f(j,x),E(O,Z,su),d(x,O,i),c(x,x,Z),d(O,O,x),d(x,Z,su),d(Z,j,p),f(j,ou),o(x,j,W),o(O,Z,W)}for(let nu=0;nu<16;nu++)p[nu+16]=x[nu],p[nu+32]=O[nu],p[nu+48]=j[nu],p[nu+64]=Z[nu];const hu=p.subarray(32),eu=p.subarray(16);C(hu,hu),d(eu,eu,hu);const au=new Uint8Array(32);return s(au,eu),au}u.scalarMult=h;function B(v){return h(v,r)}u.scalarMultBase=B;function g(v){if(v.length!==u.SECRET_KEY_LENGTH)throw new Error(`x25519: seed must be ${u.SECRET_KEY_LENGTH} bytes`);const w=new Uint8Array(v);return{publicKey:B(w),secretKey:w}}u.generateKeyPairFromSeed=g;function m(v){const w=(0,e.randomBytes)(32,v),D=g(w);return(0,t.wipe)(w),D}u.generateKeyPair=m;function y(v,w,D=!1){if(v.length!==u.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect secret key length");if(w.length!==u.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect public key length");const p=h(v,w);if(D){let x=0;for(let j=0;jr+i.length,0));const t=ix(e);let n=0;for(const r of u)t.set(r,n),n+=r.length;return nC(t)}function I3u(u,e){if(u.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n>>0,v=new Uint8Array(y);g!==m;){for(var w=C[g],D=0,p=y-1;(w!==0||D>>0,v[p]=w%o>>>0,w=w/o>>>0;if(w!==0)throw new Error("Non-zero carry");B=D,g++}for(var x=y-B;x!==y&&v[x]===0;)x++;for(var j=s.repeat(h);x>>0,y=new Uint8Array(m);C[h];){var v=t[C.charCodeAt(h)];if(v===255)return;for(var w=0,D=m-1;(v!==0||w>>0,y[D]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");g=w,h++}if(C[h]!==" "){for(var p=m-g;p!==m&&y[p]===0;)p++;for(var x=new Uint8Array(B+(m-p)),j=B;p!==m;)x[j++]=y[p++];return x}}}function f(C){var h=d(C);if(h)return h;throw new Error(`Non-${e} character`)}return{encode:E,decodeUnsafe:d,decode:f}}var O3u=I3u,N3u=O3u;const R3u=u=>{if(u instanceof Uint8Array&&u.constructor.name==="Uint8Array")return u;if(u instanceof ArrayBuffer)return new Uint8Array(u);if(ArrayBuffer.isView(u))return new Uint8Array(u.buffer,u.byteOffset,u.byteLength);throw new Error("Unknown type, must be binary type")},j3u=u=>new TextEncoder().encode(u),z3u=u=>new TextDecoder().decode(u);class M3u{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class U3u{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return ax(this,e)}}class L3u{constructor(e){this.decoders=e}or(e){return ax(this,e)}decode(e){const t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const ax=(u,e)=>new L3u({...u.decoders||{[u.prefix]:u},...e.decoders||{[e.prefix]:e}});class $3u{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new M3u(e,t,n),this.decoder=new U3u(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Zd=({name:u,prefix:e,encode:t,decode:n})=>new $3u(u,e,t,n),Ql=({prefix:u,name:e,alphabet:t})=>{const{encode:n,decode:r}=N3u(t,e);return Zd({prefix:u,name:e,encode:n,decode:i=>R3u(r(i))})},W3u=(u,e,t,n)=>{const r={};for(let c=0;c=8&&(o-=8,a[l++]=255&s>>o)}if(o>=t||255&s<<8-o)throw new SyntaxError("Unexpected end of data");return a},q3u=(u,e,t)=>{const n=e[e.length-1]==="=",r=(1<t;)a-=t,i+=e[r&o>>a];if(a&&(i+=e[r&o<Zd({prefix:e,name:u,encode(r){return q3u(r,n,t)},decode(r){return W3u(r,n,t,u)}}),H3u=Zd({prefix:"\0",name:"identity",encode:u=>z3u(u),decode:u=>j3u(u)}),G3u=Object.freeze(Object.defineProperty({__proto__:null,identity:H3u},Symbol.toStringTag,{value:"Module"})),K3u=Ge({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),Q3u=Object.freeze(Object.defineProperty({__proto__:null,base2:K3u},Symbol.toStringTag,{value:"Module"})),V3u=Ge({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),J3u=Object.freeze(Object.defineProperty({__proto__:null,base8:V3u},Symbol.toStringTag,{value:"Module"})),Y3u=Ql({prefix:"9",name:"base10",alphabet:"0123456789"}),X3u=Object.freeze(Object.defineProperty({__proto__:null,base10:Y3u},Symbol.toStringTag,{value:"Module"})),Z3u=Ge({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ulu=Ge({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),elu=Object.freeze(Object.defineProperty({__proto__:null,base16:Z3u,base16upper:ulu},Symbol.toStringTag,{value:"Module"})),tlu=Ge({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),nlu=Ge({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),rlu=Ge({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ilu=Ge({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),alu=Ge({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),olu=Ge({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),slu=Ge({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),llu=Ge({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),clu=Ge({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),Elu=Object.freeze(Object.defineProperty({__proto__:null,base32:tlu,base32hex:alu,base32hexpad:slu,base32hexpadupper:llu,base32hexupper:olu,base32pad:rlu,base32padupper:ilu,base32upper:nlu,base32z:clu},Symbol.toStringTag,{value:"Module"})),dlu=Ql({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),flu=Ql({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),plu=Object.freeze(Object.defineProperty({__proto__:null,base36:dlu,base36upper:flu},Symbol.toStringTag,{value:"Module"})),hlu=Ql({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Clu=Ql({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),mlu=Object.freeze(Object.defineProperty({__proto__:null,base58btc:hlu,base58flickr:Clu},Symbol.toStringTag,{value:"Module"})),glu=Ge({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Alu=Ge({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ylu=Ge({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Blu=Ge({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),vlu=Object.freeze(Object.defineProperty({__proto__:null,base64:glu,base64pad:Alu,base64url:ylu,base64urlpad:Blu},Symbol.toStringTag,{value:"Module"})),ox=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),Flu=ox.reduce((u,e,t)=>(u[t]=e,u),[]),Dlu=ox.reduce((u,e,t)=>(u[e.codePointAt(0)]=t,u),[]);function blu(u){return u.reduce((e,t)=>(e+=Flu[t],e),"")}function wlu(u){const e=[];for(const t of u){const n=Dlu[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}const xlu=Zd({prefix:"🚀",name:"base256emoji",encode:blu,decode:wlu}),klu=Object.freeze(Object.defineProperty({__proto__:null,base256emoji:xlu},Symbol.toStringTag,{value:"Module"}));new TextEncoder;new TextDecoder;const FA={...G3u,...Q3u,...J3u,...X3u,...elu,...Elu,...plu,...mlu,...vlu,...klu};function sx(u,e,t,n){return{name:u,prefix:e,encoder:{name:u,prefix:e,encode:t},decoder:{decode:n}}}const DA=sx("utf8","u",u=>"u"+new TextDecoder("utf8").decode(u),u=>new TextEncoder().encode(u.substring(1))),b1=sx("ascii","a",u=>{let e="a";for(let t=0;t{u=u.substring(1);const e=ix(u.length);for(let t=0;t"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"?new Ilu:typeof navigator<"u"?kA(navigator.userAgent):Ulu()}function zlu(u){return u!==""&&Rlu.reduce(function(e,t){var n=t[0],r=t[1];if(e)return e;var i=r.exec(u);return!!i&&[n,i]},!1)}function kA(u){var e=zlu(u);if(!e)return null;var t=e[0],n=e[1];if(t==="searchbot")return new Tlu;var r=n[1]&&n[1].split(".").join("_").split("_").slice(0,3);r?r.length=0;o--)(a=u[o])&&(i=(r<3?a(i):r>3?a(e,t,i):a(e,t))||i);return r>3&&i&&Object.defineProperty(e,t,i),i}function qlu(u,e){return function(t,n){e(t,n,u)}}function Hlu(u,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(u,e)}function Glu(u,e,t,n){function r(i){return i instanceof t?i:new t(function(a){a(i)})}return new(t||(t=Promise))(function(i,a){function o(c){try{l(n.next(c))}catch(E){a(E)}}function s(c){try{l(n.throw(c))}catch(E){a(E)}}function l(c){c.done?i(c.value):r(c.value).then(o,s)}l((n=n.apply(u,e||[])).next())})}function Klu(u,e){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},n,r,i,a;return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(l){return function(c){return s([l,c])}}function s(l){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,r&&(i=l[0]&2?r.return:l[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,l[1])).done)return i;switch(r=0,i&&(l=[l[0]&2,i.value]),l[0]){case 0:case 1:i=l;break;case 4:return t.label++,{value:l[1],done:!1};case 5:t.label++,r=l[1],l=[0];continue;case 7:l=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!i||l[1]>i[0]&&l[1]=u.length&&(u=void 0),{value:u&&u[n++],done:!u}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function lx(u,e){var t=typeof Symbol=="function"&&u[Symbol.iterator];if(!t)return u;var n=t.call(u),r,i=[],a;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)i.push(r.value)}catch(o){a={error:o}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(a)throw a.error}}return i}function Jlu(){for(var u=[],e=0;e1||o(d,f)})})}function o(d,f){try{s(n[d](f))}catch(C){E(i[0][3],C)}}function s(d){d.value instanceof $3?Promise.resolve(d.value.v).then(l,c):E(i[0][2],d)}function l(d){o("next",d)}function c(d){o("throw",d)}function E(d,f){d(f),i.shift(),i.length&&o(i[0][0],i[0][1])}}function Zlu(u){var e,t;return e={},n("next"),n("throw",function(r){throw r}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(r,i){e[r]=u[r]?function(a){return(t=!t)?{value:$3(u[r](a)),done:r==="return"}:i?i(a):a}:i}}function ucu(u){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=u[Symbol.asyncIterator],t;return e?e.call(u):(u=typeof Mf=="function"?Mf(u):u[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=u[i]&&function(a){return new Promise(function(o,s){a=u[i](a),r(o,s,a.done,a.value)})}}function r(i,a,o,s){Promise.resolve(s).then(function(l){i({value:l,done:o})},a)}}function ecu(u,e){return Object.defineProperty?Object.defineProperty(u,"raw",{value:e}):u.raw=e,u}function tcu(u){if(u&&u.__esModule)return u;var e={};if(u!=null)for(var t in u)Object.hasOwnProperty.call(u,t)&&(e[t]=u[t]);return e.default=u,e}function ncu(u){return u&&u.__esModule?u:{default:u}}function rcu(u,e){if(!e.has(u))throw new TypeError("attempted to get private field on non-instance");return e.get(u)}function icu(u,e,t){if(!e.has(u))throw new TypeError("attempted to set private field on non-instance");return e.set(u,t),t}const acu=Object.freeze(Object.defineProperty({__proto__:null,get __assign(){return zf},__asyncDelegator:Zlu,__asyncGenerator:Xlu,__asyncValues:ucu,__await:$3,__awaiter:Glu,__classPrivateFieldGet:rcu,__classPrivateFieldSet:icu,__createBinding:Qlu,__decorate:Wlu,__exportStar:Vlu,__extends:Llu,__generator:Klu,__importDefault:ncu,__importStar:tcu,__makeTemplateObject:ecu,__metadata:Hlu,__param:qlu,__read:lx,__rest:$lu,__spread:Jlu,__spreadArrays:Ylu,__values:Mf},Symbol.toStringTag,{value:"Module"})),Zd=Dp(acu);var b1={},g4={},kA;function ocu(){if(kA)return g4;kA=1,Object.defineProperty(g4,"__esModule",{value:!0}),g4.delay=void 0;function u(e){return new Promise(t=>{setTimeout(()=>{t(!0)},e)})}return g4.delay=u,g4}var Ei={},w1={},di={},_A;function scu(){return _A||(_A=1,Object.defineProperty(di,"__esModule",{value:!0}),di.ONE_THOUSAND=di.ONE_HUNDRED=void 0,di.ONE_HUNDRED=100,di.ONE_THOUSAND=1e3),di}var x1={},SA;function lcu(){return SA||(SA=1,function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.ONE_YEAR=u.FOUR_WEEKS=u.THREE_WEEKS=u.TWO_WEEKS=u.ONE_WEEK=u.THIRTY_DAYS=u.SEVEN_DAYS=u.FIVE_DAYS=u.THREE_DAYS=u.ONE_DAY=u.TWENTY_FOUR_HOURS=u.TWELVE_HOURS=u.SIX_HOURS=u.THREE_HOURS=u.ONE_HOUR=u.SIXTY_MINUTES=u.THIRTY_MINUTES=u.TEN_MINUTES=u.FIVE_MINUTES=u.ONE_MINUTE=u.SIXTY_SECONDS=u.THIRTY_SECONDS=u.TEN_SECONDS=u.FIVE_SECONDS=u.ONE_SECOND=void 0,u.ONE_SECOND=1,u.FIVE_SECONDS=5,u.TEN_SECONDS=10,u.THIRTY_SECONDS=30,u.SIXTY_SECONDS=60,u.ONE_MINUTE=u.SIXTY_SECONDS,u.FIVE_MINUTES=u.ONE_MINUTE*5,u.TEN_MINUTES=u.ONE_MINUTE*10,u.THIRTY_MINUTES=u.ONE_MINUTE*30,u.SIXTY_MINUTES=u.ONE_MINUTE*60,u.ONE_HOUR=u.SIXTY_MINUTES,u.THREE_HOURS=u.ONE_HOUR*3,u.SIX_HOURS=u.ONE_HOUR*6,u.TWELVE_HOURS=u.ONE_HOUR*12,u.TWENTY_FOUR_HOURS=u.ONE_HOUR*24,u.ONE_DAY=u.TWENTY_FOUR_HOURS,u.THREE_DAYS=u.ONE_DAY*3,u.FIVE_DAYS=u.ONE_DAY*5,u.SEVEN_DAYS=u.ONE_DAY*7,u.THIRTY_DAYS=u.ONE_DAY*30,u.ONE_WEEK=u.SEVEN_DAYS,u.TWO_WEEKS=u.ONE_WEEK*2,u.THREE_WEEKS=u.ONE_WEEK*3,u.FOUR_WEEKS=u.ONE_WEEK*4,u.ONE_YEAR=u.ONE_DAY*365}(x1)),x1}var PA;function cx(){return PA||(PA=1,function(u){Object.defineProperty(u,"__esModule",{value:!0});const e=Zd;e.__exportStar(scu(),u),e.__exportStar(lcu(),u)}(w1)),w1}var TA;function ccu(){if(TA)return Ei;TA=1,Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.fromMiliseconds=Ei.toMiliseconds=void 0;const u=cx();function e(n){return n*u.ONE_THOUSAND}Ei.toMiliseconds=e;function t(n){return Math.floor(n/u.ONE_THOUSAND)}return Ei.fromMiliseconds=t,Ei}var IA;function Ecu(){return IA||(IA=1,function(u){Object.defineProperty(u,"__esModule",{value:!0});const e=Zd;e.__exportStar(ocu(),u),e.__exportStar(ccu(),u)}(b1)),b1}var _a={},OA;function dcu(){if(OA)return _a;OA=1,Object.defineProperty(_a,"__esModule",{value:!0}),_a.Watch=void 0;class u{constructor(){this.timestamps=new Map}start(t){if(this.timestamps.has(t))throw new Error(`Watch already started for label: ${t}`);this.timestamps.set(t,{started:Date.now()})}stop(t){const n=this.get(t);if(typeof n.elapsed<"u")throw new Error(`Watch already stopped for label: ${t}`);const r=Date.now()-n.started;this.timestamps.set(t,{started:n.started,elapsed:r})}get(t){const n=this.timestamps.get(t);if(typeof n>"u")throw new Error(`No timestamp found for label: ${t}`);return n}elapsed(t){const n=this.get(t);return n.elapsed||Date.now()-n.started}}return _a.Watch=u,_a.default=u,_a}var k1={},A4={},NA;function fcu(){if(NA)return A4;NA=1,Object.defineProperty(A4,"__esModule",{value:!0}),A4.IWatch=void 0;class u{}return A4.IWatch=u,A4}var RA;function pcu(){return RA||(RA=1,function(u){Object.defineProperty(u,"__esModule",{value:!0}),Zd.__exportStar(fcu(),u)}(k1)),k1}(function(u){Object.defineProperty(u,"__esModule",{value:!0});const e=Zd;e.__exportStar(Ecu(),u),e.__exportStar(dcu(),u),e.__exportStar(pcu(),u),e.__exportStar(cx(),u)})(Zi);var te={};Object.defineProperty(te,"__esModule",{value:!0});var hcu=te.getLocalStorage=Tcu=te.getLocalStorageOrThrow=Scu=te.getCrypto=kcu=te.getCryptoOrThrow=dx=te.getLocation=bcu=te.getLocationOrThrow=nC=te.getNavigator=vcu=te.getNavigatorOrThrow=Ex=te.getDocument=Acu=te.getDocumentOrThrow=mcu=te.getFromWindowOrThrow=Ccu=te.getFromWindow=void 0;function va(u){let e;return typeof window<"u"&&typeof window[u]<"u"&&(e=window[u]),e}var Ccu=te.getFromWindow=va;function n4(u){const e=va(u);if(!e)throw new Error(`${u} is not defined in Window`);return e}var mcu=te.getFromWindowOrThrow=n4;function gcu(){return n4("document")}var Acu=te.getDocumentOrThrow=gcu;function ycu(){return va("document")}var Ex=te.getDocument=ycu;function Bcu(){return n4("navigator")}var vcu=te.getNavigatorOrThrow=Bcu;function Fcu(){return va("navigator")}var nC=te.getNavigator=Fcu;function Dcu(){return n4("location")}var bcu=te.getLocationOrThrow=Dcu;function wcu(){return va("location")}var dx=te.getLocation=wcu;function xcu(){return n4("crypto")}var kcu=te.getCryptoOrThrow=xcu;function _cu(){return va("crypto")}var Scu=te.getCrypto=_cu;function Pcu(){return n4("localStorage")}var Tcu=te.getLocalStorageOrThrow=Pcu;function Icu(){return va("localStorage")}hcu=te.getLocalStorage=Icu;var rC={};Object.defineProperty(rC,"__esModule",{value:!0});var fx=rC.getWindowMetadata=void 0;const jA=te;function Ocu(){let u,e;try{u=jA.getDocumentOrThrow(),e=jA.getLocationOrThrow()}catch{return null}function t(){const E=u.getElementsByTagName("link"),d=[];for(let f=0;f-1){const B=C.getAttribute("href");if(B)if(B.toLowerCase().indexOf("https:")===-1&&B.toLowerCase().indexOf("http:")===-1&&B.indexOf("//")!==0){let g=e.protocol+"//"+e.host;if(B.indexOf("/")===0)g+=B;else{const m=e.pathname.split("/");m.pop();const y=m.join("/");g+=y+"/"+B}d.push(g)}else if(B.indexOf("//")===0){const g=e.protocol+B;d.push(g)}else d.push(B)}}return d}function n(...E){const d=u.getElementsByTagName("meta");for(let f=0;fC.getAttribute(B)).filter(B=>B?E.includes(B):!1);if(h.length&&h){const B=C.getAttribute("content");if(B)return B}}return""}function r(){let E=n("name","og:site_name","og:title","twitter:title");return E||(E=u.title),E}function i(){return n("description","og:description","twitter:description","keywords")}const a=r(),o=i(),s=e.origin,l=t();return{description:o,url:s,icons:l,name:a}}fx=rC.getWindowMetadata=Ocu;var W3={},Ncu=u=>encodeURIComponent(u).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),px="%[a-f0-9]{2}",zA=new RegExp("("+px+")|([^%]+?)","gi"),MA=new RegExp("("+px+")+","gi");function Uf(u,e){try{return[decodeURIComponent(u.join(""))]}catch{}if(u.length===1)return u;e=e||1;var t=u.slice(0,e),n=u.slice(e);return Array.prototype.concat.call([],Uf(t),Uf(n))}function Rcu(u){try{return decodeURIComponent(u)}catch{for(var e=u.match(zA)||[],t=1;t{if(!(typeof u=="string"&&typeof e=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(e==="")return[u];const t=u.indexOf(e);return t===-1?[u]:[u.slice(0,t),u.slice(t+e.length)]},Ucu=function(u,e){for(var t={},n=Object.keys(u),r=Array.isArray(e),i=0;im==null,a=Symbol("encodeFragmentIdentifier");function o(m){switch(m.arrayFormat){case"index":return y=>(v,w)=>{const D=v.length;return w===void 0||m.skipNull&&w===null||m.skipEmptyString&&w===""?v:w===null?[...v,[c(y,m),"[",D,"]"].join("")]:[...v,[c(y,m),"[",c(D,m),"]=",c(w,m)].join("")]};case"bracket":return y=>(v,w)=>w===void 0||m.skipNull&&w===null||m.skipEmptyString&&w===""?v:w===null?[...v,[c(y,m),"[]"].join("")]:[...v,[c(y,m),"[]=",c(w,m)].join("")];case"colon-list-separator":return y=>(v,w)=>w===void 0||m.skipNull&&w===null||m.skipEmptyString&&w===""?v:w===null?[...v,[c(y,m),":list="].join("")]:[...v,[c(y,m),":list=",c(w,m)].join("")];case"comma":case"separator":case"bracket-separator":{const y=m.arrayFormat==="bracket-separator"?"[]=":"=";return v=>(w,D)=>D===void 0||m.skipNull&&D===null||m.skipEmptyString&&D===""?w:(D=D===null?"":D,w.length===0?[[c(v,m),y,c(D,m)].join("")]:[[w,c(D,m)].join(m.arrayFormatSeparator)])}default:return y=>(v,w)=>w===void 0||m.skipNull&&w===null||m.skipEmptyString&&w===""?v:w===null?[...v,c(y,m)]:[...v,[c(y,m),"=",c(w,m)].join("")]}}function s(m){let y;switch(m.arrayFormat){case"index":return(v,w,D)=>{if(y=/\[(\d*)\]$/.exec(v),v=v.replace(/\[\d*\]$/,""),!y){D[v]=w;return}D[v]===void 0&&(D[v]={}),D[v][y[1]]=w};case"bracket":return(v,w,D)=>{if(y=/(\[\])$/.exec(v),v=v.replace(/\[\]$/,""),!y){D[v]=w;return}if(D[v]===void 0){D[v]=[w];return}D[v]=[].concat(D[v],w)};case"colon-list-separator":return(v,w,D)=>{if(y=/(:list)$/.exec(v),v=v.replace(/:list$/,""),!y){D[v]=w;return}if(D[v]===void 0){D[v]=[w];return}D[v]=[].concat(D[v],w)};case"comma":case"separator":return(v,w,D)=>{const p=typeof w=="string"&&w.includes(m.arrayFormatSeparator),x=typeof w=="string"&&!p&&E(w,m).includes(m.arrayFormatSeparator);w=x?E(w,m):w;const j=p||x?w.split(m.arrayFormatSeparator).map(O=>E(O,m)):w===null?w:E(w,m);D[v]=j};case"bracket-separator":return(v,w,D)=>{const p=/(\[\])$/.test(v);if(v=v.replace(/\[\]$/,""),!p){D[v]=w&&E(w,m);return}const x=w===null?[]:w.split(m.arrayFormatSeparator).map(j=>E(j,m));if(D[v]===void 0){D[v]=x;return}D[v]=[].concat(D[v],x)};default:return(v,w,D)=>{if(D[v]===void 0){D[v]=w;return}D[v]=[].concat(D[v],w)}}}function l(m){if(typeof m!="string"||m.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function c(m,y){return y.encode?y.strict?e(m):encodeURIComponent(m):m}function E(m,y){return y.decode?t(m):m}function d(m){return Array.isArray(m)?m.sort():typeof m=="object"?d(Object.keys(m)).sort((y,v)=>Number(y)-Number(v)).map(y=>m[y]):m}function f(m){const y=m.indexOf("#");return y!==-1&&(m=m.slice(0,y)),m}function C(m){let y="";const v=m.indexOf("#");return v!==-1&&(y=m.slice(v)),y}function h(m){m=f(m);const y=m.indexOf("?");return y===-1?"":m.slice(y+1)}function B(m,y){return y.parseNumbers&&!Number.isNaN(Number(m))&&typeof m=="string"&&m.trim()!==""?m=Number(m):y.parseBooleans&&m!==null&&(m.toLowerCase()==="true"||m.toLowerCase()==="false")&&(m=m.toLowerCase()==="true"),m}function g(m,y){y=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},y),l(y.arrayFormatSeparator);const v=s(y),w=Object.create(null);if(typeof m!="string"||(m=m.trim().replace(/^[?#&]/,""),!m))return w;for(const D of m.split("&")){if(D==="")continue;let[p,x]=n(y.decode?D.replace(/\+/g," "):D,"=");x=x===void 0?null:["comma","separator","bracket-separator"].includes(y.arrayFormat)?x:E(x,y),v(E(p,y),x,w)}for(const D of Object.keys(w)){const p=w[D];if(typeof p=="object"&&p!==null)for(const x of Object.keys(p))p[x]=B(p[x],y);else w[D]=B(p,y)}return y.sort===!1?w:(y.sort===!0?Object.keys(w).sort():Object.keys(w).sort(y.sort)).reduce((D,p)=>{const x=w[p];return x&&typeof x=="object"&&!Array.isArray(x)?D[p]=d(x):D[p]=x,D},Object.create(null))}u.extract=h,u.parse=g,u.stringify=(m,y)=>{if(!m)return"";y=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},y),l(y.arrayFormatSeparator);const v=x=>y.skipNull&&i(m[x])||y.skipEmptyString&&m[x]==="",w=o(y),D={};for(const x of Object.keys(m))v(x)||(D[x]=m[x]);const p=Object.keys(D);return y.sort!==!1&&p.sort(y.sort),p.map(x=>{const j=m[x];return j===void 0?"":j===null?c(x,y):Array.isArray(j)?j.length===0&&y.arrayFormat==="bracket-separator"?c(x,y)+"[]":j.reduce(w(x),[]).join("&"):c(x,y)+"="+c(j,y)}).filter(x=>x.length>0).join("&")},u.parseUrl=(m,y)=>{y=Object.assign({decode:!0},y);const[v,w]=n(m,"#");return Object.assign({url:v.split("?")[0]||"",query:g(h(m),y)},y&&y.parseFragmentIdentifier&&w?{fragmentIdentifier:E(w,y)}:{})},u.stringifyUrl=(m,y)=>{y=Object.assign({encode:!0,strict:!0,[a]:!0},y);const v=f(m.url).split("?")[0]||"",w=u.extract(m.url),D=u.parse(w,{sort:!1}),p=Object.assign(D,m.query);let x=u.stringify(p,y);x&&(x=`?${x}`);let j=C(m.url);return m.fragmentIdentifier&&(j=`#${y[a]?c(m.fragmentIdentifier,y):m.fragmentIdentifier}`),`${v}${x}${j}`},u.pick=(m,y,v)=>{v=Object.assign({parseFragmentIdentifier:!0,[a]:!1},v);const{url:w,query:D,fragmentIdentifier:p}=u.parseUrl(m,v);return u.stringifyUrl({url:w,query:r(D,y),fragmentIdentifier:p},v)},u.exclude=(m,y,v)=>{const w=Array.isArray(y)?D=>!y.includes(D):(D,p)=>!y(D,p);return u.pick(m,w,v)}})(W3);const Lcu={waku:{publish:"waku_publish",batchPublish:"waku_batchPublish",subscribe:"waku_subscribe",batchSubscribe:"waku_batchSubscribe",subscription:"waku_subscription",unsubscribe:"waku_unsubscribe",batchUnsubscribe:"waku_batchUnsubscribe"},irn:{publish:"irn_publish",batchPublish:"irn_batchPublish",subscribe:"irn_subscribe",batchSubscribe:"irn_batchSubscribe",subscription:"irn_subscription",unsubscribe:"irn_unsubscribe",batchUnsubscribe:"irn_batchUnsubscribe"},iridium:{publish:"iridium_publish",batchPublish:"iridium_batchPublish",subscribe:"iridium_subscribe",batchSubscribe:"iridium_batchSubscribe",subscription:"iridium_subscription",unsubscribe:"iridium_unsubscribe",batchUnsubscribe:"iridium_batchUnsubscribe"}},$cu=":";function D6u(u){const[e,t]=u.split($cu);return{namespace:e,reference:t}}function b6u(u,e=[]){const t=[];return Object.keys(u).forEach(n=>{if(e.length&&!e.includes(n))return;const r=u[n];t.push(...r.accounts)}),t}function hx(u,e){return u.includes(":")?[u]:e.chains||[]}const Cx="base10",S0="base16",Lf="base64pad",iC="utf8",mx=0,Ql=1,Wcu=0,UA=1,$f=12,aC=32;function w6u(){const u=eC.generateKeyPair();return{privateKey:zt(u.secretKey,S0),publicKey:zt(u.publicKey,S0)}}function x6u(){const u=Kd.randomBytes(aC);return zt(u,S0)}function k6u(u,e){const t=eC.sharedKey(It(u,S0),It(e,S0),!0),n=new B3u(Yd.SHA256,t).expand(aC);return zt(n,S0)}function _6u(u){const e=Yd.hash(It(u,S0));return zt(e,S0)}function S6u(u){const e=Yd.hash(It(u,iC));return zt(e,S0)}function qcu(u){return It(`${u}`,Cx)}function u9(u){return Number(zt(u,Cx))}function P6u(u){const e=qcu(typeof u.type<"u"?u.type:mx);if(u9(e)===Ql&&typeof u.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const t=typeof u.senderPublicKey<"u"?It(u.senderPublicKey,S0):void 0,n=typeof u.iv<"u"?It(u.iv,S0):Kd.randomBytes($f),r=new Z5.ChaCha20Poly1305(It(u.symKey,S0)).seal(n,It(u.message,iC));return Hcu({type:e,sealed:r,iv:n,senderPublicKey:t})}function T6u(u){const e=new Z5.ChaCha20Poly1305(It(u.symKey,S0)),{sealed:t,iv:n}=gx(u.encoded),r=e.open(n,t);if(r===null)throw new Error("Failed to decrypt");return zt(r,iC)}function Hcu(u){if(u9(u.type)===Ql){if(typeof u.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return zt(BA([u.type,u.senderPublicKey,u.iv,u.sealed]),Lf)}return zt(BA([u.type,u.iv,u.sealed]),Lf)}function gx(u){const e=It(u,Lf),t=e.slice(Wcu,UA),n=UA;if(u9(t)===Ql){const o=n+aC,s=o+$f,l=e.slice(n,o),c=e.slice(o,s),E=e.slice(s);return{type:t,sealed:E,iv:c,senderPublicKey:l}}const r=n+$f,i=e.slice(n,r),a=e.slice(r);return{type:t,sealed:a,iv:i}}function I6u(u,e){const t=gx(u);return Gcu({type:u9(t.type),senderPublicKey:typeof t.senderPublicKey<"u"?zt(t.senderPublicKey,S0):void 0,receiverPublicKey:e==null?void 0:e.receiverPublicKey})}function Gcu(u){const e=(u==null?void 0:u.type)||mx;if(e===Ql){if(typeof(u==null?void 0:u.senderPublicKey)>"u")throw new Error("missing sender public key");if(typeof(u==null?void 0:u.receiverPublicKey)>"u")throw new Error("missing receiver public key")}return{type:e,senderPublicKey:u==null?void 0:u.senderPublicKey,receiverPublicKey:u==null?void 0:u.receiverPublicKey}}function O6u(u){return u.type===Ql&&typeof u.senderPublicKey=="string"&&typeof u.receiverPublicKey=="string"}var Kcu=Object.defineProperty,LA=Object.getOwnPropertySymbols,Qcu=Object.prototype.hasOwnProperty,Vcu=Object.prototype.propertyIsEnumerable,$A=(u,e,t)=>e in u?Kcu(u,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[e]=t,WA=(u,e)=>{for(var t in e||(e={}))Qcu.call(e,t)&&$A(u,t,e[t]);if(LA)for(var t of LA(e))Vcu.call(e,t)&&$A(u,t,e[t]);return u};const Jcu="ReactNative",U0={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},Ycu="js";function Ax(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}function e9(){return!Ex()&&!!nC()&&navigator.product===Jcu}function oC(){return!Ax()&&!!nC()}function Vl(){return e9()?U0.reactNative:Ax()?U0.node:oC()?U0.browser:U0.unknown}function Xcu(u,e){let t=W3.parse(u);return t=WA(WA({},t),e),u=W3.stringify(t),u}function N6u(){return fx()||{name:"",description:"",url:"",icons:[""]}}function Zcu(){if(Vl()===U0.reactNative&&typeof globalThis<"u"&&typeof(globalThis==null?void 0:globalThis.Platform)<"u"){const{OS:t,Version:n}=globalThis.Platform;return[t,n].join("-")}const u=Rlu();if(u===null)return"unknown";const e=u.os?u.os.replace(" ","").toLowerCase():"unknown";return u.type==="browser"?[e,u.name,u.version].join("-"):[e,u.version].join("-")}function uEu(){var u;const e=Vl();return e===U0.browser?[e,((u=dx())==null?void 0:u.host)||"unknown"].join(":"):e}function eEu(u,e,t){const n=Zcu(),r=uEu();return[[u,e].join("-"),[Ycu,t].join("-"),n,r].join("/")}function R6u({protocol:u,version:e,relayUrl:t,sdkVersion:n,auth:r,projectId:i,useOnCloseEvent:a}){const o=t.split("?"),s=eEu(u,e,n),l={auth:r,ua:s,projectId:i,useOnCloseEvent:a||void 0},c=Xcu(o[1]||"",l);return o[0]+"?"+c}function wi(u,e){return u.filter(t=>e.includes(t)).length===u.length}function j6u(u){return Object.fromEntries(u.entries())}function z6u(u){return new Map(Object.entries(u))}function M6u(u=Zi.FIVE_MINUTES,e){const t=Zi.toMiliseconds(u||Zi.FIVE_MINUTES);let n,r,i;return{resolve:a=>{i&&n&&(clearTimeout(i),n(a))},reject:a=>{i&&r&&(clearTimeout(i),r(a))},done:()=>new Promise((a,o)=>{i=setTimeout(()=>{o(new Error(e))},t),n=a,r=o})}}function U6u(u,e,t){return new Promise(async(n,r)=>{const i=setTimeout(()=>r(new Error(t)),e);try{const a=await u;n(a)}catch(a){r(a)}clearTimeout(i)})}function yx(u,e){if(typeof e=="string"&&e.startsWith(`${u}:`))return e;if(u.toLowerCase()==="topic"){if(typeof e!="string")throw new Error('Value must be "string" for expirer target type: topic');return`topic:${e}`}else if(u.toLowerCase()==="id"){if(typeof e!="number")throw new Error('Value must be "number" for expirer target type: id');return`id:${e}`}throw new Error(`Unknown expirer target type: ${u}`)}function L6u(u){return yx("topic",u)}function $6u(u){return yx("id",u)}function W6u(u){const[e,t]=u.split(":"),n={id:void 0,topic:void 0};if(e==="topic"&&typeof t=="string")n.topic=t;else if(e==="id"&&Number.isInteger(Number(t)))n.id=Number(t);else throw new Error(`Invalid target, expected id:number or topic:string, got ${e}:${t}`);return n}function q6u(u,e){return Zi.fromMiliseconds((e||Date.now())+Zi.toMiliseconds(u))}function H6u(u){return Date.now()>=Zi.toMiliseconds(u)}function G6u(u,e){return`${u}${e?`:${e}`:""}`}function _1(u=[],e=[]){return[...new Set([...u,...e])]}async function K6u({id:u,topic:e,wcDeepLink:t}){try{if(!t)return;const n=typeof t=="string"?JSON.parse(t):t;let r=n==null?void 0:n.href;if(typeof r!="string")return;r.endsWith("/")&&(r=r.slice(0,-1));const i=`${r}/wc?requestId=${u}&sessionTopic=${e}`,a=Vl();a===U0.browser?i.startsWith("https://")?window.open(i,"_blank","noreferrer noopener"):window.open(i,"_self","noreferrer noopener"):a===U0.reactNative&&typeof(globalThis==null?void 0:globalThis.Linking)<"u"&&await globalThis.Linking.openURL(i)}catch(n){console.error(n)}}const tEu="irn";function Q6u(u){return(u==null?void 0:u.relay)||{protocol:tEu}}function V6u(u){const e=Lcu[u];if(typeof e>"u")throw new Error(`Relay Protocol not supported: ${u}`);return e}var nEu=Object.defineProperty,qA=Object.getOwnPropertySymbols,rEu=Object.prototype.hasOwnProperty,iEu=Object.prototype.propertyIsEnumerable,HA=(u,e,t)=>e in u?nEu(u,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[e]=t,aEu=(u,e)=>{for(var t in e||(e={}))rEu.call(e,t)&&HA(u,t,e[t]);if(qA)for(var t of qA(e))iEu.call(e,t)&&HA(u,t,e[t]);return u};function oEu(u,e="-"){const t={},n="relay"+e;return Object.keys(u).forEach(r=>{if(r.startsWith(n)){const i=r.replace(n,""),a=u[r];t[i]=a}}),t}function J6u(u){const e=u.indexOf(":"),t=u.indexOf("?")!==-1?u.indexOf("?"):void 0,n=u.substring(0,e),r=u.substring(e+1,t).split("@"),i=typeof t<"u"?u.substring(t):"",a=W3.parse(i);return{protocol:n,topic:sEu(r[0]),version:parseInt(r[1],10),symKey:a.symKey,relay:oEu(a)}}function sEu(u){return u.startsWith("//")?u.substring(2):u}function lEu(u,e="-"){const t="relay",n={};return Object.keys(u).forEach(r=>{const i=t+e+r;u[r]&&(n[i]=u[r])}),n}function Y6u(u){return`${u.protocol}:${u.topic}@${u.version}?`+W3.stringify(aEu({symKey:u.symKey},lEu(u.relay)))}var cEu=Object.defineProperty,EEu=Object.defineProperties,dEu=Object.getOwnPropertyDescriptors,GA=Object.getOwnPropertySymbols,fEu=Object.prototype.hasOwnProperty,pEu=Object.prototype.propertyIsEnumerable,KA=(u,e,t)=>e in u?cEu(u,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[e]=t,hEu=(u,e)=>{for(var t in e||(e={}))fEu.call(e,t)&&KA(u,t,e[t]);if(GA)for(var t of GA(e))pEu.call(e,t)&&KA(u,t,e[t]);return u},CEu=(u,e)=>EEu(u,dEu(e));function r4(u){const e=[];return u.forEach(t=>{const[n,r]=t.split(":");e.push(`${n}:${r}`)}),e}function mEu(u){const e=[];return Object.values(u).forEach(t=>{e.push(...r4(t.accounts))}),e}function gEu(u,e){const t=[];return Object.values(u).forEach(n=>{r4(n.accounts).includes(e)&&t.push(...n.methods)}),t}function AEu(u,e){const t=[];return Object.values(u).forEach(n=>{r4(n.accounts).includes(e)&&t.push(...n.events)}),t}function X6u(u,e){const t=_Eu(u,e);if(t)throw new Error(t.message);const n={};for(const[r,i]of Object.entries(u))n[r]={methods:i.methods,events:i.events,chains:i.accounts.map(a=>`${a.split(":")[0]}:${a.split(":")[1]}`)};return n}function Bx(u){return u.includes(":")}function yEu(u){return Bx(u)?u.split(":")[0]:u}function vx(u){var e,t,n;const r={};if(!sC(u))return r;for(const[i,a]of Object.entries(u)){const o=Bx(i)?[i]:a.chains,s=a.methods||[],l=a.events||[],c=yEu(i);r[c]=CEu(hEu({},r[c]),{chains:_1(o,(e=r[c])==null?void 0:e.chains),methods:_1(s,(t=r[c])==null?void 0:t.methods),events:_1(l,(n=r[c])==null?void 0:n.events)})}return r}const BEu={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},vEu={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function mr(u,e){const{message:t,code:n}=vEu[u];return{message:e?`${t} ${e}`:t,code:n}}function ws(u,e){const{message:t,code:n}=BEu[u];return{message:e?`${t} ${e}`:t,code:n}}function t9(u,e){return Array.isArray(u)?typeof e<"u"&&u.length?u.every(e):!0:!1}function sC(u){return Object.getPrototypeOf(u)===Object.prototype&&Object.keys(u).length}function ua(u){return typeof u>"u"}function gt(u,e){return e&&ua(u)?!0:typeof u=="string"&&!!u.trim().length}function lC(u,e){return e&&ua(u)?!0:typeof u=="number"&&!isNaN(u)}function Z6u(u,e){const{requiredNamespaces:t}=e,n=Object.keys(u.namespaces),r=Object.keys(t);let i=!0;return wi(r,n)?(n.forEach(a=>{const{accounts:o,methods:s,events:l}=u.namespaces[a],c=r4(o),E=t[a];(!wi(hx(a,E),c)||!wi(E.methods,s)||!wi(E.events,l))&&(i=!1)}),i):!1}function i2(u){return gt(u,!1)&&u.includes(":")?u.split(":").length===2:!1}function FEu(u){if(gt(u,!1)&&u.includes(":")){const e=u.split(":");if(e.length===3){const t=e[0]+":"+e[1];return!!e[2]&&i2(t)}}return!1}function ufu(u){if(gt(u,!1))try{return typeof new URL(u)<"u"}catch{return!1}return!1}function efu(u){var e;return(e=u==null?void 0:u.proposer)==null?void 0:e.publicKey}function tfu(u){return u==null?void 0:u.topic}function nfu(u,e){let t=null;return gt(u==null?void 0:u.publicKey,!1)||(t=mr("MISSING_OR_INVALID",`${e} controller public key should be a string`)),t}function QA(u){let e=!0;return t9(u)?u.length&&(e=u.every(t=>gt(t,!1))):e=!1,e}function DEu(u,e,t){let n=null;return t9(e)&&e.length?e.forEach(r=>{n||i2(r)||(n=ws("UNSUPPORTED_CHAINS",`${t}, chain ${r} should be a string and conform to "namespace:chainId" format`))}):i2(u)||(n=ws("UNSUPPORTED_CHAINS",`${t}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),n}function bEu(u,e,t){let n=null;return Object.entries(u).forEach(([r,i])=>{if(n)return;const a=DEu(r,hx(r,i),`${e} ${t}`);a&&(n=a)}),n}function wEu(u,e){let t=null;return t9(u)?u.forEach(n=>{t||FEu(n)||(t=ws("UNSUPPORTED_ACCOUNTS",`${e}, account ${n} should be a string and conform to "namespace:chainId:address" format`))}):t=ws("UNSUPPORTED_ACCOUNTS",`${e}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),t}function xEu(u,e){let t=null;return Object.values(u).forEach(n=>{if(t)return;const r=wEu(n==null?void 0:n.accounts,`${e} namespace`);r&&(t=r)}),t}function kEu(u,e){let t=null;return QA(u==null?void 0:u.methods)?QA(u==null?void 0:u.events)||(t=ws("UNSUPPORTED_EVENTS",`${e}, events should be an array of strings or empty array for no events`)):t=ws("UNSUPPORTED_METHODS",`${e}, methods should be an array of strings or empty array for no methods`),t}function Fx(u,e){let t=null;return Object.values(u).forEach(n=>{if(t)return;const r=kEu(n,`${e}, namespace`);r&&(t=r)}),t}function rfu(u,e,t){let n=null;if(u&&sC(u)){const r=Fx(u,e);r&&(n=r);const i=bEu(u,e,t);i&&(n=i)}else n=mr("MISSING_OR_INVALID",`${e}, ${t} should be an object with data`);return n}function _Eu(u,e){let t=null;if(u&&sC(u)){const n=Fx(u,e);n&&(t=n);const r=xEu(u,e);r&&(t=r)}else t=mr("MISSING_OR_INVALID",`${e}, namespaces should be an object with data`);return t}function SEu(u){return gt(u.protocol,!0)}function ifu(u,e){let t=!1;return e&&!u?t=!0:u&&t9(u)&&u.length&&u.forEach(n=>{t=SEu(n)}),t}function afu(u){return typeof u=="number"}function ofu(u){return typeof u<"u"&&typeof u!==null}function sfu(u){return!(!u||typeof u!="object"||!u.code||!lC(u.code,!1)||!u.message||!gt(u.message,!1))}function lfu(u){return!(ua(u)||!gt(u.method,!1))}function cfu(u){return!(ua(u)||ua(u.result)&&ua(u.error)||!lC(u.id,!1)||!gt(u.jsonrpc,!1))}function Efu(u){return!(ua(u)||!gt(u.name,!1))}function dfu(u,e){return!(!i2(e)||!mEu(u).includes(e))}function ffu(u,e,t){return gt(t,!1)?gEu(u,e).includes(t):!1}function pfu(u,e,t){return gt(t,!1)?AEu(u,e).includes(t):!1}function hfu(u,e,t){let n=null;const r=PEu(u),i=TEu(e),a=Object.keys(r),o=Object.keys(i),s=VA(Object.keys(u)),l=VA(Object.keys(e)),c=s.filter(E=>!l.includes(E));return c.length&&(n=mr("NON_CONFORMING_NAMESPACES",`${t} namespaces keys don't satisfy requiredNamespaces. +***************************************************************************** */var zf=function(u,e){return zf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])},zf(u,e)};function $lu(u,e){zf(u,e);function t(){this.constructor=u}u.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var Mf=function(){return Mf=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;o--)(a=u[o])&&(i=(r<3?a(i):r>3?a(e,t,i):a(e,t))||i);return r>3&&i&&Object.defineProperty(e,t,i),i}function Hlu(u,e){return function(t,n){e(t,n,u)}}function Glu(u,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(u,e)}function Klu(u,e,t,n){function r(i){return i instanceof t?i:new t(function(a){a(i)})}return new(t||(t=Promise))(function(i,a){function o(c){try{l(n.next(c))}catch(E){a(E)}}function s(c){try{l(n.throw(c))}catch(E){a(E)}}function l(c){c.done?i(c.value):r(c.value).then(o,s)}l((n=n.apply(u,e||[])).next())})}function Qlu(u,e){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},n,r,i,a;return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(l){return function(c){return s([l,c])}}function s(l){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,r&&(i=l[0]&2?r.return:l[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,l[1])).done)return i;switch(r=0,i&&(l=[l[0]&2,i.value]),l[0]){case 0:case 1:i=l;break;case 4:return t.label++,{value:l[1],done:!1};case 5:t.label++,r=l[1],l=[0];continue;case 7:l=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!i||l[1]>i[0]&&l[1]=u.length&&(u=void 0),{value:u&&u[n++],done:!u}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function cx(u,e){var t=typeof Symbol=="function"&&u[Symbol.iterator];if(!t)return u;var n=t.call(u),r,i=[],a;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)i.push(r.value)}catch(o){a={error:o}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(a)throw a.error}}return i}function Ylu(){for(var u=[],e=0;e1||o(d,f)})})}function o(d,f){try{s(n[d](f))}catch(C){E(i[0][3],C)}}function s(d){d.value instanceof W3?Promise.resolve(d.value.v).then(l,c):E(i[0][2],d)}function l(d){o("next",d)}function c(d){o("throw",d)}function E(d,f){d(f),i.shift(),i.length&&o(i[0][0],i[0][1])}}function ucu(u){var e,t;return e={},n("next"),n("throw",function(r){throw r}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(r,i){e[r]=u[r]?function(a){return(t=!t)?{value:W3(u[r](a)),done:r==="return"}:i?i(a):a}:i}}function ecu(u){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=u[Symbol.asyncIterator],t;return e?e.call(u):(u=typeof Uf=="function"?Uf(u):u[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=u[i]&&function(a){return new Promise(function(o,s){a=u[i](a),r(o,s,a.done,a.value)})}}function r(i,a,o,s){Promise.resolve(s).then(function(l){i({value:l,done:o})},a)}}function tcu(u,e){return Object.defineProperty?Object.defineProperty(u,"raw",{value:e}):u.raw=e,u}function ncu(u){if(u&&u.__esModule)return u;var e={};if(u!=null)for(var t in u)Object.hasOwnProperty.call(u,t)&&(e[t]=u[t]);return e.default=u,e}function rcu(u){return u&&u.__esModule?u:{default:u}}function icu(u,e){if(!e.has(u))throw new TypeError("attempted to get private field on non-instance");return e.get(u)}function acu(u,e,t){if(!e.has(u))throw new TypeError("attempted to set private field on non-instance");return e.set(u,t),t}const ocu=Object.freeze(Object.defineProperty({__proto__:null,get __assign(){return Mf},__asyncDelegator:ucu,__asyncGenerator:Zlu,__asyncValues:ecu,__await:W3,__awaiter:Klu,__classPrivateFieldGet:icu,__classPrivateFieldSet:acu,__createBinding:Vlu,__decorate:qlu,__exportStar:Jlu,__extends:$lu,__generator:Qlu,__importDefault:rcu,__importStar:ncu,__makeTemplateObject:tcu,__metadata:Glu,__param:Hlu,__read:cx,__rest:Wlu,__spread:Ylu,__spreadArrays:Xlu,__values:Uf},Symbol.toStringTag,{value:"Module"})),u9=bp(ocu);var w1={},A4={},_A;function scu(){if(_A)return A4;_A=1,Object.defineProperty(A4,"__esModule",{value:!0}),A4.delay=void 0;function u(e){return new Promise(t=>{setTimeout(()=>{t(!0)},e)})}return A4.delay=u,A4}var di={},x1={},fi={},SA;function lcu(){return SA||(SA=1,Object.defineProperty(fi,"__esModule",{value:!0}),fi.ONE_THOUSAND=fi.ONE_HUNDRED=void 0,fi.ONE_HUNDRED=100,fi.ONE_THOUSAND=1e3),fi}var k1={},PA;function ccu(){return PA||(PA=1,function(u){Object.defineProperty(u,"__esModule",{value:!0}),u.ONE_YEAR=u.FOUR_WEEKS=u.THREE_WEEKS=u.TWO_WEEKS=u.ONE_WEEK=u.THIRTY_DAYS=u.SEVEN_DAYS=u.FIVE_DAYS=u.THREE_DAYS=u.ONE_DAY=u.TWENTY_FOUR_HOURS=u.TWELVE_HOURS=u.SIX_HOURS=u.THREE_HOURS=u.ONE_HOUR=u.SIXTY_MINUTES=u.THIRTY_MINUTES=u.TEN_MINUTES=u.FIVE_MINUTES=u.ONE_MINUTE=u.SIXTY_SECONDS=u.THIRTY_SECONDS=u.TEN_SECONDS=u.FIVE_SECONDS=u.ONE_SECOND=void 0,u.ONE_SECOND=1,u.FIVE_SECONDS=5,u.TEN_SECONDS=10,u.THIRTY_SECONDS=30,u.SIXTY_SECONDS=60,u.ONE_MINUTE=u.SIXTY_SECONDS,u.FIVE_MINUTES=u.ONE_MINUTE*5,u.TEN_MINUTES=u.ONE_MINUTE*10,u.THIRTY_MINUTES=u.ONE_MINUTE*30,u.SIXTY_MINUTES=u.ONE_MINUTE*60,u.ONE_HOUR=u.SIXTY_MINUTES,u.THREE_HOURS=u.ONE_HOUR*3,u.SIX_HOURS=u.ONE_HOUR*6,u.TWELVE_HOURS=u.ONE_HOUR*12,u.TWENTY_FOUR_HOURS=u.ONE_HOUR*24,u.ONE_DAY=u.TWENTY_FOUR_HOURS,u.THREE_DAYS=u.ONE_DAY*3,u.FIVE_DAYS=u.ONE_DAY*5,u.SEVEN_DAYS=u.ONE_DAY*7,u.THIRTY_DAYS=u.ONE_DAY*30,u.ONE_WEEK=u.SEVEN_DAYS,u.TWO_WEEKS=u.ONE_WEEK*2,u.THREE_WEEKS=u.ONE_WEEK*3,u.FOUR_WEEKS=u.ONE_WEEK*4,u.ONE_YEAR=u.ONE_DAY*365}(k1)),k1}var TA;function Ex(){return TA||(TA=1,function(u){Object.defineProperty(u,"__esModule",{value:!0});const e=u9;e.__exportStar(lcu(),u),e.__exportStar(ccu(),u)}(x1)),x1}var IA;function Ecu(){if(IA)return di;IA=1,Object.defineProperty(di,"__esModule",{value:!0}),di.fromMiliseconds=di.toMiliseconds=void 0;const u=Ex();function e(n){return n*u.ONE_THOUSAND}di.toMiliseconds=e;function t(n){return Math.floor(n/u.ONE_THOUSAND)}return di.fromMiliseconds=t,di}var OA;function dcu(){return OA||(OA=1,function(u){Object.defineProperty(u,"__esModule",{value:!0});const e=u9;e.__exportStar(scu(),u),e.__exportStar(Ecu(),u)}(w1)),w1}var Sa={},NA;function fcu(){if(NA)return Sa;NA=1,Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.Watch=void 0;class u{constructor(){this.timestamps=new Map}start(t){if(this.timestamps.has(t))throw new Error(`Watch already started for label: ${t}`);this.timestamps.set(t,{started:Date.now()})}stop(t){const n=this.get(t);if(typeof n.elapsed<"u")throw new Error(`Watch already stopped for label: ${t}`);const r=Date.now()-n.started;this.timestamps.set(t,{started:n.started,elapsed:r})}get(t){const n=this.timestamps.get(t);if(typeof n>"u")throw new Error(`No timestamp found for label: ${t}`);return n}elapsed(t){const n=this.get(t);return n.elapsed||Date.now()-n.started}}return Sa.Watch=u,Sa.default=u,Sa}var _1={},y4={},RA;function pcu(){if(RA)return y4;RA=1,Object.defineProperty(y4,"__esModule",{value:!0}),y4.IWatch=void 0;class u{}return y4.IWatch=u,y4}var jA;function hcu(){return jA||(jA=1,function(u){Object.defineProperty(u,"__esModule",{value:!0}),u9.__exportStar(pcu(),u)}(_1)),_1}(function(u){Object.defineProperty(u,"__esModule",{value:!0});const e=u9;e.__exportStar(dcu(),u),e.__exportStar(fcu(),u),e.__exportStar(hcu(),u),e.__exportStar(Ex(),u)})(ua);var ne={};Object.defineProperty(ne,"__esModule",{value:!0});var Ccu=ne.getLocalStorage=Icu=ne.getLocalStorageOrThrow=Pcu=ne.getCrypto=_cu=ne.getCryptoOrThrow=fx=ne.getLocation=wcu=ne.getLocationOrThrow=rC=ne.getNavigator=Fcu=ne.getNavigatorOrThrow=dx=ne.getDocument=ycu=ne.getDocumentOrThrow=gcu=ne.getFromWindowOrThrow=mcu=ne.getFromWindow=void 0;function Fa(u){let e;return typeof window<"u"&&typeof window[u]<"u"&&(e=window[u]),e}var mcu=ne.getFromWindow=Fa;function r4(u){const e=Fa(u);if(!e)throw new Error(`${u} is not defined in Window`);return e}var gcu=ne.getFromWindowOrThrow=r4;function Acu(){return r4("document")}var ycu=ne.getDocumentOrThrow=Acu;function Bcu(){return Fa("document")}var dx=ne.getDocument=Bcu;function vcu(){return r4("navigator")}var Fcu=ne.getNavigatorOrThrow=vcu;function Dcu(){return Fa("navigator")}var rC=ne.getNavigator=Dcu;function bcu(){return r4("location")}var wcu=ne.getLocationOrThrow=bcu;function xcu(){return Fa("location")}var fx=ne.getLocation=xcu;function kcu(){return r4("crypto")}var _cu=ne.getCryptoOrThrow=kcu;function Scu(){return Fa("crypto")}var Pcu=ne.getCrypto=Scu;function Tcu(){return r4("localStorage")}var Icu=ne.getLocalStorageOrThrow=Tcu;function Ocu(){return Fa("localStorage")}Ccu=ne.getLocalStorage=Ocu;var iC={};Object.defineProperty(iC,"__esModule",{value:!0});var px=iC.getWindowMetadata=void 0;const zA=ne;function Ncu(){let u,e;try{u=zA.getDocumentOrThrow(),e=zA.getLocationOrThrow()}catch{return null}function t(){const E=u.getElementsByTagName("link"),d=[];for(let f=0;f-1){const B=C.getAttribute("href");if(B)if(B.toLowerCase().indexOf("https:")===-1&&B.toLowerCase().indexOf("http:")===-1&&B.indexOf("//")!==0){let g=e.protocol+"//"+e.host;if(B.indexOf("/")===0)g+=B;else{const m=e.pathname.split("/");m.pop();const y=m.join("/");g+=y+"/"+B}d.push(g)}else if(B.indexOf("//")===0){const g=e.protocol+B;d.push(g)}else d.push(B)}}return d}function n(...E){const d=u.getElementsByTagName("meta");for(let f=0;fC.getAttribute(B)).filter(B=>B?E.includes(B):!1);if(h.length&&h){const B=C.getAttribute("content");if(B)return B}}return""}function r(){let E=n("name","og:site_name","og:title","twitter:title");return E||(E=u.title),E}function i(){return n("description","og:description","twitter:description","keywords")}const a=r(),o=i(),s=e.origin,l=t();return{description:o,url:s,icons:l,name:a}}px=iC.getWindowMetadata=Ncu;var q3={},Rcu=u=>encodeURIComponent(u).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),hx="%[a-f0-9]{2}",MA=new RegExp("("+hx+")|([^%]+?)","gi"),UA=new RegExp("("+hx+")+","gi");function Lf(u,e){try{return[decodeURIComponent(u.join(""))]}catch{}if(u.length===1)return u;e=e||1;var t=u.slice(0,e),n=u.slice(e);return Array.prototype.concat.call([],Lf(t),Lf(n))}function jcu(u){try{return decodeURIComponent(u)}catch{for(var e=u.match(MA)||[],t=1;t{if(!(typeof u=="string"&&typeof e=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(e==="")return[u];const t=u.indexOf(e);return t===-1?[u]:[u.slice(0,t),u.slice(t+e.length)]},Lcu=function(u,e){for(var t={},n=Object.keys(u),r=Array.isArray(e),i=0;im==null,a=Symbol("encodeFragmentIdentifier");function o(m){switch(m.arrayFormat){case"index":return y=>(v,w)=>{const D=v.length;return w===void 0||m.skipNull&&w===null||m.skipEmptyString&&w===""?v:w===null?[...v,[c(y,m),"[",D,"]"].join("")]:[...v,[c(y,m),"[",c(D,m),"]=",c(w,m)].join("")]};case"bracket":return y=>(v,w)=>w===void 0||m.skipNull&&w===null||m.skipEmptyString&&w===""?v:w===null?[...v,[c(y,m),"[]"].join("")]:[...v,[c(y,m),"[]=",c(w,m)].join("")];case"colon-list-separator":return y=>(v,w)=>w===void 0||m.skipNull&&w===null||m.skipEmptyString&&w===""?v:w===null?[...v,[c(y,m),":list="].join("")]:[...v,[c(y,m),":list=",c(w,m)].join("")];case"comma":case"separator":case"bracket-separator":{const y=m.arrayFormat==="bracket-separator"?"[]=":"=";return v=>(w,D)=>D===void 0||m.skipNull&&D===null||m.skipEmptyString&&D===""?w:(D=D===null?"":D,w.length===0?[[c(v,m),y,c(D,m)].join("")]:[[w,c(D,m)].join(m.arrayFormatSeparator)])}default:return y=>(v,w)=>w===void 0||m.skipNull&&w===null||m.skipEmptyString&&w===""?v:w===null?[...v,c(y,m)]:[...v,[c(y,m),"=",c(w,m)].join("")]}}function s(m){let y;switch(m.arrayFormat){case"index":return(v,w,D)=>{if(y=/\[(\d*)\]$/.exec(v),v=v.replace(/\[\d*\]$/,""),!y){D[v]=w;return}D[v]===void 0&&(D[v]={}),D[v][y[1]]=w};case"bracket":return(v,w,D)=>{if(y=/(\[\])$/.exec(v),v=v.replace(/\[\]$/,""),!y){D[v]=w;return}if(D[v]===void 0){D[v]=[w];return}D[v]=[].concat(D[v],w)};case"colon-list-separator":return(v,w,D)=>{if(y=/(:list)$/.exec(v),v=v.replace(/:list$/,""),!y){D[v]=w;return}if(D[v]===void 0){D[v]=[w];return}D[v]=[].concat(D[v],w)};case"comma":case"separator":return(v,w,D)=>{const p=typeof w=="string"&&w.includes(m.arrayFormatSeparator),x=typeof w=="string"&&!p&&E(w,m).includes(m.arrayFormatSeparator);w=x?E(w,m):w;const j=p||x?w.split(m.arrayFormatSeparator).map(O=>E(O,m)):w===null?w:E(w,m);D[v]=j};case"bracket-separator":return(v,w,D)=>{const p=/(\[\])$/.test(v);if(v=v.replace(/\[\]$/,""),!p){D[v]=w&&E(w,m);return}const x=w===null?[]:w.split(m.arrayFormatSeparator).map(j=>E(j,m));if(D[v]===void 0){D[v]=x;return}D[v]=[].concat(D[v],x)};default:return(v,w,D)=>{if(D[v]===void 0){D[v]=w;return}D[v]=[].concat(D[v],w)}}}function l(m){if(typeof m!="string"||m.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function c(m,y){return y.encode?y.strict?e(m):encodeURIComponent(m):m}function E(m,y){return y.decode?t(m):m}function d(m){return Array.isArray(m)?m.sort():typeof m=="object"?d(Object.keys(m)).sort((y,v)=>Number(y)-Number(v)).map(y=>m[y]):m}function f(m){const y=m.indexOf("#");return y!==-1&&(m=m.slice(0,y)),m}function C(m){let y="";const v=m.indexOf("#");return v!==-1&&(y=m.slice(v)),y}function h(m){m=f(m);const y=m.indexOf("?");return y===-1?"":m.slice(y+1)}function B(m,y){return y.parseNumbers&&!Number.isNaN(Number(m))&&typeof m=="string"&&m.trim()!==""?m=Number(m):y.parseBooleans&&m!==null&&(m.toLowerCase()==="true"||m.toLowerCase()==="false")&&(m=m.toLowerCase()==="true"),m}function g(m,y){y=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},y),l(y.arrayFormatSeparator);const v=s(y),w=Object.create(null);if(typeof m!="string"||(m=m.trim().replace(/^[?#&]/,""),!m))return w;for(const D of m.split("&")){if(D==="")continue;let[p,x]=n(y.decode?D.replace(/\+/g," "):D,"=");x=x===void 0?null:["comma","separator","bracket-separator"].includes(y.arrayFormat)?x:E(x,y),v(E(p,y),x,w)}for(const D of Object.keys(w)){const p=w[D];if(typeof p=="object"&&p!==null)for(const x of Object.keys(p))p[x]=B(p[x],y);else w[D]=B(p,y)}return y.sort===!1?w:(y.sort===!0?Object.keys(w).sort():Object.keys(w).sort(y.sort)).reduce((D,p)=>{const x=w[p];return x&&typeof x=="object"&&!Array.isArray(x)?D[p]=d(x):D[p]=x,D},Object.create(null))}u.extract=h,u.parse=g,u.stringify=(m,y)=>{if(!m)return"";y=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},y),l(y.arrayFormatSeparator);const v=x=>y.skipNull&&i(m[x])||y.skipEmptyString&&m[x]==="",w=o(y),D={};for(const x of Object.keys(m))v(x)||(D[x]=m[x]);const p=Object.keys(D);return y.sort!==!1&&p.sort(y.sort),p.map(x=>{const j=m[x];return j===void 0?"":j===null?c(x,y):Array.isArray(j)?j.length===0&&y.arrayFormat==="bracket-separator"?c(x,y)+"[]":j.reduce(w(x),[]).join("&"):c(x,y)+"="+c(j,y)}).filter(x=>x.length>0).join("&")},u.parseUrl=(m,y)=>{y=Object.assign({decode:!0},y);const[v,w]=n(m,"#");return Object.assign({url:v.split("?")[0]||"",query:g(h(m),y)},y&&y.parseFragmentIdentifier&&w?{fragmentIdentifier:E(w,y)}:{})},u.stringifyUrl=(m,y)=>{y=Object.assign({encode:!0,strict:!0,[a]:!0},y);const v=f(m.url).split("?")[0]||"",w=u.extract(m.url),D=u.parse(w,{sort:!1}),p=Object.assign(D,m.query);let x=u.stringify(p,y);x&&(x=`?${x}`);let j=C(m.url);return m.fragmentIdentifier&&(j=`#${y[a]?c(m.fragmentIdentifier,y):m.fragmentIdentifier}`),`${v}${x}${j}`},u.pick=(m,y,v)=>{v=Object.assign({parseFragmentIdentifier:!0,[a]:!1},v);const{url:w,query:D,fragmentIdentifier:p}=u.parseUrl(m,v);return u.stringifyUrl({url:w,query:r(D,y),fragmentIdentifier:p},v)},u.exclude=(m,y,v)=>{const w=Array.isArray(y)?D=>!y.includes(D):(D,p)=>!y(D,p);return u.pick(m,w,v)}})(q3);const $cu={waku:{publish:"waku_publish",batchPublish:"waku_batchPublish",subscribe:"waku_subscribe",batchSubscribe:"waku_batchSubscribe",subscription:"waku_subscription",unsubscribe:"waku_unsubscribe",batchUnsubscribe:"waku_batchUnsubscribe"},irn:{publish:"irn_publish",batchPublish:"irn_batchPublish",subscribe:"irn_subscribe",batchSubscribe:"irn_batchSubscribe",subscription:"irn_subscription",unsubscribe:"irn_unsubscribe",batchUnsubscribe:"irn_batchUnsubscribe"},iridium:{publish:"iridium_publish",batchPublish:"iridium_batchPublish",subscribe:"iridium_subscribe",batchSubscribe:"iridium_batchSubscribe",subscription:"iridium_subscription",unsubscribe:"iridium_unsubscribe",batchUnsubscribe:"iridium_batchUnsubscribe"}},Wcu=":";function b6u(u){const[e,t]=u.split(Wcu);return{namespace:e,reference:t}}function w6u(u,e=[]){const t=[];return Object.keys(u).forEach(n=>{if(e.length&&!e.includes(n))return;const r=u[n];t.push(...r.accounts)}),t}function Cx(u,e){return u.includes(":")?[u]:e.chains||[]}const mx="base10",P0="base16",$f="base64pad",aC="utf8",gx=0,Vl=1,qcu=0,LA=1,Wf=12,oC=32;function x6u(){const u=tC.generateKeyPair();return{privateKey:Mt(u.secretKey,P0),publicKey:Mt(u.publicKey,P0)}}function k6u(){const u=Qd.randomBytes(oC);return Mt(u,P0)}function _6u(u,e){const t=tC.sharedKey(Ot(u,P0),Ot(e,P0),!0),n=new v3u(Xd.SHA256,t).expand(oC);return Mt(n,P0)}function S6u(u){const e=Xd.hash(Ot(u,P0));return Mt(e,P0)}function P6u(u){const e=Xd.hash(Ot(u,aC));return Mt(e,P0)}function Hcu(u){return Ot(`${u}`,mx)}function e9(u){return Number(Mt(u,mx))}function T6u(u){const e=Hcu(typeof u.type<"u"?u.type:gx);if(e9(e)===Vl&&typeof u.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const t=typeof u.senderPublicKey<"u"?Ot(u.senderPublicKey,P0):void 0,n=typeof u.iv<"u"?Ot(u.iv,P0):Qd.randomBytes(Wf),r=new uC.ChaCha20Poly1305(Ot(u.symKey,P0)).seal(n,Ot(u.message,aC));return Gcu({type:e,sealed:r,iv:n,senderPublicKey:t})}function I6u(u){const e=new uC.ChaCha20Poly1305(Ot(u.symKey,P0)),{sealed:t,iv:n}=Ax(u.encoded),r=e.open(n,t);if(r===null)throw new Error("Failed to decrypt");return Mt(r,aC)}function Gcu(u){if(e9(u.type)===Vl){if(typeof u.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return Mt(vA([u.type,u.senderPublicKey,u.iv,u.sealed]),$f)}return Mt(vA([u.type,u.iv,u.sealed]),$f)}function Ax(u){const e=Ot(u,$f),t=e.slice(qcu,LA),n=LA;if(e9(t)===Vl){const o=n+oC,s=o+Wf,l=e.slice(n,o),c=e.slice(o,s),E=e.slice(s);return{type:t,sealed:E,iv:c,senderPublicKey:l}}const r=n+Wf,i=e.slice(n,r),a=e.slice(r);return{type:t,sealed:a,iv:i}}function O6u(u,e){const t=Ax(u);return Kcu({type:e9(t.type),senderPublicKey:typeof t.senderPublicKey<"u"?Mt(t.senderPublicKey,P0):void 0,receiverPublicKey:e==null?void 0:e.receiverPublicKey})}function Kcu(u){const e=(u==null?void 0:u.type)||gx;if(e===Vl){if(typeof(u==null?void 0:u.senderPublicKey)>"u")throw new Error("missing sender public key");if(typeof(u==null?void 0:u.receiverPublicKey)>"u")throw new Error("missing receiver public key")}return{type:e,senderPublicKey:u==null?void 0:u.senderPublicKey,receiverPublicKey:u==null?void 0:u.receiverPublicKey}}function N6u(u){return u.type===Vl&&typeof u.senderPublicKey=="string"&&typeof u.receiverPublicKey=="string"}var Qcu=Object.defineProperty,$A=Object.getOwnPropertySymbols,Vcu=Object.prototype.hasOwnProperty,Jcu=Object.prototype.propertyIsEnumerable,WA=(u,e,t)=>e in u?Qcu(u,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[e]=t,qA=(u,e)=>{for(var t in e||(e={}))Vcu.call(e,t)&&WA(u,t,e[t]);if($A)for(var t of $A(e))Jcu.call(e,t)&&WA(u,t,e[t]);return u};const Ycu="ReactNative",L0={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},Xcu="js";function yx(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}function t9(){return!dx()&&!!rC()&&navigator.product===Ycu}function sC(){return!yx()&&!!rC()}function Jl(){return t9()?L0.reactNative:yx()?L0.node:sC()?L0.browser:L0.unknown}function Zcu(u,e){let t=q3.parse(u);return t=qA(qA({},t),e),u=q3.stringify(t),u}function R6u(){return px()||{name:"",description:"",url:"",icons:[""]}}function uEu(){if(Jl()===L0.reactNative&&typeof globalThis<"u"&&typeof(globalThis==null?void 0:globalThis.Platform)<"u"){const{OS:t,Version:n}=globalThis.Platform;return[t,n].join("-")}const u=jlu();if(u===null)return"unknown";const e=u.os?u.os.replace(" ","").toLowerCase():"unknown";return u.type==="browser"?[e,u.name,u.version].join("-"):[e,u.version].join("-")}function eEu(){var u;const e=Jl();return e===L0.browser?[e,((u=fx())==null?void 0:u.host)||"unknown"].join(":"):e}function tEu(u,e,t){const n=uEu(),r=eEu();return[[u,e].join("-"),[Xcu,t].join("-"),n,r].join("/")}function j6u({protocol:u,version:e,relayUrl:t,sdkVersion:n,auth:r,projectId:i,useOnCloseEvent:a}){const o=t.split("?"),s=tEu(u,e,n),l={auth:r,ua:s,projectId:i,useOnCloseEvent:a||void 0},c=Zcu(o[1]||"",l);return o[0]+"?"+c}function xi(u,e){return u.filter(t=>e.includes(t)).length===u.length}function z6u(u){return Object.fromEntries(u.entries())}function M6u(u){return new Map(Object.entries(u))}function U6u(u=ua.FIVE_MINUTES,e){const t=ua.toMiliseconds(u||ua.FIVE_MINUTES);let n,r,i;return{resolve:a=>{i&&n&&(clearTimeout(i),n(a))},reject:a=>{i&&r&&(clearTimeout(i),r(a))},done:()=>new Promise((a,o)=>{i=setTimeout(()=>{o(new Error(e))},t),n=a,r=o})}}function L6u(u,e,t){return new Promise(async(n,r)=>{const i=setTimeout(()=>r(new Error(t)),e);try{const a=await u;n(a)}catch(a){r(a)}clearTimeout(i)})}function Bx(u,e){if(typeof e=="string"&&e.startsWith(`${u}:`))return e;if(u.toLowerCase()==="topic"){if(typeof e!="string")throw new Error('Value must be "string" for expirer target type: topic');return`topic:${e}`}else if(u.toLowerCase()==="id"){if(typeof e!="number")throw new Error('Value must be "number" for expirer target type: id');return`id:${e}`}throw new Error(`Unknown expirer target type: ${u}`)}function $6u(u){return Bx("topic",u)}function W6u(u){return Bx("id",u)}function q6u(u){const[e,t]=u.split(":"),n={id:void 0,topic:void 0};if(e==="topic"&&typeof t=="string")n.topic=t;else if(e==="id"&&Number.isInteger(Number(t)))n.id=Number(t);else throw new Error(`Invalid target, expected id:number or topic:string, got ${e}:${t}`);return n}function H6u(u,e){return ua.fromMiliseconds((e||Date.now())+ua.toMiliseconds(u))}function G6u(u){return Date.now()>=ua.toMiliseconds(u)}function K6u(u,e){return`${u}${e?`:${e}`:""}`}function S1(u=[],e=[]){return[...new Set([...u,...e])]}async function Q6u({id:u,topic:e,wcDeepLink:t}){try{if(!t)return;const n=typeof t=="string"?JSON.parse(t):t;let r=n==null?void 0:n.href;if(typeof r!="string")return;r.endsWith("/")&&(r=r.slice(0,-1));const i=`${r}/wc?requestId=${u}&sessionTopic=${e}`,a=Jl();a===L0.browser?i.startsWith("https://")?window.open(i,"_blank","noreferrer noopener"):window.open(i,"_self","noreferrer noopener"):a===L0.reactNative&&typeof(globalThis==null?void 0:globalThis.Linking)<"u"&&await globalThis.Linking.openURL(i)}catch(n){console.error(n)}}const nEu="irn";function V6u(u){return(u==null?void 0:u.relay)||{protocol:nEu}}function J6u(u){const e=$cu[u];if(typeof e>"u")throw new Error(`Relay Protocol not supported: ${u}`);return e}var rEu=Object.defineProperty,HA=Object.getOwnPropertySymbols,iEu=Object.prototype.hasOwnProperty,aEu=Object.prototype.propertyIsEnumerable,GA=(u,e,t)=>e in u?rEu(u,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[e]=t,oEu=(u,e)=>{for(var t in e||(e={}))iEu.call(e,t)&&GA(u,t,e[t]);if(HA)for(var t of HA(e))aEu.call(e,t)&&GA(u,t,e[t]);return u};function sEu(u,e="-"){const t={},n="relay"+e;return Object.keys(u).forEach(r=>{if(r.startsWith(n)){const i=r.replace(n,""),a=u[r];t[i]=a}}),t}function Y6u(u){const e=u.indexOf(":"),t=u.indexOf("?")!==-1?u.indexOf("?"):void 0,n=u.substring(0,e),r=u.substring(e+1,t).split("@"),i=typeof t<"u"?u.substring(t):"",a=q3.parse(i);return{protocol:n,topic:lEu(r[0]),version:parseInt(r[1],10),symKey:a.symKey,relay:sEu(a)}}function lEu(u){return u.startsWith("//")?u.substring(2):u}function cEu(u,e="-"){const t="relay",n={};return Object.keys(u).forEach(r=>{const i=t+e+r;u[r]&&(n[i]=u[r])}),n}function X6u(u){return`${u.protocol}:${u.topic}@${u.version}?`+q3.stringify(oEu({symKey:u.symKey},cEu(u.relay)))}var EEu=Object.defineProperty,dEu=Object.defineProperties,fEu=Object.getOwnPropertyDescriptors,KA=Object.getOwnPropertySymbols,pEu=Object.prototype.hasOwnProperty,hEu=Object.prototype.propertyIsEnumerable,QA=(u,e,t)=>e in u?EEu(u,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):u[e]=t,CEu=(u,e)=>{for(var t in e||(e={}))pEu.call(e,t)&&QA(u,t,e[t]);if(KA)for(var t of KA(e))hEu.call(e,t)&&QA(u,t,e[t]);return u},mEu=(u,e)=>dEu(u,fEu(e));function i4(u){const e=[];return u.forEach(t=>{const[n,r]=t.split(":");e.push(`${n}:${r}`)}),e}function gEu(u){const e=[];return Object.values(u).forEach(t=>{e.push(...i4(t.accounts))}),e}function AEu(u,e){const t=[];return Object.values(u).forEach(n=>{i4(n.accounts).includes(e)&&t.push(...n.methods)}),t}function yEu(u,e){const t=[];return Object.values(u).forEach(n=>{i4(n.accounts).includes(e)&&t.push(...n.events)}),t}function Z6u(u,e){const t=SEu(u,e);if(t)throw new Error(t.message);const n={};for(const[r,i]of Object.entries(u))n[r]={methods:i.methods,events:i.events,chains:i.accounts.map(a=>`${a.split(":")[0]}:${a.split(":")[1]}`)};return n}function vx(u){return u.includes(":")}function BEu(u){return vx(u)?u.split(":")[0]:u}function Fx(u){var e,t,n;const r={};if(!lC(u))return r;for(const[i,a]of Object.entries(u)){const o=vx(i)?[i]:a.chains,s=a.methods||[],l=a.events||[],c=BEu(i);r[c]=mEu(CEu({},r[c]),{chains:S1(o,(e=r[c])==null?void 0:e.chains),methods:S1(s,(t=r[c])==null?void 0:t.methods),events:S1(l,(n=r[c])==null?void 0:n.events)})}return r}const vEu={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},FEu={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function gr(u,e){const{message:t,code:n}=FEu[u];return{message:e?`${t} ${e}`:t,code:n}}function xs(u,e){const{message:t,code:n}=vEu[u];return{message:e?`${t} ${e}`:t,code:n}}function n9(u,e){return Array.isArray(u)?typeof e<"u"&&u.length?u.every(e):!0:!1}function lC(u){return Object.getPrototypeOf(u)===Object.prototype&&Object.keys(u).length}function ea(u){return typeof u>"u"}function At(u,e){return e&&ea(u)?!0:typeof u=="string"&&!!u.trim().length}function cC(u,e){return e&&ea(u)?!0:typeof u=="number"&&!isNaN(u)}function ufu(u,e){const{requiredNamespaces:t}=e,n=Object.keys(u.namespaces),r=Object.keys(t);let i=!0;return xi(r,n)?(n.forEach(a=>{const{accounts:o,methods:s,events:l}=u.namespaces[a],c=i4(o),E=t[a];(!xi(Cx(a,E),c)||!xi(E.methods,s)||!xi(E.events,l))&&(i=!1)}),i):!1}function a2(u){return At(u,!1)&&u.includes(":")?u.split(":").length===2:!1}function DEu(u){if(At(u,!1)&&u.includes(":")){const e=u.split(":");if(e.length===3){const t=e[0]+":"+e[1];return!!e[2]&&a2(t)}}return!1}function efu(u){if(At(u,!1))try{return typeof new URL(u)<"u"}catch{return!1}return!1}function tfu(u){var e;return(e=u==null?void 0:u.proposer)==null?void 0:e.publicKey}function nfu(u){return u==null?void 0:u.topic}function rfu(u,e){let t=null;return At(u==null?void 0:u.publicKey,!1)||(t=gr("MISSING_OR_INVALID",`${e} controller public key should be a string`)),t}function VA(u){let e=!0;return n9(u)?u.length&&(e=u.every(t=>At(t,!1))):e=!1,e}function bEu(u,e,t){let n=null;return n9(e)&&e.length?e.forEach(r=>{n||a2(r)||(n=xs("UNSUPPORTED_CHAINS",`${t}, chain ${r} should be a string and conform to "namespace:chainId" format`))}):a2(u)||(n=xs("UNSUPPORTED_CHAINS",`${t}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),n}function wEu(u,e,t){let n=null;return Object.entries(u).forEach(([r,i])=>{if(n)return;const a=bEu(r,Cx(r,i),`${e} ${t}`);a&&(n=a)}),n}function xEu(u,e){let t=null;return n9(u)?u.forEach(n=>{t||DEu(n)||(t=xs("UNSUPPORTED_ACCOUNTS",`${e}, account ${n} should be a string and conform to "namespace:chainId:address" format`))}):t=xs("UNSUPPORTED_ACCOUNTS",`${e}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),t}function kEu(u,e){let t=null;return Object.values(u).forEach(n=>{if(t)return;const r=xEu(n==null?void 0:n.accounts,`${e} namespace`);r&&(t=r)}),t}function _Eu(u,e){let t=null;return VA(u==null?void 0:u.methods)?VA(u==null?void 0:u.events)||(t=xs("UNSUPPORTED_EVENTS",`${e}, events should be an array of strings or empty array for no events`)):t=xs("UNSUPPORTED_METHODS",`${e}, methods should be an array of strings or empty array for no methods`),t}function Dx(u,e){let t=null;return Object.values(u).forEach(n=>{if(t)return;const r=_Eu(n,`${e}, namespace`);r&&(t=r)}),t}function ifu(u,e,t){let n=null;if(u&&lC(u)){const r=Dx(u,e);r&&(n=r);const i=wEu(u,e,t);i&&(n=i)}else n=gr("MISSING_OR_INVALID",`${e}, ${t} should be an object with data`);return n}function SEu(u,e){let t=null;if(u&&lC(u)){const n=Dx(u,e);n&&(t=n);const r=kEu(u,e);r&&(t=r)}else t=gr("MISSING_OR_INVALID",`${e}, namespaces should be an object with data`);return t}function PEu(u){return At(u.protocol,!0)}function afu(u,e){let t=!1;return e&&!u?t=!0:u&&n9(u)&&u.length&&u.forEach(n=>{t=PEu(n)}),t}function ofu(u){return typeof u=="number"}function sfu(u){return typeof u<"u"&&typeof u!==null}function lfu(u){return!(!u||typeof u!="object"||!u.code||!cC(u.code,!1)||!u.message||!At(u.message,!1))}function cfu(u){return!(ea(u)||!At(u.method,!1))}function Efu(u){return!(ea(u)||ea(u.result)&&ea(u.error)||!cC(u.id,!1)||!At(u.jsonrpc,!1))}function dfu(u){return!(ea(u)||!At(u.name,!1))}function ffu(u,e){return!(!a2(e)||!gEu(u).includes(e))}function pfu(u,e,t){return At(t,!1)?AEu(u,e).includes(t):!1}function hfu(u,e,t){return At(t,!1)?yEu(u,e).includes(t):!1}function Cfu(u,e,t){let n=null;const r=TEu(u),i=IEu(e),a=Object.keys(r),o=Object.keys(i),s=JA(Object.keys(u)),l=JA(Object.keys(e)),c=s.filter(E=>!l.includes(E));return c.length&&(n=gr("NON_CONFORMING_NAMESPACES",`${t} namespaces keys don't satisfy requiredNamespaces. Required: ${c.toString()} - Received: ${Object.keys(e).toString()}`)),wi(a,o)||(n=mr("NON_CONFORMING_NAMESPACES",`${t} namespaces chains don't satisfy required namespaces. + Received: ${Object.keys(e).toString()}`)),xi(a,o)||(n=gr("NON_CONFORMING_NAMESPACES",`${t} namespaces chains don't satisfy required namespaces. Required: ${a.toString()} - Approved: ${o.toString()}`)),Object.keys(e).forEach(E=>{if(!E.includes(":")||n)return;const d=r4(e[E].accounts);d.includes(E)||(n=mr("NON_CONFORMING_NAMESPACES",`${t} namespaces accounts don't satisfy namespace accounts for ${E} + Approved: ${o.toString()}`)),Object.keys(e).forEach(E=>{if(!E.includes(":")||n)return;const d=i4(e[E].accounts);d.includes(E)||(n=gr("NON_CONFORMING_NAMESPACES",`${t} namespaces accounts don't satisfy namespace accounts for ${E} Required: ${E} - Approved: ${d.toString()}`))}),a.forEach(E=>{n||(wi(r[E].methods,i[E].methods)?wi(r[E].events,i[E].events)||(n=mr("NON_CONFORMING_NAMESPACES",`${t} namespaces events don't satisfy namespace events for ${E}`)):n=mr("NON_CONFORMING_NAMESPACES",`${t} namespaces methods don't satisfy namespace methods for ${E}`))}),n}function PEu(u){const e={};return Object.keys(u).forEach(t=>{var n;t.includes(":")?e[t]=u[t]:(n=u[t].chains)==null||n.forEach(r=>{e[r]={methods:u[t].methods,events:u[t].events}})}),e}function VA(u){return[...new Set(u.map(e=>e.includes(":")?e.split(":")[0]:e))]}function TEu(u){const e={};return Object.keys(u).forEach(t=>{if(t.includes(":"))e[t]=u[t];else{const n=r4(u[t].accounts);n==null||n.forEach(r=>{e[r]={accounts:u[t].accounts.filter(i=>i.includes(`${r}:`)),methods:u[t].methods,events:u[t].events}})}}),e}function Cfu(u,e){return lC(u,!1)&&u<=e.max&&u>=e.min}function mfu(){const u=Vl();return new Promise(e=>{switch(u){case U0.browser:e(IEu());break;case U0.reactNative:e(OEu());break;case U0.node:e(NEu());break;default:e(!0)}})}function IEu(){return oC()&&(navigator==null?void 0:navigator.onLine)}async function OEu(){if(e9()&&typeof globalThis<"u"&&globalThis!=null&&globalThis.NetInfo){const u=await(globalThis==null?void 0:globalThis.NetInfo.fetch());return u==null?void 0:u.isConnected}return!0}function NEu(){return!0}function gfu(u){switch(Vl()){case U0.browser:REu(u);break;case U0.reactNative:jEu(u);break}}function REu(u){!e9()&&oC()&&(window.addEventListener("online",()=>u(!0)),window.addEventListener("offline",()=>u(!1)))}function jEu(u){e9()&&typeof globalThis<"u"&&globalThis!=null&&globalThis.NetInfo&&(globalThis==null||globalThis.NetInfo.addEventListener(e=>u(e==null?void 0:e.isConnected)))}const S1={};class Afu{static get(e){return S1[e]}static set(e,t){S1[e]=t}static delete(e){delete S1[e]}}var Dx="eip155",zEu="store",bx="requestedChains",Wf="wallet_addEthereumChain",Ee,Y4,Zc,qf,cC,wx,uE,Hf,Gf,xx,a2,EC,Ra,_4,o2,dC,s2,fC,l2,pC,kx=class extends Il{constructor(u){super({...u,options:{isNewChainsStale:!0,...u.options}}),we(this,Zc),we(this,cC),we(this,uE),we(this,Gf),we(this,a2),we(this,Ra),we(this,o2),we(this,s2),we(this,l2),this.id="walletConnect",this.name="WalletConnect",this.ready=!0,we(this,Ee,void 0),we(this,Y4,void 0),this.onAccountsChanged=e=>{e.length===0?this.emit("disconnect"):this.emit("change",{account:e0(e[0])})},this.onChainChanged=e=>{const t=Number(e),n=this.isChainUnsupported(t);this.emit("change",{chain:{id:t,unsupported:n}})},this.onDisconnect=()=>{De(this,Ra,_4).call(this,[]),this.emit("disconnect")},this.onDisplayUri=e=>{this.emit("message",{type:"display_uri",data:e})},this.onConnect=()=>{this.emit("connect",{})},De(this,Zc,qf).call(this)}async connect({chainId:u,pairingTopic:e}={}){var t,n,r,i,a;try{let o=u;if(!o){const C=(t=this.storage)==null?void 0:t.getItem(zEu),h=(i=(r=(n=C==null?void 0:C.state)==null?void 0:n.data)==null?void 0:r.chain)==null?void 0:i.id;h&&!this.isChainUnsupported(h)?o=h:o=(a=this.chains[0])==null?void 0:a.id}if(!o)throw new Error("No chains found on connector.");const s=await this.getProvider();De(this,Gf,xx).call(this);const l=De(this,uE,Hf).call(this);if(s.session&&l&&await s.disconnect(),!s.session||l){const C=this.chains.filter(h=>h.id!==o).map(h=>h.id);this.emit("message",{type:"connecting"}),await s.connect({pairingTopic:e,chains:[o],optionalChains:C.length?C:void 0}),De(this,Ra,_4).call(this,this.chains.map(({id:h})=>h))}const c=await s.enable(),E=e0(c[0]),d=await this.getChainId(),f=this.isChainUnsupported(d);return{account:E,chain:{id:d,unsupported:f}}}catch(o){throw/user rejected/i.test(o==null?void 0:o.message)?new _e(o):o}}async disconnect(){const u=await this.getProvider();try{await u.disconnect()}catch(e){if(!/No matching key/i.test(e.message))throw e}finally{De(this,a2,EC).call(this),De(this,Ra,_4).call(this,[])}}async getAccount(){const{accounts:u}=await this.getProvider();return e0(u[0])}async getChainId(){const{chainId:u}=await this.getProvider();return u}async getProvider({chainId:u}={}){return qu(this,Ee)||await De(this,Zc,qf).call(this),u&&await this.switchChain(u),qu(this,Ee)}async getWalletClient({chainId:u}={}){const[e,t]=await Promise.all([this.getProvider({chainId:u}),this.getAccount()]),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Tl({account:t,chain:n,transport:Sl(e)})}async isAuthorized(){try{const[u,e]=await Promise.all([this.getAccount(),this.getProvider()]),t=De(this,uE,Hf).call(this);if(!u)return!1;if(t&&e.session){try{await e.disconnect()}catch{}return!1}return!0}catch{return!1}}async switchChain(u){var t,n;const e=this.chains.find(r=>r.id===u);if(!e)throw new En(new Error("chain not found on connector."));try{const r=await this.getProvider(),i=De(this,s2,fC).call(this),a=De(this,l2,pC).call(this);if(!i.includes(u)&&a.includes(Wf)){await r.request({method:Wf,params:[{chainId:zu(e.id),blockExplorerUrls:[(n=(t=e.blockExplorers)==null?void 0:t.default)==null?void 0:n.url],chainName:e.name,nativeCurrency:e.nativeCurrency,rpcUrls:[...e.rpcUrls.default.http]}]});const s=De(this,o2,dC).call(this);s.push(u),De(this,Ra,_4).call(this,s)}return await r.request({method:"wallet_switchEthereumChain",params:[{chainId:zu(u)}]}),e}catch(r){const i=typeof r=="string"?r:r==null?void 0:r.message;throw/user rejected request/i.test(i)?new _e(r):new En(r)}}};Ee=new WeakMap;Y4=new WeakMap;Zc=new WeakSet;qf=async function(){return!qu(this,Y4)&&typeof window<"u"&&Jn(this,Y4,De(this,cC,wx).call(this)),qu(this,Y4)};cC=new WeakSet;wx=async function(){const{EthereumProvider:u,OPTIONAL_EVENTS:e,OPTIONAL_METHODS:t}=await Wu(()=>import("./index.es-e00ac5aa.js"),["assets/index.es-e00ac5aa.js","assets/events-43ea8283.js","assets/http-1236d3a2.js"]),[n,...r]=this.chains.map(({id:i})=>i);if(n){const{projectId:i,showQrModal:a=!0,qrModalOptions:o,metadata:s,relayUrl:l}=this.options;Jn(this,Ee,await u.init({showQrModal:a,qrModalOptions:o,projectId:i,optionalMethods:t,optionalEvents:e,chains:[n],optionalChains:r.length?r:void 0,rpcMap:Object.fromEntries(this.chains.map(c=>[c.id,c.rpcUrls.default.http[0]])),metadata:s,relayUrl:l}))}};uE=new WeakSet;Hf=function(){if(De(this,l2,pC).call(this).includes(Wf)||!this.options.isNewChainsStale)return!1;const e=De(this,o2,dC).call(this),t=this.chains.map(({id:r})=>r),n=De(this,s2,fC).call(this);return n.length&&!n.some(r=>t.includes(r))?!1:!t.every(r=>e.includes(r))};Gf=new WeakSet;xx=function(){qu(this,Ee)&&(De(this,a2,EC).call(this),qu(this,Ee).on("accountsChanged",this.onAccountsChanged),qu(this,Ee).on("chainChanged",this.onChainChanged),qu(this,Ee).on("disconnect",this.onDisconnect),qu(this,Ee).on("session_delete",this.onDisconnect),qu(this,Ee).on("display_uri",this.onDisplayUri),qu(this,Ee).on("connect",this.onConnect))};a2=new WeakSet;EC=function(){qu(this,Ee)&&(qu(this,Ee).removeListener("accountsChanged",this.onAccountsChanged),qu(this,Ee).removeListener("chainChanged",this.onChainChanged),qu(this,Ee).removeListener("disconnect",this.onDisconnect),qu(this,Ee).removeListener("session_delete",this.onDisconnect),qu(this,Ee).removeListener("display_uri",this.onDisplayUri),qu(this,Ee).removeListener("connect",this.onConnect))};Ra=new WeakSet;_4=function(u){var e;(e=this.storage)==null||e.setItem(bx,u)};o2=new WeakSet;dC=function(){var u;return((u=this.storage)==null?void 0:u.getItem(bx))??[]};s2=new WeakSet;fC=function(){var n,r,i;if(!qu(this,Ee))return[];const u=(n=qu(this,Ee).session)==null?void 0:n.namespaces;return u?((i=(r=vx(u)[Dx])==null?void 0:r.chains)==null?void 0:i.map(a=>parseInt(a.split(":")[1]||"")))??[]:[]};l2=new WeakSet;pC=function(){var n,r;if(!qu(this,Ee))return[];const u=(n=qu(this,Ee).session)==null?void 0:n.namespaces;return u?((r=vx(u)[Dx])==null?void 0:r.methods)??[]:[]};var S4,ja,MEu=class extends Il{constructor({chains:u,options:e}){super({chains:u,options:{reloadOnDisconnect:!1,...e}}),this.id="coinbaseWallet",this.name="Coinbase Wallet",this.ready=!0,we(this,S4,void 0),we(this,ja,void 0),this.onAccountsChanged=t=>{t.length===0?this.emit("disconnect"):this.emit("change",{account:e0(t[0])})},this.onChainChanged=t=>{const n=la(t),r=this.isChainUnsupported(n);this.emit("change",{chain:{id:n,unsupported:r}})},this.onDisconnect=()=>{this.emit("disconnect")}}async connect({chainId:u}={}){try{const e=await this.getProvider();e.on("accountsChanged",this.onAccountsChanged),e.on("chainChanged",this.onChainChanged),e.on("disconnect",this.onDisconnect),this.emit("message",{type:"connecting"});const t=await e.enable(),n=e0(t[0]);let r=await this.getChainId(),i=this.isChainUnsupported(r);return u&&r!==u&&(r=(await this.switchChain(u)).id,i=this.isChainUnsupported(r)),{account:n,chain:{id:r,unsupported:i}}}catch(e){throw/(user closed modal|accounts received is empty)/i.test(e.message)?new _e(e):e}}async disconnect(){if(!qu(this,ja))return;const u=await this.getProvider();u.removeListener("accountsChanged",this.onAccountsChanged),u.removeListener("chainChanged",this.onChainChanged),u.removeListener("disconnect",this.onDisconnect),u.disconnect(),u.close()}async getAccount(){const e=await(await this.getProvider()).request({method:"eth_accounts"});return e0(e[0])}async getChainId(){const u=await this.getProvider();return la(u.chainId)}async getProvider(){var u;if(!qu(this,ja)){let e=(await Wu(()=>import("./index-168e24fe.js").then(a=>a.i),["assets/index-168e24fe.js","assets/events-43ea8283.js","assets/hooks.module-fb90a505.js"])).default;typeof e!="function"&&typeof e.default=="function"&&(e=e.default),Jn(this,S4,new e(this.options));const t=(u=qu(this,S4).walletExtension)==null?void 0:u.getChainId(),n=this.chains.find(a=>this.options.chainId?a.id===this.options.chainId:a.id===t)||this.chains[0],r=this.options.chainId||(n==null?void 0:n.id),i=this.options.jsonRpcUrl||(n==null?void 0:n.rpcUrls.default.http[0]);Jn(this,ja,qu(this,S4).makeWeb3Provider(i,r))}return qu(this,ja)}async getWalletClient({chainId:u}={}){const[e,t]=await Promise.all([this.getProvider(),this.getAccount()]),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Tl({account:t,chain:n,transport:Sl(e)})}async isAuthorized(){try{return!!await this.getAccount()}catch{return!1}}async switchChain(u){var n;const e=await this.getProvider(),t=zu(u);try{return await e.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]}),this.chains.find(r=>r.id===u)??{id:u,name:`Chain ${t}`,network:`${t}`,nativeCurrency:{name:"Ether",decimals:18,symbol:"ETH"},rpcUrls:{default:{http:[""]},public:{http:[""]}}}}catch(r){const i=this.chains.find(a=>a.id===u);if(!i)throw new uD({chainId:u,connectorId:this.id});if(r.code===4902)try{return await e.request({method:"wallet_addEthereumChain",params:[{chainId:t,chainName:i.name,nativeCurrency:i.nativeCurrency,rpcUrls:[((n=i.rpcUrls.public)==null?void 0:n.http[0])??""],blockExplorerUrls:this.getBlockExplorerUrls(i)}]}),i}catch(a){throw new _e(a)}throw new En(r)}}async watchAsset({address:u,decimals:e=18,image:t,symbol:n}){return(await this.getProvider()).request({method:"wallet_watchAsset",params:{type:"ERC20",options:{address:u,decimals:e,image:t,symbol:n}}})}};S4=new WeakMap;ja=new WeakMap;var eE,UEu=class extends As{constructor({chains:u,options:e}={}){const t={name:"MetaMask",shimDisconnect:!0,getProvider(){function n(i){if(i!=null&&i.isMetaMask&&!(i.isBraveWallet&&!i._events&&!i._state)&&!i.isApexWallet&&!i.isAvalanche&&!i.isBitKeep&&!i.isBlockWallet&&!i.isCoin98&&!i.isFordefi&&!i.isMathWallet&&!(i.isOkxWallet||i.isOKExWallet)&&!(i.isOneInchIOSWallet||i.isOneInchAndroidWallet)&&!i.isOpera&&!i.isPortal&&!i.isRabby&&!i.isDefiant&&!i.isTokenPocket&&!i.isTokenary&&!i.isZeal&&!i.isZerion)return i}if(typeof window>"u")return;const r=window.ethereum;return r!=null&&r.providers?r.providers.find(n):n(r)},...e};super({chains:u,options:t}),this.id="metaMask",this.shimDisconnectKey=`${this.id}.shimDisconnect`,we(this,eE,void 0),Jn(this,eE,t.UNSTABLE_shimOnConnectSelectAccount)}async connect({chainId:u}={}){var e,t,n,r;try{const i=await this.getProvider();if(!i)throw new y0;i.on&&(i.on("accountsChanged",this.onAccountsChanged),i.on("chainChanged",this.onChainChanged),i.on("disconnect",this.onDisconnect)),this.emit("message",{type:"connecting"});let a=null;if(qu(this,eE)&&((e=this.options)!=null&&e.shimDisconnect)&&!((t=this.storage)!=null&&t.getItem(this.shimDisconnectKey))&&(a=await this.getAccount().catch(()=>null),!!a))try{await i.request({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]}),a=await this.getAccount()}catch(c){if(this.isUserRejectedRequestError(c))throw new _e(c);if(c.code===new Vr(c).code)throw c}if(!a){const l=await i.request({method:"eth_requestAccounts"});a=e0(l[0])}let o=await this.getChainId(),s=this.isChainUnsupported(o);return u&&o!==u&&(o=(await this.switchChain(u)).id,s=this.isChainUnsupported(o)),(n=this.options)!=null&&n.shimDisconnect&&((r=this.storage)==null||r.setItem(this.shimDisconnectKey,!0)),{account:a,chain:{id:o,unsupported:s},provider:i}}catch(i){throw this.isUserRejectedRequestError(i)?new _e(i):i.code===-32002?new Vr(i):i}}};eE=new WeakMap;var LEu=/(imtoken|metamask|rainbow|trust wallet|uniswap wallet|ledger)/i,Ci,Kf,_x,$Eu=class extends Il{constructor(){super(...arguments),we(this,Kf),this.id="walletConnectLegacy",this.name="WalletConnectLegacy",this.ready=!0,we(this,Ci,void 0),this.onAccountsChanged=u=>{u.length===0?this.emit("disconnect"):this.emit("change",{account:e0(u[0])})},this.onChainChanged=u=>{const e=la(u),t=this.isChainUnsupported(e);this.emit("change",{chain:{id:e,unsupported:t}})},this.onDisconnect=()=>{this.emit("disconnect")}}async connect({chainId:u}={}){var e,t,n,r,i,a;try{let o=u;if(!o){const C=(e=this.storage)==null?void 0:e.getItem("store"),h=(r=(n=(t=C==null?void 0:C.state)==null?void 0:t.data)==null?void 0:n.chain)==null?void 0:r.id;h&&!this.isChainUnsupported(h)&&(o=h)}const s=await this.getProvider({chainId:o,create:!0});s.on("accountsChanged",this.onAccountsChanged),s.on("chainChanged",this.onChainChanged),s.on("disconnect",this.onDisconnect),setTimeout(()=>this.emit("message",{type:"connecting"}),0);const l=await s.enable(),c=e0(l[0]),E=await this.getChainId(),d=this.isChainUnsupported(E),f=((a=(i=s.connector)==null?void 0:i.peerMeta)==null?void 0:a.name)??"";return LEu.test(f)&&(this.switchChain=De(this,Kf,_x)),{account:c,chain:{id:E,unsupported:d}}}catch(o){throw/user closed modal/i.test(o.message)?new _e(o):o}}async disconnect(){const u=await this.getProvider();await u.disconnect(),u.removeListener("accountsChanged",this.onAccountsChanged),u.removeListener("chainChanged",this.onChainChanged),u.removeListener("disconnect",this.onDisconnect),typeof localStorage<"u"&&localStorage.removeItem("walletconnect")}async getAccount(){const e=(await this.getProvider()).accounts;return e0(e[0])}async getChainId(){const u=await this.getProvider();return la(u.chainId)}async getProvider({chainId:u,create:e}={}){var t,n;if(!qu(this,Ci)||u||e){const r=(t=this.options)!=null&&t.infuraId?{}:this.chains.reduce((a,o)=>({...a,[o.id]:o.rpcUrls.default.http[0]}),{}),i=(await Wu(()=>import("./index-22759f61.js"),["assets/index-22759f61.js","assets/events-43ea8283.js","assets/http-1236d3a2.js","assets/hooks.module-fb90a505.js"])).default;Jn(this,Ci,new i({...this.options,chainId:u,rpc:{...r,...(n=this.options)==null?void 0:n.rpc}})),qu(this,Ci).http=await qu(this,Ci).setHttpProvider(u)}return qu(this,Ci)}async getWalletClient({chainId:u}={}){const[e,t]=await Promise.all([this.getProvider({chainId:u}),this.getAccount()]),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Tl({account:t,chain:n,transport:Sl(e)})}async isAuthorized(){try{return!!await this.getAccount()}catch{return!1}}};Ci=new WeakMap;Kf=new WeakSet;_x=async function(u){const e=await this.getProvider(),t=zu(u);try{return await Promise.race([e.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]}),new Promise(n=>this.on("change",({chain:r})=>{(r==null?void 0:r.id)===u&&n(u)}))]),this.chains.find(n=>n.id===u)??{id:u,name:`Chain ${t}`,network:`${t}`,nativeCurrency:{name:"Ether",decimals:18,symbol:"ETH"},rpcUrls:{default:{http:[""]},public:{http:[""]}}}}catch(n){const r=typeof n=="string"?n:n==null?void 0:n.message;throw/user rejected request/i.test(r)?new _e(n):new En(n)}};var P4,T4,WEu=class extends Il{constructor({chains:u,options:e}){const t={shimDisconnect:!1,...e};super({chains:u,options:t}),this.id="safe",this.name="Safe",this.ready=!(typeof window>"u")&&(window==null?void 0:window.parent)!==window,we(this,P4,void 0),we(this,T4,void 0),this.shimDisconnectKey=`${this.id}.shimDisconnect`;let n=Zl;typeof Zl!="function"&&typeof Zl.default=="function"&&(n=Zl.default),Jn(this,T4,new n(t))}async connect(){var n;const u=await this.getProvider();if(!u)throw new y0;u.on&&(u.on("accountsChanged",this.onAccountsChanged),u.on("chainChanged",this.onChainChanged),u.on("disconnect",this.onDisconnect)),this.emit("message",{type:"connecting"});const e=await this.getAccount(),t=await this.getChainId();return this.options.shimDisconnect&&((n=this.storage)==null||n.setItem(this.shimDisconnectKey,!0)),{account:e,chain:{id:t,unsupported:this.isChainUnsupported(t)}}}async disconnect(){var e;const u=await this.getProvider();u!=null&&u.removeListener&&(u.removeListener("accountsChanged",this.onAccountsChanged),u.removeListener("chainChanged",this.onChainChanged),u.removeListener("disconnect",this.onDisconnect),this.options.shimDisconnect&&((e=this.storage)==null||e.removeItem(this.shimDisconnectKey)))}async getAccount(){const u=await this.getProvider();if(!u)throw new y0;const e=await u.request({method:"eth_accounts"});return e0(e[0])}async getChainId(){const u=await this.getProvider();if(!u)throw new y0;return la(u.chainId)}async getProvider(){if(!qu(this,P4)){const u=await qu(this,T4).safe.getInfo();if(!u)throw new Error("Could not load Safe information");Jn(this,P4,new m_(u,qu(this,T4)))}return qu(this,P4)}async getWalletClient({chainId:u}={}){const e=await this.getProvider(),t=await this.getAccount(),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Tl({account:t,chain:n,transport:Sl(e)})}async isAuthorized(){var u;try{return this.options.shimDisconnect&&!((u=this.storage)!=null&&u.getItem(this.shimDisconnectKey))?!1:!!await this.getAccount()}catch{return!1}}onAccountsChanged(u){}onChainChanged(u){}onDisconnect(){this.emit("disconnect")}};P4=new WeakMap;T4=new WeakMap;function qEu(u){return Object.fromEntries(Object.entries(u).filter(([e,t])=>t!==void 0))}var HEu=u=>()=>{let e=-1;const t=[],n=[],r=[],i=[];return u.forEach(({groupName:o,wallets:s},l)=>{s.forEach(c=>{if(e++,c!=null&&c.iconAccent&&!p4u(c==null?void 0:c.iconAccent))throw new Error(`Property \`iconAccent\` is not a hex value for wallet: ${c.name}`);const E={...c,groupIndex:l,groupName:o,index:e};typeof c.hidden=="function"?r.push(E):n.push(E)})}),[...n,...r].forEach(({createConnector:o,groupIndex:s,groupName:l,hidden:c,index:E,...d})=>{if(typeof c=="function"&&c({wallets:[...i.map(({connector:m,id:y,installed:v,name:w})=>({connector:m,id:y,installed:v,name:w}))]}))return;const{connector:f,...C}=qEu(o());let h;if(d.id==="walletConnect"&&C.qrCode&&!qe()){const{chains:g,options:m}=f;h=new kx({chains:g,options:{...m,showQrModal:!0}}),t.push(h)}const B={connector:f,groupIndex:s,groupName:l,index:E,walletConnectModalConnector:h,...d,...C};i.push(B),t.includes(f)||(t.push(f),f._wallets=[]),f._wallets.push(B)}),t},GEu=({chains:u,...e})=>{var t;return{id:"brave",name:"Brave Wallet",iconUrl:async()=>(await Wu(()=>import("./braveWallet-BTBH4MDN-77ab02b2.js"),[])).default,iconBackground:"#fff",installed:typeof window<"u"&&((t=window.ethereum)==null?void 0:t.isBraveWallet)===!0,downloadUrls:{},createConnector:()=>({connector:new As({chains:u,options:e})})}},KEu=({appName:u,chains:e,...t})=>{var n;const r=typeof window<"u"&&((n=window.ethereum)==null?void 0:n.isCoinbaseWallet)===!0;return{id:"coinbase",name:"Coinbase Wallet",shortName:"Coinbase",iconUrl:async()=>(await Wu(()=>import("./coinbaseWallet-2OUR5TUP-f6c629ff.js"),[])).default,iconAccent:"#2c5ff6",iconBackground:"#2c5ff6",installed:r||void 0,downloadUrls:{android:"https://play.google.com/store/apps/details?id=org.toshi",ios:"https://apps.apple.com/us/app/coinbase-wallet-store-crypto/id1278383455",mobile:"https://coinbase.com/wallet/downloads",qrCode:"https://coinbase-wallet.onelink.me/q5Sx/fdb9b250",chrome:"https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",browserExtension:"https://coinbase.com/wallet"},createConnector:()=>{const i=Ba(),a=new MEu({chains:e,options:{appName:u,headlessMode:!0,...t}});return{connector:a,...i?{}:{qrCode:{getUri:async()=>(await a.getProvider()).qrUrl,instructions:{learnMoreUrl:"https://coinbase.com/wallet/articles/getting-started-mobile",steps:[{description:"wallet_connectors.coinbase.qr_code.step1.description",step:"install",title:"wallet_connectors.coinbase.qr_code.step1.title"},{description:"wallet_connectors.coinbase.qr_code.step2.description",step:"create",title:"wallet_connectors.coinbase.qr_code.step2.title"},{description:"wallet_connectors.coinbase.qr_code.step3.description",step:"scan",title:"wallet_connectors.coinbase.qr_code.step3.title"}]}},extension:{instructions:{learnMoreUrl:"https://coinbase.com/wallet/articles/getting-started-extension",steps:[{description:"wallet_connectors.coinbase.extension.step1.description",step:"install",title:"wallet_connectors.coinbase.extension.step1.title"},{description:"wallet_connectors.coinbase.extension.step2.description",step:"create",title:"wallet_connectors.coinbase.extension.step2.title"},{description:"wallet_connectors.coinbase.extension.step3.description",step:"refresh",title:"wallet_connectors.coinbase.extension.step3.title"}]}}}}}}},QEu=({chains:u,...e})=>({id:"injected",name:"Browser Wallet",iconUrl:async()=>(await Wu(()=>import("./injectedWallet-EUKDEAIU-b2513a2e.js"),[])).default,iconBackground:"#fff",hidden:({wallets:t})=>t.some(n=>n.installed&&n.name===n.connector.name&&(n.connector instanceof As||n.id==="coinbase")),createConnector:()=>({connector:new As({chains:u,options:e})})});async function hC(u,e){const t=await u.getProvider();return e==="2"?new Promise(n=>t.once("display_uri",n)):t.connector.uri}var Sx=new Map;function VEu(u,e){const t=u==="1"?new $Eu(e):new kx(e);return Sx.set(JSON.stringify(e),t),t}function c2({chains:u,options:e={},projectId:t,version:n="2"}){const r="21fef48091f12692cad574a6f7753643";if(n==="2"){if(!t||t==="")throw new Error("No projectId found. Every dApp must now provide a WalletConnect Cloud projectId to enable WalletConnect v2 https://www.rainbowkit.com/docs/installation#configure");(t==="YOUR_PROJECT_ID"||t===r)&&console.warn("Invalid projectId. Please create a unique WalletConnect Cloud projectId for your dApp https://www.rainbowkit.com/docs/installation#configure")}const i={chains:u,options:n==="1"?{qrcode:!1,...e}:{projectId:t==="YOUR_PROJECT_ID"?r:t,showQrModal:!1,...e}},a=JSON.stringify(i),o=Sx.get(a);return o??VEu(n,i)}function JA(u){return!(!(u!=null&&u.isMetaMask)||u.isBraveWallet&&!u._events&&!u._state||u.isApexWallet||u.isAvalanche||u.isBackpack||u.isBifrost||u.isBitKeep||u.isBitski||u.isBlockWallet||u.isCoinbaseWallet||u.isDawn||u.isEnkrypt||u.isExodus||u.isFrame||u.isFrontier||u.isGamestop||u.isHyperPay||u.isImToken||u.isKuCoinWallet||u.isMathWallet||u.isOkxWallet||u.isOKExWallet||u.isOneInchIOSWallet||u.isOneInchAndroidWallet||u.isOpera||u.isPhantom||u.isPortal||u.isRabby||u.isRainbow||u.isStatus||u.isTalisman||u.isTally||u.isTokenPocket||u.isTokenary||u.isTrust||u.isTrustWallet||u.isXDEFI||u.isZeal||u.isZerion)}var JEu=({chains:u,projectId:e,walletConnectOptions:t,walletConnectVersion:n="2",...r})=>{var i,a;const o=typeof window<"u"&&((i=window.ethereum)==null?void 0:i.providers),s=typeof window<"u"&&typeof window.ethereum<"u"&&(((a=window.ethereum.providers)==null?void 0:a.some(JA))||window.ethereum.isMetaMask),l=!s;return{id:"metaMask",name:"MetaMask",iconUrl:async()=>(await Wu(()=>import("./metaMaskWallet-ORHUNQRP-ac2ea8b3.js"),[])).default,iconAccent:"#f6851a",iconBackground:"#fff",installed:l?void 0:s,downloadUrls:{android:"https://play.google.com/store/apps/details?id=io.metamask",ios:"https://apps.apple.com/us/app/metamask/id1438144202",mobile:"https://metamask.io/download",qrCode:"https://metamask.io/download",chrome:"https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn",edge:"https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm",firefox:"https://addons.mozilla.org/firefox/addon/ether-metamask",opera:"https://addons.opera.com/extensions/details/metamask-10",browserExtension:"https://metamask.io/download"},createConnector:()=>{const c=l?c2({projectId:e,chains:u,version:n,options:t}):new UEu({chains:u,options:{getProvider:()=>o?o.find(JA):typeof window<"u"?window.ethereum:void 0,...r}}),E=async()=>{const d=await hC(c,n);return L5()?d:Ba()?`metamask://wc?uri=${encodeURIComponent(d)}`:`https://metamask.app.link/wc?uri=${encodeURIComponent(d)}`};return{connector:c,mobile:{getUri:l?E:void 0},qrCode:l?{getUri:E,instructions:{learnMoreUrl:"https://metamask.io/faqs/",steps:[{description:"wallet_connectors.metamask.qr_code.step1.description",step:"install",title:"wallet_connectors.metamask.qr_code.step1.title"},{description:"wallet_connectors.metamask.qr_code.step2.description",step:"create",title:"wallet_connectors.metamask.qr_code.step2.title"},{description:"wallet_connectors.metamask.qr_code.step3.description",step:"refresh",title:"wallet_connectors.metamask.qr_code.step3.title"}]}}:void 0,extension:{instructions:{learnMoreUrl:"https://metamask.io/faqs/",steps:[{description:"wallet_connectors.metamask.extension.step1.description",step:"install",title:"wallet_connectors.metamask.extension.step1.title"},{description:"wallet_connectors.metamask.extension.step2.description",step:"create",title:"wallet_connectors.metamask.extension.step2.title"},{description:"wallet_connectors.metamask.extension.step3.description",step:"refresh",title:"wallet_connectors.metamask.extension.step3.title"}]}}}}}};function Px(u){if(typeof window>"u"||typeof window.ethereum>"u")return;const e=window.ethereum.providers;return e?e.find(t=>t[u]):window.ethereum[u]?window.ethereum:void 0}function YEu(u){return!!Px(u)}function XEu(u){if(typeof window>"u"||typeof window.ethereum>"u")return;const e=window.ethereum.providers,t=Px(u);return t||(typeof e<"u"&&e.length>0?e[0]:window.ethereum)}function ZEu({chains:u,flag:e,options:t}){return new As({chains:u,options:{getProvider:()=>XEu(e),...t}})}var u2u=({chains:u,projectId:e,walletConnectOptions:t,walletConnectVersion:n="2",...r})=>{const i=YEu("isRainbow"),a=!i;return{id:"rainbow",name:"Rainbow",iconUrl:async()=>(await Wu(()=>import("./rainbowWallet-GGU64QEI-80e56a37.js"),[])).default,iconBackground:"#0c2f78",installed:a?void 0:i,downloadUrls:{android:"https://play.google.com/store/apps/details?id=me.rainbow&referrer=utm_source%3Drainbowkit&utm_source=rainbowkit",ios:"https://apps.apple.com/app/apple-store/id1457119021?pt=119997837&ct=rainbowkit&mt=8",mobile:"https://rainbow.download?utm_source=rainbowkit",qrCode:"https://rainbow.download?utm_source=rainbowkit&utm_medium=qrcode",browserExtension:"https://rainbow.me/extension?utm_source=rainbowkit"},createConnector:()=>{const o=a?c2({projectId:e,chains:u,version:n,options:t}):ZEu({flag:"isRainbow",chains:u,options:r}),s=async()=>{const l=await hC(o,n);return L5()?l:Ba()?`rainbow://wc?uri=${encodeURIComponent(l)}&connector=rainbowkit`:`https://rnbwapp.com/wc?uri=${encodeURIComponent(l)}&connector=rainbowkit`};return{connector:o,mobile:{getUri:a?s:void 0},qrCode:a?{getUri:s,instructions:{learnMoreUrl:"https://learn.rainbow.me/connect-to-a-website-or-app?utm_source=rainbowkit&utm_medium=connector&utm_campaign=learnmore",steps:[{description:"wallet_connectors.rainbow.qr_code.step1.description",step:"install",title:"wallet_connectors.rainbow.qr_code.step1.title"},{description:"wallet_connectors.rainbow.qr_code.step2.description",step:"create",title:"wallet_connectors.rainbow.qr_code.step2.title"},{description:"wallet_connectors.rainbow.qr_code.step3.description",step:"scan",title:"wallet_connectors.rainbow.qr_code.step3.title"}]}}:void 0}}}},e2u=({chains:u,...e})=>({id:"safe",name:"Safe",iconAccent:"#12ff80",iconBackground:"#fff",iconUrl:async()=>(await Wu(()=>import("./safeWallet-DFMLSLCR-bb33abc9.js"),[])).default,installed:!(typeof window>"u")&&(window==null?void 0:window.parent)!==window,downloadUrls:{},createConnector:()=>({connector:new WEu({chains:u,options:e})})}),t2u=({chains:u,options:e,projectId:t,version:n="2"})=>({id:"walletConnect",name:"WalletConnect",iconUrl:async()=>(await Wu(()=>import("./walletConnectWallet-D6ZADJM7-c1d5c644.js"),[])).default,iconBackground:"#3b99fc",createConnector:()=>{const r=Ba(),i=c2(n==="1"?{version:"1",chains:u,options:{qrcode:r,...e}}:{version:"2",chains:u,projectId:t,options:{showQrModal:r,...e}}),a=async()=>hC(i,n);return{connector:i,...r?{}:{mobile:{getUri:a},qrCode:{getUri:a}}}}}),n2u=({appName:u,chains:e,projectId:t})=>{const n=[{groupName:"Popular",wallets:[QEu({chains:e}),e2u({chains:e}),u2u({chains:e,projectId:t}),KEu({appName:u,chains:e}),JEu({chains:e,projectId:t}),t2u({chains:e,projectId:t}),GEu({chains:e})]}];return{connectors:HEu(n),wallets:n}};var Tx,YA=Nv;Tx=YA.createRoot,YA.hydrateRoot;const Nn={1:"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",5:"0x1df10ec981ac5871240be4a94f250dd238b77901",10:"0x1df10ec981ac5871240be4a94f250dd238b77901",56:"0x1df10ec981ac5871240be4a94f250dd238b77901",137:"0x1df10ec981ac5871240be4a94f250dd238b77901",250:"0x1df10ec981ac5871240be4a94f250dd238b77901",288:"0x1df10ec981ac5871240be4a94f250dd238b77901",324:"0x1df10ec981ac5871240be4a94f250dd238b77901",420:"0x1df10ec981ac5871240be4a94f250dd238b77901",42161:"0x1df10ec981ac5871240be4a94f250dd238b77901",80001:"0x1df10ec981ac5871240be4a94f250dd238b77901",421613:"0x1df10ec981ac5871240be4a94f250dd238b77901"};var r2u="0.9.10",At=class Qf extends Error{constructor(e,t={}){var a;const n=t.cause instanceof Qf?t.cause.details:(a=t.cause)!=null&&a.message?t.cause.message:t.details,r=t.cause instanceof Qf&&t.cause.docsPath||t.docsPath,i=[e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...r?[`Docs: https://abitype.dev${r}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${r2u}`].join(` -`);super(i),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),t.cause&&(this.cause=t.cause),this.details=n,this.docsPath=r,this.metaMessages=t.metaMessages,this.shortMessage=e}};function li(u,e){const t=u.exec(e);return t==null?void 0:t.groups}var Ix=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Ox=/^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)?$/,Nx=/^\(.+?\).*?$/,XA=/^tuple(?(\[(\d*)\])*)$/;function Vf(u){let e=u.type;if(XA.test(u.type)&&"components"in u){e="(";const t=u.components.length;for(let r=0;r[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;function a2u(u){return Rx.test(u)}function o2u(u){return li(Rx,u)}var jx=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;function s2u(u){return jx.test(u)}function l2u(u){return li(jx,u)}var zx=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/;function c2u(u){return zx.test(u)}function E2u(u){return li(zx,u)}var Mx=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/;function Ux(u){return Mx.test(u)}function d2u(u){return li(Mx,u)}var Lx=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/;function f2u(u){return Lx.test(u)}function p2u(u){return li(Lx,u)}var h2u=/^fallback\(\)$/;function C2u(u){return h2u.test(u)}var m2u=/^receive\(\) external payable$/;function g2u(u){return m2u.test(u)}var A2u=new Set(["indexed"]),Jf=new Set(["calldata","memory","storage"]),y2u=class extends At{constructor({type:u}){super("Unknown type.",{metaMessages:[`Type "${u}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},B2u=class extends At{constructor({type:u}){super("Unknown type.",{metaMessages:[`Type "${u}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}},v2u=class extends At{constructor({param:u}){super("Invalid ABI parameter.",{details:u}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},F2u=class extends At{constructor({param:u,name:e}){super("Invalid ABI parameter.",{details:u,metaMessages:[`"${e}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},D2u=class extends At{constructor({param:u,type:e,modifier:t}){super("Invalid ABI parameter.",{details:u,metaMessages:[`Modifier "${t}" not allowed${e?` in "${e}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},b2u=class extends At{constructor({param:u,type:e,modifier:t}){super("Invalid ABI parameter.",{details:u,metaMessages:[`Modifier "${t}" not allowed${e?` in "${e}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${t}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},w2u=class extends At{constructor({abiParameter:u}){super("Invalid ABI parameter.",{details:JSON.stringify(u,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}},I4=class extends At{constructor({signature:u,type:e}){super(`Invalid ${e} signature.`,{details:u}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},x2u=class extends At{constructor({signature:u}){super("Unknown signature.",{details:u}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},k2u=class extends At{constructor({signature:u}){super("Invalid struct signature.",{details:u,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}},_2u=class extends At{constructor({type:u}){super("Circular reference detected.",{metaMessages:[`Struct "${u}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}},S2u=class extends At{constructor({current:u,depth:e}){super("Unbalanced parentheses.",{metaMessages:[`"${u.trim()}" has too many ${e>0?"opening":"closing"} parentheses.`],details:`Depth "${e}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}};function P2u(u,e){return e?`${e}:${u}`:u}var P1=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function T2u(u,e={}){if(c2u(u)){const t=E2u(u);if(!t)throw new I4({signature:u,type:"function"});const n=Pt(t.parameters),r=[],i=n.length;for(let o=0;o[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,O2u=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,N2u=/^u?int$/;function gi(u,e){var E,d;const t=P2u(u,e==null?void 0:e.type);if(P1.has(t))return P1.get(t);const n=Nx.test(u),r=li(n?O2u:I2u,u);if(!r)throw new v2u({param:u});if(r.name&&j2u(r.name))throw new F2u({param:u,name:r.name});const i=r.name?{name:r.name}:{},a=r.modifier==="indexed"?{indexed:!0}:{},o=(e==null?void 0:e.structs)??{};let s,l={};if(n){s="tuple";const f=Pt(r.type),C=[],h=f.length;for(let B=0;B[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/;function Wx(u,e,t=new Set){const n=[],r=u.length;for(let i=0;iObject.fromEntries(u.filter(e=>e.type==="event").map(e=>{const t=n=>({eventName:e.name,abi:[e],humanReadableAbi:xs([e]),...n});return t.abi=[e],t.eventName=e.name,t.humanReadableAbi=xs([e]),[e.name,t]})),W2u=({methods:u})=>Object.fromEntries(u.filter(({type:e})=>e==="function").map(e=>{const t=(...n)=>{const r=u.filter(a=>a.name===(e==null?void 0:e.name)),i=n.length>0?{args:n}:{};return{abi:r,humanReadableAbi:xs([e]),functionName:e.name,...i}};return t.abi=[e],t.humanReadableAbi=xs([e]),[e.name,t]})),q2u=({methods:u})=>Object.fromEntries(u.map(e=>{const t=(...n)=>{const r=u.filter(a=>a.name===(e==null?void 0:e.name)),i=n.length>0?{args:n}:{};return{abi:r,humanReadableAbi:xs([e]),functionName:e.name,...i}};return t.abi=[e],t.humanReadableAbi=xs([e]),[e.name,t]})),H2u=({humanReadableAbi:u,name:e})=>{const t=L2u(u),n=t.filter(r=>r.type==="function");return{name:e,abi:t,humanReadableAbi:u,events:$2u({abi:t}),write:q2u({methods:n}),read:W2u({methods:n})}};const G2u={name:"WagmiMintExample",humanReadableAbi:["constructor()","event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)","event ApprovalForAll(address indexed owner, address indexed operator, bool approved)","event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)","function approve(address to, uint256 tokenId)","function balanceOf(address owner) view returns (uint256)","function getApproved(uint256 tokenId) view returns (address)","function isApprovedForAll(address owner, address operator) view returns (bool)","function mint()","function mint(uint256 tokenId)","function name() view returns (string)","function ownerOf(uint256 tokenId) view returns (address)","function safeTransferFrom(address from, address to, uint256 tokenId)","function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)","function setApprovalForAll(address operator, bool approved)","function supportsInterface(bytes4 interfaceId) view returns (bool)","function symbol() view returns (string)","function tokenURI(uint256 tokenId) pure returns (string)","function totalSupply() view returns (uint256)","function transferFrom(address from, address to, uint256 tokenId)"]},rn=H2u(G2u),K2u="6.8.0";function Q2u(u,e,t){const n=e.split("|").map(i=>i.trim());for(let i=0;iPromise.resolve(u[n])))).reduce((n,r,i)=>(n[e[i]]=r,n),{})}function Ou(u,e,t){for(let n in e){let r=e[n];const i=t?t[n]:null;i&&Q2u(r,i,n),Object.defineProperty(u,n,{enumerable:!0,value:r,writable:!1})}}function uo(u){if(u==null)return"null";if(Array.isArray(u))return"[ "+u.map(uo).join(", ")+" ]";if(u instanceof Uint8Array){const e="0123456789abcdef";let t="0x";for(let n=0;n>4],t+=e[u[n]&15];return t}if(typeof u=="object"&&typeof u.toJSON=="function")return uo(u.toJSON());switch(typeof u){case"boolean":case"symbol":return u.toString();case"bigint":return BigInt(u).toString();case"number":return u.toString();case"string":return JSON.stringify(u);case"object":{const e=Object.keys(u);return e.sort(),"{ "+e.map(t=>`${uo(t)}: ${uo(u[t])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function Et(u,e){return u&&u.code===e}function CC(u){return Et(u,"CALL_EXCEPTION")}function be(u,e,t){let n=u;{const i=[];if(t){if("message"in t||"code"in t||"name"in t)throw new Error(`value will overwrite populated values: ${uo(t)}`);for(const a in t){if(a==="shortMessage")continue;const o=t[a];i.push(a+"="+uo(o))}}i.push(`code=${e}`),i.push(`version=${K2u}`),i.length&&(u+=" ("+i.join(", ")+")")}let r;switch(e){case"INVALID_ARGUMENT":r=new TypeError(u);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":r=new RangeError(u);break;default:r=new Error(u)}return Ou(r,{code:e}),t&&Object.assign(r,t),r.shortMessage==null&&Ou(r,{shortMessage:n}),r}function Eu(u,e,t,n){if(!u)throw be(e,t,n)}function Q(u,e,t,n){Eu(u,e,"INVALID_ARGUMENT",{argument:t,value:n})}function qx(u,e,t){t==null&&(t=""),t&&(t=": "+t),Eu(u>=e,"missing arguemnt"+t,"MISSING_ARGUMENT",{count:u,expectedCount:e}),Eu(u<=e,"too many arguemnts"+t,"UNEXPECTED_ARGUMENT",{count:u,expectedCount:e})}const V2u=["NFD","NFC","NFKD","NFKC"].reduce((u,e)=>{try{if("test".normalize(e)!=="test")throw new Error("bad");if(e==="NFD"){const t=String.fromCharCode(233).normalize("NFD"),n=String.fromCharCode(101,769);if(t!==n)throw new Error("broken")}u.push(e)}catch{}return u},[]);function J2u(u){Eu(V2u.indexOf(u)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:u}})}function n9(u,e,t){if(t==null&&(t=""),u!==e){let n=t,r="new";t&&(n+=".",r+=" "+t),Eu(!1,`private constructor; use ${n}from* methods`,"UNSUPPORTED_OPERATION",{operation:r})}}function Hx(u,e,t){if(u instanceof Uint8Array)return t?new Uint8Array(u):u;if(typeof u=="string"&&u.match(/^0x([0-9a-f][0-9a-f])*$/i)){const n=new Uint8Array((u.length-2)/2);let r=2;for(let i=0;i>4]+ZA[r&15]}return t}function Te(u){return"0x"+u.map(e=>ku(e).substring(2)).join("")}function mo(u){return pe(u,!0)?(u.length-2)/2:Zu(u).length}function me(u,e,t){const n=Zu(u);return t!=null&&t>n.length&&Eu(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:n,length:n.length,offset:t}),ku(n.slice(e??0,t??n.length))}function Gx(u,e,t){const n=Zu(u);Eu(e>=n.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(n),length:e,offset:e+1});const r=new Uint8Array(e);return r.fill(0),t?r.set(n,e-n.length):r.set(n,0),ku(r)}function ca(u,e){return Gx(u,e,!0)}function X2u(u,e){return Gx(u,e,!1)}const r9=BigInt(0),Tt=BigInt(1),eo=9007199254740991;function Z2u(u,e){const t=i9(u,"value"),n=BigInt(Hu(e,"width"));if(Eu(t>>n===r9,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:u}),t>>n-Tt){const r=(Tt<=-eo&&u<=eo,"overflow",e||"value",u),BigInt(u);case"string":try{if(u==="")throw new Error("empty string");return u[0]==="-"&&u[1]!=="-"?-BigInt(u.substring(1)):BigInt(u)}catch(t){Q(!1,`invalid BigNumberish string: ${t.message}`,e||"value",u)}}Q(!1,"invalid BigNumberish value",e||"value",u)}function i9(u,e){const t=Su(u,e);return Eu(t>=r9,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:u}),t}const u7="0123456789abcdef";function mC(u){if(u instanceof Uint8Array){let e="0x0";for(const t of u)e+=u7[t>>4],e+=u7[t&15];return BigInt(e)}return Su(u)}function Hu(u,e){switch(typeof u){case"bigint":return Q(u>=-eo&&u<=eo,"overflow",e||"value",u),Number(u);case"number":return Q(Number.isInteger(u),"underflow",e||"value",u),Q(u>=-eo&&u<=eo,"overflow",e||"value",u),u;case"string":try{if(u==="")throw new Error("empty string");return Hu(BigInt(u),e)}catch(t){Q(!1,`invalid numeric string: ${t.message}`,e||"value",u)}}Q(!1,"invalid numeric value",e||"value",u)}function udu(u){return Hu(mC(u))}function Zr(u,e){let n=i9(u,"value").toString(16);if(e==null)n.length%2&&(n="0"+n);else{const r=Hu(e,"width");for(Eu(r*2>=n.length,`value exceeds width (${r} bits)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:u});n.length>6===2;a++)i++;return i}return u==="OVERRUN"?t.length-e-1:0}function adu(u,e,t,n,r){return u==="OVERLONG"?(Q(typeof r=="number","invalid bad code point for replacement","badCodepoint",r),n.push(r),0):(n.push(65533),Vx(u,e,t))}const odu=Object.freeze({error:idu,ignore:Vx,replace:adu});function sdu(u,e){e==null&&(e=odu.error);const t=Zu(u,"bytes"),n=[];let r=0;for(;r>7)){n.push(i);continue}let a=null,o=null;if((i&224)===192)a=1,o=127;else if((i&240)===224)a=2,o=2047;else if((i&248)===240)a=3,o=65535;else{(i&192)===128?r+=e("UNEXPECTED_CONTINUE",r-1,t,n):r+=e("BAD_PREFIX",r-1,t,n);continue}if(r-1+a>=t.length){r+=e("OVERRUN",r-1,t,n);continue}let s=i&(1<<8-a-1)-1;for(let l=0;l1114111){r+=e("OUT_OF_RANGE",r-1-a,t,n,s);continue}if(s>=55296&&s<=57343){r+=e("UTF16_SURROGATE",r-1-a,t,n,s);continue}if(s<=o){r+=e("OVERLONG",r-1-a,t,n,s);continue}n.push(s)}}return n}function Wn(u,e){e!=null&&(J2u(e),u=u.normalize(e));let t=[];for(let n=0;n>6|192),t.push(r&63|128);else if((r&64512)==55296){n++;const i=u.charCodeAt(n);Q(n>18|240),t.push(a>>12&63|128),t.push(a>>6&63|128),t.push(a&63|128)}else t.push(r>>12|224),t.push(r>>6&63|128),t.push(r&63|128)}return new Uint8Array(t)}function ldu(u){return u.map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))).join("")}function gC(u,e){return ldu(sdu(u,e))}function Jx(u){async function e(t,n){const r=t.url.split(":")[0].toLowerCase();Eu(r==="http"||r==="https",`unsupported protocol ${r}`,"UNSUPPORTED_OPERATION",{info:{protocol:r},operation:"request"}),Eu(r==="https"||!t.credentials||t.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let i;if(n){const E=new AbortController;i=E.signal,n.addListener(()=>{E.abort()})}const a={method:t.method,headers:new Headers(Array.from(t)),body:t.body||void 0,signal:i},o=await fetch(t.url,a),s={};o.headers.forEach((E,d)=>{s[d.toLowerCase()]=E});const l=await o.arrayBuffer(),c=l==null?null:new Uint8Array(l);return{statusCode:o.status,statusMessage:o.statusText,headers:s,body:c}}return e}const cdu=12,Edu=250;let t7=Jx();const ddu=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),fdu=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let T1=!1;async function Yx(u,e){try{const t=u.match(ddu);if(!t)throw new Error("invalid data");return new Hr(200,"OK",{"content-type":t[1]||"text/plain"},t[2]?ndu(t[3]):hdu(t[3]))}catch{return new Hr(599,"BAD REQUEST (invalid data: URI)",{},null,new Yn(u))}}function Xx(u){async function e(t,n){try{const r=t.match(fdu);if(!r)throw new Error("invalid link");return new Yn(`${u}${r[2]}`)}catch{return new Hr(599,"BAD REQUEST (invalid IPFS URI)",{},null,new Yn(t))}}return e}const kc={data:Yx,ipfs:Xx("https://gateway.ipfs.io/ipfs/")},Zx=new WeakMap;var _i,gr;class pdu{constructor(e){tu(this,_i,void 0);tu(this,gr,void 0);R(this,_i,[]),R(this,gr,!1),Zx.set(e,()=>{if(!_(this,gr)){R(this,gr,!0);for(const t of _(this,_i))setTimeout(()=>{t()},0);R(this,_i,[])}})}addListener(e){Eu(!_(this,gr),"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),_(this,_i).push(e)}get cancelled(){return _(this,gr)}checkSignal(){Eu(!this.cancelled,"cancelled","CANCELLED",{})}}_i=new WeakMap,gr=new WeakMap;function _c(u){if(u==null)throw new Error("missing signal; should not happen");return u.checkSignal(),u}var Bo,vo,bt,yn,Fo,Do,Ie,N0,Bn,Si,Pi,Ti,Vt,vn,Ar,Ii,N4;const B2=class B2{constructor(e){tu(this,Ii);tu(this,Bo,void 0);tu(this,vo,void 0);tu(this,bt,void 0);tu(this,yn,void 0);tu(this,Fo,void 0);tu(this,Do,void 0);tu(this,Ie,void 0);tu(this,N0,void 0);tu(this,Bn,void 0);tu(this,Si,void 0);tu(this,Pi,void 0);tu(this,Ti,void 0);tu(this,Vt,void 0);tu(this,vn,void 0);tu(this,Ar,void 0);R(this,Do,String(e)),R(this,Bo,!1),R(this,vo,!0),R(this,bt,{}),R(this,yn,""),R(this,Fo,3e5),R(this,vn,{slotInterval:Edu,maxAttempts:cdu}),R(this,Ar,null)}get url(){return _(this,Do)}set url(e){R(this,Do,String(e))}get body(){return _(this,Ie)==null?null:new Uint8Array(_(this,Ie))}set body(e){if(e==null)R(this,Ie,void 0),R(this,N0,void 0);else if(typeof e=="string")R(this,Ie,Wn(e)),R(this,N0,"text/plain");else if(e instanceof Uint8Array)R(this,Ie,e),R(this,N0,"application/octet-stream");else if(typeof e=="object")R(this,Ie,Wn(JSON.stringify(e))),R(this,N0,"application/json");else throw new Error("invalid body")}hasBody(){return _(this,Ie)!=null}get method(){return _(this,yn)?_(this,yn):this.hasBody()?"POST":"GET"}set method(e){e==null&&(e=""),R(this,yn,String(e).toUpperCase())}get headers(){const e=Object.assign({},_(this,bt));return _(this,Bn)&&(e.authorization=`Basic ${rdu(Wn(_(this,Bn)))}`),this.allowGzip&&(e["accept-encoding"]="gzip"),e["content-type"]==null&&_(this,N0)&&(e["content-type"]=_(this,N0)),this.body&&(e["content-length"]=String(this.body.length)),e}getHeader(e){return this.headers[e.toLowerCase()]}setHeader(e,t){_(this,bt)[String(e).toLowerCase()]=String(t)}clearHeaders(){R(this,bt,{})}[Symbol.iterator](){const e=this.headers,t=Object.keys(e);let n=0;return{next:()=>{if(n=0,"timeout must be non-zero","timeout",e),R(this,Fo,e)}get preflightFunc(){return _(this,Si)||null}set preflightFunc(e){R(this,Si,e)}get processFunc(){return _(this,Pi)||null}set processFunc(e){R(this,Pi,e)}get retryFunc(){return _(this,Ti)||null}set retryFunc(e){R(this,Ti,e)}get getUrlFunc(){return _(this,Ar)||t7}set getUrlFunc(e){R(this,Ar,e)}toString(){return``}setThrottleParams(e){e.slotInterval!=null&&(_(this,vn).slotInterval=e.slotInterval),e.maxAttempts!=null&&(_(this,vn).maxAttempts=e.maxAttempts)}send(){return Eu(_(this,Vt)==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),R(this,Vt,new pdu(this)),yu(this,Ii,N4).call(this,0,n7()+this.timeout,0,this,new Hr(0,"",{},null,this))}cancel(){Eu(_(this,Vt)!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const e=Zx.get(this);if(!e)throw new Error("missing signal; should not happen");e()}redirect(e){const t=this.url.split(":")[0].toLowerCase(),n=e.split(":")[0].toLowerCase();Eu(this.method==="GET"&&(t!=="https"||n!=="http")&&e.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(e)})`});const r=new B2(e);return r.method="GET",r.allowGzip=this.allowGzip,r.timeout=this.timeout,R(r,bt,Object.assign({},_(this,bt))),_(this,Ie)&&R(r,Ie,new Uint8Array(_(this,Ie))),R(r,N0,_(this,N0)),r}clone(){const e=new B2(this.url);return R(e,yn,_(this,yn)),_(this,Ie)&&R(e,Ie,_(this,Ie)),R(e,N0,_(this,N0)),R(e,bt,Object.assign({},_(this,bt))),R(e,Bn,_(this,Bn)),this.allowGzip&&(e.allowGzip=!0),e.timeout=this.timeout,this.allowInsecureAuthentication&&(e.allowInsecureAuthentication=!0),R(e,Si,_(this,Si)),R(e,Pi,_(this,Pi)),R(e,Ti,_(this,Ti)),R(e,Ar,_(this,Ar)),e}static lockConfig(){T1=!0}static getGateway(e){return kc[e.toLowerCase()]||null}static registerGateway(e,t){if(e=e.toLowerCase(),e==="http"||e==="https")throw new Error(`cannot intercept ${e}; use registerGetUrl`);if(T1)throw new Error("gateways locked");kc[e]=t}static registerGetUrl(e){if(T1)throw new Error("gateways locked");t7=e}static createGetUrlFunc(e){return Jx()}static createDataGateway(){return Yx}static createIpfsGatewayFunc(e){return Xx(e)}};Bo=new WeakMap,vo=new WeakMap,bt=new WeakMap,yn=new WeakMap,Fo=new WeakMap,Do=new WeakMap,Ie=new WeakMap,N0=new WeakMap,Bn=new WeakMap,Si=new WeakMap,Pi=new WeakMap,Ti=new WeakMap,Vt=new WeakMap,vn=new WeakMap,Ar=new WeakMap,Ii=new WeakSet,N4=async function(e,t,n,r,i){var c,E,d;if(e>=_(this,vn).maxAttempts)return i.makeServerError("exceeded maximum retry limit");Eu(n7()<=t,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:r}),n>0&&await Cdu(n);let a=this.clone();const o=(a.url.split(":")[0]||"").toLowerCase();if(o in kc){const f=await kc[o](a.url,_c(_(r,Vt)));if(f instanceof Hr){let C=f;if(this.processFunc){_c(_(r,Vt));try{C=await this.processFunc(a,C)}catch(h){(h.throttle==null||typeof h.stall!="number")&&C.makeServerError("error in post-processing function",h).assertOk()}}return C}a=f}this.preflightFunc&&(a=await this.preflightFunc(a));const s=await this.getUrlFunc(a,_c(_(r,Vt)));let l=new Hr(s.statusCode,s.statusMessage,s.headers,s.body,r);if(l.statusCode===301||l.statusCode===302){try{const f=l.headers.location||"";return yu(c=a.redirect(f),Ii,N4).call(c,e+1,t,0,r,l)}catch{}return l}else if(l.statusCode===429&&(this.retryFunc==null||await this.retryFunc(a,l,e))){const f=l.headers["retry-after"];let C=_(this,vn).slotInterval*Math.trunc(Math.random()*Math.pow(2,e));return typeof f=="string"&&f.match(/^[1-9][0-9]*$/)&&(C=parseInt(f)),yu(E=a.clone(),Ii,N4).call(E,e+1,t,C,r,l)}if(this.processFunc){_c(_(r,Vt));try{l=await this.processFunc(a,l)}catch(f){(f.throttle==null||typeof f.stall!="number")&&l.makeServerError("error in post-processing function",f).assertOk();let C=_(this,vn).slotInterval*Math.trunc(Math.random()*Math.pow(2,e));return f.stall>=0&&(C=f.stall),yu(d=a.clone(),Ii,N4).call(d,e+1,t,C,r,l)}}return l};let Yn=B2;var Z3,ul,el,wt,bo,Oi;const SC=class SC{constructor(e,t,n,r,i){tu(this,Z3,void 0);tu(this,ul,void 0);tu(this,el,void 0);tu(this,wt,void 0);tu(this,bo,void 0);tu(this,Oi,void 0);R(this,Z3,e),R(this,ul,t),R(this,el,Object.keys(n).reduce((a,o)=>(a[o.toLowerCase()]=String(n[o]),a),{})),R(this,wt,r==null?null:new Uint8Array(r)),R(this,bo,i||null),R(this,Oi,{message:""})}toString(){return``}get statusCode(){return _(this,Z3)}get statusMessage(){return _(this,ul)}get headers(){return Object.assign({},_(this,el))}get body(){return _(this,wt)==null?null:new Uint8Array(_(this,wt))}get bodyText(){try{return _(this,wt)==null?"":gC(_(this,wt))}catch{Eu(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch{Eu(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const e=this.headers,t=Object.keys(e);let n=0;return{next:()=>{if(n=0,"invalid stall timeout","stall",t);const n=new Error(e||"throttling requests");throw Ou(n,{stall:t,throttle:!0}),n}getHeader(e){return this.headers[e.toLowerCase()]}hasBody(){return _(this,wt)!=null}get request(){return _(this,bo)}ok(){return _(this,Oi).message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:e,error:t}=_(this,Oi);e===""&&(e=`server response ${this.statusCode} ${this.statusMessage}`),Eu(!1,e,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:t})}};Z3=new WeakMap,ul=new WeakMap,el=new WeakMap,wt=new WeakMap,bo=new WeakMap,Oi=new WeakMap;let Hr=SC;function n7(){return new Date().getTime()}function hdu(u){return Wn(u.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16))))}function Cdu(u){return new Promise(e=>setTimeout(e,u))}function mdu(u){let e=u.toString(16);for(;e.length<2;)e="0"+e;return"0x"+e}function r7(u,e,t){let n=0;for(let r=0;r{Eu(n<=u.length,"data short segment too short","BUFFER_OVERRUN",{buffer:u,length:u.length,offset:n})};if(u[e]>=248){const n=u[e]-247;t(e+1+n);const r=r7(u,e+1,n);return t(e+1+n+r),i7(u,e,e+1+n,n+r)}else if(u[e]>=192){const n=u[e]-192;return t(e+1+n),i7(u,e,e+1,n)}else if(u[e]>=184){const n=u[e]-183;t(e+1+n);const r=r7(u,e+1,n);t(e+1+n+r);const i=ku(u.slice(e+1+n,e+1+n+r));return{consumed:1+n+r,result:i}}else if(u[e]>=128){const n=u[e]-128;t(e+1+n);const r=ku(u.slice(e+1,e+1+n));return{consumed:1+n,result:r}}return{consumed:1,result:mdu(u[e])}}function AC(u){const e=Zu(u,"data"),t=uk(e,0);return Q(t.consumed===e.length,"unexpected junk after rlp payload","data",u),t.result}function a7(u){const e=[];for(;u;)e.unshift(u&255),u>>=8;return e}function ek(u){if(Array.isArray(u)){let n=[];if(u.forEach(function(i){n=n.concat(ek(i))}),n.length<=55)return n.unshift(192+n.length),n;const r=a7(n.length);return r.unshift(247+r.length),r.concat(n)}const e=Array.prototype.slice.call(Zu(u,"object"));if(e.length===1&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const t=a7(e.length);return t.unshift(183+t.length),t.concat(e)}const o7="0123456789abcdef";function q3(u){let e="0x";for(const t of ek(u))e+=o7[t>>4],e+=o7[t&15];return e}const l0=32,Yf=new Uint8Array(l0),gdu=["then"],Sc={};function B4(u,e){const t=new Error(`deferred error during ABI decoding triggered accessing ${u}`);throw t.error=e,t}var yr;const u3=class u3 extends Array{constructor(...t){const n=t[0];let r=t[1],i=(t[2]||[]).slice(),a=!0;n!==Sc&&(r=t,i=[],a=!1);super(r.length);tu(this,yr,void 0);r.forEach((s,l)=>{this[l]=s});const o=i.reduce((s,l)=>(typeof l=="string"&&s.set(l,(s.get(l)||0)+1),s),new Map);if(R(this,yr,Object.freeze(r.map((s,l)=>{const c=i[l];return c!=null&&o.get(c)===1?c:null}))),!!a)return Object.freeze(this),new Proxy(this,{get:(s,l,c)=>{if(typeof l=="string"){if(l.match(/^[0-9]+$/)){const d=Hu(l,"%index");if(d<0||d>=this.length)throw new RangeError("out of result range");const f=s[d];return f instanceof Error&&B4(`index ${d}`,f),f}if(gdu.indexOf(l)>=0)return Reflect.get(s,l,c);const E=s[l];if(E instanceof Function)return function(...d){return E.apply(this===c?s:this,d)};if(!(l in s))return s.getValue.apply(this===c?s:this,[l])}return Reflect.get(s,l,c)}})}toArray(){const t=[];return this.forEach((n,r)=>{n instanceof Error&&B4(`index ${r}`,n),t.push(n)}),t}toObject(){return _(this,yr).reduce((t,n,r)=>(Eu(n!=null,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"}),n in t||(t[n]=this.getValue(n)),t),{})}slice(t,n){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),n==null&&(n=this.length),n<0&&(n+=this.length,n<0&&(n=0)),n>this.length&&(n=this.length);const r=[],i=[];for(let a=t;a{_(this,Fn)[e]=s7(t)}}}Fn=new WeakMap,Ni=new WeakMap,wo=new WeakSet,tE=function(e){return _(this,Fn).push(e),R(this,Ni,_(this,Ni)+e.length),e.length};var R0,ut,v2,tk;const PC=class PC{constructor(e,t){tu(this,v2);X(this,"allowLoose");tu(this,R0,void 0);tu(this,ut,void 0);Ou(this,{allowLoose:!!t}),R(this,R0,F0(e)),R(this,ut,0)}get data(){return ku(_(this,R0))}get dataLength(){return _(this,R0).length}get consumed(){return _(this,ut)}get bytes(){return new Uint8Array(_(this,R0))}subReader(e){return new PC(_(this,R0).slice(_(this,ut)+e),this.allowLoose)}readBytes(e,t){let n=yu(this,v2,tk).call(this,0,e,!!t);return R(this,ut,_(this,ut)+n.length),n.slice(0,e)}readValue(){return mC(this.readBytes(l0))}readIndex(){return udu(this.readBytes(l0))}};R0=new WeakMap,ut=new WeakMap,v2=new WeakSet,tk=function(e,t,n){let r=Math.ceil(t/l0)*l0;return _(this,ut)+r>_(this,R0).length&&(this.allowLoose&&n&&_(this,ut)+t<=_(this,R0).length?r=t:Eu(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:F0(_(this,R0)),length:_(this,R0).length,offset:_(this,ut)+r})),_(this,R0).slice(_(this,ut),_(this,ut)+r)};let Zf=PC,nk=!1;const rk=function(u){return lF(u)};let ik=rk;function fe(u){const e=Zu(u,"data");return ku(ik(e))}fe._=rk;fe.lock=function(){nk=!0};fe.register=function(u){if(nk)throw new TypeError("keccak256 is locked");ik=u};Object.freeze(fe);const up="0x0000000000000000000000000000000000000000",l7="0x0000000000000000000000000000000000000000000000000000000000000000",c7=BigInt(0),E7=BigInt(1),d7=BigInt(2),f7=BigInt(27),p7=BigInt(28),Pc=BigInt(35),Sa={};function h7(u){return ca(L0(u),32)}var xo,ko,_o,Ri;const vt=class vt{constructor(e,t,n,r){tu(this,xo,void 0);tu(this,ko,void 0);tu(this,_o,void 0);tu(this,Ri,void 0);n9(e,Sa,"Signature"),R(this,xo,t),R(this,ko,n),R(this,_o,r),R(this,Ri,null)}get r(){return _(this,xo)}set r(e){Q(mo(e)===32,"invalid r","value",e),R(this,xo,ku(e))}get s(){return _(this,ko)}set s(e){Q(mo(e)===32,"invalid s","value",e);const t=ku(e);Q(parseInt(t.substring(0,3))<8,"non-canonical s","value",t),R(this,ko,t)}get v(){return _(this,_o)}set v(e){const t=Hu(e,"value");Q(t===27||t===28,"invalid v","v",e),R(this,_o,t)}get networkV(){return _(this,Ri)}get legacyChainId(){const e=this.networkV;return e==null?null:vt.getChainId(e)}get yParity(){return this.v===27?0:1}get yParityAndS(){const e=Zu(this.s);return this.yParity&&(e[0]|=128),ku(e)}get compactSerialized(){return Te([this.r,this.yParityAndS])}get serialized(){return Te([this.r,this.s,this.yParity?"0x1c":"0x1b"])}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const e=new vt(Sa,this.r,this.s,this.v);return this.networkV&&R(e,Ri,this.networkV),e}toJSON(){const e=this.networkV;return{_type:"signature",networkV:e!=null?e.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(e){const t=Su(e,"v");return t==f7||t==p7?c7:(Q(t>=Pc,"invalid EIP-155 v","v",e),(t-Pc)/d7)}static getChainIdV(e,t){return Su(e)*d7+BigInt(35+t-27)}static getNormalizedV(e){const t=Su(e);return t===c7||t===f7?27:t===E7||t===p7?28:(Q(t>=Pc,"invalid v","v",e),t&E7?27:28)}static from(e){function t(l,c){Q(l,c,"signature",e)}if(e==null)return new vt(Sa,l7,l7,27);if(typeof e=="string"){const l=Zu(e,"signature");if(l.length===64){const c=ku(l.slice(0,32)),E=l.slice(32,64),d=E[0]&128?28:27;return E[0]&=127,new vt(Sa,c,ku(E),d)}if(l.length===65){const c=ku(l.slice(0,32)),E=l.slice(32,64);t((E[0]&128)===0,"non-canonical s");const d=vt.getNormalizedV(l[64]);return new vt(Sa,c,ku(E),d)}t(!1,"invalid raw signature length")}if(e instanceof vt)return e.clone();const n=e.r;t(n!=null,"missing r");const r=h7(n),i=function(l,c){if(l!=null)return h7(l);if(c!=null){t(pe(c,32),"invalid yParityAndS");const E=Zu(c);return E[0]&=127,ku(E)}t(!1,"missing s")}(e.s,e.yParityAndS);t((Zu(i)[0]&128)==0,"non-canonical s");const{networkV:a,v:o}=function(l,c,E){if(l!=null){const d=Su(l);return{networkV:d>=Pc?d:void 0,v:vt.getNormalizedV(d)}}if(c!=null)return t(pe(c,32),"invalid yParityAndS"),{v:Zu(c)[0]&128?28:27};if(E!=null){switch(Hu(E,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}t(!1,"invalid yParity")}t(!1,"missing v")}(e.v,e.yParityAndS,e.yParity),s=new vt(Sa,r,i,o);return a&&R(s,Ri,a),t(e.yParity==null||Hu(e.yParity,"sig.yParity")===s.yParity,"yParity mismatch"),t(e.yParityAndS==null||e.yParityAndS===s.yParityAndS,"yParityAndS mismatch"),s}};xo=new WeakMap,ko=new WeakMap,_o=new WeakMap,Ri=new WeakMap;let Mt=vt;var Dn;const Ai=class Ai{constructor(e){tu(this,Dn,void 0);Q(mo(e)===32,"invalid private key","privateKey","[REDACTED]"),R(this,Dn,ku(e))}get privateKey(){return _(this,Dn)}get publicKey(){return Ai.computePublicKey(_(this,Dn))}get compressedPublicKey(){return Ai.computePublicKey(_(this,Dn),!0)}sign(e){Q(mo(e)===32,"invalid digest length","digest",e);const t=cr.sign(F0(e),F0(_(this,Dn)),{lowS:!0});return Mt.from({r:Zr(t.r,32),s:Zr(t.s,32),v:t.recovery?28:27})}computeSharedSecret(e){const t=Ai.computePublicKey(e);return ku(cr.getSharedSecret(F0(_(this,Dn)),Zu(t),!1))}static computePublicKey(e,t){let n=Zu(e,"key");if(n.length===32){const i=cr.getPublicKey(n,!!t);return ku(i)}if(n.length===64){const i=new Uint8Array(65);i[0]=4,i.set(n,1),n=i}const r=cr.ProjectivePoint.fromHex(n);return ku(r.toRawBytes(t))}static recoverPublicKey(e,t){Q(mo(e)===32,"invalid digest length","digest",e);const n=Mt.from(t);let r=cr.Signature.fromCompact(F0(Te([n.r,n.s])));r=r.addRecoveryBit(n.yParity);const i=r.recoverPublicKey(F0(e));return Q(i!=null,"invalid signautre for digest","signature",t),"0x"+i.toHex(!1)}static addPoints(e,t,n){const r=cr.ProjectivePoint.fromHex(Ai.computePublicKey(e).substring(2)),i=cr.ProjectivePoint.fromHex(Ai.computePublicKey(t).substring(2));return"0x"+r.add(i).toHex(!!n)}};Dn=new WeakMap;let H3=Ai;const Adu=BigInt(0),ydu=BigInt(36);function C7(u){u=u.toLowerCase();const e=u.substring(2).split(""),t=new Uint8Array(40);for(let r=0;r<40;r++)t[r]=e[r].charCodeAt(0);const n=Zu(fe(t));for(let r=0;r<40;r+=2)n[r>>1]>>4>=8&&(e[r]=e[r].toUpperCase()),(n[r>>1]&15)>=8&&(e[r+1]=e[r+1].toUpperCase());return"0x"+e.join("")}const yC={};for(let u=0;u<10;u++)yC[String(u)]=String(u);for(let u=0;u<26;u++)yC[String.fromCharCode(65+u)]=String(10+u);const m7=15;function Bdu(u){u=u.toUpperCase(),u=u.substring(4)+u.substring(0,2)+"00";let e=u.split("").map(n=>yC[n]).join("");for(;e.length>=m7;){let n=e.substring(0,m7);e=parseInt(n,10)%97+e.substring(n.length)}let t=String(98-parseInt(e,10)%97);for(;t.length<2;)t="0"+t;return t}const vdu=function(){const u={};for(let e=0;e<36;e++){const t="0123456789abcdefghijklmnopqrstuvwxyz"[e];u[t]=BigInt(e)}return u}();function Fdu(u){u=u.toLowerCase();let e=Adu;for(let t=0;te.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return _(this,ji)}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return _(this,ji)===!0?-1:_(this,ji)===!1?this.value.length:null}static from(e,t){return new mn(Cn,e,t)}static uint8(e){return Bu(e,8)}static uint16(e){return Bu(e,16)}static uint24(e){return Bu(e,24)}static uint32(e){return Bu(e,32)}static uint40(e){return Bu(e,40)}static uint48(e){return Bu(e,48)}static uint56(e){return Bu(e,56)}static uint64(e){return Bu(e,64)}static uint72(e){return Bu(e,72)}static uint80(e){return Bu(e,80)}static uint88(e){return Bu(e,88)}static uint96(e){return Bu(e,96)}static uint104(e){return Bu(e,104)}static uint112(e){return Bu(e,112)}static uint120(e){return Bu(e,120)}static uint128(e){return Bu(e,128)}static uint136(e){return Bu(e,136)}static uint144(e){return Bu(e,144)}static uint152(e){return Bu(e,152)}static uint160(e){return Bu(e,160)}static uint168(e){return Bu(e,168)}static uint176(e){return Bu(e,176)}static uint184(e){return Bu(e,184)}static uint192(e){return Bu(e,192)}static uint200(e){return Bu(e,200)}static uint208(e){return Bu(e,208)}static uint216(e){return Bu(e,216)}static uint224(e){return Bu(e,224)}static uint232(e){return Bu(e,232)}static uint240(e){return Bu(e,240)}static uint248(e){return Bu(e,248)}static uint256(e){return Bu(e,256)}static uint(e){return Bu(e,256)}static int8(e){return Bu(e,-8)}static int16(e){return Bu(e,-16)}static int24(e){return Bu(e,-24)}static int32(e){return Bu(e,-32)}static int40(e){return Bu(e,-40)}static int48(e){return Bu(e,-48)}static int56(e){return Bu(e,-56)}static int64(e){return Bu(e,-64)}static int72(e){return Bu(e,-72)}static int80(e){return Bu(e,-80)}static int88(e){return Bu(e,-88)}static int96(e){return Bu(e,-96)}static int104(e){return Bu(e,-104)}static int112(e){return Bu(e,-112)}static int120(e){return Bu(e,-120)}static int128(e){return Bu(e,-128)}static int136(e){return Bu(e,-136)}static int144(e){return Bu(e,-144)}static int152(e){return Bu(e,-152)}static int160(e){return Bu(e,-160)}static int168(e){return Bu(e,-168)}static int176(e){return Bu(e,-176)}static int184(e){return Bu(e,-184)}static int192(e){return Bu(e,-192)}static int200(e){return Bu(e,-200)}static int208(e){return Bu(e,-208)}static int216(e){return Bu(e,-216)}static int224(e){return Bu(e,-224)}static int232(e){return Bu(e,-232)}static int240(e){return Bu(e,-240)}static int248(e){return Bu(e,-248)}static int256(e){return Bu(e,-256)}static int(e){return Bu(e,-256)}static bytes1(e){return Vu(e,1)}static bytes2(e){return Vu(e,2)}static bytes3(e){return Vu(e,3)}static bytes4(e){return Vu(e,4)}static bytes5(e){return Vu(e,5)}static bytes6(e){return Vu(e,6)}static bytes7(e){return Vu(e,7)}static bytes8(e){return Vu(e,8)}static bytes9(e){return Vu(e,9)}static bytes10(e){return Vu(e,10)}static bytes11(e){return Vu(e,11)}static bytes12(e){return Vu(e,12)}static bytes13(e){return Vu(e,13)}static bytes14(e){return Vu(e,14)}static bytes15(e){return Vu(e,15)}static bytes16(e){return Vu(e,16)}static bytes17(e){return Vu(e,17)}static bytes18(e){return Vu(e,18)}static bytes19(e){return Vu(e,19)}static bytes20(e){return Vu(e,20)}static bytes21(e){return Vu(e,21)}static bytes22(e){return Vu(e,22)}static bytes23(e){return Vu(e,23)}static bytes24(e){return Vu(e,24)}static bytes25(e){return Vu(e,25)}static bytes26(e){return Vu(e,26)}static bytes27(e){return Vu(e,27)}static bytes28(e){return Vu(e,28)}static bytes29(e){return Vu(e,29)}static bytes30(e){return Vu(e,30)}static bytes31(e){return Vu(e,31)}static bytes32(e){return Vu(e,32)}static address(e){return new mn(Cn,"address",e)}static bool(e){return new mn(Cn,"bool",!!e)}static bytes(e){return new mn(Cn,"bytes",e)}static string(e){return new mn(Cn,"string",e)}static array(e,t){throw new Error("not implemented yet")}static tuple(e,t){throw new Error("not implemented yet")}static overrides(e){return new mn(Cn,"overrides",Object.assign({},e))}static isTyped(e){return e&&typeof e=="object"&&"_typedSymbol"in e&&e._typedSymbol===g7}static dereference(e,t){if(mn.isTyped(e)){if(e.type!==t)throw new Error(`invalid type: expecetd ${t}, got ${e.type}`);return e.value}return e}};ji=new WeakMap;let t0=mn;class bdu extends ir{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){let n=t0.dereference(t,"string");try{n=Yu(n)}catch(r){return this._throwError(r.message,t)}return e.writeValue(n)}decode(e){return Yu(Zr(e.readValue(),20))}}class wdu extends ir{constructor(t){super(t.name,t.type,"_",t.dynamic);X(this,"coder");this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,n){return this.coder.encode(t,n)}decode(t){return this.coder.decode(t)}}function ok(u,e,t){let n=[];if(Array.isArray(t))n=t;else if(t&&typeof t=="object"){let s={};n=e.map(l=>{const c=l.localName;return Eu(c,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:t}),Eu(!s[c],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:t}),s[c]=!0,t[c]})}else Q(!1,"invalid tuple value","tuple",t);Q(e.length===n.length,"types/value length mismatch","tuple",t);let r=new Xf,i=new Xf,a=[];e.forEach((s,l)=>{let c=n[l];if(s.dynamic){let E=i.length;s.encode(i,c);let d=r.writeUpdatableValue();a.push(f=>{d(f+E)})}else s.encode(r,c)}),a.forEach(s=>{s(r.length)});let o=u.appendWriter(r);return o+=u.appendWriter(i),o}function sk(u,e){let t=[],n=[],r=u.subReader(0);return e.forEach(i=>{let a=null;if(i.dynamic){let o=u.readIndex(),s=r.subReader(o);try{a=i.decode(s)}catch(l){if(Et(l,"BUFFER_OVERRUN"))throw l;a=l,a.baseType=i.name,a.name=i.localName,a.type=i.type}}else try{a=i.decode(u)}catch(o){if(Et(o,"BUFFER_OVERRUN"))throw o;a=o,a.baseType=i.name,a.name=i.localName,a.type=i.type}if(a==null)throw new Error("investigate");t.push(a),n.push(i.localName||null)}),E2.fromItems(t,n)}class xdu extends ir{constructor(t,n,r){const i=t.type+"["+(n>=0?n:"")+"]",a=n===-1||t.dynamic;super("array",i,r,a);X(this,"coder");X(this,"length");Ou(this,{coder:t,length:n})}defaultValue(){const t=this.coder.defaultValue(),n=[];for(let r=0;ra||r<-(a+Odu))&&this._throwError("value out-of-bounds",n),r=Kx(r,8*l0)}else(rO4(i,this.size*8))&&this._throwError("value out-of-bounds",n);return t.writeValue(r)}decode(t){let n=O4(t.readValue(),this.size*8);return this.signed&&(n=Z2u(n,this.size*8)),n}}class jdu extends lk{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Wn(t0.dereference(t,"string")))}decode(e){return gC(super.decode(e))}}class Tc extends ir{constructor(t,n){let r=!1;const i=[];t.forEach(o=>{o.dynamic&&(r=!0),i.push(o.type)});const a="tuple("+i.join(",")+")";super("tuple",a,n,r);X(this,"coders");Ou(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach(r=>{t.push(r.defaultValue())});const n=this.coders.reduce((r,i)=>{const a=i.localName;return a&&(r[a]||(r[a]=0),r[a]++),r},{});return this.coders.forEach((r,i)=>{let a=r.localName;!a||n[a]!==1||(a==="length"&&(a="_length"),t[a]==null&&(t[a]=t[i]))}),Object.freeze(t)}encode(t,n){const r=t0.dereference(n,"tuple");return ok(t,this.coders,r)}decode(t){return sk(t,this.coders)}}function Ea(u){return fe(Wn(u))}var zdu="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";const A7=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),y7=4;function Mdu(u){let e=0;function t(){return u[e++]<<8|u[e++]}let n=t(),r=1,i=[0,1];for(let w=1;w>--s&1}const E=31,d=2**E,f=d>>>1,C=f>>1,h=d-1;let B=0;for(let w=0;w1;){let O=D+p>>>1;w>>1|c(),x=x<<1^f,j=(j^f)<<1|f|1;m=x,y=1+j-x}let v=n-4;return g.map(w=>{switch(w-v){case 3:return v+65792+(u[o++]<<16|u[o++]<<8|u[o++]);case 2:return v+256+(u[o++]<<8|u[o++]);case 1:return v+u[o++];default:return w-1}})}function Udu(u){let e=0;return()=>u[e++]}function ck(u){return Udu(Mdu(Ldu(u)))}function Ldu(u){let e=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((r,i)=>e[r.charCodeAt(0)]=i);let t=u.length,n=new Uint8Array(6*t>>3);for(let r=0,i=0,a=0,o=0;r=8&&(n[i++]=o>>(a-=8));return n}function $du(u){return u&1?~u>>1:u>>1}function Wdu(u,e){let t=Array(u);for(let n=0,r=0;n{let e=G3(u);if(e.length)return e})}function dk(u){let e=[];for(;;){let t=u();if(t==0)break;e.push(qdu(t,u))}for(;;){let t=u()-1;if(t<0)break;e.push(Hdu(t,u))}return e.flat()}function K3(u){let e=[];for(;;){let t=u(e.length);if(!t)break;e.push(t)}return e}function fk(u,e,t){let n=Array(u).fill().map(()=>[]);for(let r=0;rn[a].push(i));return n}function qdu(u,e){let t=1+e(),n=e(),r=K3(e);return fk(r.length,1+u,e).flatMap((a,o)=>{let[s,...l]=a;return Array(r[o]).fill().map((c,E)=>{let d=E*n;return[s+E*t,l.map(f=>f+d)]})})}function Hdu(u,e){let t=1+e();return fk(t,1+u,e).map(r=>[r[0],r.slice(1)])}function Gdu(u){let e=[],t=G3(u);return r(n([]),[]),e;function n(i){let a=u(),o=K3(()=>{let s=G3(u).map(l=>t[l]);if(s.length)return n(s)});return{S:a,B:o,Q:i}}function r({S:i,B:a},o,s){if(!(i&4&&s===o[o.length-1])){i&2&&(s=o[o.length-1]),i&1&&e.push(o);for(let l of a)for(let c of l.Q)r(l,[...o,c],s)}}}function Kdu(u){return u.toString(16).toUpperCase().padStart(2,"0")}function pk(u){return`{${Kdu(u)}}`}function Qdu(u){let e=[];for(let t=0,n=u.length;t>24&255}function mk(u){return u&16777215}let ep,B7,tp,nE;function t9u(){let u=ck(Jdu);ep=new Map(Ek(u).flatMap((e,t)=>e.map(n=>[n,t+1<<24]))),B7=new Set(G3(u)),tp=new Map,nE=new Map;for(let[e,t]of dk(u)){if(!B7.has(e)&&t.length==2){let[n,r]=t,i=nE.get(n);i||(i=new Map,nE.set(n,i)),i.set(r,e)}tp.set(e,t.reverse())}}function gk(u){return u>=Q3&&u=d2&&u=f2&&ep2&&e0&&r(p2+l)}else{let a=tp.get(i);a?t.push(...a):r(i)}if(!t.length)break;i=t.pop()}if(n&&e.length>1){let i=R4(e[0]);for(let a=1;a0&&r>=a)a==0?(e.push(n,...t),t.length=0,n=o):t.push(o),r=a;else{let s=n9u(n,o);s>=0?n=s:r==0&&a==0?(e.push(n),n=o):(t.push(o),r=a)}}return n>=0&&e.push(n,...t),e}function yk(u){return Ak(u).map(mk)}function i9u(u){return r9u(Ak(u))}const v7=45,Bk=".",vk=65039,Fk=1,no=u=>Array.from(u);function V3(u,e){return u.P.has(e)||u.Q.has(e)}class a9u extends Array{get is_emoji(){return!0}}let np,Dk,xi,rp,bk,go,O1,za,wk,F7,ip;function BC(){if(np)return;let u=ck(zdu);const e=()=>G3(u),t=()=>new Set(e());np=new Map(dk(u)),Dk=t(),xi=e(),rp=new Set(e().map(c=>xi[c])),xi=new Set(xi),bk=t(),t();let n=Ek(u),r=u();const i=()=>new Set(e().flatMap(c=>n[c]).concat(e()));go=K3(c=>{let E=K3(u).map(d=>d+96);if(E.length){let d=c>=r;E[0]-=32,E=ks(E),d&&(E=`Restricted[${E}]`);let f=i(),C=i(),h=!u();return{N:E,P:f,Q:C,M:h,R:d}}}),O1=t(),za=new Map;let a=e().concat(no(O1)).sort((c,E)=>c-E);a.forEach((c,E)=>{let d=u(),f=a[E]=d?a[E-d]:{V:[],M:new Map};f.V.push(c),O1.has(c)||za.set(c,f)});for(let{V:c,M:E}of new Set(za.values())){let d=[];for(let C of c){let h=go.filter(g=>V3(g,C)),B=d.find(({G:g})=>h.some(m=>g.has(m)));B||(B={G:new Set,V:[]},d.push(B)),B.V.push(C),h.forEach(g=>B.G.add(g))}let f=d.flatMap(C=>no(C.G));for(let{G:C,V:h}of d){let B=new Set(f.filter(g=>!C.has(g)));for(let g of h)E.set(g,B)}}let o=new Set,s=new Set;const l=c=>o.has(c)?s.add(c):o.add(c);for(let c of go){for(let E of c.P)l(E);for(let E of c.Q)l(E)}for(let c of o)!za.has(c)&&!s.has(c)&&za.set(c,Fk);wk=new Set(no(o).concat(no(yk(o)))),F7=Gdu(u).map(c=>a9u.from(c)).sort(Vdu),ip=new Map;for(let c of F7){let E=[ip];for(let d of c){let f=E.map(C=>{let h=C.get(d);return h||(h=new Map,C.set(d,h)),h});d===vk?E.push(...f):E=f}for(let d of E)d.V=c}}function vC(u){return(xk(u)?"":`${FC(a9([u]))} `)+pk(u)}function FC(u){return`"${u}"‎`}function o9u(u){if(u.length>=4&&u[2]==v7&&u[3]==v7)throw new Error(`invalid label extension: "${ks(u.slice(0,4))}"`)}function s9u(u){for(let t=u.lastIndexOf(95);t>0;)if(u[--t]!==95)throw new Error("underscore allowed only at start")}function l9u(u){let e=u[0],t=A7.get(e);if(t)throw X4(`leading ${t}`);let n=u.length,r=-1;for(let i=1;i{let i=Qdu(r),a={input:i,offset:n};n+=i.length+1;try{let o=a.tokens=m9u(i,e,t),s=o.length,l;if(!s)throw new Error("empty label");let c=a.output=o.flat();if(s9u(c),!(a.emoji=s>1||o[0].is_emoji)&&c.every(d=>d<128))o9u(c),l="ASCII";else{let d=o.flatMap(f=>f.is_emoji?[]:f);if(!d.length)l="Emoji";else{if(xi.has(c[0]))throw X4("leading combining mark");for(let h=1;ha.has(o)):no(a),!t.length)return}else n.push(r)}if(t){for(let r of t)if(n.every(i=>V3(r,i)))throw new Error(`whole-script confusable: ${u.N}/${r.N}`)}}function p9u(u){let e=go;for(let t of u){let n=e.filter(r=>V3(r,t));if(!n.length)throw go.some(r=>V3(r,t))?_k(e[0],t):kk(t);if(e=n,n.length==1)break}return e}function h9u(u){return u.map(({input:e,error:t,output:n})=>{if(t){let r=t.message;throw new Error(u.length==1?r:`Invalid label ${FC(a9(e))}: ${r}`)}return ks(n)}).join(Bk)}function kk(u){return new Error(`disallowed character: ${vC(u)}`)}function _k(u,e){let t=vC(e),n=go.find(r=>r.P.has(e));return n&&(t=`${n.N} ${t}`),new Error(`illegal mixture: ${u.N} + ${t}`)}function X4(u){return new Error(`illegal placement: ${u}`)}function C9u(u,e){for(let t of e)if(!V3(u,t))throw _k(u,t);if(u.M){let t=yk(e);for(let n=1,r=t.length;ny7)throw new Error(`excessive non-spacing marks: ${FC(a9(t.slice(n-1,i)))} (${i-n}/${y7})`);n=i}}}function m9u(u,e,t){let n=[],r=[];for(u=u.slice().reverse();u.length;){let i=A9u(u);if(i)r.length&&(n.push(e(r)),r=[]),n.push(t(i));else{let a=u.pop();if(wk.has(a))r.push(a);else{let o=np.get(a);if(o)r.push(...o);else if(!Dk.has(a))throw kk(a)}}}return r.length&&n.push(e(r)),n}function g9u(u){return u.filter(e=>e!=vk)}function A9u(u,e){let t=ip,n,r=u.length;for(;r&&(t=t.get(u[--r]),!!t);){let{V:i}=t;i&&(n=i,e&&e.push(...u.slice(r).reverse()),u.length=r)}return n}const Sk=new Uint8Array(32);Sk.fill(0);function D7(u){return Q(u.length!==0,"invalid ENS name; empty component","comp",u),u}function Pk(u){const e=Wn(y9u(u)),t=[];if(u.length===0)return t;let n=0;for(let r=0;r{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"}function N1(u,e){return{address:Yu(u),storageKeys:e.map((t,n)=>(Q(pe(t,32),"invalid slot",`storageKeys[${n}]`,t),t.toLowerCase()))}}function Fa(u){if(Array.isArray(u))return u.map((t,n)=>Array.isArray(t)?(Q(t.length===2,"invalid slot set",`value[${n}]`,t),N1(t[0],t[1])):(Q(t!=null&&typeof t=="object","invalid address-slot set","value",u),N1(t.address,t.storageKeys)));Q(u!=null&&typeof u=="object","invalid access list","value",u);const e=Object.keys(u).map(t=>{const n=u[t].reduce((r,i)=>(r[i]=!0,r),{});return N1(t,Object.keys(n).sort())});return e.sort((t,n)=>t.address.localeCompare(n.address)),e}function v9u(u){let e;return typeof u=="string"?e=H3.computePublicKey(u,!1):e=u.publicKey,Yu(fe("0x"+e.substring(4)).substring(26))}function F9u(u,e){return v9u(H3.recoverPublicKey(u,e))}const B0=BigInt(0),D9u=BigInt(2),b9u=BigInt(27),w9u=BigInt(28),x9u=BigInt(35),k9u=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function DC(u){return u==="0x"?null:Yu(u)}function Tk(u,e){try{return Fa(u)}catch(t){Q(!1,t.message,e,u)}}function o9(u,e){return u==="0x"?0:Hu(u,e)}function o0(u,e){if(u==="0x")return B0;const t=Su(u,e);return Q(t<=k9u,"value exceeds uint size",e,t),t}function Ue(u,e){const t=Su(u,"value"),n=L0(t);return Q(n.length<=32,"value too large",`tx.${e}`,t),n}function Ik(u){return Fa(u).map(e=>[e.address,e.storageKeys])}function _9u(u){const e=AC(u);Q(Array.isArray(e)&&(e.length===9||e.length===6),"invalid field count for legacy transaction","data",u);const t={type:0,nonce:o9(e[0],"nonce"),gasPrice:o0(e[1],"gasPrice"),gasLimit:o0(e[2],"gasLimit"),to:DC(e[3]),value:o0(e[4],"value"),data:ku(e[5]),chainId:B0};if(e.length===6)return t;const n=o0(e[6],"v"),r=o0(e[7],"r"),i=o0(e[8],"s");if(r===B0&&i===B0)t.chainId=n;else{let a=(n-x9u)/D9u;a=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),Eu(!t||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),Eu(this.type!==0||!n,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const r=[];return this.type!=null?r.push(this.type):t?r.push(2):e?(r.push(1),n||r.push(0)):n?(r.push(1),r.push(2)):(r.push(0),r.push(1),r.push(2)),r.sort(),r}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}clone(){return pr.from(this)}toJSON(){const e=t=>t==null?null:t.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:e(this.gasLimit),gasPrice:e(this.gasPrice),maxPriorityFeePerGas:e(this.maxPriorityFeePerGas),maxFeePerGas:e(this.maxFeePerGas),value:e(this.value),chainId:e(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(e){if(e==null)return new pr;if(typeof e=="string"){const n=Zu(e);if(n[0]>=127)return pr.from(_9u(n));switch(n[0]){case 1:return pr.from(P9u(n));case 2:return pr.from(S9u(n))}Eu(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const t=new pr;return e.type!=null&&(t.type=e.type),e.to!=null&&(t.to=e.to),e.nonce!=null&&(t.nonce=e.nonce),e.gasLimit!=null&&(t.gasLimit=e.gasLimit),e.gasPrice!=null&&(t.gasPrice=e.gasPrice),e.maxPriorityFeePerGas!=null&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas),e.maxFeePerGas!=null&&(t.maxFeePerGas=e.maxFeePerGas),e.data!=null&&(t.data=e.data),e.value!=null&&(t.value=e.value),e.chainId!=null&&(t.chainId=e.chainId),e.signature!=null&&(t.signature=Mt.from(e.signature)),e.accessList!=null&&(t.accessList=e.accessList),e.hash!=null&&(Q(t.isSigned(),"unsigned transaction cannot define hash","tx",e),Q(t.hash===e.hash,"hash mismatch","tx",e)),e.from!=null&&(Q(t.isSigned(),"unsigned transaction cannot define from","tx",e),Q(t.from.toLowerCase()===(e.from||"").toLowerCase(),"from mismatch","tx",e)),t}};bn=new WeakMap,So=new WeakMap,Po=new WeakMap,To=new WeakMap,Io=new WeakMap,Oo=new WeakMap,No=new WeakMap,Ro=new WeakMap,jo=new WeakMap,zo=new WeakMap,Mo=new WeakMap,Uo=new WeakMap;let C2=pr;const Nk=new Uint8Array(32);Nk.fill(0);const T9u=BigInt(-1),Rk=BigInt(0),jk=BigInt(1),I9u=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function O9u(u){const e=Zu(u),t=e.length%32;return t?Te([e,Nk.slice(t)]):ku(e)}const N9u=Zr(jk,32),R9u=Zr(Rk,32),k7={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},R1=["name","version","chainId","verifyingContract","salt"];function _7(u){return function(e){return Q(typeof e=="string",`invalid domain value for ${JSON.stringify(u)}`,`domain.${u}`,e),e}}const j9u={name:_7("name"),version:_7("version"),chainId:function(u){const e=Su(u,"domain.chainId");return Q(e>=0,"invalid chain ID","domain.chainId",u),Number.isSafeInteger(e)?Number(e):to(e)},verifyingContract:function(u){try{return Yu(u).toLowerCase()}catch{}Q(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",u)},salt:function(u){const e=Zu(u,"domain.salt");return Q(e.length===32,'invalid domain value "salt"',"domain.salt",u),ku(e)}};function j1(u){{const e=u.match(/^(u?)int(\d*)$/);if(e){const t=e[1]==="",n=parseInt(e[2]||"256");Q(n%8===0&&n!==0&&n<=256&&(e[2]==null||e[2]===String(n)),"invalid numeric width","type",u);const r=O4(I9u,t?n-1:n),i=t?(r+jk)*T9u:Rk;return function(a){const o=Su(a,"value");return Q(o>=i&&o<=r,`value out-of-bounds for ${u}`,"value",o),Zr(t?Kx(o,256):o,32)}}}{const e=u.match(/^bytes(\d+)$/);if(e){const t=parseInt(e[1]);return Q(t!==0&&t<=32&&e[1]===String(t),"invalid bytes width","type",u),function(n){const r=Zu(n);return Q(r.length===t,`invalid length for ${u}`,"value",n),O9u(n)}}}switch(u){case"address":return function(e){return ca(Yu(e),32)};case"bool":return function(e){return e?N9u:R9u};case"bytes":return function(e){return fe(e)};case"string":return function(e){return Ea(e)}}return null}function S7(u,e){return`${u}(${e.map(({name:t,type:n})=>n+" "+t).join(",")})`}var tl,wn,Lo,F2,zk;const Y0=class Y0{constructor(e){tu(this,F2);X(this,"primaryType");tu(this,tl,void 0);tu(this,wn,void 0);tu(this,Lo,void 0);R(this,tl,JSON.stringify(e)),R(this,wn,new Map),R(this,Lo,new Map);const t=new Map,n=new Map,r=new Map;Object.keys(e).forEach(o=>{t.set(o,new Set),n.set(o,[]),r.set(o,new Set)});for(const o in e){const s=new Set;for(const l of e[o]){Q(!s.has(l.name),`duplicate variable name ${JSON.stringify(l.name)} in ${JSON.stringify(o)}`,"types",e),s.add(l.name);const c=l.type.match(/^([^\x5b]*)(\x5b|$)/)[1]||null;Q(c!==o,`circular type reference to ${JSON.stringify(c)}`,"types",e),!j1(c)&&(Q(n.has(c),`unknown type ${JSON.stringify(c)}`,"types",e),n.get(c).push(o),t.get(o).add(c))}}const i=Array.from(n.keys()).filter(o=>n.get(o).length===0);Q(i.length!==0,"missing primary type","types",e),Q(i.length===1,`ambiguous primary types or unused types: ${i.map(o=>JSON.stringify(o)).join(", ")}`,"types",e),Ou(this,{primaryType:i[0]});function a(o,s){Q(!s.has(o),`circular type reference to ${JSON.stringify(o)}`,"types",e),s.add(o);for(const l of t.get(o))if(n.has(l)){a(l,s);for(const c of s)r.get(c).add(l)}s.delete(o)}a(this.primaryType,new Set);for(const[o,s]of r){const l=Array.from(s);l.sort(),_(this,wn).set(o,S7(o,e[o])+l.map(c=>S7(c,e[c])).join(""))}}get types(){return JSON.parse(_(this,tl))}getEncoder(e){let t=_(this,Lo).get(e);return t||(t=yu(this,F2,zk).call(this,e),_(this,Lo).set(e,t)),t}encodeType(e){const t=_(this,wn).get(e);return Q(t,`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return fe(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(j1(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r)return Q(!r[3]||parseInt(r[3])===t.length,`array length mismatch; expected length ${parseInt(r[3])}`,"value",t),t.map(a=>this._visit(r[1],a,n));const i=this.types[e];if(i)return i.reduce((a,{name:o,type:s})=>(a[o]=this._visit(s,t[o],n),a),{});Q(!1,`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Y0(e)}static getPrimaryType(e){return Y0.from(e).primaryType}static hashStruct(e,t,n){return Y0.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){if(e[n]==null)continue;const r=k7[n];Q(r,`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort((n,r)=>R1.indexOf(n.name)-R1.indexOf(r.name)),Y0.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Te(["0x1901",Y0.hashDomain(e),Y0.from(t).hash(n)])}static hash(e,t,n){return fe(Y0.encode(e,t,n))}static async resolveNames(e,t,n,r){e=Object.assign({},e);for(const o in e)e[o]==null&&delete e[o];const i={};e.verifyingContract&&!pe(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const a=Y0.from(t);a.visit(n,(o,s)=>(o==="address"&&!pe(s,20)&&(i[s]="0x"),s));for(const o in i)i[o]=await r(o);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=a.visit(n,(o,s)=>o==="address"&&i[s]?i[s]:s),{domain:e,value:n}}static getPayload(e,t,n){Y0.hashDomain(e);const r={},i=[];R1.forEach(s=>{const l=e[s];l!=null&&(r[s]=j9u[s](l),i.push({name:s,type:k7[s]}))});const a=Y0.from(t),o=Object.assign({},t);return Q(o.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",t),o.EIP712Domain=i,a.encode(n),{types:o,domain:r,primaryType:a.primaryType,message:a.visit(n,(s,l)=>{if(s.match(/^bytes(\d*)/))return ku(Zu(l));if(s.match(/^u?int/))return Su(l).toString();switch(s){case"address":return l.toLowerCase();case"bool":return!!l;case"string":return Q(typeof l=="string","invalid string","value",l),l}Q(!1,"unsupported type","type",s)})}}};tl=new WeakMap,wn=new WeakMap,Lo=new WeakMap,F2=new WeakSet,zk=function(e){{const r=j1(e);if(r)return r}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const r=t[1],i=this.getEncoder(r);return a=>{Q(!t[3]||parseInt(t[3])===a.length,`array length mismatch; expected length ${parseInt(t[3])}`,"value",a);let o=a.map(i);return _(this,wn).has(r)&&(o=o.map(fe)),fe(Te(o))}}const n=this.types[e];if(n){const r=Ea(_(this,wn).get(e));return i=>{const a=n.map(({name:o,type:s})=>{const l=this.getEncoder(s)(i[o]);return _(this,wn).has(s)?fe(l):l});return a.unshift(r),Te(a)}}Q(!1,`unknown type: ${e}`,"type",e)};let m2=Y0;function E0(u){const e=new Set;return u.forEach(t=>e.add(t)),Object.freeze(e)}const z9u="external public payable",M9u=E0(z9u.split(" ")),Mk="constant external internal payable private public pure view",U9u=E0(Mk.split(" ")),Uk="constructor error event fallback function receive struct",Lk=E0(Uk.split(" ")),$k="calldata memory storage payable indexed",L9u=E0($k.split(" ")),$9u="tuple returns",W9u=[Uk,$k,$9u,Mk].join(" "),q9u=E0(W9u.split(" ")),H9u={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},G9u=new RegExp("^(\\s*)"),K9u=new RegExp("^([0-9]+)"),Q9u=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Wk=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),qk=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");var ze,xt,nl,op;const D2=class D2{constructor(e){tu(this,nl);tu(this,ze,void 0);tu(this,xt,void 0);R(this,ze,0),R(this,xt,e.slice())}get offset(){return _(this,ze)}get length(){return _(this,xt).length-_(this,ze)}clone(){return new D2(_(this,xt))}reset(){R(this,ze,0)}popKeyword(e){const t=this.peek();if(t.type!=="KEYWORD"||!e.has(t.text))throw new Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e)throw new Error(`expected ${e}; got ${JSON.stringify(this.peek())}`);return this.pop().text}popParen(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=yu(this,nl,op).call(this,_(this,ze)+1,e.match+1);return R(this,ze,e.match+1),t}popParams(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=[];for(;_(this,ze)=_(this,xt).length)throw new Error("out-of-bounds");return _(this,xt)[_(this,ze)]}peekKeyword(e){const t=this.peekType("KEYWORD");return t!=null&&e.has(t)?t:null}peekType(e){if(this.length===0)return null;const t=this.peek();return t.type===e?t.text:null}pop(){const e=this.peek();return i4(this,ze)._++,e}toString(){const e=[];for(let t=_(this,ze);t<_(this,xt).length;t++){const n=_(this,xt)[t];e.push(`${n.type}:${n.text}`)}return``}};ze=new WeakMap,xt=new WeakMap,nl=new WeakSet,op=function(e=0,t=0){return new D2(_(this,xt).slice(e,t).map(n=>Object.freeze(Object.assign({},n,{match:n.match-e,linkBack:n.linkBack-e,linkNext:n.linkNext-e}))))};let Ut=D2;function ci(u){const e=[],t=a=>{const o=i0&&e[e.length-1].type==="NUMBER"){const E=e.pop().text;c=E+c,e[e.length-1].value=Hu(E)}if(e.length===0||e[e.length-1].type!=="BRACKET")throw new Error("missing opening bracket");e[e.length-1].text+=c}continue}if(o=a.match(Q9u),o){if(s.text=o[1],i+=s.text.length,q9u.has(s.text)){s.type="KEYWORD";continue}if(s.text.match(qk)){s.type="TYPE";continue}s.type="ID";continue}if(o=a.match(K9u),o){s.text=o[1],s.type="NUMBER",i+=s.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(a[0])} at position ${i}`)}return new Ut(e.map(a=>Object.freeze(a)))}function P7(u,e){let t=[];for(const n in e.keys())u.has(n)&&t.push(n);if(t.length>1)throw new Error(`conflicting types: ${t.join(", ")}`)}function s9(u,e){if(e.peekKeyword(Lk)){const t=e.pop().text;if(t!==u)throw new Error(`expected ${u}, got ${t}`)}return e.popType("ID")}function Xn(u,e){const t=new Set;for(;;){const n=u.peekType("KEYWORD");if(n==null||e&&!e.has(n))break;if(u.pop(),t.has(n))throw new Error(`duplicate keywords: ${JSON.stringify(n)}`);t.add(n)}return Object.freeze(t)}function Hk(u){let e=Xn(u,U9u);return P7(e,E0("constant payable nonpayable".split(" "))),P7(e,E0("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function qn(u,e){return u.popParams().map(t=>$e.from(t,e))}function Gk(u){if(u.peekType("AT")){if(u.pop(),u.peekType("NUMBER"))return Su(u.pop().text);throw new Error("invalid gas")}return null}function da(u){if(u.length)throw new Error(`unexpected tokens: ${u.toString()}`)}const V9u=new RegExp(/^(.*)\[([0-9]*)\]$/);function T7(u){const e=u.match(qk);if(Q(e,"invalid type","type",u),u==="uint")return"uint256";if(u==="int")return"int256";if(e[2]){const t=parseInt(e[2]);Q(t!==0&&t<=32,"invalid bytes length","type",u)}else if(e[3]){const t=parseInt(e[3]);Q(t!==0&&t<=256&&t%8===0,"invalid numeric width","type",u)}return u}const de={},P0=Symbol.for("_ethers_internal"),I7="_ParamTypeInternal",O7="_ErrorInternal",N7="_EventInternal",R7="_ConstructorInternal",j7="_FallbackInternal",z7="_FunctionInternal",M7="_StructInternal";var $o,rE;const X0=class X0{constructor(e,t,n,r,i,a,o,s){tu(this,$o);X(this,"name");X(this,"type");X(this,"baseType");X(this,"indexed");X(this,"components");X(this,"arrayLength");X(this,"arrayChildren");if(n9(e,de,"ParamType"),Object.defineProperty(this,P0,{value:I7}),a&&(a=Object.freeze(a.slice())),r==="array"){if(o==null||s==null)throw new Error("")}else if(o!=null||s!=null)throw new Error("");if(r==="tuple"){if(a==null)throw new Error("")}else if(a!=null)throw new Error("");Ou(this,{name:t,type:n,baseType:r,indexed:i,components:a,arrayLength:o,arrayChildren:s})}format(e){if(e==null&&(e="sighash"),e==="json"){const n=this.name||"";if(this.isArray()){const i=JSON.parse(this.arrayChildren.format("json"));return i.name=n,i.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(i)}const r={type:this.baseType==="tuple"?"tuple":this.type,name:n};return typeof this.indexed=="boolean"&&(r.indexed=this.indexed),this.isTuple()&&(r.components=this.components.map(i=>JSON.parse(i.format(e)))),JSON.stringify(r)}let t="";return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?(e!=="sighash"&&(t+=this.type),t+="("+this.components.map(n=>n.format(e)).join(e==="full"?", ":",")+")"):t+=this.type,e!=="sighash"&&(this.indexed===!0&&(t+=" indexed"),e==="full"&&this.name&&(t+=" "+this.name)),t}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw new Error("array is wrong length");const n=this;return e.map(r=>n.arrayChildren.walk(r,t))}if(this.isTuple()){if(!Array.isArray(e))throw new Error("invalid tuple value");if(e.length!==this.components.length)throw new Error("array is wrong length");const n=this;return e.map((r,i)=>n.components[i].walk(r,t))}return t(this.type,e)}async walkAsync(e,t){const n=[],r=[e];return yu(this,$o,rE).call(this,n,e,t,i=>{r[0]=i}),n.length&&await Promise.all(n),r[0]}static from(e,t){if(X0.isParamType(e))return e;if(typeof e=="string")try{return X0.from(ci(e),t)}catch{Q(!1,"invalid param type","obj",e)}else if(e instanceof Ut){let o="",s="",l=null;Xn(e,E0(["tuple"])).has("tuple")||e.peekType("OPEN_PAREN")?(s="tuple",l=e.popParams().map(h=>X0.from(h)),o=`tuple(${l.map(h=>h.format()).join(",")})`):(o=T7(e.popType("TYPE")),s=o);let c=null,E=null;for(;e.length&&e.peekType("BRACKET");){const h=e.pop();c=new X0(de,"",o,s,null,l,E,c),E=h.value,o+=h.text,s="array",l=null}let d=null;if(Xn(e,L9u).has("indexed")){if(!t)throw new Error("");d=!0}const C=e.peekType("ID")?e.pop().text:"";if(e.length)throw new Error("leftover tokens");return new X0(de,C,o,s,d,l,E,c)}const n=e.name;Q(!n||typeof n=="string"&&n.match(Wk),"invalid name","obj.name",n);let r=e.indexed;r!=null&&(Q(t,"parameter cannot be indexed","obj.indexed",e.indexed),r=!!r);let i=e.type,a=i.match(V9u);if(a){const o=parseInt(a[2]||"-1"),s=X0.from({type:a[1],components:e.components});return new X0(de,n||"",i,"array",r,null,o,s)}if(i==="tuple"||i.startsWith("tuple(")||i.startsWith("(")){const o=e.components!=null?e.components.map(l=>X0.from(l)):null;return new X0(de,n||"",i,"tuple",r,o,null,null)}return i=T7(e.type),new X0(de,n||"",i,i,r,null,null,null)}static isParamType(e){return e&&e[P0]===I7}};$o=new WeakSet,rE=function(e,t,n,r){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const a=this.arrayChildren,o=t.slice();o.forEach((s,l)=>{var c;yu(c=a,$o,rE).call(c,e,s,n,E=>{o[l]=E})}),r(o);return}if(this.isTuple()){const a=this.components;let o;if(Array.isArray(t))o=t.slice();else{if(t==null||typeof t!="object")throw new Error("invalid tuple value");o=a.map(s=>{if(!s.name)throw new Error("cannot use object value with unnamed components");if(!(s.name in t))throw new Error(`missing value for component ${s.name}`);return t[s.name]})}if(o.length!==this.components.length)throw new Error("array is wrong length");o.forEach((s,l)=>{var c;yu(c=a[l],$o,rE).call(c,e,s,n,E=>{o[l]=E})}),r(o);return}const i=n(this.type,t);i.then?e.push(async function(){r(await i)}()):r(i)};let $e=X0;class fa{constructor(e,t,n){X(this,"type");X(this,"inputs");n9(e,de,"Fragment"),n=Object.freeze(n.slice()),Ou(this,{type:t,inputs:n})}static from(e){if(typeof e=="string"){try{fa.from(JSON.parse(e))}catch{}return fa.from(ci(e))}if(e instanceof Ut)switch(e.peekKeyword(Lk)){case"constructor":return Mn.from(e);case"error":return v0.from(e);case"event":return an.from(e);case"fallback":case"receive":return An.from(e);case"function":return on.from(e);case"struct":return ea.from(e)}else if(typeof e=="object"){switch(e.type){case"constructor":return Mn.from(e);case"error":return v0.from(e);case"event":return an.from(e);case"fallback":case"receive":return An.from(e);case"function":return on.from(e);case"struct":return ea.from(e)}Eu(!1,`unsupported type: ${e.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}Q(!1,"unsupported frgament object","obj",e)}static isConstructor(e){return Mn.isFragment(e)}static isError(e){return v0.isFragment(e)}static isEvent(e){return an.isFragment(e)}static isFunction(e){return on.isFragment(e)}static isStruct(e){return ea.isFragment(e)}}class l9 extends fa{constructor(t,n,r,i){super(t,n,i);X(this,"name");Q(typeof r=="string"&&r.match(Wk),"invalid identifier","name",r),i=Object.freeze(i.slice()),Ou(this,{name:r})}}function J3(u,e){return"("+e.map(t=>t.format(u)).join(u==="full"?", ":",")+")"}class v0 extends l9{constructor(e,t,n){super(e,"error",t,n),Object.defineProperty(this,P0,{value:O7})}get selector(){return Ea(this.format("sighash")).substring(0,10)}format(e){if(e==null&&(e="sighash"),e==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(n=>JSON.parse(n.format(e)))});const t=[];return e!=="sighash"&&t.push("error"),t.push(this.name+J3(e,this.inputs)),t.join(" ")}static from(e){if(v0.isFragment(e))return e;if(typeof e=="string")return v0.from(ci(e));if(e instanceof Ut){const t=s9("error",e),n=qn(e);return da(e),new v0(de,t,n)}return new v0(de,e.name,e.inputs?e.inputs.map($e.from):[])}static isFragment(e){return e&&e[P0]===O7}}class an extends l9{constructor(t,n,r,i){super(t,"event",n,r);X(this,"anonymous");Object.defineProperty(this,P0,{value:N7}),Ou(this,{anonymous:i})}get topicHash(){return Ea(this.format("sighash"))}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(r=>JSON.parse(r.format(t)))});const n=[];return t!=="sighash"&&n.push("event"),n.push(this.name+J3(t,this.inputs)),t!=="sighash"&&this.anonymous&&n.push("anonymous"),n.join(" ")}static getTopicHash(t,n){return n=(n||[]).map(i=>$e.from(i)),new an(de,t,n,!1).topicHash}static from(t){if(an.isFragment(t))return t;if(typeof t=="string")try{return an.from(ci(t))}catch{Q(!1,"invalid event fragment","obj",t)}else if(t instanceof Ut){const n=s9("event",t),r=qn(t,!0),i=!!Xn(t,E0(["anonymous"])).has("anonymous");return da(t),new an(de,n,r,i)}return new an(de,t.name,t.inputs?t.inputs.map(n=>$e.from(n,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[P0]===N7}}class Mn extends fa{constructor(t,n,r,i,a){super(t,n,r);X(this,"payable");X(this,"gas");Object.defineProperty(this,P0,{value:R7}),Ou(this,{payable:i,gas:a})}format(t){if(Eu(t!=null&&t!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),t==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(r=>JSON.parse(r.format(t)))});const n=[`constructor${J3(t,this.inputs)}`];return n.push(this.payable?"payable":"nonpayable"),this.gas!=null&&n.push(`@${this.gas.toString()}`),n.join(" ")}static from(t){if(Mn.isFragment(t))return t;if(typeof t=="string")try{return Mn.from(ci(t))}catch{Q(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof Ut){Xn(t,E0(["constructor"]));const n=qn(t),r=!!Xn(t,M9u).has("payable"),i=Gk(t);return da(t),new Mn(de,"constructor",n,r,i)}return new Mn(de,"constructor",t.inputs?t.inputs.map($e.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[P0]===R7}}class An extends fa{constructor(t,n,r){super(t,"fallback",n);X(this,"payable");Object.defineProperty(this,P0,{value:j7}),Ou(this,{payable:r})}format(t){const n=this.inputs.length===0?"receive":"fallback";if(t==="json"){const r=this.payable?"payable":"nonpayable";return JSON.stringify({type:n,stateMutability:r})}return`${n}()${this.payable?" payable":""}`}static from(t){if(An.isFragment(t))return t;if(typeof t=="string")try{return An.from(ci(t))}catch{Q(!1,"invalid fallback fragment","obj",t)}else if(t instanceof Ut){const n=t.toString(),r=t.peekKeyword(E0(["fallback","receive"]));if(Q(r,"type must be fallback or receive","obj",n),t.popKeyword(E0(["fallback","receive"]))==="receive"){const s=qn(t);return Q(s.length===0,"receive cannot have arguments","obj.inputs",s),Xn(t,E0(["payable"])),da(t),new An(de,[],!0)}let a=qn(t);a.length?Q(a.length===1&&a[0].type==="bytes","invalid fallback inputs","obj.inputs",a.map(s=>s.format("minimal")).join(", ")):a=[$e.from("bytes")];const o=Hk(t);if(Q(o==="nonpayable"||o==="payable","fallback cannot be constants","obj.stateMutability",o),Xn(t,E0(["returns"])).has("returns")){const s=qn(t);Q(s.length===1&&s[0].type==="bytes","invalid fallback outputs","obj.outputs",s.map(l=>l.format("minimal")).join(", "))}return da(t),new An(de,a,o==="payable")}if(t.type==="receive")return new An(de,[],!0);if(t.type==="fallback"){const n=[$e.from("bytes")],r=t.stateMutability==="payable";return new An(de,n,r)}Q(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[P0]===j7}}class on extends l9{constructor(t,n,r,i,a,o){super(t,"function",n,i);X(this,"constant");X(this,"outputs");X(this,"stateMutability");X(this,"payable");X(this,"gas");Object.defineProperty(this,P0,{value:z7}),a=Object.freeze(a.slice()),Ou(this,{constant:r==="view"||r==="pure",gas:o,outputs:a,payable:r==="payable",stateMutability:r})}get selector(){return Ea(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(r=>JSON.parse(r.format(t))),outputs:this.outputs.map(r=>JSON.parse(r.format(t)))});const n=[];return t!=="sighash"&&n.push("function"),n.push(this.name+J3(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&n.push(this.stateMutability),this.outputs&&this.outputs.length&&(n.push("returns"),n.push(J3(t,this.outputs))),this.gas!=null&&n.push(`@${this.gas.toString()}`)),n.join(" ")}static getSelector(t,n){return n=(n||[]).map(i=>$e.from(i)),new on(de,t,"view",n,[],null).selector}static from(t){if(on.isFragment(t))return t;if(typeof t=="string")try{return on.from(ci(t))}catch{Q(!1,"invalid function fragment","obj",t)}else if(t instanceof Ut){const r=s9("function",t),i=qn(t),a=Hk(t);let o=[];Xn(t,E0(["returns"])).has("returns")&&(o=qn(t));const s=Gk(t);return da(t),new on(de,r,a,i,o,s)}let n=t.stateMutability;return n==null&&(n="payable",typeof t.constant=="boolean"?(n="view",t.constant||(n="payable",typeof t.payable=="boolean"&&!t.payable&&(n="nonpayable"))):typeof t.payable=="boolean"&&!t.payable&&(n="nonpayable")),new on(de,t.name,n,t.inputs?t.inputs.map($e.from):[],t.outputs?t.outputs.map($e.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[P0]===z7}}class ea extends l9{constructor(e,t,n){super(e,"struct",t,n),Object.defineProperty(this,P0,{value:M7})}format(){throw new Error("@TODO")}static from(e){if(typeof e=="string")try{return ea.from(ci(e))}catch{Q(!1,"invalid struct fragment","obj",e)}else if(e instanceof Ut){const t=s9("struct",e),n=qn(e);return da(e),new ea(de,t,n)}return new ea(de,e.name,e.inputs?e.inputs.map($e.from):[])}static isFragment(e){return e&&e[P0]===M7}}const $t=new Map;$t.set(0,"GENERIC_PANIC");$t.set(1,"ASSERT_FALSE");$t.set(17,"OVERFLOW");$t.set(18,"DIVIDE_BY_ZERO");$t.set(33,"ENUM_RANGE_ERROR");$t.set(34,"BAD_STORAGE_DATA");$t.set(49,"STACK_UNDERFLOW");$t.set(50,"ARRAY_RANGE_ERROR");$t.set(65,"OUT_OF_MEMORY");$t.set(81,"UNINITIALIZED_FUNCTION_CALL");const J9u=new RegExp(/^bytes([0-9]*)$/),Y9u=new RegExp(/^(u?int)([0-9]*)$/);let z1=null;function X9u(u,e,t,n){let r="missing revert data",i=null;const a=null;let o=null;if(t){r="execution reverted";const l=Zu(t);if(t=ku(t),l.length===0)r+=" (no data present; likely require(false) occurred",i="require(false)";else if(l.length%32!==4)r+=" (could not decode reason; invalid data length)";else if(ku(l.slice(0,4))==="0x08c379a0")try{i=n.decode(["string"],l.slice(4))[0],o={signature:"Error(string)",name:"Error",args:[i]},r+=`: ${JSON.stringify(i)}`}catch{r+=" (could not decode reason; invalid string data)"}else if(ku(l.slice(0,4))==="0x4e487b71")try{const c=Number(n.decode(["uint256"],l.slice(4))[0]);o={signature:"Panic(uint256)",name:"Panic",args:[c]},i=`Panic due to ${$t.get(c)||"UNKNOWN"}(${c})`,r+=`: ${i}`}catch{r+=" (could not decode panic code)"}else r+=" (unknown custom error)"}const s={to:e.to?Yu(e.to):null,data:e.data||"0x"};return e.from&&(s.from=Yu(e.from)),be(r,"CALL_EXCEPTION",{action:u,data:t,reason:i,transaction:s,invocation:a,revert:o})}var Br,Ma;const b2=class b2{constructor(){tu(this,Br)}getDefaultValue(e){const t=e.map(r=>yu(this,Br,Ma).call(this,$e.from(r)));return new Tc(t,"_").defaultValue()}encode(e,t){qx(t.length,e.length,"types/values length mismatch");const n=e.map(a=>yu(this,Br,Ma).call(this,$e.from(a))),r=new Tc(n,"_"),i=new Xf;return r.encode(i,t),i.data}decode(e,t,n){const r=e.map(a=>yu(this,Br,Ma).call(this,$e.from(a)));return new Tc(r,"_").decode(new Zf(t,n))}static defaultAbiCoder(){return z1==null&&(z1=new b2),z1}static getBuiltinCallException(e,t,n){return X9u(e,t,n,b2.defaultAbiCoder())}};Br=new WeakSet,Ma=function(e){if(e.isArray())return new xdu(yu(this,Br,Ma).call(this,e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new Tc(e.components.map(n=>yu(this,Br,Ma).call(this,n)),e.name);switch(e.baseType){case"address":return new bdu(e.name);case"bool":return new kdu(e.name);case"string":return new jdu(e.name);case"bytes":return new _du(e.name);case"":return new Tdu(e.name)}let t=e.type.match(Y9u);if(t){let n=parseInt(t[2]||"256");return Q(n!==0&&n<=256&&n%8===0,"invalid "+t[1]+" bit length","param",e),new Rdu(n/8,t[1]==="int",e.name)}if(t=e.type.match(J9u),t){let n=parseInt(t[1]);return Q(n!==0&&n<=32,"invalid bytes length","param",e),new Sdu(n,e.name)}Q(!1,"invalid type","type",e.type)};let Y3=b2;class Z9u{constructor(e,t,n){X(this,"fragment");X(this,"name");X(this,"signature");X(this,"topic");X(this,"args");const r=e.name,i=e.format();Ou(this,{fragment:e,name:r,signature:i,topic:t,args:n})}}class u1u{constructor(e,t,n,r){X(this,"fragment");X(this,"name");X(this,"args");X(this,"signature");X(this,"selector");X(this,"value");const i=e.name,a=e.format();Ou(this,{fragment:e,name:i,args:n,signature:a,selector:t,value:r})}}class e1u{constructor(e,t,n){X(this,"fragment");X(this,"name");X(this,"args");X(this,"signature");X(this,"selector");const r=e.name,i=e.format();Ou(this,{fragment:e,name:r,args:n,signature:i,selector:t})}}class U7{constructor(e){X(this,"hash");X(this,"_isIndexed");Ou(this,{hash:e,_isIndexed:!0})}static isIndexed(e){return!!(e&&e._isIndexed)}}const L7={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},$7={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:u=>`reverted with reason string ${JSON.stringify(u)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:u=>{let e="unknown panic code";return u>=0&&u<=255&&L7[u.toString()]&&(e=L7[u.toString()]),`reverted with panic code 0x${u.toString(16)} (${e})`}}};var Jt,Yt,Xt,Ve,Wo,iE,qo,aE;const ro=class ro{constructor(e){tu(this,Wo);tu(this,qo);X(this,"fragments");X(this,"deploy");X(this,"fallback");X(this,"receive");tu(this,Jt,void 0);tu(this,Yt,void 0);tu(this,Xt,void 0);tu(this,Ve,void 0);let t=[];typeof e=="string"?t=JSON.parse(e):t=e,R(this,Xt,new Map),R(this,Jt,new Map),R(this,Yt,new Map);const n=[];for(const a of t)try{n.push(fa.from(a))}catch(o){console.log("EE",o)}Ou(this,{fragments:Object.freeze(n)});let r=null,i=!1;R(this,Ve,this.getAbiCoder()),this.fragments.forEach((a,o)=>{let s;switch(a.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}Ou(this,{deploy:a});return;case"fallback":a.inputs.length===0?i=!0:(Q(!r||a.payable!==r.payable,"conflicting fallback fragments",`fragments[${o}]`,a),r=a,i=r.payable);return;case"function":s=_(this,Xt);break;case"event":s=_(this,Yt);break;case"error":s=_(this,Jt);break;default:return}const l=a.format();s.has(l)||s.set(l,a)}),this.deploy||Ou(this,{deploy:Mn.from("constructor()")}),Ou(this,{fallback:r,receive:i})}format(e){const t=e?"minimal":"full";return this.fragments.map(r=>r.format(t))}formatJson(){const e=this.fragments.map(t=>t.format("json"));return JSON.stringify(e.map(t=>JSON.parse(t)))}getAbiCoder(){return Y3.defaultAbiCoder()}getFunctionName(e){const t=yu(this,Wo,iE).call(this,e,null,!1);return Q(t,"no matching function","key",e),t.name}hasFunction(e){return!!yu(this,Wo,iE).call(this,e,null,!1)}getFunction(e,t){return yu(this,Wo,iE).call(this,e,t||null,!0)}forEachFunction(e){const t=Array.from(_(this,Xt).keys());t.sort((n,r)=>n.localeCompare(r));for(let n=0;nn.localeCompare(r));for(let n=0;n1){const i=r.map(a=>JSON.stringify(a.format())).join(", ");Q(!1,`ambiguous error description (i.e. ${i})`,"name",e)}return r[0]}if(e=v0.from(e).format(),e==="Error(string)")return v0.from("error Error(string)");if(e==="Panic(uint256)")return v0.from("error Panic(uint256)");const n=_(this,Jt).get(e);return n||null}forEachError(e){const t=Array.from(_(this,Jt).keys());t.sort((n,r)=>n.localeCompare(r));for(let n=0;ni.type==="string"?Ea(a):i.type==="bytes"?fe(ku(a)):(i.type==="bool"&&typeof a=="boolean"?a=a?"0x01":"0x00":i.type.match(/^u?int/)?a=Zr(a):i.type.match(/^bytes/)?a=X2u(a,32):i.type==="address"&&_(this,Ve).encode(["address"],[a]),ca(ku(a),32));for(t.forEach((i,a)=>{const o=e.inputs[a];if(!o.indexed){Q(i==null,"cannot filter non-indexed parameters; must be null","contract."+o.name,i);return}i==null?n.push(null):o.baseType==="array"||o.baseType==="tuple"?Q(!1,"filtering with tuples or arrays not supported","contract."+o.name,i):Array.isArray(i)?n.push(i.map(s=>r(o,s))):n.push(r(o,i))});n.length&&n[n.length-1]===null;)n.pop();return n}encodeEventLog(e,t){if(typeof e=="string"){const a=this.getEvent(e);Q(a,"unknown event","eventFragment",e),e=a}const n=[],r=[],i=[];return e.anonymous||n.push(e.topicHash),Q(t.length===e.inputs.length,"event arguments/values mismatch","values",t),e.inputs.forEach((a,o)=>{const s=t[o];if(a.indexed)if(a.type==="string")n.push(Ea(s));else if(a.type==="bytes")n.push(fe(s));else{if(a.baseType==="tuple"||a.baseType==="array")throw new Error("not implemented");n.push(_(this,Ve).encode([a.type],[s]))}else r.push(a),i.push(s)}),{data:_(this,Ve).encode(r,i),topics:n}}decodeEventLog(e,t,n){if(typeof e=="string"){const f=this.getEvent(e);Q(f,"unknown event","eventFragment",e),e=f}if(n!=null&&!e.anonymous){const f=e.topicHash;Q(pe(n[0],32)&&n[0].toLowerCase()===f,"fragment/topic mismatch","topics[0]",n[0]),n=n.slice(1)}const r=[],i=[],a=[];e.inputs.forEach((f,C)=>{f.indexed?f.type==="string"||f.type==="bytes"||f.baseType==="tuple"||f.baseType==="array"?(r.push($e.from({type:"bytes32",name:f.name})),a.push(!0)):(r.push(f),a.push(!1)):(i.push(f),a.push(!1))});const o=n!=null?_(this,Ve).decode(r,Te(n)):null,s=_(this,Ve).decode(i,t,!0),l=[],c=[];let E=0,d=0;return e.inputs.forEach((f,C)=>{let h=null;if(f.indexed)if(o==null)h=new U7(null);else if(a[C])h=new U7(o[d++]);else try{h=o[d++]}catch(B){h=B}else try{h=s[E++]}catch(B){h=B}l.push(h),c.push(f.name||null)}),E2.fromItems(l,c)}parseTransaction(e){const t=Zu(e.data,"tx.data"),n=Su(e.value!=null?e.value:0,"tx.value"),r=this.getFunction(ku(t.slice(0,4)));if(!r)return null;const i=_(this,Ve).decode(r.inputs,t.slice(4));return new u1u(r,r.selector,i,n)}parseCallResult(e){throw new Error("@TODO")}parseLog(e){const t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Z9u(t,t.topicHash,this.decodeEventLog(t,e.data,e.topics))}parseError(e){const t=ku(e),n=this.getError(me(t,0,4));if(!n)return null;const r=_(this,Ve).decode(n.inputs,me(t,4));return new e1u(n,n.selector,r)}static from(e){return e instanceof ro?e:typeof e=="string"?new ro(JSON.parse(e)):typeof e.format=="function"?new ro(e.format("json")):new ro(e)}};Jt=new WeakMap,Yt=new WeakMap,Xt=new WeakMap,Ve=new WeakMap,Wo=new WeakSet,iE=function(e,t,n){if(pe(e)){const i=e.toLowerCase();for(const a of _(this,Xt).values())if(i===a.selector)return a;return null}if(e.indexOf("(")===-1){const i=[];for(const[a,o]of _(this,Xt))a.split("(")[0]===e&&i.push(o);if(t){const a=t.length>0?t[t.length-1]:null;let o=t.length,s=!0;t0.isTyped(a)&&a.type==="overrides"&&(s=!1,o--);for(let l=i.length-1;l>=0;l--){const c=i[l].inputs.length;c!==o&&(!s||c!==o-1)&&i.splice(l,1)}for(let l=i.length-1;l>=0;l--){const c=i[l].inputs;for(let E=0;E=c.length){if(t[E].type==="overrides")continue;i.splice(l,1);break}if(t[E].type!==c[E].baseType){i.splice(l,1);break}}}}if(i.length===1&&t&&t.length!==i[0].inputs.length){const a=t[t.length-1];(a==null||Array.isArray(a)||typeof a!="object")&&i.splice(0,1)}if(i.length===0)return null;if(i.length>1&&n){const a=i.map(o=>JSON.stringify(o.format())).join(", ");Q(!1,`ambiguous function description (i.e. matches ${a})`,"key",e)}return i[0]}const r=_(this,Xt).get(on.from(e).format());return r||null},qo=new WeakSet,aE=function(e,t,n){if(pe(e)){const i=e.toLowerCase();for(const a of _(this,Yt).values())if(i===a.topicHash)return a;return null}if(e.indexOf("(")===-1){const i=[];for(const[a,o]of _(this,Yt))a.split("(")[0]===e&&i.push(o);if(t){for(let a=i.length-1;a>=0;a--)i[a].inputs.length=0;a--){const o=i[a].inputs;for(let s=0;s1&&n){const a=i.map(o=>JSON.stringify(o.format())).join(", ");Q(!1,`ambiguous event description (i.e. matches ${a})`,"key",e)}return i[0]}const r=_(this,Yt).get(an.from(e).format());return r||null};let sp=ro;const Kk=BigInt(0);function Z4(u){return u??null}function Ze(u){return u==null?null:u.toString()}class W7{constructor(e,t,n){X(this,"gasPrice");X(this,"maxFeePerGas");X(this,"maxPriorityFeePerGas");Ou(this,{gasPrice:Z4(e),maxFeePerGas:Z4(t),maxPriorityFeePerGas:Z4(n)})}toJSON(){const{gasPrice:e,maxFeePerGas:t,maxPriorityFeePerGas:n}=this;return{_type:"FeeData",gasPrice:Ze(e),maxFeePerGas:Ze(t),maxPriorityFeePerGas:Ze(n)}}}function g2(u){const e={};u.to&&(e.to=u.to),u.from&&(e.from=u.from),u.data&&(e.data=ku(u.data));const t="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const r of t)!(r in u)||u[r]==null||(e[r]=Su(u[r],`request.${r}`));const n="type,nonce".split(/,/);for(const r of n)!(r in u)||u[r]==null||(e[r]=Hu(u[r],`request.${r}`));return u.accessList&&(e.accessList=Fa(u.accessList)),"blockTag"in u&&(e.blockTag=u.blockTag),"enableCcipRead"in u&&(e.enableCcipRead=!!u.enableCcipRead),"customData"in u&&(e.customData=u.customData),e}var xn;class t1u{constructor(e,t){X(this,"provider");X(this,"number");X(this,"hash");X(this,"timestamp");X(this,"parentHash");X(this,"nonce");X(this,"difficulty");X(this,"gasLimit");X(this,"gasUsed");X(this,"miner");X(this,"extraData");X(this,"baseFeePerGas");tu(this,xn,void 0);R(this,xn,e.transactions.map(n=>typeof n!="string"?new X3(n,t):n)),Ou(this,{provider:t,hash:Z4(e.hash),number:e.number,timestamp:e.timestamp,parentHash:e.parentHash,nonce:e.nonce,difficulty:e.difficulty,gasLimit:e.gasLimit,gasUsed:e.gasUsed,miner:e.miner,extraData:e.extraData,baseFeePerGas:Z4(e.baseFeePerGas)})}get transactions(){return _(this,xn).map(e=>typeof e=="string"?e:e.hash)}get prefetchedTransactions(){const e=_(this,xn).slice();return e.length===0?[]:(Eu(typeof e[0]=="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),e)}toJSON(){const{baseFeePerGas:e,difficulty:t,extraData:n,gasLimit:r,gasUsed:i,hash:a,miner:o,nonce:s,number:l,parentHash:c,timestamp:E,transactions:d}=this;return{_type:"Block",baseFeePerGas:Ze(e),difficulty:Ze(t),extraData:n,gasLimit:Ze(r),gasUsed:Ze(i),hash:a,miner:o,nonce:s,number:l,parentHash:c,timestamp:E,transactions:d}}[Symbol.iterator](){let e=0;const t=this.transactions;return{next:()=>enew Jl(r,t))));let n=Kk;e.effectiveGasPrice!=null?n=e.effectiveGasPrice:e.gasPrice!=null&&(n=e.gasPrice),Ou(this,{provider:t,to:e.to,from:e.from,contractAddress:e.contractAddress,hash:e.hash,index:e.index,blockHash:e.blockHash,blockNumber:e.blockNumber,logsBloom:e.logsBloom,gasUsed:e.gasUsed,cumulativeGasUsed:e.cumulativeGasUsed,gasPrice:n,type:e.type,status:e.status,root:e.root})}get logs(){return _(this,rl)}toJSON(){const{to:e,from:t,contractAddress:n,hash:r,index:i,blockHash:a,blockNumber:o,logsBloom:s,logs:l,status:c,root:E}=this;return{_type:"TransactionReceipt",blockHash:a,blockNumber:o,contractAddress:n,cumulativeGasUsed:Ze(this.cumulativeGasUsed),from:t,gasPrice:Ze(this.gasPrice),gasUsed:Ze(this.gasUsed),hash:r,index:i,logs:l,logsBloom:s,root:E,status:c,to:e}}get length(){return this.logs.length}[Symbol.iterator](){let e=0;return{next:()=>e{if(o)return null;const{blockNumber:d,nonce:f}=await a0({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(f{if(d==null||d.status!==0)return d;Eu(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:d.to,from:d.from,data:""},receipt:d})},c=await this.provider.getTransactionReceipt(this.hash);if(n===0)return l(c);if(c){if(await c.confirmations()>=n)return l(c)}else if(await s(),n===0)return null;return await new Promise((d,f)=>{const C=[],h=()=>{C.forEach(g=>g())};if(C.push(()=>{o=!0}),r>0){const g=setTimeout(()=>{h(),f(be("wait for transaction timeout","TIMEOUT"))},r);C.push(()=>{clearTimeout(g)})}const B=async g=>{if(await g.confirmations()>=n){h();try{d(l(g))}catch(m){f(m)}}};if(C.push(()=>{this.provider.off(this.hash,B)}),this.provider.on(this.hash,B),i>=0){const g=async()=>{try{await s()}catch(m){if(Et(m,"TRANSACTION_REPLACED")){h(),f(m);return}}o||this.provider.once("block",g)};C.push(()=>{this.provider.off("block",g)}),this.provider.once("block",g)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}removedEvent(){return Eu(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Jk(this)}reorderedEvent(e){return Eu(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Eu(!e||e.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Vk(this,e)}replaceableTransaction(e){Q(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);const t=new TC(this,this.provider);return R(t,vr,e),t}};vr=new WeakMap;let X3=TC;function n1u(u){return{orphan:"drop-block",hash:u.hash,number:u.number}}function Vk(u,e){return{orphan:"reorder-transaction",tx:u,other:e}}function Jk(u){return{orphan:"drop-transaction",tx:u}}function r1u(u){return{orphan:"drop-log",log:{transactionHash:u.transactionHash,blockHash:u.blockHash,blockNumber:u.blockNumber,address:u.address,data:u.data,topics:Object.freeze(u.topics.slice()),index:u.index}}}class bC extends Jl{constructor(t,n,r){super(t,t.provider);X(this,"interface");X(this,"fragment");X(this,"args");const i=n.decodeEventLog(r,t.data,t.topics);Ou(this,{args:i,fragment:r,interface:n})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class Yk extends Jl{constructor(t,n){super(t,t.provider);X(this,"error");Ou(this,{error:n})}}var Ho;class i1u extends Qk{constructor(t,n,r){super(r,n);tu(this,Ho,void 0);R(this,Ho,t)}get logs(){return super.logs.map(t=>{const n=t.topics.length?_(this,Ho).getEvent(t.topics[0]):null;if(n)try{return new bC(t,_(this,Ho),n)}catch(r){return new Yk(t,r)}return t})}}Ho=new WeakMap;var il;class wC extends X3{constructor(t,n,r){super(r,n);tu(this,il,void 0);R(this,il,t)}async wait(t){const n=await super.wait(t);return n==null?null:new i1u(_(this,il),this.provider,n)}}il=new WeakMap;class Xk extends Qx{constructor(t,n,r,i){super(t,n,r);X(this,"log");Ou(this,{log:i})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class a1u extends Xk{constructor(e,t,n,r,i){super(e,t,n,new bC(i,e.interface,r));const a=e.interface.decodeEventLog(r,this.log.data,this.log.topics);Ou(this,{args:a,fragment:r})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const q7=BigInt(0);function Zk(u){return u&&typeof u.call=="function"}function u_(u){return u&&typeof u.estimateGas=="function"}function c9(u){return u&&typeof u.resolveName=="function"}function e_(u){return u&&typeof u.sendTransaction=="function"}function t_(u){if(u!=null){if(c9(u))return u;if(u.provider)return u.provider}}var al;class o1u{constructor(e,t,n){tu(this,al,void 0);X(this,"fragment");if(Ou(this,{fragment:t}),t.inputs.lengthn[s]==null?null:o.walkAsync(n[s],(c,E)=>c==="address"?Array.isArray(E)?Promise.all(E.map(d=>c0(d,i))):c0(E,i):E)));return e.interface.encodeFilterTopics(t,a)}())}getTopicFilter(){return _(this,al)}}al=new WeakMap;function pa(u,e){return u==null?null:typeof u[e]=="function"?u:u.provider&&typeof u.provider[e]=="function"?u.provider:null}function ki(u){return u==null?null:u.provider||null}async function n_(u,e){const t=t0.dereference(u,"overrides");Q(typeof t=="object","invalid overrides parameter","overrides",u);const n=g2(t);return Q(n.to==null||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",n.to),Q(n.data==null||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",n.data),n.from&&(n.from=n.from),n}async function s1u(u,e,t){const n=pa(u,"resolveName"),r=c9(n)?n:null;return await Promise.all(e.map((i,a)=>i.walkAsync(t[a],(o,s)=>(s=t0.dereference(s,o),o==="address"?c0(s,r):s))))}function l1u(u){const e=async function(a){const o=await n_(a,["data"]);o.to=await u.getAddress(),o.from&&(o.from=await c0(o.from,t_(u.runner)));const s=u.interface,l=Su(o.value||q7,"overrides.value")===q7,c=(o.data||"0x")==="0x";s.fallback&&!s.fallback.payable&&s.receive&&!c&&!l&&Q(!1,"cannot send data to receive or send value to non-payable fallback","overrides",a),Q(s.fallback||c,"cannot send data to receive-only contract","overrides.data",o.data);const E=s.receive||s.fallback&&s.fallback.payable;return Q(E||l,"cannot send value to non-payable fallback","overrides.value",o.value),Q(s.fallback||c,"cannot send data to receive-only contract","overrides.data",o.data),o},t=async function(a){const o=pa(u.runner,"call");Eu(Zk(o),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const s=await e(a);try{return await o.call(s)}catch(l){throw CC(l)&&l.data?u.interface.makeError(l.data,s):l}},n=async function(a){const o=u.runner;Eu(e_(o),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await o.sendTransaction(await e(a)),l=ki(u.runner);return new wC(u.interface,l,s)},r=async function(a){const o=pa(u.runner,"estimateGas");return Eu(u_(o),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await o.estimateGas(await e(a))},i=async a=>await n(a);return Ou(i,{_contract:u,estimateGas:r,populateTransaction:e,send:n,staticCall:t}),i}function c1u(u,e){const t=function(...l){const c=u.interface.getFunction(e,l);return Eu(c,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:l}}),c},n=async function(...l){const c=t(...l);let E={};if(c.inputs.length+1===l.length&&(E=await n_(l.pop()),E.from&&(E.from=await c0(E.from,t_(u.runner)))),c.inputs.length!==l.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const d=await s1u(u.runner,c.inputs,l);return Object.assign({},E,await a0({to:u.getAddress(),data:u.interface.encodeFunctionData(c,d)}))},r=async function(...l){const c=await o(...l);return c.length===1?c[0]:c},i=async function(...l){const c=u.runner;Eu(e_(c),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const E=await c.sendTransaction(await n(...l)),d=ki(u.runner);return new wC(u.interface,d,E)},a=async function(...l){const c=pa(u.runner,"estimateGas");return Eu(u_(c),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await c.estimateGas(await n(...l))},o=async function(...l){const c=pa(u.runner,"call");Eu(Zk(c),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const E=await n(...l);let d="0x";try{d=await c.call(E)}catch(C){throw CC(C)&&C.data?u.interface.makeError(C.data,E):C}const f=t(...l);return u.interface.decodeFunctionResult(f,d)},s=async(...l)=>t(...l).constant?await r(...l):await i(...l);return Ou(s,{name:u.interface.getFunctionName(e),_contract:u,_key:e,getFragment:t,estimateGas:a,populateTransaction:n,send:i,staticCall:r,staticCallResult:o}),Object.defineProperty(s,"fragment",{configurable:!1,enumerable:!0,get:()=>{const l=u.interface.getFunction(e);return Eu(l,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),l}}),s}function E1u(u,e){const t=function(...r){const i=u.interface.getEvent(e,r);return Eu(i,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:r}}),i},n=function(...r){return new o1u(u,t(...r),r)};return Ou(n,{name:u.interface.getEventName(e),_contract:u,_key:e,getFragment:t}),Object.defineProperty(n,"fragment",{configurable:!1,enumerable:!0,get:()=>{const r=u.interface.getEvent(e);return Eu(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),r}}),n}const A2=Symbol.for("_ethersInternal_contract"),r_=new WeakMap;function d1u(u,e){r_.set(u[A2],e)}function O0(u){return r_.get(u[A2])}function f1u(u){return u&&typeof u=="object"&&"getTopicFilter"in u&&typeof u.getTopicFilter=="function"&&u.fragment}async function xC(u,e){let t,n=null;if(Array.isArray(e)){const i=function(a){if(pe(a,32))return a;const o=u.interface.getEvent(a);return Q(o,"unknown fragment","name",a),o.topicHash};t=e.map(a=>a==null?null:Array.isArray(a)?a.map(i):i(a))}else e==="*"?t=[null]:typeof e=="string"?pe(e,32)?t=[e]:(n=u.interface.getEvent(e),Q(n,"unknown fragment","event",e),t=[n.topicHash]):f1u(e)?t=await e.getTopicFilter():"fragment"in e?(n=e.fragment,t=[n.topicHash]):Q(!1,"unknown event name","event",e);t=t.map(i=>{if(i==null)return null;if(Array.isArray(i)){const a=Array.from(new Set(i.map(o=>o.toLowerCase())).values());return a.length===1?a[0]:(a.sort(),a)}return i.toLowerCase()});const r=t.map(i=>i==null?"null":Array.isArray(i)?i.join("|"):i).join("&");return{fragment:n,tag:r,topics:t}}async function j4(u,e){const{subs:t}=O0(u);return t.get((await xC(u,e)).tag)||null}async function H7(u,e,t){const n=ki(u.runner);Eu(n,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:r,tag:i,topics:a}=await xC(u,t),{addr:o,subs:s}=O0(u);let l=s.get(i);if(!l){const E={address:o||u,topics:a},d=B=>{let g=r;if(g==null)try{g=u.interface.getEvent(B.topics[0])}catch{}if(g){const m=g,y=r?u.interface.decodeEventLog(r,B.data,B.topics):[];cp(u,t,y,v=>new a1u(u,v,t,m,B))}else cp(u,t,[],m=>new Xk(u,m,t,B))};let f=[];l={tag:i,listeners:[],start:()=>{f.length||f.push(n.on(E,d))},stop:async()=>{if(f.length==0)return;let B=f;f=[],await Promise.all(B),n.off(E,d)}},s.set(i,l)}return l}let lp=Promise.resolve();async function p1u(u,e,t,n){await lp;const r=await j4(u,e);if(!r)return!1;const i=r.listeners.length;return r.listeners=r.listeners.filter(({listener:a,once:o})=>{const s=Array.from(t);n&&s.push(n(o?null:a));try{a.call(u,...s)}catch{}return!o}),r.listeners.length===0&&(r.stop(),O0(u).subs.delete(r.tag)),i>0}async function cp(u,e,t,n){try{await lp}catch{}const r=p1u(u,e,t,n);return lp=r,await r}const Ic=["then"];var f6u;const e3=class e3{constructor(e,t,n,r){X(this,"target");X(this,"interface");X(this,"runner");X(this,"filters");X(this,f6u);X(this,"fallback");Q(typeof e=="string"||ak(e),"invalid value for Contract target","target",e),n==null&&(n=null);const i=sp.from(t);Ou(this,{target:e,runner:n,interface:i}),Object.defineProperty(this,A2,{value:{}});let a,o=null,s=null;if(r){const E=ki(n);s=new wC(this.interface,E,r)}let l=new Map;if(typeof e=="string")if(pe(e))o=e,a=Promise.resolve(e);else{const E=pa(n,"resolveName");if(!c9(E))throw be("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});a=E.resolveName(e).then(d=>{if(d==null)throw be("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:e});return O0(this).addr=d,d})}else a=e.getAddress().then(E=>{if(E==null)throw new Error("TODO");return O0(this).addr=E,E});d1u(this,{addrPromise:a,addr:o,deployTx:s,subs:l});const c=new Proxy({},{get:(E,d,f)=>{if(typeof d=="symbol"||Ic.indexOf(d)>=0)return Reflect.get(E,d,f);try{return this.getEvent(d)}catch(C){if(!Et(C,"INVALID_ARGUMENT")||C.argument!=="key")throw C}},has:(E,d)=>Ic.indexOf(d)>=0?Reflect.has(E,d):Reflect.has(E,d)||this.interface.hasEvent(String(d))});return Ou(this,{filters:c}),Ou(this,{fallback:i.receive||i.fallback?l1u(this):null}),new Proxy(this,{get:(E,d,f)=>{if(typeof d=="symbol"||d in E||Ic.indexOf(d)>=0)return Reflect.get(E,d,f);try{return E.getFunction(d)}catch(C){if(!Et(C,"INVALID_ARGUMENT")||C.argument!=="key")throw C}},has:(E,d)=>typeof d=="symbol"||d in E||Ic.indexOf(d)>=0?Reflect.has(E,d):E.interface.hasFunction(d)})}connect(e){return new e3(this.target,this.interface,e)}attach(e){return new e3(e,this.interface,this.runner)}async getAddress(){return await O0(this).addrPromise}async getDeployedCode(){const e=ki(this.runner);Eu(e,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const t=await e.getCode(await this.getAddress());return t==="0x"?null:t}async waitForDeployment(){const e=this.deploymentTransaction();if(e)return await e.wait(),this;if(await this.getDeployedCode()!=null)return this;const n=ki(this.runner);return Eu(n!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((r,i)=>{const a=async()=>{try{if(await this.getDeployedCode()!=null)return r(this);n.once("block",a)}catch(o){i(o)}};a()})}deploymentTransaction(){return O0(this).deployTx}getFunction(e){return typeof e!="string"&&(e=e.format()),c1u(this,e)}getEvent(e){return typeof e!="string"&&(e=e.format()),E1u(this,e)}async queryTransaction(e){throw new Error("@TODO")}async queryFilter(e,t,n){t==null&&(t=0),n==null&&(n="latest");const{addr:r,addrPromise:i}=O0(this),a=r||await i,{fragment:o,topics:s}=await xC(this,e),l={address:a,topics:s,fromBlock:t,toBlock:n},c=ki(this.runner);return Eu(c,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await c.getLogs(l)).map(E=>{let d=o;if(d==null)try{d=this.interface.getEvent(E.topics[0])}catch{}if(d)try{return new bC(E,this.interface,d)}catch(f){return new Yk(E,f)}return new Jl(E,c)})}async on(e,t){const n=await H7(this,"on",e);return n.listeners.push({listener:t,once:!1}),n.start(),this}async once(e,t){const n=await H7(this,"once",e);return n.listeners.push({listener:t,once:!0}),n.start(),this}async emit(e,...t){return await cp(this,e,t,null)}async listenerCount(e){if(e){const r=await j4(this,e);return r?r.listeners.length:0}const{subs:t}=O0(this);let n=0;for(const{listeners:r}of t.values())n+=r.length;return n}async listeners(e){if(e){const r=await j4(this,e);return r?r.listeners.map(({listener:i})=>i):[]}const{subs:t}=O0(this);let n=[];for(const{listeners:r}of t.values())n=n.concat(r.map(({listener:i})=>i));return n}async off(e,t){const n=await j4(this,e);if(!n)return this;if(t){const r=n.listeners.map(({listener:i})=>i).indexOf(t);r>=0&&n.listeners.splice(r,1)}return(t==null||n.listeners.length===0)&&(n.stop(),O0(this).subs.delete(n.tag)),this}async removeAllListeners(e){if(e){const t=await j4(this,e);if(!t)return this;t.stop(),O0(this).subs.delete(t.tag)}else{const{subs:t}=O0(this);for(const{tag:n,stop:r}of t.values())r(),t.delete(n)}return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return await this.off(e,t)}static buildClass(e){class t extends e3{constructor(r,i=null){super(r,e,i)}}return t}static from(e,t,n){return n==null&&(n=null),new this(e,t,n)}};f6u=A2;let Ep=e3;function h1u(){return Ep}let Ao=class extends h1u(){};function M1(u){return u.match(/^ipfs:\/\/ipfs\//i)?u=u.substring(12):u.match(/^ipfs:\/\//i)?u=u.substring(7):Q(!1,"unsupported IPFS format","link",u),`https://gateway.ipfs.io/ipfs/${u}`}class C1u{constructor(e){X(this,"name");Ou(this,{name:e})}connect(e){return this}supportsCoinType(e){return!1}async encodeAddress(e,t){throw new Error("unsupported coin")}async decodeAddress(e,t){throw new Error("unsupported coin")}}const i_=new RegExp("^(ipfs)://(.*)$","i"),G7=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),i_,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];var Fr,zi,Dr,Ua,w2,a_;const io=class io{constructor(e,t,n){tu(this,Dr);X(this,"provider");X(this,"address");X(this,"name");tu(this,Fr,void 0);tu(this,zi,void 0);Ou(this,{provider:e,address:t,name:n}),R(this,Fr,null),R(this,zi,new Ao(t,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],e))}async supportsWildcard(){return _(this,Fr)==null&&R(this,Fr,(async()=>{try{return await _(this,zi).supportsInterface("0x9061b923")}catch(e){if(Et(e,"CALL_EXCEPTION"))return!1;throw R(this,Fr,null),e}})()),await _(this,Fr)}async getAddress(e){if(e==null&&(e=60),e===60)try{const i=await yu(this,Dr,Ua).call(this,"addr(bytes32)");return i==null||i===up?null:i}catch(i){if(Et(i,"CALL_EXCEPTION"))return null;throw i}if(e>=0&&e<2147483648){let i=e+2147483648;const a=await yu(this,Dr,Ua).call(this,"addr(bytes32,uint)",[i]);if(pe(a,20))return Yu(a)}let t=null;for(const i of this.provider.plugins)if(i instanceof C1u&&i.supportsCoinType(e)){t=i;break}if(t==null)return null;const n=await yu(this,Dr,Ua).call(this,"addr(bytes32,uint)",[e]);if(n==null||n==="0x")return null;const r=await t.decodeAddress(e,n);if(r!=null)return r;Eu(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${e})`,info:{coinType:e,data:n}})}async getText(e){const t=await yu(this,Dr,Ua).call(this,"text(bytes32,string)",[e]);return t==null||t==="0x"?null:t}async getContentHash(){const e=await yu(this,Dr,Ua).call(this,"contenthash(bytes32)");if(e==null||e==="0x")return null;const t=e.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const r=t[1]==="e3010170"?"ipfs":"ipns",i=parseInt(t[4],16);if(t[5].length===i*2)return`${r}://${tdu("0x"+t[2])}`}const n=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&n[1].length===64)return`bzz://${n[1]}`;Eu(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:e}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const e=[{type:"name",value:this.name}];try{const t=await this.getText("avatar");if(t==null)return e.push({type:"!avatar",value:""}),{url:null,linkage:e};e.push({type:"avatar",value:t});for(let n=0;n{if(!Array.isArray(e))throw new Error("not an array");return e.map(t=>u(t))}}function Yl(u,e){return t=>{const n={};for(const r in u){let i=r;if(e&&r in e&&!(i in t)){for(const a of e[r])if(a in t){i=a;break}}try{const a=u[r](t[i]);a!==void 0&&(n[r]=a)}catch(a){const o=a instanceof Error?a.message:"not-an-error";Eu(!1,`invalid value for value.${r} (${o})`,"BAD_DATA",{value:t})}}return n}}function m1u(u){switch(u){case!0:case"true":return!0;case!1:case"false":return!1}Q(!1,`invalid boolean; ${JSON.stringify(u)}`,"value",u)}function Ss(u){return Q(pe(u,!0),"invalid data","value",u),u}function dt(u){return Q(pe(u,32),"invalid hash","value",u),u}const g1u=Yl({address:Yu,blockHash:dt,blockNumber:Hu,data:Ss,index:Hu,removed:le(m1u,!1),topics:kC(dt),transactionHash:dt,transactionIndex:Hu},{index:["logIndex"]});function A1u(u){return g1u(u)}const y1u=Yl({hash:le(dt),parentHash:dt,number:Hu,timestamp:Hu,nonce:le(Ss),difficulty:Su,gasLimit:Su,gasUsed:Su,miner:le(Yu),extraData:Ss,baseFeePerGas:le(Su)});function B1u(u){const e=y1u(u);return e.transactions=u.transactions.map(t=>typeof t=="string"?t:o_(t)),e}const v1u=Yl({transactionIndex:Hu,blockNumber:Hu,transactionHash:dt,address:Yu,topics:kC(dt),data:Ss,index:Hu,blockHash:dt},{index:["logIndex"]});function F1u(u){return v1u(u)}const D1u=Yl({to:le(Yu,null),from:le(Yu,null),contractAddress:le(Yu,null),index:Hu,root:le(ku),gasUsed:Su,logsBloom:le(Ss),blockHash:dt,hash:dt,logs:kC(F1u),blockNumber:Hu,cumulativeGasUsed:Su,effectiveGasPrice:le(Su),status:le(Hu),type:le(Hu,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function b1u(u){return D1u(u)}function o_(u){u.to&&Su(u.to)===K7&&(u.to="0x0000000000000000000000000000000000000000");const e=Yl({hash:dt,type:t=>t==="0x"||t==null?0:Hu(t),accessList:le(Fa,null),blockHash:le(dt,null),blockNumber:le(Hu,null),transactionIndex:le(Hu,null),from:Yu,gasPrice:le(Su),maxPriorityFeePerGas:le(Su),maxFeePerGas:le(Su),gasLimit:Su,to:le(Yu,null),value:Su,nonce:Hu,data:Ss,creates:le(Yu,null),chainId:le(Su,null)},{data:["input"],gasLimit:["gas"]})(u);if(e.to==null&&e.creates==null&&(e.creates=Ddu(e)),(u.type===1||u.type===2)&&u.accessList==null&&(e.accessList=[]),u.signature?e.signature=Mt.from(u.signature):e.signature=Mt.from(u),e.chainId==null){const t=e.signature.legacyChainId;t!=null&&(e.chainId=t)}return e.blockHash&&Su(e.blockHash)===K7&&(e.blockHash=null),e}const w1u="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class Xl{constructor(e){X(this,"name");Ou(this,{name:e})}clone(){return new Xl(this.name)}}class E9 extends Xl{constructor(t,n){t==null&&(t=0);super(`org.ethers.network.plugins.GasCost#${t||0}`);X(this,"effectiveBlock");X(this,"txBase");X(this,"txCreate");X(this,"txDataZero");X(this,"txDataNonzero");X(this,"txAccessListStorageKey");X(this,"txAccessListAddress");const r={effectiveBlock:t};function i(a,o){let s=(n||{})[a];s==null&&(s=o),Q(typeof s=="number",`invalud value for ${a}`,"costs",n),r[a]=s}i("txBase",21e3),i("txCreate",32e3),i("txDataZero",4),i("txDataNonzero",16),i("txAccessListStorageKey",1900),i("txAccessListAddress",2400),Ou(this,r)}clone(){return new E9(this.effectiveBlock,this)}}class d9 extends Xl{constructor(t,n){super("org.ethers.plugins.network.Ens");X(this,"address");X(this,"targetNetwork");Ou(this,{address:t||w1u,targetNetwork:n??1})}clone(){return new d9(this.address,this.targetNetwork)}}var ol,sl;class s_ extends Xl{constructor(t,n){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin");tu(this,ol,void 0);tu(this,sl,void 0);R(this,ol,t),R(this,sl,n)}get url(){return _(this,ol)}get processFunc(){return _(this,sl)}clone(){return this}}ol=new WeakMap,sl=new WeakMap;const U1=new Map;var Go,Ko,br;const ao=class ao{constructor(e,t){tu(this,Go,void 0);tu(this,Ko,void 0);tu(this,br,void 0);R(this,Go,e),R(this,Ko,Su(t)),R(this,br,new Map)}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return _(this,Go)}set name(e){R(this,Go,e)}get chainId(){return _(this,Ko)}set chainId(e){R(this,Ko,Su(e,"chainId"))}matches(e){if(e==null)return!1;if(typeof e=="string"){try{return this.chainId===Su(e)}catch{}return this.name===e}if(typeof e=="number"||typeof e=="bigint"){try{return this.chainId===Su(e)}catch{}return!1}if(typeof e=="object"){if(e.chainId!=null){try{return this.chainId===Su(e.chainId)}catch{}return!1}return e.name!=null?this.name===e.name:!1}return!1}get plugins(){return Array.from(_(this,br).values())}attachPlugin(e){if(_(this,br).get(e.name))throw new Error(`cannot replace existing plugin: ${e.name} `);return _(this,br).set(e.name,e.clone()),this}getPlugin(e){return _(this,br).get(e)||null}getPlugins(e){return this.plugins.filter(t=>t.name.split("#")[0]===e)}clone(){const e=new ao(this.name,this.chainId);return this.plugins.forEach(t=>{e.attachPlugin(t.clone())}),e}computeIntrinsicGas(e){const t=this.getPlugin("org.ethers.plugins.network.GasCost")||new E9;let n=t.txBase;if(e.to==null&&(n+=t.txCreate),e.data)for(let r=2;r9){let r=BigInt(n[1].substring(0,9));n[1].substring(9).match(/^0+$/)||r++,n[1]=r.toString()}return BigInt(n[0]+n[1])}function V7(u){return new s_(u,async(e,t,n)=>{n.setHeader("User-Agent","ethers");let r;try{const[i,a]=await Promise.all([n.send(),e()]);r=i;const o=r.bodyJson.standard;return{gasPrice:a.gasPrice,maxFeePerGas:Q7(o.maxFee,9),maxPriorityFeePerGas:Q7(o.maxPriorityFee,9)}}catch(i){Eu(!1,`error encountered with polygon gas station (${JSON.stringify(n.url)})`,"SERVER_ERROR",{request:n,response:r,error:i})}})}function x1u(u){return new s_("data:",async(e,t,n)=>{const r=await e();if(r.maxFeePerGas==null||r.maxPriorityFeePerGas==null)return r;const i=r.maxFeePerGas-r.maxPriorityFeePerGas;return{gasPrice:r.gasPrice,maxFeePerGas:i+u,maxPriorityFeePerGas:u}})}let J7=!1;function k1u(){if(J7)return;J7=!0;function u(e,t,n){const r=function(){const i=new Un(e,t);return n.ensNetwork!=null&&i.attachPlugin(new d9(null,n.ensNetwork)),i.attachPlugin(new E9),(n.plugins||[]).forEach(a=>{i.attachPlugin(a)}),i};Un.register(e,r),Un.register(t,r),n.altNames&&n.altNames.forEach(i=>{Un.register(i,r)})}u("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),u("ropsten",3,{ensNetwork:3}),u("rinkeby",4,{ensNetwork:4}),u("goerli",5,{ensNetwork:5}),u("kovan",42,{ensNetwork:42}),u("sepolia",11155111,{}),u("classic",61,{}),u("classicKotti",6,{}),u("arbitrum",42161,{ensNetwork:1}),u("arbitrum-goerli",421613,{}),u("bnb",56,{ensNetwork:1}),u("bnbt",97,{}),u("linea",59144,{ensNetwork:1}),u("linea-goerli",59140,{}),u("matic",137,{ensNetwork:1,plugins:[V7("https://gasstation.polygon.technology/v2")]}),u("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[V7("https://gasstation-testnet.polygon.technology/v2")]}),u("optimism",10,{ensNetwork:1,plugins:[x1u(BigInt("1000000"))]}),u("optimism-goerli",420,{}),u("xdai",100,{ensNetwork:1})}function dp(u){return JSON.parse(JSON.stringify(u))}var kn,et,wr,Zt,Qo,oE;class _1u{constructor(e){tu(this,Qo);tu(this,kn,void 0);tu(this,et,void 0);tu(this,wr,void 0);tu(this,Zt,void 0);R(this,kn,e),R(this,et,null),R(this,wr,4e3),R(this,Zt,-2)}get pollingInterval(){return _(this,wr)}set pollingInterval(e){R(this,wr,e)}start(){_(this,et)||(R(this,et,_(this,kn)._setTimeout(yu(this,Qo,oE).bind(this),_(this,wr))),yu(this,Qo,oE).call(this))}stop(){_(this,et)&&(_(this,kn)._clearTimeout(_(this,et)),R(this,et,null))}pause(e){this.stop(),e&&R(this,Zt,-2)}resume(){this.start()}}kn=new WeakMap,et=new WeakMap,wr=new WeakMap,Zt=new WeakMap,Qo=new WeakSet,oE=async function(){try{const e=await _(this,kn).getBlockNumber();if(_(this,Zt)===-2){R(this,Zt,e);return}if(e!==_(this,Zt)){for(let t=_(this,Zt)+1;t<=e;t++){if(_(this,et)==null)return;await _(this,kn).emit("block",t)}R(this,Zt,e)}}catch{}_(this,et)!=null&&R(this,et,_(this,kn)._setTimeout(yu(this,Qo,oE).bind(this),_(this,wr)))};var Mi,Ui,xr;class l_{constructor(e){tu(this,Mi,void 0);tu(this,Ui,void 0);tu(this,xr,void 0);R(this,Mi,e),R(this,xr,!1),R(this,Ui,t=>{this._poll(t,_(this,Mi))})}async _poll(e,t){throw new Error("sub-classes must override this")}start(){_(this,xr)||(R(this,xr,!0),_(this,Ui).call(this,-2),_(this,Mi).on("block",_(this,Ui)))}stop(){_(this,xr)&&(R(this,xr,!1),_(this,Mi).off("block",_(this,Ui)))}pause(e){this.stop()}resume(){this.start()}}Mi=new WeakMap,Ui=new WeakMap,xr=new WeakMap;var x2;class S1u extends l_{constructor(t,n){super(t);tu(this,x2,void 0);R(this,x2,dp(n))}async _poll(t,n){throw new Error("@TODO")}}x2=new WeakMap;var Vo;class P1u extends l_{constructor(t,n){super(t);tu(this,Vo,void 0);R(this,Vo,n)}async _poll(t,n){const r=await n.getTransactionReceipt(_(this,Vo));r&&n.emit(_(this,Vo),r)}}Vo=new WeakMap;var _n,Jo,Yo,kr,tt,k2,c_;class _C{constructor(e,t){tu(this,k2);tu(this,_n,void 0);tu(this,Jo,void 0);tu(this,Yo,void 0);tu(this,kr,void 0);tu(this,tt,void 0);R(this,_n,e),R(this,Jo,dp(t)),R(this,Yo,yu(this,k2,c_).bind(this)),R(this,kr,!1),R(this,tt,-2)}start(){_(this,kr)||(R(this,kr,!0),_(this,tt)===-2&&_(this,_n).getBlockNumber().then(e=>{R(this,tt,e)}),_(this,_n).on("block",_(this,Yo)))}stop(){_(this,kr)&&(R(this,kr,!1),_(this,_n).off("block",_(this,Yo)))}pause(e){this.stop(),e&&R(this,tt,-2)}resume(){this.start()}}_n=new WeakMap,Jo=new WeakMap,Yo=new WeakMap,kr=new WeakMap,tt=new WeakMap,k2=new WeakSet,c_=async function(e){if(_(this,tt)===-2)return;const t=dp(_(this,Jo));t.fromBlock=_(this,tt)+1,t.toBlock=e;const n=await _(this,_n).getLogs(t);if(n.length===0){_(this,tt){if(n==null)return"null";if(typeof n=="bigint")return`bigint:${n.toString()}`;if(typeof n=="string")return n.toLowerCase();if(typeof n=="object"&&!Array.isArray(n)){const r=Object.keys(n);return r.sort(),r.reduce((i,a)=>(i[a]=n[a],i),{})}return n})}class E_{constructor(e){X(this,"name");Ou(this,{name:e})}start(){}stop(){}pause(e){}resume(){}}function O1u(u){return JSON.parse(JSON.stringify(u))}function fp(u){return u=Array.from(new Set(u).values()),u.sort(),u}async function L1(u,e){if(u==null)throw new Error("invalid event");if(Array.isArray(u)&&(u={topics:u}),typeof u=="string")switch(u){case"block":case"pending":case"debug":case"error":case"network":return{type:u,tag:u}}if(pe(u,32)){const t=u.toLowerCase();return{type:"transaction",tag:sE("tx",{hash:t}),hash:t}}if(u.orphan){const t=u;return{type:"orphan",tag:sE("orphan",t),filter:O1u(t)}}if(u.address||u.topics){const t=u,n={topics:(t.topics||[]).map(r=>r==null?null:Array.isArray(r)?fp(r.map(i=>i.toLowerCase())):r.toLowerCase())};if(t.address){const r=[],i=[],a=o=>{pe(o)?r.push(o):i.push((async()=>{r.push(await c0(o,e))})())};Array.isArray(t.address)?t.address.forEach(a):a(t.address),i.length&&await Promise.all(i),n.address=fp(r.map(o=>o.toLowerCase()))}return{filter:n,tag:sE("event",n),type:"event"}}Q(!1,"unknown ProviderEvent","event",u)}function $1(){return new Date().getTime()}const N1u={cacheTimeout:250,pollingInterval:4e3};var Je,_r,Ye,Xo,j0,Li,Sr,Sn,ll,nt,Zo,us,C0,J0,cl,pp,El,hp,$i,z4,dl,Cp,Wi,M4,es,lE;class R1u{constructor(e,t){tu(this,C0);tu(this,cl);tu(this,El);tu(this,$i);tu(this,dl);tu(this,Wi);tu(this,es);tu(this,Je,void 0);tu(this,_r,void 0);tu(this,Ye,void 0);tu(this,Xo,void 0);tu(this,j0,void 0);tu(this,Li,void 0);tu(this,Sr,void 0);tu(this,Sn,void 0);tu(this,ll,void 0);tu(this,nt,void 0);tu(this,Zo,void 0);tu(this,us,void 0);if(R(this,us,Object.assign({},N1u,t||{})),e==="any")R(this,Li,!0),R(this,j0,null);else if(e){const n=Un.from(e);R(this,Li,!1),R(this,j0,Promise.resolve(n)),setTimeout(()=>{this.emit("network",n,null)},0)}else R(this,Li,!1),R(this,j0,null);R(this,Sn,-1),R(this,Sr,new Map),R(this,Je,new Map),R(this,_r,new Map),R(this,Ye,null),R(this,Xo,!1),R(this,ll,1),R(this,nt,new Map),R(this,Zo,!1)}get pollingInterval(){return _(this,us).pollingInterval}get provider(){return this}get plugins(){return Array.from(_(this,_r).values())}attachPlugin(e){if(_(this,_r).get(e.name))throw new Error(`cannot replace existing plugin: ${e.name} `);return _(this,_r).set(e.name,e.connect(this)),this}getPlugin(e){return _(this,_r).get(e)||null}get disableCcipRead(){return _(this,Zo)}set disableCcipRead(e){R(this,Zo,!!e)}async ccipReadFetch(e,t,n){if(this.disableCcipRead||n.length===0||e.to==null)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),a=[];for(let o=0;o=500,`response not found during CCIP fetch: ${E}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:e,info:{url:s,errorMessage:E}}),a.push(E)}Eu(!1,`error encountered during CCIP fetch: ${a.map(o=>JSON.stringify(o)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:e,info:{urls:n,errorMessages:a}})}_wrapBlock(e,t){return new t1u(B1u(e),this)}_wrapLog(e,t){return new Jl(A1u(e),this)}_wrapTransactionReceipt(e,t){return new Qk(b1u(e),this)}_wrapTransactionResponse(e,t){return new X3(o_(e),this)}_detectNetwork(){Eu(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(e){Eu(!1,`unsupported method: ${e.method}`,"UNSUPPORTED_OPERATION",{operation:e.method,info:e})}async getBlockNumber(){const e=Hu(await yu(this,C0,J0).call(this,{method:"getBlockNumber"}),"%response");return _(this,Sn)>=0&&R(this,Sn,e),e}_getAddress(e){return c0(e,this)}_getBlockTag(e){if(e==null)return"latest";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if(pe(e))return pe(e,32)?e:to(e);if(typeof e=="bigint"&&(e=Hu(e,"blockTag")),typeof e=="number")return e>=0?to(e):_(this,Sn)>=0?to(_(this,Sn)+e):this.getBlockNumber().then(t=>to(t+e));Q(!1,"invalid blockTag","blockTag",e)}_getFilter(e){const t=(e.topics||[]).map(s=>s==null?null:Array.isArray(s)?fp(s.map(l=>l.toLowerCase())):s.toLowerCase()),n="blockHash"in e?e.blockHash:void 0,r=(s,l,c)=>{let E;switch(s.length){case 0:break;case 1:E=s[0];break;default:s.sort(),E=s}if(n&&(l!=null||c!=null))throw new Error("invalid filter");const d={};return E&&(d.address=E),t.length&&(d.topics=t),l&&(d.fromBlock=l),c&&(d.toBlock=c),n&&(d.blockHash=n),d};let i=[];if(e.address)if(Array.isArray(e.address))for(const s of e.address)i.push(this._getAddress(s));else i.push(this._getAddress(e.address));let a;"fromBlock"in e&&(a=this._getBlockTag(e.fromBlock));let o;return"toBlock"in e&&(o=this._getBlockTag(e.toBlock)),i.filter(s=>typeof s!="string").length||a!=null&&typeof a!="string"||o!=null&&typeof o!="string"?Promise.all([Promise.all(i),a,o]).then(s=>r(s[0],s[1],s[2])):r(i,a,o)}_getTransactionRequest(e){const t=g2(e),n=[];if(["to","from"].forEach(r=>{if(t[r]==null)return;const i=c0(t[r],this);Oc(i)?n.push(async function(){t[r]=await i}()):t[r]=i}),t.blockTag!=null){const r=this._getBlockTag(t.blockTag);Oc(r)?n.push(async function(){t.blockTag=await r}()):t.blockTag=r}return n.length?async function(){return await Promise.all(n),t}():t}async getNetwork(){if(_(this,j0)==null){const r=this._detectNetwork().then(i=>(this.emit("network",i,null),i),i=>{throw _(this,j0)===r&&R(this,j0,null),i});return R(this,j0,r),(await r).clone()}const e=_(this,j0),[t,n]=await Promise.all([e,this._detectNetwork()]);return t.chainId!==n.chainId&&(_(this,Li)?(this.emit("network",n,t),_(this,j0)===e&&R(this,j0,Promise.resolve(n))):Eu(!1,`network changed: ${t.chainId} => ${n.chainId} `,"NETWORK_ERROR",{event:"changed"})),t.clone()}async getFeeData(){const e=await this.getNetwork(),t=async()=>{const{_block:r,gasPrice:i}=await a0({_block:yu(this,dl,Cp).call(this,"latest",!1),gasPrice:(async()=>{try{const l=await yu(this,C0,J0).call(this,{method:"getGasPrice"});return Su(l,"%response")}catch{}return null})()});let a=null,o=null;const s=this._wrapBlock(r,e);return s&&s.baseFeePerGas&&(o=BigInt("1000000000"),a=s.baseFeePerGas*T1u+o),new W7(i,a,o)},n=e.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(n){const r=new Yn(n.url),i=await n.processFunc(t,this,r);return new W7(i.gasPrice,i.maxFeePerGas,i.maxPriorityFeePerGas)}return await t()}async estimateGas(e){let t=this._getTransactionRequest(e);return Oc(t)&&(t=await t),Su(await yu(this,C0,J0).call(this,{method:"estimateGas",transaction:t}),"%response")}async call(e){const{tx:t,blockTag:n}=await a0({tx:this._getTransactionRequest(e),blockTag:this._getBlockTag(e.blockTag)});return await yu(this,El,hp).call(this,yu(this,cl,pp).call(this,t,n,e.enableCcipRead?0:-1))}async getBalance(e,t){return Su(await yu(this,$i,z4).call(this,{method:"getBalance"},e,t),"%response")}async getTransactionCount(e,t){return Hu(await yu(this,$i,z4).call(this,{method:"getTransactionCount"},e,t),"%response")}async getCode(e,t){return ku(await yu(this,$i,z4).call(this,{method:"getCode"},e,t))}async getStorage(e,t,n){const r=Su(t,"position");return ku(await yu(this,$i,z4).call(this,{method:"getStorage",position:r},e,n))}async broadcastTransaction(e){const{blockNumber:t,hash:n,network:r}=await a0({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:e}),network:this.getNetwork()}),i=C2.from(e);if(i.hash!==n)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(i,r).replaceableTransaction(t)}async getBlock(e,t){const{network:n,params:r}=await a0({network:this.getNetwork(),params:yu(this,dl,Cp).call(this,e,!!t)});return r==null?null:this._wrapBlock(r,n)}async getTransaction(e){const{network:t,params:n}=await a0({network:this.getNetwork(),params:yu(this,C0,J0).call(this,{method:"getTransaction",hash:e})});return n==null?null:this._wrapTransactionResponse(n,t)}async getTransactionReceipt(e){const{network:t,params:n}=await a0({network:this.getNetwork(),params:yu(this,C0,J0).call(this,{method:"getTransactionReceipt",hash:e})});if(n==null)return null;if(n.gasPrice==null&&n.effectiveGasPrice==null){const r=await yu(this,C0,J0).call(this,{method:"getTransaction",hash:e});if(r==null)throw new Error("report this; could not find tx or effectiveGasPrice");n.effectiveGasPrice=r.gasPrice}return this._wrapTransactionReceipt(n,t)}async getTransactionResult(e){const{result:t}=await a0({network:this.getNetwork(),result:yu(this,C0,J0).call(this,{method:"getTransactionResult",hash:e})});return t==null?null:ku(t)}async getLogs(e){let t=this._getFilter(e);Oc(t)&&(t=await t);const{network:n,params:r}=await a0({network:this.getNetwork(),params:yu(this,C0,J0).call(this,{method:"getLogs",filter:t})});return r.map(i=>this._wrapLog(i,n))}_getProvider(e){Eu(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(e){return await y2.fromName(this,e)}async getAvatar(e){const t=await this.getResolver(e);return t?await t.getAvatar():null}async resolveName(e){const t=await this.getResolver(e);return t?await t.getAddress():null}async lookupAddress(e){e=Yu(e);const t=ap(e.substring(2).toLowerCase()+".addr.reverse");try{const n=await y2.getEnsAddress(this),i=await new Ao(n,["function resolver(bytes32) view returns (address)"],this).resolver(t);if(i==null||i===up)return null;const o=await new Ao(i,["function name(bytes32) view returns (string)"],this).name(t);return await this.resolveName(o)!==e?null:o}catch(n){if(Et(n,"BAD_DATA")&&n.value==="0x"||Et(n,"CALL_EXCEPTION"))return null;throw n}return null}async waitForTransaction(e,t,n){const r=t??1;return r===0?this.getTransactionReceipt(e):new Promise(async(i,a)=>{let o=null;const s=async l=>{try{const c=await this.getTransactionReceipt(e);if(c!=null&&l-c.blockNumber+1>=r){i(c),o&&(clearTimeout(o),o=null);return}}catch(c){console.log("EEE",c)}this.once("block",s)};n!=null&&(o=setTimeout(()=>{o!=null&&(o=null,this.off("block",s),a(be("timeout","TIMEOUT",{reason:"timeout"})))},n)),s(await this.getBlockNumber())})}async waitForBlock(e){Eu(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(e){const t=_(this,nt).get(e);t&&(t.timer&&clearTimeout(t.timer),_(this,nt).delete(e))}_setTimeout(e,t){t==null&&(t=0);const n=i4(this,ll)._++,r=()=>{_(this,nt).delete(n),e()};if(this.paused)_(this,nt).set(n,{timer:null,func:r,time:t});else{const i=setTimeout(r,t);_(this,nt).set(n,{timer:i,func:r,time:$1()})}return n}_forEachSubscriber(e){for(const t of _(this,Je).values())e(t.subscriber)}_getSubscriber(e){switch(e.type){case"debug":case"error":case"network":return new E_(e.type);case"block":{const t=new _1u(this);return t.pollingInterval=this.pollingInterval,t}case"event":return new _C(this,e.filter);case"transaction":return new P1u(this,e.hash);case"orphan":return new S1u(this,e.filter)}throw new Error(`unsupported event: ${e.type}`)}_recoverSubscriber(e,t){for(const n of _(this,Je).values())if(n.subscriber===e){n.started&&n.subscriber.stop(),n.subscriber=t,n.started&&t.start(),_(this,Ye)!=null&&t.pause(_(this,Ye));break}}async on(e,t){const n=await yu(this,es,lE).call(this,e);return n.listeners.push({listener:t,once:!1}),n.started||(n.subscriber.start(),n.started=!0,_(this,Ye)!=null&&n.subscriber.pause(_(this,Ye))),this}async once(e,t){const n=await yu(this,es,lE).call(this,e);return n.listeners.push({listener:t,once:!0}),n.started||(n.subscriber.start(),n.started=!0,_(this,Ye)!=null&&n.subscriber.pause(_(this,Ye))),this}async emit(e,...t){const n=await yu(this,Wi,M4).call(this,e,t);if(!n||n.listeners.length===0)return!1;const r=n.listeners.length;return n.listeners=n.listeners.filter(({listener:i,once:a})=>{const o=new Qx(this,a?null:i,e);try{i.call(this,...t,o)}catch{}return!a}),n.listeners.length===0&&(n.started&&n.subscriber.stop(),_(this,Je).delete(n.tag)),r>0}async listenerCount(e){if(e){const n=await yu(this,Wi,M4).call(this,e);return n?n.listeners.length:0}let t=0;for(const{listeners:n}of _(this,Je).values())t+=n.length;return t}async listeners(e){if(e){const n=await yu(this,Wi,M4).call(this,e);return n?n.listeners.map(({listener:r})=>r):[]}let t=[];for(const{listeners:n}of _(this,Je).values())t=t.concat(n.map(({listener:r})=>r));return t}async off(e,t){const n=await yu(this,Wi,M4).call(this,e);if(!n)return this;if(t){const r=n.listeners.map(({listener:i})=>i).indexOf(t);r>=0&&n.listeners.splice(r,1)}return(!t||n.listeners.length===0)&&(n.started&&n.subscriber.stop(),_(this,Je).delete(n.tag)),this}async removeAllListeners(e){if(e){const{tag:t,started:n,subscriber:r}=await yu(this,es,lE).call(this,e);n&&r.stop(),_(this,Je).delete(t)}else for(const[t,{started:n,subscriber:r}]of _(this,Je))n&&r.stop(),_(this,Je).delete(t);return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return this.off(e,t)}get destroyed(){return _(this,Xo)}destroy(){this.removeAllListeners();for(const e of _(this,nt).keys())this._clearTimeout(e);R(this,Xo,!0)}get paused(){return _(this,Ye)!=null}set paused(e){!!e!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(e){if(R(this,Sn,-1),_(this,Ye)!=null){if(_(this,Ye)==!!e)return;Eu(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber(t=>t.pause(e)),R(this,Ye,!!e);for(const t of _(this,nt).values())t.timer&&clearTimeout(t.timer),t.time=$1()-t.time}resume(){if(_(this,Ye)!=null){this._forEachSubscriber(e=>e.resume()),R(this,Ye,null);for(const e of _(this,nt).values()){let t=e.time;t<0&&(t=0),e.time=$1(),setTimeout(e.func,t)}}}}Je=new WeakMap,_r=new WeakMap,Ye=new WeakMap,Xo=new WeakMap,j0=new WeakMap,Li=new WeakMap,Sr=new WeakMap,Sn=new WeakMap,ll=new WeakMap,nt=new WeakMap,Zo=new WeakMap,us=new WeakMap,C0=new WeakSet,J0=async function(e){const t=_(this,us).cacheTimeout;if(t<0)return await this._perform(e);const n=sE(e.method,e);let r=_(this,Sr).get(n);return r||(r=this._perform(e),_(this,Sr).set(n,r),setTimeout(()=>{_(this,Sr).get(n)===r&&_(this,Sr).delete(n)},t)),await r},cl=new WeakSet,pp=async function(e,t,n){Eu(n=0&&t==="latest"&&r.to!=null&&me(i.data,0,4)==="0x556f1830"){const a=i.data,o=await c0(r.to,this);let s;try{s=L1u(me(i.data,4))}catch(E){Eu(!1,E.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:r,info:{data:a}})}Eu(s.sender.toLowerCase()===o.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:a,reason:"OffchainLookup",transaction:r,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:s.errorArgs}});const l=await this.ccipReadFetch(r,s.calldata,s.urls);Eu(l!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:r,info:{data:i.data,errorArgs:s.errorArgs}});const c={to:o,data:Te([s.selector,U1u([l,s.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:c});try{const E=await yu(this,cl,pp).call(this,c,t,n+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},c),result:E}),E}catch(E){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},c),error:E}),E}}throw i}},El=new WeakSet,hp=async function(e){const{value:t}=await a0({network:this.getNetwork(),value:e});return t},$i=new WeakSet,z4=async function(e,t,n){let r=this._getAddress(t),i=this._getBlockTag(n);return(typeof r!="string"||typeof i!="string")&&([r,i]=await Promise.all([r,i])),await yu(this,El,hp).call(this,yu(this,C0,J0).call(this,Object.assign(e,{address:r,blockTag:i})))},dl=new WeakSet,Cp=async function(e,t){if(pe(e,32))return await yu(this,C0,J0).call(this,{method:"getBlock",blockHash:e,includeTransactions:t});let n=this._getBlockTag(e);return typeof n!="string"&&(n=await n),await yu(this,C0,J0).call(this,{method:"getBlock",blockTag:n,includeTransactions:t})},Wi=new WeakSet,M4=async function(e,t){let n=await L1(e,this);return n.type==="event"&&t&&t.length>0&&t[0].removed===!0&&(n=await L1({orphan:"drop-log",log:t[0]},this)),_(this,Je).get(n.tag)||null},es=new WeakSet,lE=async function(e){const t=await L1(e,this),n=t.tag;let r=_(this,Je).get(n);return r||(r={subscriber:this._getSubscriber(t),tag:n,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},_(this,Je).set(n,r)),r};function j1u(u,e){try{const t=mp(u,e);if(t)return gC(t)}catch{}return null}function mp(u,e){if(u==="0x")return null;try{const t=Hu(me(u,e,e+32)),n=Hu(me(u,t,t+32));return me(u,t+32,t+32+n)}catch{}return null}function Y7(u){const e=L0(u);if(e.length>32)throw new Error("internal; should not happen");const t=new Uint8Array(32);return t.set(e,32-e.length),t}function z1u(u){if(u.length%32===0)return u;const e=new Uint8Array(Math.ceil(u.length/32)*32);return e.set(u),e}const M1u=new Uint8Array([]);function U1u(u){const e=[];let t=0;for(let n=0;n=5*32,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const t=me(u,0,32);Eu(me(t,0,12)===me(X7,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),e.sender=me(t,12);try{const n=[],r=Hu(me(u,32,64)),i=Hu(me(u,r,r+32)),a=me(u,r+32);for(let o=0;oe[n]),e}function Pa(u,e){if(u.provider)return u.provider;Eu(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:e})}async function Z7(u,e){let t=g2(e);if(t.to!=null&&(t.to=c0(t.to,u)),t.from!=null){const n=t.from;t.from=Promise.all([u.getAddress(),c0(n,u)]).then(([r,i])=>(Q(r.toLowerCase()===i.toLowerCase(),"transaction from mismatch","tx.from",i),r))}else t.from=u.getAddress();return await a0(t)}class $1u{constructor(e){X(this,"provider");Ou(this,{provider:e||null})}async getNonce(e){return Pa(this,"getTransactionCount").getTransactionCount(await this.getAddress(),e)}async populateCall(e){return await Z7(this,e)}async populateTransaction(e){const t=Pa(this,"populateTransaction"),n=await Z7(this,e);n.nonce==null&&(n.nonce=await this.getNonce("pending")),n.gasLimit==null&&(n.gasLimit=await this.estimateGas(n));const r=await this.provider.getNetwork();if(n.chainId!=null){const a=Su(n.chainId);Q(a===r.chainId,"transaction chainId mismatch","tx.chainId",e.chainId)}else n.chainId=r.chainId;const i=n.maxFeePerGas!=null||n.maxPriorityFeePerGas!=null;if(n.gasPrice!=null&&(n.type===2||i)?Q(!1,"eip-1559 transaction do not support gasPrice","tx",e):(n.type===0||n.type===1)&&i&&Q(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",e),(n.type===2||n.type==null)&&n.maxFeePerGas!=null&&n.maxPriorityFeePerGas!=null)n.type=2;else if(n.type===0||n.type===1){const a=await t.getFeeData();Eu(a.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),n.gasPrice==null&&(n.gasPrice=a.gasPrice)}else{const a=await t.getFeeData();if(n.type==null)if(a.maxFeePerGas!=null&&a.maxPriorityFeePerGas!=null)if(n.type=2,n.gasPrice!=null){const o=n.gasPrice;delete n.gasPrice,n.maxFeePerGas=o,n.maxPriorityFeePerGas=o}else n.maxFeePerGas==null&&(n.maxFeePerGas=a.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=a.maxPriorityFeePerGas);else a.gasPrice!=null?(Eu(!i,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),n.gasPrice==null&&(n.gasPrice=a.gasPrice),n.type=0):Eu(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else n.type===2&&(n.maxFeePerGas==null&&(n.maxFeePerGas=a.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=a.maxPriorityFeePerGas))}return await a0(n)}async estimateGas(e){return Pa(this,"estimateGas").estimateGas(await this.populateCall(e))}async call(e){return Pa(this,"call").call(await this.populateCall(e))}async resolveName(e){return await Pa(this,"resolveName").resolveName(e)}async sendTransaction(e){const t=Pa(this,"sendTransaction"),n=await this.populateTransaction(e);delete n.from;const r=C2.from(n);return await t.broadcastTransaction(await this.signTransaction(r))}}function W1u(u){return JSON.parse(JSON.stringify(u))}var m0,un,qi,Pr,Hi,ts,fl,gp,pl,Ap;class d_{constructor(e){tu(this,fl);tu(this,pl);tu(this,m0,void 0);tu(this,un,void 0);tu(this,qi,void 0);tu(this,Pr,void 0);tu(this,Hi,void 0);tu(this,ts,void 0);R(this,m0,e),R(this,un,null),R(this,qi,yu(this,fl,gp).bind(this)),R(this,Pr,!1),R(this,Hi,null),R(this,ts,!1)}_subscribe(e){throw new Error("subclasses must override this")}_emitResults(e,t){throw new Error("subclasses must override this")}_recover(e){throw new Error("subclasses must override this")}start(){_(this,Pr)||(R(this,Pr,!0),yu(this,fl,gp).call(this,-2))}stop(){_(this,Pr)&&(R(this,Pr,!1),R(this,ts,!0),yu(this,pl,Ap).call(this),_(this,m0).off("block",_(this,qi)))}pause(e){e&&yu(this,pl,Ap).call(this),_(this,m0).off("block",_(this,qi))}resume(){this.start()}}m0=new WeakMap,un=new WeakMap,qi=new WeakMap,Pr=new WeakMap,Hi=new WeakMap,ts=new WeakMap,fl=new WeakSet,gp=async function(e){try{_(this,un)==null&&R(this,un,this._subscribe(_(this,m0)));let t=null;try{t=await _(this,un)}catch(i){if(!Et(i,"UNSUPPORTED_OPERATION")||i.operation!=="eth_newFilter")throw i}if(t==null){R(this,un,null),_(this,m0)._recoverSubscriber(this,this._recover(_(this,m0)));return}const n=await _(this,m0).getNetwork();if(_(this,Hi)||R(this,Hi,n),_(this,Hi).chainId!==n.chainId)throw new Error("chaid changed");if(_(this,ts))return;const r=await _(this,m0).send("eth_getFilterChanges",[t]);await this._emitResults(_(this,m0),r)}catch(t){console.log("@TODO",t)}_(this,m0).once("block",_(this,qi))},pl=new WeakSet,Ap=function(){const e=_(this,un);e&&(R(this,un,null),e.then(t=>{_(this,m0).send("eth_uninstallFilter",[t])}))};var Gi;class q1u extends d_{constructor(t,n){super(t);tu(this,Gi,void 0);R(this,Gi,W1u(n))}_recover(t){return new _C(t,_(this,Gi))}async _subscribe(t){return await t.send("eth_newFilter",[_(this,Gi)])}async _emitResults(t,n){for(const r of n)t.emit(_(this,Gi),t._wrapLog(r,t._network))}}Gi=new WeakMap;class H1u extends d_{async _subscribe(e){return await e.send("eth_newPendingTransactionFilter",[])}async _emitResults(e,t){for(const n of t)e.emit("pending",n)}}const G1u="bigint,boolean,function,number,string,symbol".split(/,/g);function cE(u){if(u==null||G1u.indexOf(typeof u)>=0||typeof u.getAddress=="function")return u;if(Array.isArray(u))return u.map(cE);if(typeof u=="object")return Object.keys(u).reduce((e,t)=>(e[t]=u[t],e),{});throw new Error(`should not happen: ${u} (${typeof u})`)}function K1u(u){return new Promise(e=>{setTimeout(e,u)})}function Ta(u){return u&&u.toLowerCase()}function uy(u){return u&&typeof u.pollingInterval=="number"}const Q1u={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class W1 extends $1u{constructor(t,n){super(t);X(this,"address");n=Yu(n),Ou(this,{address:n})}connect(t){Eu(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(t){return await this.populateCall(t)}async sendUncheckedTransaction(t){const n=cE(t),r=[];if(n.from){const a=n.from;r.push((async()=>{const o=await c0(a,this.provider);Q(o!=null&&o.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),n.from=o})())}else n.from=this.address;if(n.gasLimit==null&&r.push((async()=>{n.gasLimit=await this.provider.estimateGas({...n,from:this.address})})()),n.to!=null){const a=n.to;r.push((async()=>{n.to=await c0(a,this.provider)})())}r.length&&await Promise.all(r);const i=this.provider.getRpcTransaction(n);return this.provider.send("eth_sendTransaction",[i])}async sendTransaction(t){const n=await this.provider.getBlockNumber(),r=await this.sendUncheckedTransaction(t);return await new Promise((i,a)=>{const o=[1e3,100],s=async()=>{const l=await this.provider.getTransaction(r);if(l!=null){i(l.replaceableTransaction(n));return}this.provider._setTimeout(()=>{s()},o.pop()||4e3)};s()})}async signTransaction(t){const n=cE(t);if(n.from){const i=await c0(n.from,this.provider);Q(i!=null&&i.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),n.from=i}else n.from=this.address;const r=this.provider.getRpcTransaction(n);return await this.provider.send("eth_signTransaction",[r])}async signMessage(t){const n=typeof t=="string"?Wn(t):t;return await this.provider.send("personal_sign",[ku(n),this.address.toLowerCase()])}async signTypedData(t,n,r){const i=cE(r),a=await m2.resolveNames(t,n,i,async o=>{const s=await c0(o);return Q(s!=null,"TypedData does not support null address","value",o),s});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(m2.getPayload(a.domain,n,a.value))])}async unlock(t){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),t,null])}async _legacySignMessage(t){const n=typeof t=="string"?Wn(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),ku(n)])}}var Ki,ns,Pn,en,kt,Tn,hl,yp;class V1u extends R1u{constructor(t,n){super(t,n);tu(this,hl);tu(this,Ki,void 0);tu(this,ns,void 0);tu(this,Pn,void 0);tu(this,en,void 0);tu(this,kt,void 0);tu(this,Tn,void 0);R(this,ns,1),R(this,Ki,Object.assign({},Q1u,n||{})),R(this,Pn,[]),R(this,en,null),R(this,Tn,null);{let i=null;const a=new Promise(o=>{i=o});R(this,kt,{promise:a,resolve:i})}const r=this._getOption("staticNetwork");r&&(Q(t==null||r.matches(t),"staticNetwork MUST match network object","options",n),R(this,Tn,r))}_getOption(t){return _(this,Ki)[t]}get _network(){return Eu(_(this,Tn),"network is not available yet","NETWORK_ERROR"),_(this,Tn)}async _perform(t){if(t.method==="call"||t.method==="estimateGas"){let r=t.transaction;if(r&&r.type!=null&&Su(r.type)&&r.maxFeePerGas==null&&r.maxPriorityFeePerGas==null){const i=await this.getFeeData();i.maxFeePerGas==null&&i.maxPriorityFeePerGas==null&&(t=Object.assign({},t,{transaction:Object.assign({},r,{type:void 0})}))}}const n=this.getRpcRequest(t);return n!=null?await this.send(n.method,n.args):super._perform(t)}async _detectNetwork(){const t=this._getOption("staticNetwork");if(t)return t;if(this.ready)return Un.from(Su(await this.send("eth_chainId",[])));const n={id:i4(this,ns)._++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:n});let r;try{r=(await this._send(n))[0]}catch(i){throw this.emit("debug",{action:"receiveRpcError",error:i}),i}if(this.emit("debug",{action:"receiveRpcResult",result:r}),"result"in r)return Un.from(Su(r.result));throw this.getRpcError(n,r)}_start(){_(this,kt)==null||_(this,kt).resolve==null||(_(this,kt).resolve(),R(this,kt,null),(async()=>{for(;_(this,Tn)==null&&!this.destroyed;)try{R(this,Tn,await this._detectNetwork())}catch(t){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",be("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await K1u(1e3)}yu(this,hl,yp).call(this)})())}async _waitUntilReady(){if(_(this,kt)!=null)return await _(this,kt).promise}_getSubscriber(t){return t.type==="pending"?new H1u(this):t.type==="event"?this._getOption("polling")?new _C(this,t.filter):new q1u(this,t.filter):t.type==="orphan"&&t.filter.orphan==="drop-log"?new E_("orphan"):super._getSubscriber(t)}get ready(){return _(this,kt)==null}getRpcTransaction(t){const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(r=>{if(t[r]==null)return;let i=r;r==="gasLimit"&&(i="gas"),n[i]=to(Su(t[r],`tx.${r}`))}),["from","to","data"].forEach(r=>{t[r]!=null&&(n[r]=ku(t[r]))}),t.accessList&&(n.accessList=Fa(t.accessList)),n}getRpcRequest(t){switch(t.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getBalance":return{method:"eth_getBalance",args:[Ta(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[Ta(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[Ta(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[Ta(t.address),"0x"+t.position.toString(16),t.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[t.signedTransaction]};case"getBlock":if("blockTag"in t)return{method:"eth_getBlockByNumber",args:[t.blockTag,!!t.includeTransactions]};if("blockHash"in t)return{method:"eth_getBlockByHash",args:[t.blockHash,!!t.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[t.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[t.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(t.transaction),t.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(t.transaction)]};case"getLogs":return t.filter&&t.filter.address!=null&&(Array.isArray(t.filter.address)?t.filter.address=t.filter.address.map(Ta):t.filter.address=Ta(t.filter.address)),{method:"eth_getLogs",args:[t.filter]}}return null}getRpcError(t,n){const{method:r}=t,{error:i}=n;if(r==="eth_estimateGas"&&i.message){const s=i.message;if(!s.match(/revert/i)&&s.match(/insufficient funds/i))return be("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:i}})}if(r==="eth_call"||r==="eth_estimateGas"){const s=Bp(i),l=Y3.getBuiltinCallException(r==="eth_call"?"call":"estimateGas",t.params[0],s?s.data:null);return l.info={error:i,payload:t},l}const a=JSON.stringify(X1u(i));if(typeof i.message=="string"&&i.message.match(/user denied|ethers-user-denied/i))return be("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[r]||"unknown",reason:"rejected",info:{payload:t,error:i}});if(r==="eth_sendRawTransaction"||r==="eth_sendTransaction"){const s=t.params[0];if(a.match(/insufficient funds|base fee exceeds gas limit/i))return be("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:s,info:{error:i}});if(a.match(/nonce/i)&&a.match(/too low/i))return be("nonce has already been used","NONCE_EXPIRED",{transaction:s,info:{error:i}});if(a.match(/replacement transaction/i)&&a.match(/underpriced/i))return be("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:s,info:{error:i}});if(a.match(/only replay-protected/i))return be("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:r,info:{transaction:s,info:{error:i}}})}let o=!!a.match(/the method .* does not exist/i);return o||i&&i.details&&i.details.startsWith("Unauthorized method:")&&(o=!0),o?be("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:i,payload:t}}):be("could not coalesce error","UNKNOWN_ERROR",{error:i,payload:t})}send(t,n){if(this.destroyed)return Promise.reject(be("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t}));const r=i4(this,ns)._++,i=new Promise((a,o)=>{_(this,Pn).push({resolve:a,reject:o,payload:{method:t,params:n,id:r,jsonrpc:"2.0"}})});return yu(this,hl,yp).call(this),i}async getSigner(t){t==null&&(t=0);const n=this.send("eth_accounts",[]);if(typeof t=="number"){const i=await n;if(t>=i.length)throw new Error("no such account");return new W1(this,i[t])}const{accounts:r}=await a0({network:this.getNetwork(),accounts:n});t=Yu(t);for(const i of r)if(Yu(i)===t)return new W1(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map(n=>new W1(this,n))}destroy(){_(this,en)&&(clearTimeout(_(this,en)),R(this,en,null));for(const{payload:t,reject:n}of _(this,Pn))n(be("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));R(this,Pn,[]),super.destroy()}}Ki=new WeakMap,ns=new WeakMap,Pn=new WeakMap,en=new WeakMap,kt=new WeakMap,Tn=new WeakMap,hl=new WeakSet,yp=function(){if(_(this,en))return;const t=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");R(this,en,setTimeout(()=>{R(this,en,null);const n=_(this,Pn);for(R(this,Pn,[]);n.length;){const r=[n.shift()];for(;n.length&&r.length!==_(this,Ki).batchMaxCount;)if(r.push(n.shift()),JSON.stringify(r.map(a=>a.payload)).length>_(this,Ki).batchMaxSize){n.unshift(r.pop());break}(async()=>{const i=r.length===1?r[0].payload:r.map(a=>a.payload);this.emit("debug",{action:"sendRpcPayload",payload:i});try{const a=await this._send(i);this.emit("debug",{action:"receiveRpcResult",result:a});for(const{resolve:o,reject:s,payload:l}of r){if(this.destroyed){s(be("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:l.method}));continue}const c=a.filter(E=>E.id===l.id)[0];if(c==null){const E=be("missing response for request","BAD_DATA",{value:a,info:{payload:l}});this.emit("error",E),s(E);continue}if("error"in c){s(this.getRpcError(l,c));continue}o(c.result)}}catch(a){this.emit("debug",{action:"receiveRpcError",error:a});for(const{reject:o}of r)o(a)}})()}},t))};var Tr;class J1u extends V1u{constructor(t,n){super(t,n);tu(this,Tr,void 0);R(this,Tr,4e3)}_getSubscriber(t){const n=super._getSubscriber(t);return uy(n)&&(n.pollingInterval=_(this,Tr)),n}get pollingInterval(){return _(this,Tr)}set pollingInterval(t){if(!Number.isInteger(t)||t<0)throw new Error("invalid interval");R(this,Tr,t),this._forEachSubscriber(n=>{uy(n)&&(n.pollingInterval=_(this,Tr))})}}Tr=new WeakMap;var rs;class Y1u extends J1u{constructor(t,n,r){t==null&&(t="http://localhost:8545");super(n,r);tu(this,rs,void 0);typeof t=="string"?R(this,rs,new Yn(t)):R(this,rs,t.clone())}_getConnection(){return _(this,rs).clone()}async send(t,n){return await this._start(),await super.send(t,n)}async _send(t){const n=this._getConnection();n.body=JSON.stringify(t),n.setHeader("content-type","application/json");const r=await n.send();r.assertOk();let i=r.bodyJson;return Array.isArray(i)||(i=[i]),i}}rs=new WeakMap;function Bp(u){if(u==null)return null;if(typeof u.message=="string"&&u.message.match(/revert/i)&&pe(u.data))return{message:u.message,data:u.data};if(typeof u=="object"){for(const e in u){const t=Bp(u[e]);if(t)return t}return null}if(typeof u=="string")try{return Bp(JSON.parse(u))}catch{}return null}function vp(u,e){if(u!=null){if(typeof u.message=="string"&&e.push(u.message),typeof u=="object")for(const t in u)vp(u[t],e);if(typeof u=="string")try{return vp(JSON.parse(u),e)}catch{}}}function X1u(u){const e=[];return vp(u,e),e}const Z1u=Ao,u6u=async()=>{const u=new Y1u("https://goerli.optimism.io",420);return new Z1u(Nn[420],rn.abi,u).balanceOf(Nn[420])},e6u=()=>{const{error:u,isLoading:e,data:t}=uI(["ethers.Contract().balanceOf"],u6u);return e?Lu.jsx("div",{children:"'loading balance...'"}):u?(console.error(u),Lu.jsx("div",{children:"error loading balance"})):Lu.jsx("div",{children:t==null?void 0:t.toString()})},t6u=()=>{const{address:u}=K0(),{data:e}=p5(),[t,n]=M.useState([]),r=rn.events.Transfer({fromBlock:e&&e-BigInt(1e3),args:{to:u}});return Hz({...r,address:Nn[420],listener:i=>{n([...t,i])}}),Lu.jsx("div",{children:Lu.jsx("div",{style:{display:"flex",flexDirection:"column-reverse"},children:t.map((i,a)=>Lu.jsxs("div",{children:[Lu.jsxs("div",{children:["Event ",a]}),Lu.jsx("div",{children:JSON.stringify(i)})]}))})})},n6u=()=>{const{address:u,isConnected:e}=K0(),{data:t}=Oa({...rn.read.balanceOf(u),address:Nn[420],enabled:e}),{data:n}=Oa({...rn.read.totalSupply(),address:Nn[420],enabled:e}),{data:r}=Oa({...rn.read.tokenURI(BigInt(1)),address:Nn[420],enabled:e}),{data:i}=Oa({...rn.read.symbol(),address:Nn[420],enabled:e}),{data:a}=Oa({...rn.read.ownerOf(BigInt(1)),address:Nn[420],enabled:e});return Lu.jsx("div",{children:Lu.jsxs("div",{children:[Lu.jsxs("div",{children:["balanceOf(",u,"): ",t==null?void 0:t.toString()]}),Lu.jsxs("div",{children:["totalSupply(): ",n==null?void 0:n.toString()]}),Lu.jsxs("div",{children:["tokenUri(BigInt(1)): ",r==null?void 0:r.toString()]}),Lu.jsxs("div",{children:["symbol(): ",i==null?void 0:i.toString()]}),Lu.jsxs("div",{children:["ownerOf(BigInt(1)): ",a==null?void 0:a.toString()]})]})})};function r6u(u=1,e=1e9){const t=e-u+1;return Math.floor(Math.random()*t)+u}const i6u=()=>{const{address:u,isConnected:e}=K0(),{data:t,refetch:n}=Oa({...rn.read.balanceOf(u),enabled:e}),{writeAsync:r,data:i}=Jz({address:Nn[420],...rn.write.mint});return iM({hash:i==null?void 0:i.hash,onSuccess:a=>{console.log("minted",a),n()}}),Lu.jsxs("div",{children:[Lu.jsx("div",{children:Lu.jsxs("div",{children:["balance: ",t==null?void 0:t.toString()]})}),Lu.jsx("button",{type:"button",onClick:()=>r(rn.write.mint(BigInt(r6u()))),children:"Mint"})]})};function a6u(){const[u,e]=M.useState("unselected"),{isConnected:t}=K0(),n={unselected:Lu.jsx(Lu.Fragment,{children:"Select which component to render"}),reads:Lu.jsx(n6u,{}),writes:Lu.jsx(i6u,{}),events:Lu.jsx(t6u,{}),ethers:Lu.jsx(e6u,{})};return Lu.jsxs(Lu.Fragment,{children:[Lu.jsx("h1",{children:"Evmts example"}),Lu.jsx(X5,{}),t&&Lu.jsxs(Lu.Fragment,{children:[Lu.jsx("hr",{}),Lu.jsx("div",{style:{display:"flex"},children:Object.keys(n).map(r=>Lu.jsx("button",{type:"button",onClick:()=>e(r),children:r}))}),Lu.jsx("h2",{children:u}),n[u]]})]})}function o6u({rpc:u}){return function(e){const t=u(e);return!t||t.http===""?null:{chain:{...e,rpcUrls:{...e.rpcUrls,default:{http:[t.http]}}},rpcUrls:{http:[t.http],webSocket:t.webSocket?[t.webSocket]:void 0}}}}const s6u="898f836c53a18d0661340823973f0cb4",{chains:f_,publicClient:l6u,webSocketPublicClient:c6u}=Nj([s5,vj],[o6u({rpc:u=>{const e={1:{http:"https://mainnet.infura.io/v3/845f07495e374dfabf3a66e3f10ad786"},420:{http:"https://goerli.optimism.io"}};return[1,420].includes(u.id)?e[u.id]:null}})]),{connectors:E6u}=n2u({appName:"My wagmi + RainbowKit App",chains:f_,projectId:s6u}),d6u=u=>yz({autoConnect:!0,connectors:E6u,publicClient:l6u,webSocketPublicClient:c6u,queryClient:u}),ey=new Sy,p_=document.getElementById("root");if(!p_)throw new Error("No root element found");Tx(p_).render(Lu.jsx(M.StrictMode,{children:Lu.jsx(Lv,{client:ey,children:Lu.jsx(Bz,{config:d6u(ey),children:Lu.jsx(Isu,{chains:f_,children:Lu.jsx(a6u,{})})})})}));export{u9 as $,Y6u as A,J6u as B,M6u as C,efu as D,G6u as E,O6u as F,H6u as G,ofu as H,ufu as I,R6u as J,P6u as K,T6u as L,gt as M,mr as N,W6u as O,L6u as P,$6u as Q,Gcu as R,e9 as S,oC as T,ws as U,_6u as V,Ax as W,gfu as X,j6u as Y,mfu as Z,Ql as _,KN as a,Vn as a$,z6u as a0,S6u as a1,Q6u as a2,V6u as a3,t9 as a4,N6u as a5,sC as a6,X6u as a7,K6u as a8,Z6u as a9,dx as aA,hcu as aB,nC as aC,Ccu as aD,mcu as aE,Acu as aF,Ex as aG,vcu as aH,bcu as aI,kcu as aJ,Scu as aK,Tcu as aL,Rlu as aM,fx as aN,Mcu as aO,Ucu as aP,Ncu as aQ,zcu as aR,sru as aS,hru as aT,gu as aU,Q2 as aV,f0 as aW,fs as aX,B3 as aY,UO as aZ,id as a_,Afu as aa,ifu as ab,rfu as ac,_Eu as ad,hfu as ae,sfu as af,SEu as ag,nfu as ah,dfu as ai,lfu as aj,ffu as ak,Cfu as al,cfu as am,Efu as an,pfu as ao,afu as ap,yEu as aq,Bx as ar,_1 as as,D6u as at,b6u as au,Wu as av,w3u as aw,Ju as ax,ty as ay,F6u as az,QN as b,vl as b0,V4 as b1,cn as b2,VN as c,PF as d,Dp as e,Zi as f,ON as g,Mu as h,It as i,BA as j,Fp as k,IN as l,ua as m,Vc as n,tfu as o,w6u as p,x6u as q,Kd as r,k6u as s,zt as t,gx as u,S0 as v,Lt as w,I6u as x,U6u as y,q6u as z}; + Approved: ${d.toString()}`))}),a.forEach(E=>{n||(xi(r[E].methods,i[E].methods)?xi(r[E].events,i[E].events)||(n=gr("NON_CONFORMING_NAMESPACES",`${t} namespaces events don't satisfy namespace events for ${E}`)):n=gr("NON_CONFORMING_NAMESPACES",`${t} namespaces methods don't satisfy namespace methods for ${E}`))}),n}function TEu(u){const e={};return Object.keys(u).forEach(t=>{var n;t.includes(":")?e[t]=u[t]:(n=u[t].chains)==null||n.forEach(r=>{e[r]={methods:u[t].methods,events:u[t].events}})}),e}function JA(u){return[...new Set(u.map(e=>e.includes(":")?e.split(":")[0]:e))]}function IEu(u){const e={};return Object.keys(u).forEach(t=>{if(t.includes(":"))e[t]=u[t];else{const n=i4(u[t].accounts);n==null||n.forEach(r=>{e[r]={accounts:u[t].accounts.filter(i=>i.includes(`${r}:`)),methods:u[t].methods,events:u[t].events}})}}),e}function mfu(u,e){return cC(u,!1)&&u<=e.max&&u>=e.min}function gfu(){const u=Jl();return new Promise(e=>{switch(u){case L0.browser:e(OEu());break;case L0.reactNative:e(NEu());break;case L0.node:e(REu());break;default:e(!0)}})}function OEu(){return sC()&&(navigator==null?void 0:navigator.onLine)}async function NEu(){if(t9()&&typeof globalThis<"u"&&globalThis!=null&&globalThis.NetInfo){const u=await(globalThis==null?void 0:globalThis.NetInfo.fetch());return u==null?void 0:u.isConnected}return!0}function REu(){return!0}function Afu(u){switch(Jl()){case L0.browser:jEu(u);break;case L0.reactNative:zEu(u);break}}function jEu(u){!t9()&&sC()&&(window.addEventListener("online",()=>u(!0)),window.addEventListener("offline",()=>u(!1)))}function zEu(u){t9()&&typeof globalThis<"u"&&globalThis!=null&&globalThis.NetInfo&&(globalThis==null||globalThis.NetInfo.addEventListener(e=>u(e==null?void 0:e.isConnected)))}const P1={};class yfu{static get(e){return P1[e]}static set(e,t){P1[e]=t}static delete(e){delete P1[e]}}var bx="eip155",MEu="store",wx="requestedChains",qf="wallet_addEthereumChain",de,X4,uE,Hf,EC,xx,eE,Gf,Kf,kx,o2,dC,ja,S4,s2,fC,l2,pC,c2,hC,_x=class extends Ol{constructor(u){super({...u,options:{isNewChainsStale:!0,...u.options}}),xe(this,uE),xe(this,EC),xe(this,eE),xe(this,Kf),xe(this,o2),xe(this,ja),xe(this,s2),xe(this,l2),xe(this,c2),this.id="walletConnect",this.name="WalletConnect",this.ready=!0,xe(this,de,void 0),xe(this,X4,void 0),this.onAccountsChanged=e=>{e.length===0?this.emit("disconnect"):this.emit("change",{account:t0(e[0])})},this.onChainChanged=e=>{const t=Number(e),n=this.isChainUnsupported(t);this.emit("change",{chain:{id:t,unsupported:n}})},this.onDisconnect=()=>{be(this,ja,S4).call(this,[]),this.emit("disconnect")},this.onDisplayUri=e=>{this.emit("message",{type:"display_uri",data:e})},this.onConnect=()=>{this.emit("connect",{})},be(this,uE,Hf).call(this)}async connect({chainId:u,pairingTopic:e}={}){var t,n,r,i,a;try{let o=u;if(!o){const C=(t=this.storage)==null?void 0:t.getItem(MEu),h=(i=(r=(n=C==null?void 0:C.state)==null?void 0:n.data)==null?void 0:r.chain)==null?void 0:i.id;h&&!this.isChainUnsupported(h)?o=h:o=(a=this.chains[0])==null?void 0:a.id}if(!o)throw new Error("No chains found on connector.");const s=await this.getProvider();be(this,Kf,kx).call(this);const l=be(this,eE,Gf).call(this);if(s.session&&l&&await s.disconnect(),!s.session||l){const C=this.chains.filter(h=>h.id!==o).map(h=>h.id);this.emit("message",{type:"connecting"}),await s.connect({pairingTopic:e,chains:[o],optionalChains:C.length?C:void 0}),be(this,ja,S4).call(this,this.chains.map(({id:h})=>h))}const c=await s.enable(),E=t0(c[0]),d=await this.getChainId(),f=this.isChainUnsupported(d);return{account:E,chain:{id:d,unsupported:f}}}catch(o){throw/user rejected/i.test(o==null?void 0:o.message)?new Se(o):o}}async disconnect(){const u=await this.getProvider();try{await u.disconnect()}catch(e){if(!/No matching key/i.test(e.message))throw e}finally{be(this,o2,dC).call(this),be(this,ja,S4).call(this,[])}}async getAccount(){const{accounts:u}=await this.getProvider();return t0(u[0])}async getChainId(){const{chainId:u}=await this.getProvider();return u}async getProvider({chainId:u}={}){return Hu(this,de)||await be(this,uE,Hf).call(this),u&&await this.switchChain(u),Hu(this,de)}async getWalletClient({chainId:u}={}){const[e,t]=await Promise.all([this.getProvider({chainId:u}),this.getAccount()]),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Il({account:t,chain:n,transport:Pl(e)})}async isAuthorized(){try{const[u,e]=await Promise.all([this.getAccount(),this.getProvider()]),t=be(this,eE,Gf).call(this);if(!u)return!1;if(t&&e.session){try{await e.disconnect()}catch{}return!1}return!0}catch{return!1}}async switchChain(u){var t,n;const e=this.chains.find(r=>r.id===u);if(!e)throw new dn(new Error("chain not found on connector."));try{const r=await this.getProvider(),i=be(this,l2,pC).call(this),a=be(this,c2,hC).call(this);if(!i.includes(u)&&a.includes(qf)){await r.request({method:qf,params:[{chainId:Mu(e.id),blockExplorerUrls:[(n=(t=e.blockExplorers)==null?void 0:t.default)==null?void 0:n.url],chainName:e.name,nativeCurrency:e.nativeCurrency,rpcUrls:[...e.rpcUrls.default.http]}]});const s=be(this,s2,fC).call(this);s.push(u),be(this,ja,S4).call(this,s)}return await r.request({method:"wallet_switchEthereumChain",params:[{chainId:Mu(u)}]}),e}catch(r){const i=typeof r=="string"?r:r==null?void 0:r.message;throw/user rejected request/i.test(i)?new Se(r):new dn(r)}}};de=new WeakMap;X4=new WeakMap;uE=new WeakSet;Hf=async function(){return!Hu(this,X4)&&typeof window<"u"&&Yn(this,X4,be(this,EC,xx).call(this)),Hu(this,X4)};EC=new WeakSet;xx=async function(){const{EthereumProvider:u,OPTIONAL_EVENTS:e,OPTIONAL_METHODS:t}=await qu(()=>import("./index.es-04947dcd.js"),["assets/index.es-04947dcd.js","assets/events-d049dff1.js","assets/http-ec971fc9.js"]),[n,...r]=this.chains.map(({id:i})=>i);if(n){const{projectId:i,showQrModal:a=!0,qrModalOptions:o,metadata:s,relayUrl:l}=this.options;Yn(this,de,await u.init({showQrModal:a,qrModalOptions:o,projectId:i,optionalMethods:t,optionalEvents:e,chains:[n],optionalChains:r.length?r:void 0,rpcMap:Object.fromEntries(this.chains.map(c=>[c.id,c.rpcUrls.default.http[0]])),metadata:s,relayUrl:l}))}};eE=new WeakSet;Gf=function(){if(be(this,c2,hC).call(this).includes(qf)||!this.options.isNewChainsStale)return!1;const e=be(this,s2,fC).call(this),t=this.chains.map(({id:r})=>r),n=be(this,l2,pC).call(this);return n.length&&!n.some(r=>t.includes(r))?!1:!t.every(r=>e.includes(r))};Kf=new WeakSet;kx=function(){Hu(this,de)&&(be(this,o2,dC).call(this),Hu(this,de).on("accountsChanged",this.onAccountsChanged),Hu(this,de).on("chainChanged",this.onChainChanged),Hu(this,de).on("disconnect",this.onDisconnect),Hu(this,de).on("session_delete",this.onDisconnect),Hu(this,de).on("display_uri",this.onDisplayUri),Hu(this,de).on("connect",this.onConnect))};o2=new WeakSet;dC=function(){Hu(this,de)&&(Hu(this,de).removeListener("accountsChanged",this.onAccountsChanged),Hu(this,de).removeListener("chainChanged",this.onChainChanged),Hu(this,de).removeListener("disconnect",this.onDisconnect),Hu(this,de).removeListener("session_delete",this.onDisconnect),Hu(this,de).removeListener("display_uri",this.onDisplayUri),Hu(this,de).removeListener("connect",this.onConnect))};ja=new WeakSet;S4=function(u){var e;(e=this.storage)==null||e.setItem(wx,u)};s2=new WeakSet;fC=function(){var u;return((u=this.storage)==null?void 0:u.getItem(wx))??[]};l2=new WeakSet;pC=function(){var n,r,i;if(!Hu(this,de))return[];const u=(n=Hu(this,de).session)==null?void 0:n.namespaces;return u?((i=(r=Fx(u)[bx])==null?void 0:r.chains)==null?void 0:i.map(a=>parseInt(a.split(":")[1]||"")))??[]:[]};c2=new WeakSet;hC=function(){var n,r;if(!Hu(this,de))return[];const u=(n=Hu(this,de).session)==null?void 0:n.namespaces;return u?((r=Fx(u)[bx])==null?void 0:r.methods)??[]:[]};var P4,za,UEu=class extends Ol{constructor({chains:u,options:e}){super({chains:u,options:{reloadOnDisconnect:!1,...e}}),this.id="coinbaseWallet",this.name="Coinbase Wallet",this.ready=!0,xe(this,P4,void 0),xe(this,za,void 0),this.onAccountsChanged=t=>{t.length===0?this.emit("disconnect"):this.emit("change",{account:t0(t[0])})},this.onChainChanged=t=>{const n=ca(t),r=this.isChainUnsupported(n);this.emit("change",{chain:{id:n,unsupported:r}})},this.onDisconnect=()=>{this.emit("disconnect")}}async connect({chainId:u}={}){try{const e=await this.getProvider();e.on("accountsChanged",this.onAccountsChanged),e.on("chainChanged",this.onChainChanged),e.on("disconnect",this.onDisconnect),this.emit("message",{type:"connecting"});const t=await e.enable(),n=t0(t[0]);let r=await this.getChainId(),i=this.isChainUnsupported(r);return u&&r!==u&&(r=(await this.switchChain(u)).id,i=this.isChainUnsupported(r)),{account:n,chain:{id:r,unsupported:i}}}catch(e){throw/(user closed modal|accounts received is empty)/i.test(e.message)?new Se(e):e}}async disconnect(){if(!Hu(this,za))return;const u=await this.getProvider();u.removeListener("accountsChanged",this.onAccountsChanged),u.removeListener("chainChanged",this.onChainChanged),u.removeListener("disconnect",this.onDisconnect),u.disconnect(),u.close()}async getAccount(){const e=await(await this.getProvider()).request({method:"eth_accounts"});return t0(e[0])}async getChainId(){const u=await this.getProvider();return ca(u.chainId)}async getProvider(){var u;if(!Hu(this,za)){let e=(await qu(()=>import("./index-57f94c53.js").then(a=>a.i),["assets/index-57f94c53.js","assets/events-d049dff1.js","assets/hooks.module-fb90a505.js"])).default;typeof e!="function"&&typeof e.default=="function"&&(e=e.default),Yn(this,P4,new e(this.options));const t=(u=Hu(this,P4).walletExtension)==null?void 0:u.getChainId(),n=this.chains.find(a=>this.options.chainId?a.id===this.options.chainId:a.id===t)||this.chains[0],r=this.options.chainId||(n==null?void 0:n.id),i=this.options.jsonRpcUrl||(n==null?void 0:n.rpcUrls.default.http[0]);Yn(this,za,Hu(this,P4).makeWeb3Provider(i,r))}return Hu(this,za)}async getWalletClient({chainId:u}={}){const[e,t]=await Promise.all([this.getProvider(),this.getAccount()]),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Il({account:t,chain:n,transport:Pl(e)})}async isAuthorized(){try{return!!await this.getAccount()}catch{return!1}}async switchChain(u){var n;const e=await this.getProvider(),t=Mu(u);try{return await e.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]}),this.chains.find(r=>r.id===u)??{id:u,name:`Chain ${t}`,network:`${t}`,nativeCurrency:{name:"Ether",decimals:18,symbol:"ETH"},rpcUrls:{default:{http:[""]},public:{http:[""]}}}}catch(r){const i=this.chains.find(a=>a.id===u);if(!i)throw new eD({chainId:u,connectorId:this.id});if(r.code===4902)try{return await e.request({method:"wallet_addEthereumChain",params:[{chainId:t,chainName:i.name,nativeCurrency:i.nativeCurrency,rpcUrls:[((n=i.rpcUrls.public)==null?void 0:n.http[0])??""],blockExplorerUrls:this.getBlockExplorerUrls(i)}]}),i}catch(a){throw new Se(a)}throw new dn(r)}}async watchAsset({address:u,decimals:e=18,image:t,symbol:n}){return(await this.getProvider()).request({method:"wallet_watchAsset",params:{type:"ERC20",options:{address:u,decimals:e,image:t,symbol:n}}})}};P4=new WeakMap;za=new WeakMap;var tE,LEu=class extends ys{constructor({chains:u,options:e}={}){const t={name:"MetaMask",shimDisconnect:!0,getProvider(){function n(i){if(i!=null&&i.isMetaMask&&!(i.isBraveWallet&&!i._events&&!i._state)&&!i.isApexWallet&&!i.isAvalanche&&!i.isBitKeep&&!i.isBlockWallet&&!i.isCoin98&&!i.isFordefi&&!i.isMathWallet&&!(i.isOkxWallet||i.isOKExWallet)&&!(i.isOneInchIOSWallet||i.isOneInchAndroidWallet)&&!i.isOpera&&!i.isPortal&&!i.isRabby&&!i.isDefiant&&!i.isTokenPocket&&!i.isTokenary&&!i.isZeal&&!i.isZerion)return i}if(typeof window>"u")return;const r=window.ethereum;return r!=null&&r.providers?r.providers.find(n):n(r)},...e};super({chains:u,options:t}),this.id="metaMask",this.shimDisconnectKey=`${this.id}.shimDisconnect`,xe(this,tE,void 0),Yn(this,tE,t.UNSTABLE_shimOnConnectSelectAccount)}async connect({chainId:u}={}){var e,t,n,r;try{const i=await this.getProvider();if(!i)throw new B0;i.on&&(i.on("accountsChanged",this.onAccountsChanged),i.on("chainChanged",this.onChainChanged),i.on("disconnect",this.onDisconnect)),this.emit("message",{type:"connecting"});let a=null;if(Hu(this,tE)&&((e=this.options)!=null&&e.shimDisconnect)&&!((t=this.storage)!=null&&t.getItem(this.shimDisconnectKey))&&(a=await this.getAccount().catch(()=>null),!!a))try{await i.request({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]}),a=await this.getAccount()}catch(c){if(this.isUserRejectedRequestError(c))throw new Se(c);if(c.code===new Jr(c).code)throw c}if(!a){const l=await i.request({method:"eth_requestAccounts"});a=t0(l[0])}let o=await this.getChainId(),s=this.isChainUnsupported(o);return u&&o!==u&&(o=(await this.switchChain(u)).id,s=this.isChainUnsupported(o)),(n=this.options)!=null&&n.shimDisconnect&&((r=this.storage)==null||r.setItem(this.shimDisconnectKey,!0)),{account:a,chain:{id:o,unsupported:s},provider:i}}catch(i){throw this.isUserRejectedRequestError(i)?new Se(i):i.code===-32002?new Jr(i):i}}};tE=new WeakMap;var $Eu=/(imtoken|metamask|rainbow|trust wallet|uniswap wallet|ledger)/i,mi,Qf,Sx,WEu=class extends Ol{constructor(){super(...arguments),xe(this,Qf),this.id="walletConnectLegacy",this.name="WalletConnectLegacy",this.ready=!0,xe(this,mi,void 0),this.onAccountsChanged=u=>{u.length===0?this.emit("disconnect"):this.emit("change",{account:t0(u[0])})},this.onChainChanged=u=>{const e=ca(u),t=this.isChainUnsupported(e);this.emit("change",{chain:{id:e,unsupported:t}})},this.onDisconnect=()=>{this.emit("disconnect")}}async connect({chainId:u}={}){var e,t,n,r,i,a;try{let o=u;if(!o){const C=(e=this.storage)==null?void 0:e.getItem("store"),h=(r=(n=(t=C==null?void 0:C.state)==null?void 0:t.data)==null?void 0:n.chain)==null?void 0:r.id;h&&!this.isChainUnsupported(h)&&(o=h)}const s=await this.getProvider({chainId:o,create:!0});s.on("accountsChanged",this.onAccountsChanged),s.on("chainChanged",this.onChainChanged),s.on("disconnect",this.onDisconnect),setTimeout(()=>this.emit("message",{type:"connecting"}),0);const l=await s.enable(),c=t0(l[0]),E=await this.getChainId(),d=this.isChainUnsupported(E),f=((a=(i=s.connector)==null?void 0:i.peerMeta)==null?void 0:a.name)??"";return $Eu.test(f)&&(this.switchChain=be(this,Qf,Sx)),{account:c,chain:{id:E,unsupported:d}}}catch(o){throw/user closed modal/i.test(o.message)?new Se(o):o}}async disconnect(){const u=await this.getProvider();await u.disconnect(),u.removeListener("accountsChanged",this.onAccountsChanged),u.removeListener("chainChanged",this.onChainChanged),u.removeListener("disconnect",this.onDisconnect),typeof localStorage<"u"&&localStorage.removeItem("walletconnect")}async getAccount(){const e=(await this.getProvider()).accounts;return t0(e[0])}async getChainId(){const u=await this.getProvider();return ca(u.chainId)}async getProvider({chainId:u,create:e}={}){var t,n;if(!Hu(this,mi)||u||e){const r=(t=this.options)!=null&&t.infuraId?{}:this.chains.reduce((a,o)=>({...a,[o.id]:o.rpcUrls.default.http[0]}),{}),i=(await qu(()=>import("./index-2e8e27db.js"),["assets/index-2e8e27db.js","assets/events-d049dff1.js","assets/http-ec971fc9.js","assets/hooks.module-fb90a505.js"])).default;Yn(this,mi,new i({...this.options,chainId:u,rpc:{...r,...(n=this.options)==null?void 0:n.rpc}})),Hu(this,mi).http=await Hu(this,mi).setHttpProvider(u)}return Hu(this,mi)}async getWalletClient({chainId:u}={}){const[e,t]=await Promise.all([this.getProvider({chainId:u}),this.getAccount()]),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Il({account:t,chain:n,transport:Pl(e)})}async isAuthorized(){try{return!!await this.getAccount()}catch{return!1}}};mi=new WeakMap;Qf=new WeakSet;Sx=async function(u){const e=await this.getProvider(),t=Mu(u);try{return await Promise.race([e.request({method:"wallet_switchEthereumChain",params:[{chainId:t}]}),new Promise(n=>this.on("change",({chain:r})=>{(r==null?void 0:r.id)===u&&n(u)}))]),this.chains.find(n=>n.id===u)??{id:u,name:`Chain ${t}`,network:`${t}`,nativeCurrency:{name:"Ether",decimals:18,symbol:"ETH"},rpcUrls:{default:{http:[""]},public:{http:[""]}}}}catch(n){const r=typeof n=="string"?n:n==null?void 0:n.message;throw/user rejected request/i.test(r)?new Se(n):new dn(n)}};var T4,I4,qEu=class extends Ol{constructor({chains:u,options:e}){const t={shimDisconnect:!1,...e};super({chains:u,options:t}),this.id="safe",this.name="Safe",this.ready=!(typeof window>"u")&&(window==null?void 0:window.parent)!==window,xe(this,T4,void 0),xe(this,I4,void 0),this.shimDisconnectKey=`${this.id}.shimDisconnect`;let n=uc;typeof uc!="function"&&typeof uc.default=="function"&&(n=uc.default),Yn(this,I4,new n(t))}async connect(){var n;const u=await this.getProvider();if(!u)throw new B0;u.on&&(u.on("accountsChanged",this.onAccountsChanged),u.on("chainChanged",this.onChainChanged),u.on("disconnect",this.onDisconnect)),this.emit("message",{type:"connecting"});const e=await this.getAccount(),t=await this.getChainId();return this.options.shimDisconnect&&((n=this.storage)==null||n.setItem(this.shimDisconnectKey,!0)),{account:e,chain:{id:t,unsupported:this.isChainUnsupported(t)}}}async disconnect(){var e;const u=await this.getProvider();u!=null&&u.removeListener&&(u.removeListener("accountsChanged",this.onAccountsChanged),u.removeListener("chainChanged",this.onChainChanged),u.removeListener("disconnect",this.onDisconnect),this.options.shimDisconnect&&((e=this.storage)==null||e.removeItem(this.shimDisconnectKey)))}async getAccount(){const u=await this.getProvider();if(!u)throw new B0;const e=await u.request({method:"eth_accounts"});return t0(e[0])}async getChainId(){const u=await this.getProvider();if(!u)throw new B0;return ca(u.chainId)}async getProvider(){if(!Hu(this,T4)){const u=await Hu(this,I4).safe.getInfo();if(!u)throw new Error("Could not load Safe information");Yn(this,T4,new g_(u,Hu(this,I4)))}return Hu(this,T4)}async getWalletClient({chainId:u}={}){const e=await this.getProvider(),t=await this.getAccount(),n=this.chains.find(r=>r.id===u);if(!e)throw new Error("provider is required.");return Il({account:t,chain:n,transport:Pl(e)})}async isAuthorized(){var u;try{return this.options.shimDisconnect&&!((u=this.storage)!=null&&u.getItem(this.shimDisconnectKey))?!1:!!await this.getAccount()}catch{return!1}}onAccountsChanged(u){}onChainChanged(u){}onDisconnect(){this.emit("disconnect")}};T4=new WeakMap;I4=new WeakMap;function HEu(u){return Object.fromEntries(Object.entries(u).filter(([e,t])=>t!==void 0))}var GEu=u=>()=>{let e=-1;const t=[],n=[],r=[],i=[];return u.forEach(({groupName:o,wallets:s},l)=>{s.forEach(c=>{if(e++,c!=null&&c.iconAccent&&!h4u(c==null?void 0:c.iconAccent))throw new Error(`Property \`iconAccent\` is not a hex value for wallet: ${c.name}`);const E={...c,groupIndex:l,groupName:o,index:e};typeof c.hidden=="function"?r.push(E):n.push(E)})}),[...n,...r].forEach(({createConnector:o,groupIndex:s,groupName:l,hidden:c,index:E,...d})=>{if(typeof c=="function"&&c({wallets:[...i.map(({connector:m,id:y,installed:v,name:w})=>({connector:m,id:y,installed:v,name:w}))]}))return;const{connector:f,...C}=HEu(o());let h;if(d.id==="walletConnect"&&C.qrCode&&!He()){const{chains:g,options:m}=f;h=new _x({chains:g,options:{...m,showQrModal:!0}}),t.push(h)}const B={connector:f,groupIndex:s,groupName:l,index:E,walletConnectModalConnector:h,...d,...C};i.push(B),t.includes(f)||(t.push(f),f._wallets=[]),f._wallets.push(B)}),t},KEu=({chains:u,...e})=>{var t;return{id:"brave",name:"Brave Wallet",iconUrl:async()=>(await qu(()=>import("./braveWallet-BTBH4MDN-77ab02b2.js"),[])).default,iconBackground:"#fff",installed:typeof window<"u"&&((t=window.ethereum)==null?void 0:t.isBraveWallet)===!0,downloadUrls:{},createConnector:()=>({connector:new ys({chains:u,options:e})})}},QEu=({appName:u,chains:e,...t})=>{var n;const r=typeof window<"u"&&((n=window.ethereum)==null?void 0:n.isCoinbaseWallet)===!0;return{id:"coinbase",name:"Coinbase Wallet",shortName:"Coinbase",iconUrl:async()=>(await qu(()=>import("./coinbaseWallet-2OUR5TUP-f6c629ff.js"),[])).default,iconAccent:"#2c5ff6",iconBackground:"#2c5ff6",installed:r||void 0,downloadUrls:{android:"https://play.google.com/store/apps/details?id=org.toshi",ios:"https://apps.apple.com/us/app/coinbase-wallet-store-crypto/id1278383455",mobile:"https://coinbase.com/wallet/downloads",qrCode:"https://coinbase-wallet.onelink.me/q5Sx/fdb9b250",chrome:"https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",browserExtension:"https://coinbase.com/wallet"},createConnector:()=>{const i=va(),a=new UEu({chains:e,options:{appName:u,headlessMode:!0,...t}});return{connector:a,...i?{}:{qrCode:{getUri:async()=>(await a.getProvider()).qrUrl,instructions:{learnMoreUrl:"https://coinbase.com/wallet/articles/getting-started-mobile",steps:[{description:"wallet_connectors.coinbase.qr_code.step1.description",step:"install",title:"wallet_connectors.coinbase.qr_code.step1.title"},{description:"wallet_connectors.coinbase.qr_code.step2.description",step:"create",title:"wallet_connectors.coinbase.qr_code.step2.title"},{description:"wallet_connectors.coinbase.qr_code.step3.description",step:"scan",title:"wallet_connectors.coinbase.qr_code.step3.title"}]}},extension:{instructions:{learnMoreUrl:"https://coinbase.com/wallet/articles/getting-started-extension",steps:[{description:"wallet_connectors.coinbase.extension.step1.description",step:"install",title:"wallet_connectors.coinbase.extension.step1.title"},{description:"wallet_connectors.coinbase.extension.step2.description",step:"create",title:"wallet_connectors.coinbase.extension.step2.title"},{description:"wallet_connectors.coinbase.extension.step3.description",step:"refresh",title:"wallet_connectors.coinbase.extension.step3.title"}]}}}}}}},VEu=({chains:u,...e})=>({id:"injected",name:"Browser Wallet",iconUrl:async()=>(await qu(()=>import("./injectedWallet-EUKDEAIU-b2513a2e.js"),[])).default,iconBackground:"#fff",hidden:({wallets:t})=>t.some(n=>n.installed&&n.name===n.connector.name&&(n.connector instanceof ys||n.id==="coinbase")),createConnector:()=>({connector:new ys({chains:u,options:e})})});async function CC(u,e){const t=await u.getProvider();return e==="2"?new Promise(n=>t.once("display_uri",n)):t.connector.uri}var Px=new Map;function JEu(u,e){const t=u==="1"?new WEu(e):new _x(e);return Px.set(JSON.stringify(e),t),t}function E2({chains:u,options:e={},projectId:t,version:n="2"}){const r="21fef48091f12692cad574a6f7753643";if(n==="2"){if(!t||t==="")throw new Error("No projectId found. Every dApp must now provide a WalletConnect Cloud projectId to enable WalletConnect v2 https://www.rainbowkit.com/docs/installation#configure");(t==="YOUR_PROJECT_ID"||t===r)&&console.warn("Invalid projectId. Please create a unique WalletConnect Cloud projectId for your dApp https://www.rainbowkit.com/docs/installation#configure")}const i={chains:u,options:n==="1"?{qrcode:!1,...e}:{projectId:t==="YOUR_PROJECT_ID"?r:t,showQrModal:!1,...e}},a=JSON.stringify(i),o=Px.get(a);return o??JEu(n,i)}function YA(u){return!(!(u!=null&&u.isMetaMask)||u.isBraveWallet&&!u._events&&!u._state||u.isApexWallet||u.isAvalanche||u.isBackpack||u.isBifrost||u.isBitKeep||u.isBitski||u.isBlockWallet||u.isCoinbaseWallet||u.isDawn||u.isEnkrypt||u.isExodus||u.isFrame||u.isFrontier||u.isGamestop||u.isHyperPay||u.isImToken||u.isKuCoinWallet||u.isMathWallet||u.isOkxWallet||u.isOKExWallet||u.isOneInchIOSWallet||u.isOneInchAndroidWallet||u.isOpera||u.isPhantom||u.isPortal||u.isRabby||u.isRainbow||u.isStatus||u.isTalisman||u.isTally||u.isTokenPocket||u.isTokenary||u.isTrust||u.isTrustWallet||u.isXDEFI||u.isZeal||u.isZerion)}var YEu=({chains:u,projectId:e,walletConnectOptions:t,walletConnectVersion:n="2",...r})=>{var i,a;const o=typeof window<"u"&&((i=window.ethereum)==null?void 0:i.providers),s=typeof window<"u"&&typeof window.ethereum<"u"&&(((a=window.ethereum.providers)==null?void 0:a.some(YA))||window.ethereum.isMetaMask),l=!s;return{id:"metaMask",name:"MetaMask",iconUrl:async()=>(await qu(()=>import("./metaMaskWallet-ORHUNQRP-ac2ea8b3.js"),[])).default,iconAccent:"#f6851a",iconBackground:"#fff",installed:l?void 0:s,downloadUrls:{android:"https://play.google.com/store/apps/details?id=io.metamask",ios:"https://apps.apple.com/us/app/metamask/id1438144202",mobile:"https://metamask.io/download",qrCode:"https://metamask.io/download",chrome:"https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn",edge:"https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm",firefox:"https://addons.mozilla.org/firefox/addon/ether-metamask",opera:"https://addons.opera.com/extensions/details/metamask-10",browserExtension:"https://metamask.io/download"},createConnector:()=>{const c=l?E2({projectId:e,chains:u,version:n,options:t}):new LEu({chains:u,options:{getProvider:()=>o?o.find(YA):typeof window<"u"?window.ethereum:void 0,...r}}),E=async()=>{const d=await CC(c,n);return $5()?d:va()?`metamask://wc?uri=${encodeURIComponent(d)}`:`https://metamask.app.link/wc?uri=${encodeURIComponent(d)}`};return{connector:c,mobile:{getUri:l?E:void 0},qrCode:l?{getUri:E,instructions:{learnMoreUrl:"https://metamask.io/faqs/",steps:[{description:"wallet_connectors.metamask.qr_code.step1.description",step:"install",title:"wallet_connectors.metamask.qr_code.step1.title"},{description:"wallet_connectors.metamask.qr_code.step2.description",step:"create",title:"wallet_connectors.metamask.qr_code.step2.title"},{description:"wallet_connectors.metamask.qr_code.step3.description",step:"refresh",title:"wallet_connectors.metamask.qr_code.step3.title"}]}}:void 0,extension:{instructions:{learnMoreUrl:"https://metamask.io/faqs/",steps:[{description:"wallet_connectors.metamask.extension.step1.description",step:"install",title:"wallet_connectors.metamask.extension.step1.title"},{description:"wallet_connectors.metamask.extension.step2.description",step:"create",title:"wallet_connectors.metamask.extension.step2.title"},{description:"wallet_connectors.metamask.extension.step3.description",step:"refresh",title:"wallet_connectors.metamask.extension.step3.title"}]}}}}}};function Tx(u){if(typeof window>"u"||typeof window.ethereum>"u")return;const e=window.ethereum.providers;return e?e.find(t=>t[u]):window.ethereum[u]?window.ethereum:void 0}function XEu(u){return!!Tx(u)}function ZEu(u){if(typeof window>"u"||typeof window.ethereum>"u")return;const e=window.ethereum.providers,t=Tx(u);return t||(typeof e<"u"&&e.length>0?e[0]:window.ethereum)}function u2u({chains:u,flag:e,options:t}){return new ys({chains:u,options:{getProvider:()=>ZEu(e),...t}})}var e2u=({chains:u,projectId:e,walletConnectOptions:t,walletConnectVersion:n="2",...r})=>{const i=XEu("isRainbow"),a=!i;return{id:"rainbow",name:"Rainbow",iconUrl:async()=>(await qu(()=>import("./rainbowWallet-GGU64QEI-80e56a37.js"),[])).default,iconBackground:"#0c2f78",installed:a?void 0:i,downloadUrls:{android:"https://play.google.com/store/apps/details?id=me.rainbow&referrer=utm_source%3Drainbowkit&utm_source=rainbowkit",ios:"https://apps.apple.com/app/apple-store/id1457119021?pt=119997837&ct=rainbowkit&mt=8",mobile:"https://rainbow.download?utm_source=rainbowkit",qrCode:"https://rainbow.download?utm_source=rainbowkit&utm_medium=qrcode",browserExtension:"https://rainbow.me/extension?utm_source=rainbowkit"},createConnector:()=>{const o=a?E2({projectId:e,chains:u,version:n,options:t}):u2u({flag:"isRainbow",chains:u,options:r}),s=async()=>{const l=await CC(o,n);return $5()?l:va()?`rainbow://wc?uri=${encodeURIComponent(l)}&connector=rainbowkit`:`https://rnbwapp.com/wc?uri=${encodeURIComponent(l)}&connector=rainbowkit`};return{connector:o,mobile:{getUri:a?s:void 0},qrCode:a?{getUri:s,instructions:{learnMoreUrl:"https://learn.rainbow.me/connect-to-a-website-or-app?utm_source=rainbowkit&utm_medium=connector&utm_campaign=learnmore",steps:[{description:"wallet_connectors.rainbow.qr_code.step1.description",step:"install",title:"wallet_connectors.rainbow.qr_code.step1.title"},{description:"wallet_connectors.rainbow.qr_code.step2.description",step:"create",title:"wallet_connectors.rainbow.qr_code.step2.title"},{description:"wallet_connectors.rainbow.qr_code.step3.description",step:"scan",title:"wallet_connectors.rainbow.qr_code.step3.title"}]}}:void 0}}}},t2u=({chains:u,...e})=>({id:"safe",name:"Safe",iconAccent:"#12ff80",iconBackground:"#fff",iconUrl:async()=>(await qu(()=>import("./safeWallet-DFMLSLCR-bb33abc9.js"),[])).default,installed:!(typeof window>"u")&&(window==null?void 0:window.parent)!==window,downloadUrls:{},createConnector:()=>({connector:new qEu({chains:u,options:e})})}),n2u=({chains:u,options:e,projectId:t,version:n="2"})=>({id:"walletConnect",name:"WalletConnect",iconUrl:async()=>(await qu(()=>import("./walletConnectWallet-D6ZADJM7-c1d5c644.js"),[])).default,iconBackground:"#3b99fc",createConnector:()=>{const r=va(),i=E2(n==="1"?{version:"1",chains:u,options:{qrcode:r,...e}}:{version:"2",chains:u,projectId:t,options:{showQrModal:r,...e}}),a=async()=>CC(i,n);return{connector:i,...r?{}:{mobile:{getUri:a},qrCode:{getUri:a}}}}}),r2u=({appName:u,chains:e,projectId:t})=>{const n=[{groupName:"Popular",wallets:[VEu({chains:e}),t2u({chains:e}),e2u({chains:e,projectId:t}),QEu({appName:u,chains:e}),YEu({chains:e,projectId:t}),n2u({chains:e,projectId:t}),KEu({chains:e})]}];return{connectors:GEu(n),wallets:n}};var Ix,XA=Rv;Ix=XA.createRoot,XA.hydrateRoot;const Rn={1:"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",5:"0x1df10ec981ac5871240be4a94f250dd238b77901",10:"0x1df10ec981ac5871240be4a94f250dd238b77901",56:"0x1df10ec981ac5871240be4a94f250dd238b77901",137:"0x1df10ec981ac5871240be4a94f250dd238b77901",250:"0x1df10ec981ac5871240be4a94f250dd238b77901",288:"0x1df10ec981ac5871240be4a94f250dd238b77901",324:"0x1df10ec981ac5871240be4a94f250dd238b77901",420:"0x1df10ec981ac5871240be4a94f250dd238b77901",42161:"0x1df10ec981ac5871240be4a94f250dd238b77901",80001:"0x1df10ec981ac5871240be4a94f250dd238b77901",421613:"0x1df10ec981ac5871240be4a94f250dd238b77901"};var i2u="0.9.10",yt=class Vf extends Error{constructor(e,t={}){var a;const n=t.cause instanceof Vf?t.cause.details:(a=t.cause)!=null&&a.message?t.cause.message:t.details,r=t.cause instanceof Vf&&t.cause.docsPath||t.docsPath,i=[e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...r?[`Docs: https://abitype.dev${r}`]:[],...n?[`Details: ${n}`]:[],`Version: abitype@${i2u}`].join(` +`);super(i),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),t.cause&&(this.cause=t.cause),this.details=n,this.docsPath=r,this.metaMessages=t.metaMessages,this.shortMessage=e}};function ci(u,e){const t=u.exec(e);return t==null?void 0:t.groups}var Ox=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Nx=/^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)?$/,Rx=/^\(.+?\).*?$/,ZA=/^tuple(?(\[(\d*)\])*)$/;function Jf(u){let e=u.type;if(ZA.test(u.type)&&"components"in u){e="(";const t=u.components.length;for(let r=0;r[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;function o2u(u){return jx.test(u)}function s2u(u){return ci(jx,u)}var zx=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;function l2u(u){return zx.test(u)}function c2u(u){return ci(zx,u)}var Mx=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/;function E2u(u){return Mx.test(u)}function d2u(u){return ci(Mx,u)}var Ux=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/;function Lx(u){return Ux.test(u)}function f2u(u){return ci(Ux,u)}var $x=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/;function p2u(u){return $x.test(u)}function h2u(u){return ci($x,u)}var C2u=/^fallback\(\)$/;function m2u(u){return C2u.test(u)}var g2u=/^receive\(\) external payable$/;function A2u(u){return g2u.test(u)}var y2u=new Set(["indexed"]),Yf=new Set(["calldata","memory","storage"]),B2u=class extends yt{constructor({type:u}){super("Unknown type.",{metaMessages:[`Type "${u}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},v2u=class extends yt{constructor({type:u}){super("Unknown type.",{metaMessages:[`Type "${u}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}},F2u=class extends yt{constructor({param:u}){super("Invalid ABI parameter.",{details:u}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},D2u=class extends yt{constructor({param:u,name:e}){super("Invalid ABI parameter.",{details:u,metaMessages:[`"${e}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},b2u=class extends yt{constructor({param:u,type:e,modifier:t}){super("Invalid ABI parameter.",{details:u,metaMessages:[`Modifier "${t}" not allowed${e?` in "${e}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},w2u=class extends yt{constructor({param:u,type:e,modifier:t}){super("Invalid ABI parameter.",{details:u,metaMessages:[`Modifier "${t}" not allowed${e?` in "${e}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${t}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},x2u=class extends yt{constructor({abiParameter:u}){super("Invalid ABI parameter.",{details:JSON.stringify(u,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}},O4=class extends yt{constructor({signature:u,type:e}){super(`Invalid ${e} signature.`,{details:u}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},k2u=class extends yt{constructor({signature:u}){super("Unknown signature.",{details:u}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},_2u=class extends yt{constructor({signature:u}){super("Invalid struct signature.",{details:u,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}},S2u=class extends yt{constructor({type:u}){super("Circular reference detected.",{metaMessages:[`Struct "${u}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}},P2u=class extends yt{constructor({current:u,depth:e}){super("Unbalanced parentheses.",{metaMessages:[`"${u.trim()}" has too many ${e>0?"opening":"closing"} parentheses.`],details:`Depth "${e}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}};function T2u(u,e){return e?`${e}:${u}`:u}var T1=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function I2u(u,e={}){if(E2u(u)){const t=d2u(u);if(!t)throw new O4({signature:u,type:"function"});const n=Tt(t.parameters),r=[],i=n.length;for(let o=0;o[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,N2u=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,R2u=/^u?int$/;function Ai(u,e){var E,d;const t=T2u(u,e==null?void 0:e.type);if(T1.has(t))return T1.get(t);const n=Rx.test(u),r=ci(n?N2u:O2u,u);if(!r)throw new F2u({param:u});if(r.name&&z2u(r.name))throw new D2u({param:u,name:r.name});const i=r.name?{name:r.name}:{},a=r.modifier==="indexed"?{indexed:!0}:{},o=(e==null?void 0:e.structs)??{};let s,l={};if(n){s="tuple";const f=Tt(r.type),C=[],h=f.length;for(let B=0;B[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/;function qx(u,e,t=new Set){const n=[],r=u.length;for(let i=0;iObject.fromEntries(u.filter(e=>e.type==="event").map(e=>{const t=n=>({eventName:e.name,abi:[e],humanReadableAbi:ks([e]),...n});return t.abi=[e],t.eventName=e.name,t.humanReadableAbi=ks([e]),[e.name,t]})),q2u=({methods:u})=>Object.fromEntries(u.filter(({type:e})=>e==="function").map(e=>{const t=(...n)=>{const r=u.filter(a=>a.name===(e==null?void 0:e.name)),i=n.length>0?{args:n}:{};return{abi:r,humanReadableAbi:ks([e]),functionName:e.name,...i}};return t.abi=[e],t.humanReadableAbi=ks([e]),[e.name,t]})),H2u=({methods:u})=>Object.fromEntries(u.map(e=>{const t=(...n)=>{const r=u.filter(a=>a.name===(e==null?void 0:e.name)),i=n.length>0?{args:n}:{};return{abi:r,humanReadableAbi:ks([e]),functionName:e.name,...i}};return t.abi=[e],t.humanReadableAbi=ks([e]),[e.name,t]})),G2u=({humanReadableAbi:u,name:e})=>{const t=$2u(u),n=t.filter(r=>r.type==="function");return{name:e,abi:t,humanReadableAbi:u,events:W2u({abi:t}),write:H2u({methods:n}),read:q2u({methods:n})}};const K2u={name:"WagmiMintExample",humanReadableAbi:["constructor()","event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)","event ApprovalForAll(address indexed owner, address indexed operator, bool approved)","event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)","function approve(address to, uint256 tokenId)","function balanceOf(address owner) view returns (uint256)","function getApproved(uint256 tokenId) view returns (address)","function isApprovedForAll(address owner, address operator) view returns (bool)","function mint()","function mint(uint256 tokenId)","function name() view returns (string)","function ownerOf(uint256 tokenId) view returns (address)","function safeTransferFrom(address from, address to, uint256 tokenId)","function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)","function setApprovalForAll(address operator, bool approved)","function supportsInterface(bytes4 interfaceId) view returns (bool)","function symbol() view returns (string)","function tokenURI(uint256 tokenId) pure returns (string)","function totalSupply() view returns (uint256)","function transferFrom(address from, address to, uint256 tokenId)"]},an=G2u(K2u),Q2u="6.8.0";function V2u(u,e,t){const n=e.split("|").map(i=>i.trim());for(let i=0;iPromise.resolve(u[n])))).reduce((n,r,i)=>(n[e[i]]=r,n),{})}function Ou(u,e,t){for(let n in e){let r=e[n];const i=t?t[n]:null;i&&V2u(r,i,n),Object.defineProperty(u,n,{enumerable:!0,value:r,writable:!1})}}function eo(u){if(u==null)return"null";if(Array.isArray(u))return"[ "+u.map(eo).join(", ")+" ]";if(u instanceof Uint8Array){const e="0123456789abcdef";let t="0x";for(let n=0;n>4],t+=e[u[n]&15];return t}if(typeof u=="object"&&typeof u.toJSON=="function")return eo(u.toJSON());switch(typeof u){case"boolean":case"symbol":return u.toString();case"bigint":return BigInt(u).toString();case"number":return u.toString();case"string":return JSON.stringify(u);case"object":{const e=Object.keys(u);return e.sort(),"{ "+e.map(t=>`${eo(t)}: ${eo(u[t])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function dt(u,e){return u&&u.code===e}function mC(u){return dt(u,"CALL_EXCEPTION")}function we(u,e,t){let n=u;{const i=[];if(t){if("message"in t||"code"in t||"name"in t)throw new Error(`value will overwrite populated values: ${eo(t)}`);for(const a in t){if(a==="shortMessage")continue;const o=t[a];i.push(a+"="+eo(o))}}i.push(`code=${e}`),i.push(`version=${Q2u}`),i.length&&(u+=" ("+i.join(", ")+")")}let r;switch(e){case"INVALID_ARGUMENT":r=new TypeError(u);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":r=new RangeError(u);break;default:r=new Error(u)}return Ou(r,{code:e}),t&&Object.assign(r,t),r.shortMessage==null&&Ou(r,{shortMessage:n}),r}function Eu(u,e,t,n){if(!u)throw we(e,t,n)}function Q(u,e,t,n){Eu(u,e,"INVALID_ARGUMENT",{argument:t,value:n})}function Hx(u,e,t){t==null&&(t=""),t&&(t=": "+t),Eu(u>=e,"missing arguemnt"+t,"MISSING_ARGUMENT",{count:u,expectedCount:e}),Eu(u<=e,"too many arguemnts"+t,"UNEXPECTED_ARGUMENT",{count:u,expectedCount:e})}const J2u=["NFD","NFC","NFKD","NFKC"].reduce((u,e)=>{try{if("test".normalize(e)!=="test")throw new Error("bad");if(e==="NFD"){const t=String.fromCharCode(233).normalize("NFD"),n=String.fromCharCode(101,769);if(t!==n)throw new Error("broken")}u.push(e)}catch{}return u},[]);function Y2u(u){Eu(J2u.indexOf(u)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:u}})}function r9(u,e,t){if(t==null&&(t=""),u!==e){let n=t,r="new";t&&(n+=".",r+=" "+t),Eu(!1,`private constructor; use ${n}from* methods`,"UNSUPPORTED_OPERATION",{operation:r})}}function Gx(u,e,t){if(u instanceof Uint8Array)return t?new Uint8Array(u):u;if(typeof u=="string"&&u.match(/^0x([0-9a-f][0-9a-f])*$/i)){const n=new Uint8Array((u.length-2)/2);let r=2;for(let i=0;i>4]+u7[r&15]}return t}function Ie(u){return"0x"+u.map(e=>ku(e).substring(2)).join("")}function go(u){return he(u,!0)?(u.length-2)/2:ue(u).length}function ge(u,e,t){const n=ue(u);return t!=null&&t>n.length&&Eu(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:n,length:n.length,offset:t}),ku(n.slice(e??0,t??n.length))}function Kx(u,e,t){const n=ue(u);Eu(e>=n.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(n),length:e,offset:e+1});const r=new Uint8Array(e);return r.fill(0),t?r.set(n,e-n.length):r.set(n,0),ku(r)}function Ea(u,e){return Kx(u,e,!0)}function Z2u(u,e){return Kx(u,e,!1)}const i9=BigInt(0),It=BigInt(1),to=9007199254740991;function udu(u,e){const t=a9(u,"value"),n=BigInt(Gu(e,"width"));if(Eu(t>>n===i9,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:u}),t>>n-It){const r=(It<=-to&&u<=to,"overflow",e||"value",u),BigInt(u);case"string":try{if(u==="")throw new Error("empty string");return u[0]==="-"&&u[1]!=="-"?-BigInt(u.substring(1)):BigInt(u)}catch(t){Q(!1,`invalid BigNumberish string: ${t.message}`,e||"value",u)}}Q(!1,"invalid BigNumberish value",e||"value",u)}function a9(u,e){const t=Su(u,e);return Eu(t>=i9,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:u}),t}const e7="0123456789abcdef";function gC(u){if(u instanceof Uint8Array){let e="0x0";for(const t of u)e+=e7[t>>4],e+=e7[t&15];return BigInt(e)}return Su(u)}function Gu(u,e){switch(typeof u){case"bigint":return Q(u>=-to&&u<=to,"overflow",e||"value",u),Number(u);case"number":return Q(Number.isInteger(u),"underflow",e||"value",u),Q(u>=-to&&u<=to,"overflow",e||"value",u),u;case"string":try{if(u==="")throw new Error("empty string");return Gu(BigInt(u),e)}catch(t){Q(!1,`invalid numeric string: ${t.message}`,e||"value",u)}}Q(!1,"invalid numeric value",e||"value",u)}function edu(u){return Gu(gC(u))}function ui(u,e){let n=a9(u,"value").toString(16);if(e==null)n.length%2&&(n="0"+n);else{const r=Gu(e,"width");for(Eu(r*2>=n.length,`value exceeds width (${r} bits)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:u});n.length>6===2;a++)i++;return i}return u==="OVERRUN"?t.length-e-1:0}function odu(u,e,t,n,r){return u==="OVERLONG"?(Q(typeof r=="number","invalid bad code point for replacement","badCodepoint",r),n.push(r),0):(n.push(65533),Jx(u,e,t))}const sdu=Object.freeze({error:adu,ignore:Jx,replace:odu});function ldu(u,e){e==null&&(e=sdu.error);const t=ue(u,"bytes"),n=[];let r=0;for(;r>7)){n.push(i);continue}let a=null,o=null;if((i&224)===192)a=1,o=127;else if((i&240)===224)a=2,o=2047;else if((i&248)===240)a=3,o=65535;else{(i&192)===128?r+=e("UNEXPECTED_CONTINUE",r-1,t,n):r+=e("BAD_PREFIX",r-1,t,n);continue}if(r-1+a>=t.length){r+=e("OVERRUN",r-1,t,n);continue}let s=i&(1<<8-a-1)-1;for(let l=0;l1114111){r+=e("OUT_OF_RANGE",r-1-a,t,n,s);continue}if(s>=55296&&s<=57343){r+=e("UTF16_SURROGATE",r-1-a,t,n,s);continue}if(s<=o){r+=e("OVERLONG",r-1-a,t,n,s);continue}n.push(s)}}return n}function qn(u,e){e!=null&&(Y2u(e),u=u.normalize(e));let t=[];for(let n=0;n>6|192),t.push(r&63|128);else if((r&64512)==55296){n++;const i=u.charCodeAt(n);Q(n>18|240),t.push(a>>12&63|128),t.push(a>>6&63|128),t.push(a&63|128)}else t.push(r>>12|224),t.push(r>>6&63|128),t.push(r&63|128)}return new Uint8Array(t)}function cdu(u){return u.map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))).join("")}function AC(u,e){return cdu(ldu(u,e))}function Yx(u){async function e(t,n){const r=t.url.split(":")[0].toLowerCase();Eu(r==="http"||r==="https",`unsupported protocol ${r}`,"UNSUPPORTED_OPERATION",{info:{protocol:r},operation:"request"}),Eu(r==="https"||!t.credentials||t.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let i;if(n){const E=new AbortController;i=E.signal,n.addListener(()=>{E.abort()})}const a={method:t.method,headers:new Headers(Array.from(t)),body:t.body||void 0,signal:i},o=await fetch(t.url,a),s={};o.headers.forEach((E,d)=>{s[d.toLowerCase()]=E});const l=await o.arrayBuffer(),c=l==null?null:new Uint8Array(l);return{statusCode:o.status,statusMessage:o.statusText,headers:s,body:c}}return e}const Edu=12,ddu=250;let n7=Yx();const fdu=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),pdu=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let I1=!1;async function Xx(u,e){try{const t=u.match(fdu);if(!t)throw new Error("invalid data");return new Gr(200,"OK",{"content-type":t[1]||"text/plain"},t[2]?rdu(t[3]):Cdu(t[3]))}catch{return new Gr(599,"BAD REQUEST (invalid data: URI)",{},null,new Xn(u))}}function Zx(u){async function e(t,n){try{const r=t.match(pdu);if(!r)throw new Error("invalid link");return new Xn(`${u}${r[2]}`)}catch{return new Gr(599,"BAD REQUEST (invalid IPFS URI)",{},null,new Xn(t))}}return e}const _c={data:Xx,ipfs:Zx("https://gateway.ipfs.io/ipfs/")},uk=new WeakMap;var Si,Ar;class hdu{constructor(e){tu(this,Si,void 0);tu(this,Ar,void 0);R(this,Si,[]),R(this,Ar,!1),uk.set(e,()=>{if(!_(this,Ar)){R(this,Ar,!0);for(const t of _(this,Si))setTimeout(()=>{t()},0);R(this,Si,[])}})}addListener(e){Eu(!_(this,Ar),"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),_(this,Si).push(e)}get cancelled(){return _(this,Ar)}checkSignal(){Eu(!this.cancelled,"cancelled","CANCELLED",{})}}Si=new WeakMap,Ar=new WeakMap;function Sc(u){if(u==null)throw new Error("missing signal; should not happen");return u.checkSignal(),u}var vo,Fo,wt,Bn,Do,bo,Oe,R0,vn,Pi,Ti,Ii,Jt,Fn,yr,Oi,R4;const v2=class v2{constructor(e){tu(this,Oi);tu(this,vo,void 0);tu(this,Fo,void 0);tu(this,wt,void 0);tu(this,Bn,void 0);tu(this,Do,void 0);tu(this,bo,void 0);tu(this,Oe,void 0);tu(this,R0,void 0);tu(this,vn,void 0);tu(this,Pi,void 0);tu(this,Ti,void 0);tu(this,Ii,void 0);tu(this,Jt,void 0);tu(this,Fn,void 0);tu(this,yr,void 0);R(this,bo,String(e)),R(this,vo,!1),R(this,Fo,!0),R(this,wt,{}),R(this,Bn,""),R(this,Do,3e5),R(this,Fn,{slotInterval:ddu,maxAttempts:Edu}),R(this,yr,null)}get url(){return _(this,bo)}set url(e){R(this,bo,String(e))}get body(){return _(this,Oe)==null?null:new Uint8Array(_(this,Oe))}set body(e){if(e==null)R(this,Oe,void 0),R(this,R0,void 0);else if(typeof e=="string")R(this,Oe,qn(e)),R(this,R0,"text/plain");else if(e instanceof Uint8Array)R(this,Oe,e),R(this,R0,"application/octet-stream");else if(typeof e=="object")R(this,Oe,qn(JSON.stringify(e))),R(this,R0,"application/json");else throw new Error("invalid body")}hasBody(){return _(this,Oe)!=null}get method(){return _(this,Bn)?_(this,Bn):this.hasBody()?"POST":"GET"}set method(e){e==null&&(e=""),R(this,Bn,String(e).toUpperCase())}get headers(){const e=Object.assign({},_(this,wt));return _(this,vn)&&(e.authorization=`Basic ${idu(qn(_(this,vn)))}`),this.allowGzip&&(e["accept-encoding"]="gzip"),e["content-type"]==null&&_(this,R0)&&(e["content-type"]=_(this,R0)),this.body&&(e["content-length"]=String(this.body.length)),e}getHeader(e){return this.headers[e.toLowerCase()]}setHeader(e,t){_(this,wt)[String(e).toLowerCase()]=String(t)}clearHeaders(){R(this,wt,{})}[Symbol.iterator](){const e=this.headers,t=Object.keys(e);let n=0;return{next:()=>{if(n=0,"timeout must be non-zero","timeout",e),R(this,Do,e)}get preflightFunc(){return _(this,Pi)||null}set preflightFunc(e){R(this,Pi,e)}get processFunc(){return _(this,Ti)||null}set processFunc(e){R(this,Ti,e)}get retryFunc(){return _(this,Ii)||null}set retryFunc(e){R(this,Ii,e)}get getUrlFunc(){return _(this,yr)||n7}set getUrlFunc(e){R(this,yr,e)}toString(){return``}setThrottleParams(e){e.slotInterval!=null&&(_(this,Fn).slotInterval=e.slotInterval),e.maxAttempts!=null&&(_(this,Fn).maxAttempts=e.maxAttempts)}send(){return Eu(_(this,Jt)==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),R(this,Jt,new hdu(this)),yu(this,Oi,R4).call(this,0,r7()+this.timeout,0,this,new Gr(0,"",{},null,this))}cancel(){Eu(_(this,Jt)!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const e=uk.get(this);if(!e)throw new Error("missing signal; should not happen");e()}redirect(e){const t=this.url.split(":")[0].toLowerCase(),n=e.split(":")[0].toLowerCase();Eu(this.method==="GET"&&(t!=="https"||n!=="http")&&e.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(e)})`});const r=new v2(e);return r.method="GET",r.allowGzip=this.allowGzip,r.timeout=this.timeout,R(r,wt,Object.assign({},_(this,wt))),_(this,Oe)&&R(r,Oe,new Uint8Array(_(this,Oe))),R(r,R0,_(this,R0)),r}clone(){const e=new v2(this.url);return R(e,Bn,_(this,Bn)),_(this,Oe)&&R(e,Oe,_(this,Oe)),R(e,R0,_(this,R0)),R(e,wt,Object.assign({},_(this,wt))),R(e,vn,_(this,vn)),this.allowGzip&&(e.allowGzip=!0),e.timeout=this.timeout,this.allowInsecureAuthentication&&(e.allowInsecureAuthentication=!0),R(e,Pi,_(this,Pi)),R(e,Ti,_(this,Ti)),R(e,Ii,_(this,Ii)),R(e,yr,_(this,yr)),e}static lockConfig(){I1=!0}static getGateway(e){return _c[e.toLowerCase()]||null}static registerGateway(e,t){if(e=e.toLowerCase(),e==="http"||e==="https")throw new Error(`cannot intercept ${e}; use registerGetUrl`);if(I1)throw new Error("gateways locked");_c[e]=t}static registerGetUrl(e){if(I1)throw new Error("gateways locked");n7=e}static createGetUrlFunc(e){return Yx()}static createDataGateway(){return Xx}static createIpfsGatewayFunc(e){return Zx(e)}};vo=new WeakMap,Fo=new WeakMap,wt=new WeakMap,Bn=new WeakMap,Do=new WeakMap,bo=new WeakMap,Oe=new WeakMap,R0=new WeakMap,vn=new WeakMap,Pi=new WeakMap,Ti=new WeakMap,Ii=new WeakMap,Jt=new WeakMap,Fn=new WeakMap,yr=new WeakMap,Oi=new WeakSet,R4=async function(e,t,n,r,i){var c,E,d;if(e>=_(this,Fn).maxAttempts)return i.makeServerError("exceeded maximum retry limit");Eu(r7()<=t,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:r}),n>0&&await mdu(n);let a=this.clone();const o=(a.url.split(":")[0]||"").toLowerCase();if(o in _c){const f=await _c[o](a.url,Sc(_(r,Jt)));if(f instanceof Gr){let C=f;if(this.processFunc){Sc(_(r,Jt));try{C=await this.processFunc(a,C)}catch(h){(h.throttle==null||typeof h.stall!="number")&&C.makeServerError("error in post-processing function",h).assertOk()}}return C}a=f}this.preflightFunc&&(a=await this.preflightFunc(a));const s=await this.getUrlFunc(a,Sc(_(r,Jt)));let l=new Gr(s.statusCode,s.statusMessage,s.headers,s.body,r);if(l.statusCode===301||l.statusCode===302){try{const f=l.headers.location||"";return yu(c=a.redirect(f),Oi,R4).call(c,e+1,t,0,r,l)}catch{}return l}else if(l.statusCode===429&&(this.retryFunc==null||await this.retryFunc(a,l,e))){const f=l.headers["retry-after"];let C=_(this,Fn).slotInterval*Math.trunc(Math.random()*Math.pow(2,e));return typeof f=="string"&&f.match(/^[1-9][0-9]*$/)&&(C=parseInt(f)),yu(E=a.clone(),Oi,R4).call(E,e+1,t,C,r,l)}if(this.processFunc){Sc(_(r,Jt));try{l=await this.processFunc(a,l)}catch(f){(f.throttle==null||typeof f.stall!="number")&&l.makeServerError("error in post-processing function",f).assertOk();let C=_(this,Fn).slotInterval*Math.trunc(Math.random()*Math.pow(2,e));return f.stall>=0&&(C=f.stall),yu(d=a.clone(),Oi,R4).call(d,e+1,t,C,r,l)}}return l};let Xn=v2;var ul,el,tl,xt,wo,Ni;const PC=class PC{constructor(e,t,n,r,i){tu(this,ul,void 0);tu(this,el,void 0);tu(this,tl,void 0);tu(this,xt,void 0);tu(this,wo,void 0);tu(this,Ni,void 0);R(this,ul,e),R(this,el,t),R(this,tl,Object.keys(n).reduce((a,o)=>(a[o.toLowerCase()]=String(n[o]),a),{})),R(this,xt,r==null?null:new Uint8Array(r)),R(this,wo,i||null),R(this,Ni,{message:""})}toString(){return``}get statusCode(){return _(this,ul)}get statusMessage(){return _(this,el)}get headers(){return Object.assign({},_(this,tl))}get body(){return _(this,xt)==null?null:new Uint8Array(_(this,xt))}get bodyText(){try{return _(this,xt)==null?"":AC(_(this,xt))}catch{Eu(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch{Eu(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const e=this.headers,t=Object.keys(e);let n=0;return{next:()=>{if(n=0,"invalid stall timeout","stall",t);const n=new Error(e||"throttling requests");throw Ou(n,{stall:t,throttle:!0}),n}getHeader(e){return this.headers[e.toLowerCase()]}hasBody(){return _(this,xt)!=null}get request(){return _(this,wo)}ok(){return _(this,Ni).message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:e,error:t}=_(this,Ni);e===""&&(e=`server response ${this.statusCode} ${this.statusMessage}`),Eu(!1,e,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:t})}};ul=new WeakMap,el=new WeakMap,tl=new WeakMap,xt=new WeakMap,wo=new WeakMap,Ni=new WeakMap;let Gr=PC;function r7(){return new Date().getTime()}function Cdu(u){return qn(u.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16))))}function mdu(u){return new Promise(e=>setTimeout(e,u))}function gdu(u){let e=u.toString(16);for(;e.length<2;)e="0"+e;return"0x"+e}function i7(u,e,t){let n=0;for(let r=0;r{Eu(n<=u.length,"data short segment too short","BUFFER_OVERRUN",{buffer:u,length:u.length,offset:n})};if(u[e]>=248){const n=u[e]-247;t(e+1+n);const r=i7(u,e+1,n);return t(e+1+n+r),a7(u,e,e+1+n,n+r)}else if(u[e]>=192){const n=u[e]-192;return t(e+1+n),a7(u,e,e+1,n)}else if(u[e]>=184){const n=u[e]-183;t(e+1+n);const r=i7(u,e+1,n);t(e+1+n+r);const i=ku(u.slice(e+1+n,e+1+n+r));return{consumed:1+n+r,result:i}}else if(u[e]>=128){const n=u[e]-128;t(e+1+n);const r=ku(u.slice(e+1,e+1+n));return{consumed:1+n,result:r}}return{consumed:1,result:gdu(u[e])}}function yC(u){const e=ue(u,"data"),t=ek(e,0);return Q(t.consumed===e.length,"unexpected junk after rlp payload","data",u),t.result}function o7(u){const e=[];for(;u;)e.unshift(u&255),u>>=8;return e}function tk(u){if(Array.isArray(u)){let n=[];if(u.forEach(function(i){n=n.concat(tk(i))}),n.length<=55)return n.unshift(192+n.length),n;const r=o7(n.length);return r.unshift(247+r.length),r.concat(n)}const e=Array.prototype.slice.call(ue(u,"object"));if(e.length===1&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const t=o7(e.length);return t.unshift(183+t.length),t.concat(e)}const s7="0123456789abcdef";function H3(u){let e="0x";for(const t of tk(u))e+=s7[t>>4],e+=s7[t&15];return e}const c0=32,Xf=new Uint8Array(c0),Adu=["then"],Pc={};function v4(u,e){const t=new Error(`deferred error during ABI decoding triggered accessing ${u}`);throw t.error=e,t}var Br;const e3=class e3 extends Array{constructor(...t){const n=t[0];let r=t[1],i=(t[2]||[]).slice(),a=!0;n!==Pc&&(r=t,i=[],a=!1);super(r.length);tu(this,Br,void 0);r.forEach((s,l)=>{this[l]=s});const o=i.reduce((s,l)=>(typeof l=="string"&&s.set(l,(s.get(l)||0)+1),s),new Map);if(R(this,Br,Object.freeze(r.map((s,l)=>{const c=i[l];return c!=null&&o.get(c)===1?c:null}))),!!a)return Object.freeze(this),new Proxy(this,{get:(s,l,c)=>{if(typeof l=="string"){if(l.match(/^[0-9]+$/)){const d=Gu(l,"%index");if(d<0||d>=this.length)throw new RangeError("out of result range");const f=s[d];return f instanceof Error&&v4(`index ${d}`,f),f}if(Adu.indexOf(l)>=0)return Reflect.get(s,l,c);const E=s[l];if(E instanceof Function)return function(...d){return E.apply(this===c?s:this,d)};if(!(l in s))return s.getValue.apply(this===c?s:this,[l])}return Reflect.get(s,l,c)}})}toArray(){const t=[];return this.forEach((n,r)=>{n instanceof Error&&v4(`index ${r}`,n),t.push(n)}),t}toObject(){return _(this,Br).reduce((t,n,r)=>(Eu(n!=null,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"}),n in t||(t[n]=this.getValue(n)),t),{})}slice(t,n){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),n==null&&(n=this.length),n<0&&(n+=this.length,n<0&&(n=0)),n>this.length&&(n=this.length);const r=[],i=[];for(let a=t;a{_(this,Dn)[e]=l7(t)}}}Dn=new WeakMap,Ri=new WeakMap,xo=new WeakSet,nE=function(e){return _(this,Dn).push(e),R(this,Ri,_(this,Ri)+e.length),e.length};var j0,et,F2,nk;const TC=class TC{constructor(e,t){tu(this,F2);X(this,"allowLoose");tu(this,j0,void 0);tu(this,et,void 0);Ou(this,{allowLoose:!!t}),R(this,j0,D0(e)),R(this,et,0)}get data(){return ku(_(this,j0))}get dataLength(){return _(this,j0).length}get consumed(){return _(this,et)}get bytes(){return new Uint8Array(_(this,j0))}subReader(e){return new TC(_(this,j0).slice(_(this,et)+e),this.allowLoose)}readBytes(e,t){let n=yu(this,F2,nk).call(this,0,e,!!t);return R(this,et,_(this,et)+n.length),n.slice(0,e)}readValue(){return gC(this.readBytes(c0))}readIndex(){return edu(this.readBytes(c0))}};j0=new WeakMap,et=new WeakMap,F2=new WeakSet,nk=function(e,t,n){let r=Math.ceil(t/c0)*c0;return _(this,et)+r>_(this,j0).length&&(this.allowLoose&&n&&_(this,et)+t<=_(this,j0).length?r=t:Eu(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:D0(_(this,j0)),length:_(this,j0).length,offset:_(this,et)+r})),_(this,j0).slice(_(this,et),_(this,et)+r)};let up=TC,rk=!1;const ik=function(u){return lF(u)};let ak=ik;function pe(u){const e=ue(u,"data");return ku(ak(e))}pe._=ik;pe.lock=function(){rk=!0};pe.register=function(u){if(rk)throw new TypeError("keccak256 is locked");ak=u};Object.freeze(pe);const ep="0x0000000000000000000000000000000000000000",c7="0x0000000000000000000000000000000000000000000000000000000000000000",E7=BigInt(0),d7=BigInt(1),f7=BigInt(2),p7=BigInt(27),h7=BigInt(28),Tc=BigInt(35),Pa={};function C7(u){return Ea($0(u),32)}var ko,_o,So,ji;const Ft=class Ft{constructor(e,t,n,r){tu(this,ko,void 0);tu(this,_o,void 0);tu(this,So,void 0);tu(this,ji,void 0);r9(e,Pa,"Signature"),R(this,ko,t),R(this,_o,n),R(this,So,r),R(this,ji,null)}get r(){return _(this,ko)}set r(e){Q(go(e)===32,"invalid r","value",e),R(this,ko,ku(e))}get s(){return _(this,_o)}set s(e){Q(go(e)===32,"invalid s","value",e);const t=ku(e);Q(parseInt(t.substring(0,3))<8,"non-canonical s","value",t),R(this,_o,t)}get v(){return _(this,So)}set v(e){const t=Gu(e,"value");Q(t===27||t===28,"invalid v","v",e),R(this,So,t)}get networkV(){return _(this,ji)}get legacyChainId(){const e=this.networkV;return e==null?null:Ft.getChainId(e)}get yParity(){return this.v===27?0:1}get yParityAndS(){const e=ue(this.s);return this.yParity&&(e[0]|=128),ku(e)}get compactSerialized(){return Ie([this.r,this.yParityAndS])}get serialized(){return Ie([this.r,this.s,this.yParity?"0x1c":"0x1b"])}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const e=new Ft(Pa,this.r,this.s,this.v);return this.networkV&&R(e,ji,this.networkV),e}toJSON(){const e=this.networkV;return{_type:"signature",networkV:e!=null?e.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(e){const t=Su(e,"v");return t==p7||t==h7?E7:(Q(t>=Tc,"invalid EIP-155 v","v",e),(t-Tc)/f7)}static getChainIdV(e,t){return Su(e)*f7+BigInt(35+t-27)}static getNormalizedV(e){const t=Su(e);return t===E7||t===p7?27:t===d7||t===h7?28:(Q(t>=Tc,"invalid v","v",e),t&d7?27:28)}static from(e){function t(l,c){Q(l,c,"signature",e)}if(e==null)return new Ft(Pa,c7,c7,27);if(typeof e=="string"){const l=ue(e,"signature");if(l.length===64){const c=ku(l.slice(0,32)),E=l.slice(32,64),d=E[0]&128?28:27;return E[0]&=127,new Ft(Pa,c,ku(E),d)}if(l.length===65){const c=ku(l.slice(0,32)),E=l.slice(32,64);t((E[0]&128)===0,"non-canonical s");const d=Ft.getNormalizedV(l[64]);return new Ft(Pa,c,ku(E),d)}t(!1,"invalid raw signature length")}if(e instanceof Ft)return e.clone();const n=e.r;t(n!=null,"missing r");const r=C7(n),i=function(l,c){if(l!=null)return C7(l);if(c!=null){t(he(c,32),"invalid yParityAndS");const E=ue(c);return E[0]&=127,ku(E)}t(!1,"missing s")}(e.s,e.yParityAndS);t((ue(i)[0]&128)==0,"non-canonical s");const{networkV:a,v:o}=function(l,c,E){if(l!=null){const d=Su(l);return{networkV:d>=Tc?d:void 0,v:Ft.getNormalizedV(d)}}if(c!=null)return t(he(c,32),"invalid yParityAndS"),{v:ue(c)[0]&128?28:27};if(E!=null){switch(Gu(E,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}t(!1,"invalid yParity")}t(!1,"missing v")}(e.v,e.yParityAndS,e.yParity),s=new Ft(Pa,r,i,o);return a&&R(s,ji,a),t(e.yParity==null||Gu(e.yParity,"sig.yParity")===s.yParity,"yParity mismatch"),t(e.yParityAndS==null||e.yParityAndS===s.yParityAndS,"yParityAndS mismatch"),s}};ko=new WeakMap,_o=new WeakMap,So=new WeakMap,ji=new WeakMap;let Ut=Ft;var bn;const yi=class yi{constructor(e){tu(this,bn,void 0);Q(go(e)===32,"invalid private key","privateKey","[REDACTED]"),R(this,bn,ku(e))}get privateKey(){return _(this,bn)}get publicKey(){return yi.computePublicKey(_(this,bn))}get compressedPublicKey(){return yi.computePublicKey(_(this,bn),!0)}sign(e){Q(go(e)===32,"invalid digest length","digest",e);const t=Er.sign(D0(e),D0(_(this,bn)),{lowS:!0});return Ut.from({r:ui(t.r,32),s:ui(t.s,32),v:t.recovery?28:27})}computeSharedSecret(e){const t=yi.computePublicKey(e);return ku(Er.getSharedSecret(D0(_(this,bn)),ue(t),!1))}static computePublicKey(e,t){let n=ue(e,"key");if(n.length===32){const i=Er.getPublicKey(n,!!t);return ku(i)}if(n.length===64){const i=new Uint8Array(65);i[0]=4,i.set(n,1),n=i}const r=Er.ProjectivePoint.fromHex(n);return ku(r.toRawBytes(t))}static recoverPublicKey(e,t){Q(go(e)===32,"invalid digest length","digest",e);const n=Ut.from(t);let r=Er.Signature.fromCompact(D0(Ie([n.r,n.s])));r=r.addRecoveryBit(n.yParity);const i=r.recoverPublicKey(D0(e));return Q(i!=null,"invalid signautre for digest","signature",t),"0x"+i.toHex(!1)}static addPoints(e,t,n){const r=Er.ProjectivePoint.fromHex(yi.computePublicKey(e).substring(2)),i=Er.ProjectivePoint.fromHex(yi.computePublicKey(t).substring(2));return"0x"+r.add(i).toHex(!!n)}};bn=new WeakMap;let G3=yi;const ydu=BigInt(0),Bdu=BigInt(36);function m7(u){u=u.toLowerCase();const e=u.substring(2).split(""),t=new Uint8Array(40);for(let r=0;r<40;r++)t[r]=e[r].charCodeAt(0);const n=ue(pe(t));for(let r=0;r<40;r+=2)n[r>>1]>>4>=8&&(e[r]=e[r].toUpperCase()),(n[r>>1]&15)>=8&&(e[r+1]=e[r+1].toUpperCase());return"0x"+e.join("")}const BC={};for(let u=0;u<10;u++)BC[String(u)]=String(u);for(let u=0;u<26;u++)BC[String.fromCharCode(65+u)]=String(10+u);const g7=15;function vdu(u){u=u.toUpperCase(),u=u.substring(4)+u.substring(0,2)+"00";let e=u.split("").map(n=>BC[n]).join("");for(;e.length>=g7;){let n=e.substring(0,g7);e=parseInt(n,10)%97+e.substring(n.length)}let t=String(98-parseInt(e,10)%97);for(;t.length<2;)t="0"+t;return t}const Fdu=function(){const u={};for(let e=0;e<36;e++){const t="0123456789abcdefghijklmnopqrstuvwxyz"[e];u[t]=BigInt(e)}return u}();function Ddu(u){u=u.toLowerCase();let e=ydu;for(let t=0;te.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return _(this,zi)}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return _(this,zi)===!0?-1:_(this,zi)===!1?this.value.length:null}static from(e,t){return new gn(mn,e,t)}static uint8(e){return Bu(e,8)}static uint16(e){return Bu(e,16)}static uint24(e){return Bu(e,24)}static uint32(e){return Bu(e,32)}static uint40(e){return Bu(e,40)}static uint48(e){return Bu(e,48)}static uint56(e){return Bu(e,56)}static uint64(e){return Bu(e,64)}static uint72(e){return Bu(e,72)}static uint80(e){return Bu(e,80)}static uint88(e){return Bu(e,88)}static uint96(e){return Bu(e,96)}static uint104(e){return Bu(e,104)}static uint112(e){return Bu(e,112)}static uint120(e){return Bu(e,120)}static uint128(e){return Bu(e,128)}static uint136(e){return Bu(e,136)}static uint144(e){return Bu(e,144)}static uint152(e){return Bu(e,152)}static uint160(e){return Bu(e,160)}static uint168(e){return Bu(e,168)}static uint176(e){return Bu(e,176)}static uint184(e){return Bu(e,184)}static uint192(e){return Bu(e,192)}static uint200(e){return Bu(e,200)}static uint208(e){return Bu(e,208)}static uint216(e){return Bu(e,216)}static uint224(e){return Bu(e,224)}static uint232(e){return Bu(e,232)}static uint240(e){return Bu(e,240)}static uint248(e){return Bu(e,248)}static uint256(e){return Bu(e,256)}static uint(e){return Bu(e,256)}static int8(e){return Bu(e,-8)}static int16(e){return Bu(e,-16)}static int24(e){return Bu(e,-24)}static int32(e){return Bu(e,-32)}static int40(e){return Bu(e,-40)}static int48(e){return Bu(e,-48)}static int56(e){return Bu(e,-56)}static int64(e){return Bu(e,-64)}static int72(e){return Bu(e,-72)}static int80(e){return Bu(e,-80)}static int88(e){return Bu(e,-88)}static int96(e){return Bu(e,-96)}static int104(e){return Bu(e,-104)}static int112(e){return Bu(e,-112)}static int120(e){return Bu(e,-120)}static int128(e){return Bu(e,-128)}static int136(e){return Bu(e,-136)}static int144(e){return Bu(e,-144)}static int152(e){return Bu(e,-152)}static int160(e){return Bu(e,-160)}static int168(e){return Bu(e,-168)}static int176(e){return Bu(e,-176)}static int184(e){return Bu(e,-184)}static int192(e){return Bu(e,-192)}static int200(e){return Bu(e,-200)}static int208(e){return Bu(e,-208)}static int216(e){return Bu(e,-216)}static int224(e){return Bu(e,-224)}static int232(e){return Bu(e,-232)}static int240(e){return Bu(e,-240)}static int248(e){return Bu(e,-248)}static int256(e){return Bu(e,-256)}static int(e){return Bu(e,-256)}static bytes1(e){return Ju(e,1)}static bytes2(e){return Ju(e,2)}static bytes3(e){return Ju(e,3)}static bytes4(e){return Ju(e,4)}static bytes5(e){return Ju(e,5)}static bytes6(e){return Ju(e,6)}static bytes7(e){return Ju(e,7)}static bytes8(e){return Ju(e,8)}static bytes9(e){return Ju(e,9)}static bytes10(e){return Ju(e,10)}static bytes11(e){return Ju(e,11)}static bytes12(e){return Ju(e,12)}static bytes13(e){return Ju(e,13)}static bytes14(e){return Ju(e,14)}static bytes15(e){return Ju(e,15)}static bytes16(e){return Ju(e,16)}static bytes17(e){return Ju(e,17)}static bytes18(e){return Ju(e,18)}static bytes19(e){return Ju(e,19)}static bytes20(e){return Ju(e,20)}static bytes21(e){return Ju(e,21)}static bytes22(e){return Ju(e,22)}static bytes23(e){return Ju(e,23)}static bytes24(e){return Ju(e,24)}static bytes25(e){return Ju(e,25)}static bytes26(e){return Ju(e,26)}static bytes27(e){return Ju(e,27)}static bytes28(e){return Ju(e,28)}static bytes29(e){return Ju(e,29)}static bytes30(e){return Ju(e,30)}static bytes31(e){return Ju(e,31)}static bytes32(e){return Ju(e,32)}static address(e){return new gn(mn,"address",e)}static bool(e){return new gn(mn,"bool",!!e)}static bytes(e){return new gn(mn,"bytes",e)}static string(e){return new gn(mn,"string",e)}static array(e,t){throw new Error("not implemented yet")}static tuple(e,t){throw new Error("not implemented yet")}static overrides(e){return new gn(mn,"overrides",Object.assign({},e))}static isTyped(e){return e&&typeof e=="object"&&"_typedSymbol"in e&&e._typedSymbol===A7}static dereference(e,t){if(gn.isTyped(e)){if(e.type!==t)throw new Error(`invalid type: expecetd ${t}, got ${e.type}`);return e.value}return e}};zi=new WeakMap;let n0=gn;class wdu extends ar{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){let n=n0.dereference(t,"string");try{n=Xu(n)}catch(r){return this._throwError(r.message,t)}return e.writeValue(n)}decode(e){return Xu(ui(e.readValue(),20))}}class xdu extends ar{constructor(t){super(t.name,t.type,"_",t.dynamic);X(this,"coder");this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,n){return this.coder.encode(t,n)}decode(t){return this.coder.decode(t)}}function sk(u,e,t){let n=[];if(Array.isArray(t))n=t;else if(t&&typeof t=="object"){let s={};n=e.map(l=>{const c=l.localName;return Eu(c,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:t}),Eu(!s[c],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:t}),s[c]=!0,t[c]})}else Q(!1,"invalid tuple value","tuple",t);Q(e.length===n.length,"types/value length mismatch","tuple",t);let r=new Zf,i=new Zf,a=[];e.forEach((s,l)=>{let c=n[l];if(s.dynamic){let E=i.length;s.encode(i,c);let d=r.writeUpdatableValue();a.push(f=>{d(f+E)})}else s.encode(r,c)}),a.forEach(s=>{s(r.length)});let o=u.appendWriter(r);return o+=u.appendWriter(i),o}function lk(u,e){let t=[],n=[],r=u.subReader(0);return e.forEach(i=>{let a=null;if(i.dynamic){let o=u.readIndex(),s=r.subReader(o);try{a=i.decode(s)}catch(l){if(dt(l,"BUFFER_OVERRUN"))throw l;a=l,a.baseType=i.name,a.name=i.localName,a.type=i.type}}else try{a=i.decode(u)}catch(o){if(dt(o,"BUFFER_OVERRUN"))throw o;a=o,a.baseType=i.name,a.name=i.localName,a.type=i.type}if(a==null)throw new Error("investigate");t.push(a),n.push(i.localName||null)}),d2.fromItems(t,n)}class kdu extends ar{constructor(t,n,r){const i=t.type+"["+(n>=0?n:"")+"]",a=n===-1||t.dynamic;super("array",i,r,a);X(this,"coder");X(this,"length");Ou(this,{coder:t,length:n})}defaultValue(){const t=this.coder.defaultValue(),n=[];for(let r=0;ra||r<-(a+Ndu))&&this._throwError("value out-of-bounds",n),r=Qx(r,8*c0)}else(rN4(i,this.size*8))&&this._throwError("value out-of-bounds",n);return t.writeValue(r)}decode(t){let n=N4(t.readValue(),this.size*8);return this.signed&&(n=udu(n,this.size*8)),n}}class zdu extends ck{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,qn(n0.dereference(t,"string")))}decode(e){return AC(super.decode(e))}}class Ic extends ar{constructor(t,n){let r=!1;const i=[];t.forEach(o=>{o.dynamic&&(r=!0),i.push(o.type)});const a="tuple("+i.join(",")+")";super("tuple",a,n,r);X(this,"coders");Ou(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach(r=>{t.push(r.defaultValue())});const n=this.coders.reduce((r,i)=>{const a=i.localName;return a&&(r[a]||(r[a]=0),r[a]++),r},{});return this.coders.forEach((r,i)=>{let a=r.localName;!a||n[a]!==1||(a==="length"&&(a="_length"),t[a]==null&&(t[a]=t[i]))}),Object.freeze(t)}encode(t,n){const r=n0.dereference(n,"tuple");return sk(t,this.coders,r)}decode(t){return lk(t,this.coders)}}function da(u){return pe(qn(u))}var Mdu="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";const y7=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),B7=4;function Udu(u){let e=0;function t(){return u[e++]<<8|u[e++]}let n=t(),r=1,i=[0,1];for(let w=1;w>--s&1}const E=31,d=2**E,f=d>>>1,C=f>>1,h=d-1;let B=0;for(let w=0;w1;){let O=D+p>>>1;w>>1|c(),x=x<<1^f,j=(j^f)<<1|f|1;m=x,y=1+j-x}let v=n-4;return g.map(w=>{switch(w-v){case 3:return v+65792+(u[o++]<<16|u[o++]<<8|u[o++]);case 2:return v+256+(u[o++]<<8|u[o++]);case 1:return v+u[o++];default:return w-1}})}function Ldu(u){let e=0;return()=>u[e++]}function Ek(u){return Ldu(Udu($du(u)))}function $du(u){let e=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((r,i)=>e[r.charCodeAt(0)]=i);let t=u.length,n=new Uint8Array(6*t>>3);for(let r=0,i=0,a=0,o=0;r=8&&(n[i++]=o>>(a-=8));return n}function Wdu(u){return u&1?~u>>1:u>>1}function qdu(u,e){let t=Array(u);for(let n=0,r=0;n{let e=K3(u);if(e.length)return e})}function fk(u){let e=[];for(;;){let t=u();if(t==0)break;e.push(Hdu(t,u))}for(;;){let t=u()-1;if(t<0)break;e.push(Gdu(t,u))}return e.flat()}function Q3(u){let e=[];for(;;){let t=u(e.length);if(!t)break;e.push(t)}return e}function pk(u,e,t){let n=Array(u).fill().map(()=>[]);for(let r=0;rn[a].push(i));return n}function Hdu(u,e){let t=1+e(),n=e(),r=Q3(e);return pk(r.length,1+u,e).flatMap((a,o)=>{let[s,...l]=a;return Array(r[o]).fill().map((c,E)=>{let d=E*n;return[s+E*t,l.map(f=>f+d)]})})}function Gdu(u,e){let t=1+e();return pk(t,1+u,e).map(r=>[r[0],r.slice(1)])}function Kdu(u){let e=[],t=K3(u);return r(n([]),[]),e;function n(i){let a=u(),o=Q3(()=>{let s=K3(u).map(l=>t[l]);if(s.length)return n(s)});return{S:a,B:o,Q:i}}function r({S:i,B:a},o,s){if(!(i&4&&s===o[o.length-1])){i&2&&(s=o[o.length-1]),i&1&&e.push(o);for(let l of a)for(let c of l.Q)r(l,[...o,c],s)}}}function Qdu(u){return u.toString(16).toUpperCase().padStart(2,"0")}function hk(u){return`{${Qdu(u)}}`}function Vdu(u){let e=[];for(let t=0,n=u.length;t>24&255}function gk(u){return u&16777215}let tp,v7,np,rE;function n9u(){let u=Ek(Ydu);tp=new Map(dk(u).flatMap((e,t)=>e.map(n=>[n,t+1<<24]))),v7=new Set(K3(u)),np=new Map,rE=new Map;for(let[e,t]of fk(u)){if(!v7.has(e)&&t.length==2){let[n,r]=t,i=rE.get(n);i||(i=new Map,rE.set(n,i)),i.set(r,e)}np.set(e,t.reverse())}}function Ak(u){return u>=V3&&u=f2&&u=p2&&eh2&&e0&&r(h2+l)}else{let a=np.get(i);a?t.push(...a):r(i)}if(!t.length)break;i=t.pop()}if(n&&e.length>1){let i=j4(e[0]);for(let a=1;a0&&r>=a)a==0?(e.push(n,...t),t.length=0,n=o):t.push(o),r=a;else{let s=r9u(n,o);s>=0?n=s:r==0&&a==0?(e.push(n),n=o):(t.push(o),r=a)}}return n>=0&&e.push(n,...t),e}function Bk(u){return yk(u).map(gk)}function a9u(u){return i9u(yk(u))}const F7=45,vk=".",Fk=65039,Dk=1,ro=u=>Array.from(u);function J3(u,e){return u.P.has(e)||u.Q.has(e)}class o9u extends Array{get is_emoji(){return!0}}let rp,bk,ki,ip,wk,Ao,N1,Ma,xk,D7,ap;function vC(){if(rp)return;let u=Ek(Mdu);const e=()=>K3(u),t=()=>new Set(e());rp=new Map(fk(u)),bk=t(),ki=e(),ip=new Set(e().map(c=>ki[c])),ki=new Set(ki),wk=t(),t();let n=dk(u),r=u();const i=()=>new Set(e().flatMap(c=>n[c]).concat(e()));Ao=Q3(c=>{let E=Q3(u).map(d=>d+96);if(E.length){let d=c>=r;E[0]-=32,E=_s(E),d&&(E=`Restricted[${E}]`);let f=i(),C=i(),h=!u();return{N:E,P:f,Q:C,M:h,R:d}}}),N1=t(),Ma=new Map;let a=e().concat(ro(N1)).sort((c,E)=>c-E);a.forEach((c,E)=>{let d=u(),f=a[E]=d?a[E-d]:{V:[],M:new Map};f.V.push(c),N1.has(c)||Ma.set(c,f)});for(let{V:c,M:E}of new Set(Ma.values())){let d=[];for(let C of c){let h=Ao.filter(g=>J3(g,C)),B=d.find(({G:g})=>h.some(m=>g.has(m)));B||(B={G:new Set,V:[]},d.push(B)),B.V.push(C),h.forEach(g=>B.G.add(g))}let f=d.flatMap(C=>ro(C.G));for(let{G:C,V:h}of d){let B=new Set(f.filter(g=>!C.has(g)));for(let g of h)E.set(g,B)}}let o=new Set,s=new Set;const l=c=>o.has(c)?s.add(c):o.add(c);for(let c of Ao){for(let E of c.P)l(E);for(let E of c.Q)l(E)}for(let c of o)!Ma.has(c)&&!s.has(c)&&Ma.set(c,Dk);xk=new Set(ro(o).concat(ro(Bk(o)))),D7=Kdu(u).map(c=>o9u.from(c)).sort(Jdu),ap=new Map;for(let c of D7){let E=[ap];for(let d of c){let f=E.map(C=>{let h=C.get(d);return h||(h=new Map,C.set(d,h)),h});d===Fk?E.push(...f):E=f}for(let d of E)d.V=c}}function FC(u){return(kk(u)?"":`${DC(o9([u]))} `)+hk(u)}function DC(u){return`"${u}"‎`}function s9u(u){if(u.length>=4&&u[2]==F7&&u[3]==F7)throw new Error(`invalid label extension: "${_s(u.slice(0,4))}"`)}function l9u(u){for(let t=u.lastIndexOf(95);t>0;)if(u[--t]!==95)throw new Error("underscore allowed only at start")}function c9u(u){let e=u[0],t=y7.get(e);if(t)throw Z4(`leading ${t}`);let n=u.length,r=-1;for(let i=1;i{let i=Vdu(r),a={input:i,offset:n};n+=i.length+1;try{let o=a.tokens=g9u(i,e,t),s=o.length,l;if(!s)throw new Error("empty label");let c=a.output=o.flat();if(l9u(c),!(a.emoji=s>1||o[0].is_emoji)&&c.every(d=>d<128))s9u(c),l="ASCII";else{let d=o.flatMap(f=>f.is_emoji?[]:f);if(!d.length)l="Emoji";else{if(ki.has(c[0]))throw Z4("leading combining mark");for(let h=1;ha.has(o)):ro(a),!t.length)return}else n.push(r)}if(t){for(let r of t)if(n.every(i=>J3(r,i)))throw new Error(`whole-script confusable: ${u.N}/${r.N}`)}}function h9u(u){let e=Ao;for(let t of u){let n=e.filter(r=>J3(r,t));if(!n.length)throw Ao.some(r=>J3(r,t))?Sk(e[0],t):_k(t);if(e=n,n.length==1)break}return e}function C9u(u){return u.map(({input:e,error:t,output:n})=>{if(t){let r=t.message;throw new Error(u.length==1?r:`Invalid label ${DC(o9(e))}: ${r}`)}return _s(n)}).join(vk)}function _k(u){return new Error(`disallowed character: ${FC(u)}`)}function Sk(u,e){let t=FC(e),n=Ao.find(r=>r.P.has(e));return n&&(t=`${n.N} ${t}`),new Error(`illegal mixture: ${u.N} + ${t}`)}function Z4(u){return new Error(`illegal placement: ${u}`)}function m9u(u,e){for(let t of e)if(!J3(u,t))throw Sk(u,t);if(u.M){let t=Bk(e);for(let n=1,r=t.length;nB7)throw new Error(`excessive non-spacing marks: ${DC(o9(t.slice(n-1,i)))} (${i-n}/${B7})`);n=i}}}function g9u(u,e,t){let n=[],r=[];for(u=u.slice().reverse();u.length;){let i=y9u(u);if(i)r.length&&(n.push(e(r)),r=[]),n.push(t(i));else{let a=u.pop();if(xk.has(a))r.push(a);else{let o=rp.get(a);if(o)r.push(...o);else if(!bk.has(a))throw _k(a)}}}return r.length&&n.push(e(r)),n}function A9u(u){return u.filter(e=>e!=Fk)}function y9u(u,e){let t=ap,n,r=u.length;for(;r&&(t=t.get(u[--r]),!!t);){let{V:i}=t;i&&(n=i,e&&e.push(...u.slice(r).reverse()),u.length=r)}return n}const Pk=new Uint8Array(32);Pk.fill(0);function b7(u){return Q(u.length!==0,"invalid ENS name; empty component","comp",u),u}function Tk(u){const e=qn(B9u(u)),t=[];if(u.length===0)return t;let n=0;for(let r=0;r{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t})))+"00"}function R1(u,e){return{address:Xu(u),storageKeys:e.map((t,n)=>(Q(he(t,32),"invalid slot",`storageKeys[${n}]`,t),t.toLowerCase()))}}function Da(u){if(Array.isArray(u))return u.map((t,n)=>Array.isArray(t)?(Q(t.length===2,"invalid slot set",`value[${n}]`,t),R1(t[0],t[1])):(Q(t!=null&&typeof t=="object","invalid address-slot set","value",u),R1(t.address,t.storageKeys)));Q(u!=null&&typeof u=="object","invalid access list","value",u);const e=Object.keys(u).map(t=>{const n=u[t].reduce((r,i)=>(r[i]=!0,r),{});return R1(t,Object.keys(n).sort())});return e.sort((t,n)=>t.address.localeCompare(n.address)),e}function F9u(u){let e;return typeof u=="string"?e=G3.computePublicKey(u,!1):e=u.publicKey,Xu(pe("0x"+e.substring(4)).substring(26))}function D9u(u,e){return F9u(G3.recoverPublicKey(u,e))}const v0=BigInt(0),b9u=BigInt(2),w9u=BigInt(27),x9u=BigInt(28),k9u=BigInt(35),_9u=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function bC(u){return u==="0x"?null:Xu(u)}function Ik(u,e){try{return Da(u)}catch(t){Q(!1,t.message,e,u)}}function s9(u,e){return u==="0x"?0:Gu(u,e)}function s0(u,e){if(u==="0x")return v0;const t=Su(u,e);return Q(t<=_9u,"value exceeds uint size",e,t),t}function Le(u,e){const t=Su(u,"value"),n=$0(t);return Q(n.length<=32,"value too large",`tx.${e}`,t),n}function Ok(u){return Da(u).map(e=>[e.address,e.storageKeys])}function S9u(u){const e=yC(u);Q(Array.isArray(e)&&(e.length===9||e.length===6),"invalid field count for legacy transaction","data",u);const t={type:0,nonce:s9(e[0],"nonce"),gasPrice:s0(e[1],"gasPrice"),gasLimit:s0(e[2],"gasLimit"),to:bC(e[3]),value:s0(e[4],"value"),data:ku(e[5]),chainId:v0};if(e.length===6)return t;const n=s0(e[6],"v"),r=s0(e[7],"r"),i=s0(e[8],"s");if(r===v0&&i===v0)t.chainId=n;else{let a=(n-k9u)/b9u;a=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),Eu(!t||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),Eu(this.type!==0||!n,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const r=[];return this.type!=null?r.push(this.type):t?r.push(2):e?(r.push(1),n||r.push(0)):n?(r.push(1),r.push(2)):(r.push(0),r.push(1),r.push(2)),r.sort(),r}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}clone(){return hr.from(this)}toJSON(){const e=t=>t==null?null:t.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:e(this.gasLimit),gasPrice:e(this.gasPrice),maxPriorityFeePerGas:e(this.maxPriorityFeePerGas),maxFeePerGas:e(this.maxFeePerGas),value:e(this.value),chainId:e(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(e){if(e==null)return new hr;if(typeof e=="string"){const n=ue(e);if(n[0]>=127)return hr.from(S9u(n));switch(n[0]){case 1:return hr.from(T9u(n));case 2:return hr.from(P9u(n))}Eu(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const t=new hr;return e.type!=null&&(t.type=e.type),e.to!=null&&(t.to=e.to),e.nonce!=null&&(t.nonce=e.nonce),e.gasLimit!=null&&(t.gasLimit=e.gasLimit),e.gasPrice!=null&&(t.gasPrice=e.gasPrice),e.maxPriorityFeePerGas!=null&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas),e.maxFeePerGas!=null&&(t.maxFeePerGas=e.maxFeePerGas),e.data!=null&&(t.data=e.data),e.value!=null&&(t.value=e.value),e.chainId!=null&&(t.chainId=e.chainId),e.signature!=null&&(t.signature=Ut.from(e.signature)),e.accessList!=null&&(t.accessList=e.accessList),e.hash!=null&&(Q(t.isSigned(),"unsigned transaction cannot define hash","tx",e),Q(t.hash===e.hash,"hash mismatch","tx",e)),e.from!=null&&(Q(t.isSigned(),"unsigned transaction cannot define from","tx",e),Q(t.from.toLowerCase()===(e.from||"").toLowerCase(),"from mismatch","tx",e)),t}};wn=new WeakMap,Po=new WeakMap,To=new WeakMap,Io=new WeakMap,Oo=new WeakMap,No=new WeakMap,Ro=new WeakMap,jo=new WeakMap,zo=new WeakMap,Mo=new WeakMap,Uo=new WeakMap,Lo=new WeakMap;let m2=hr;const Rk=new Uint8Array(32);Rk.fill(0);const I9u=BigInt(-1),jk=BigInt(0),zk=BigInt(1),O9u=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function N9u(u){const e=ue(u),t=e.length%32;return t?Ie([e,Rk.slice(t)]):ku(e)}const R9u=ui(zk,32),j9u=ui(jk,32),_7={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},j1=["name","version","chainId","verifyingContract","salt"];function S7(u){return function(e){return Q(typeof e=="string",`invalid domain value for ${JSON.stringify(u)}`,`domain.${u}`,e),e}}const z9u={name:S7("name"),version:S7("version"),chainId:function(u){const e=Su(u,"domain.chainId");return Q(e>=0,"invalid chain ID","domain.chainId",u),Number.isSafeInteger(e)?Number(e):no(e)},verifyingContract:function(u){try{return Xu(u).toLowerCase()}catch{}Q(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",u)},salt:function(u){const e=ue(u,"domain.salt");return Q(e.length===32,'invalid domain value "salt"',"domain.salt",u),ku(e)}};function z1(u){{const e=u.match(/^(u?)int(\d*)$/);if(e){const t=e[1]==="",n=parseInt(e[2]||"256");Q(n%8===0&&n!==0&&n<=256&&(e[2]==null||e[2]===String(n)),"invalid numeric width","type",u);const r=N4(O9u,t?n-1:n),i=t?(r+zk)*I9u:jk;return function(a){const o=Su(a,"value");return Q(o>=i&&o<=r,`value out-of-bounds for ${u}`,"value",o),ui(t?Qx(o,256):o,32)}}}{const e=u.match(/^bytes(\d+)$/);if(e){const t=parseInt(e[1]);return Q(t!==0&&t<=32&&e[1]===String(t),"invalid bytes width","type",u),function(n){const r=ue(n);return Q(r.length===t,`invalid length for ${u}`,"value",n),N9u(n)}}}switch(u){case"address":return function(e){return Ea(Xu(e),32)};case"bool":return function(e){return e?R9u:j9u};case"bytes":return function(e){return pe(e)};case"string":return function(e){return da(e)}}return null}function P7(u,e){return`${u}(${e.map(({name:t,type:n})=>n+" "+t).join(",")})`}var nl,xn,$o,D2,Mk;const X0=class X0{constructor(e){tu(this,D2);X(this,"primaryType");tu(this,nl,void 0);tu(this,xn,void 0);tu(this,$o,void 0);R(this,nl,JSON.stringify(e)),R(this,xn,new Map),R(this,$o,new Map);const t=new Map,n=new Map,r=new Map;Object.keys(e).forEach(o=>{t.set(o,new Set),n.set(o,[]),r.set(o,new Set)});for(const o in e){const s=new Set;for(const l of e[o]){Q(!s.has(l.name),`duplicate variable name ${JSON.stringify(l.name)} in ${JSON.stringify(o)}`,"types",e),s.add(l.name);const c=l.type.match(/^([^\x5b]*)(\x5b|$)/)[1]||null;Q(c!==o,`circular type reference to ${JSON.stringify(c)}`,"types",e),!z1(c)&&(Q(n.has(c),`unknown type ${JSON.stringify(c)}`,"types",e),n.get(c).push(o),t.get(o).add(c))}}const i=Array.from(n.keys()).filter(o=>n.get(o).length===0);Q(i.length!==0,"missing primary type","types",e),Q(i.length===1,`ambiguous primary types or unused types: ${i.map(o=>JSON.stringify(o)).join(", ")}`,"types",e),Ou(this,{primaryType:i[0]});function a(o,s){Q(!s.has(o),`circular type reference to ${JSON.stringify(o)}`,"types",e),s.add(o);for(const l of t.get(o))if(n.has(l)){a(l,s);for(const c of s)r.get(c).add(l)}s.delete(o)}a(this.primaryType,new Set);for(const[o,s]of r){const l=Array.from(s);l.sort(),_(this,xn).set(o,P7(o,e[o])+l.map(c=>P7(c,e[c])).join(""))}}get types(){return JSON.parse(_(this,nl))}getEncoder(e){let t=_(this,$o).get(e);return t||(t=yu(this,D2,Mk).call(this,e),_(this,$o).set(e,t)),t}encodeType(e){const t=_(this,xn).get(e);return Q(t,`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return pe(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(z1(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r)return Q(!r[3]||parseInt(r[3])===t.length,`array length mismatch; expected length ${parseInt(r[3])}`,"value",t),t.map(a=>this._visit(r[1],a,n));const i=this.types[e];if(i)return i.reduce((a,{name:o,type:s})=>(a[o]=this._visit(s,t[o],n),a),{});Q(!1,`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new X0(e)}static getPrimaryType(e){return X0.from(e).primaryType}static hashStruct(e,t,n){return X0.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){if(e[n]==null)continue;const r=_7[n];Q(r,`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort((n,r)=>j1.indexOf(n.name)-j1.indexOf(r.name)),X0.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Ie(["0x1901",X0.hashDomain(e),X0.from(t).hash(n)])}static hash(e,t,n){return pe(X0.encode(e,t,n))}static async resolveNames(e,t,n,r){e=Object.assign({},e);for(const o in e)e[o]==null&&delete e[o];const i={};e.verifyingContract&&!he(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const a=X0.from(t);a.visit(n,(o,s)=>(o==="address"&&!he(s,20)&&(i[s]="0x"),s));for(const o in i)i[o]=await r(o);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=a.visit(n,(o,s)=>o==="address"&&i[s]?i[s]:s),{domain:e,value:n}}static getPayload(e,t,n){X0.hashDomain(e);const r={},i=[];j1.forEach(s=>{const l=e[s];l!=null&&(r[s]=z9u[s](l),i.push({name:s,type:_7[s]}))});const a=X0.from(t),o=Object.assign({},t);return Q(o.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",t),o.EIP712Domain=i,a.encode(n),{types:o,domain:r,primaryType:a.primaryType,message:a.visit(n,(s,l)=>{if(s.match(/^bytes(\d*)/))return ku(ue(l));if(s.match(/^u?int/))return Su(l).toString();switch(s){case"address":return l.toLowerCase();case"bool":return!!l;case"string":return Q(typeof l=="string","invalid string","value",l),l}Q(!1,"unsupported type","type",s)})}}};nl=new WeakMap,xn=new WeakMap,$o=new WeakMap,D2=new WeakSet,Mk=function(e){{const r=z1(e);if(r)return r}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const r=t[1],i=this.getEncoder(r);return a=>{Q(!t[3]||parseInt(t[3])===a.length,`array length mismatch; expected length ${parseInt(t[3])}`,"value",a);let o=a.map(i);return _(this,xn).has(r)&&(o=o.map(pe)),pe(Ie(o))}}const n=this.types[e];if(n){const r=da(_(this,xn).get(e));return i=>{const a=n.map(({name:o,type:s})=>{const l=this.getEncoder(s)(i[o]);return _(this,xn).has(s)?pe(l):l});return a.unshift(r),Ie(a)}}Q(!1,`unknown type: ${e}`,"type",e)};let g2=X0;function d0(u){const e=new Set;return u.forEach(t=>e.add(t)),Object.freeze(e)}const M9u="external public payable",U9u=d0(M9u.split(" ")),Uk="constant external internal payable private public pure view",L9u=d0(Uk.split(" ")),Lk="constructor error event fallback function receive struct",$k=d0(Lk.split(" ")),Wk="calldata memory storage payable indexed",$9u=d0(Wk.split(" ")),W9u="tuple returns",q9u=[Lk,Wk,W9u,Uk].join(" "),H9u=d0(q9u.split(" ")),G9u={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},K9u=new RegExp("^(\\s*)"),Q9u=new RegExp("^([0-9]+)"),V9u=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),qk=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),Hk=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");var Me,kt,rl,sp;const b2=class b2{constructor(e){tu(this,rl);tu(this,Me,void 0);tu(this,kt,void 0);R(this,Me,0),R(this,kt,e.slice())}get offset(){return _(this,Me)}get length(){return _(this,kt).length-_(this,Me)}clone(){return new b2(_(this,kt))}reset(){R(this,Me,0)}popKeyword(e){const t=this.peek();if(t.type!=="KEYWORD"||!e.has(t.text))throw new Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e)throw new Error(`expected ${e}; got ${JSON.stringify(this.peek())}`);return this.pop().text}popParen(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=yu(this,rl,sp).call(this,_(this,Me)+1,e.match+1);return R(this,Me,e.match+1),t}popParams(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=[];for(;_(this,Me)=_(this,kt).length)throw new Error("out-of-bounds");return _(this,kt)[_(this,Me)]}peekKeyword(e){const t=this.peekType("KEYWORD");return t!=null&&e.has(t)?t:null}peekType(e){if(this.length===0)return null;const t=this.peek();return t.type===e?t.text:null}pop(){const e=this.peek();return a4(this,Me)._++,e}toString(){const e=[];for(let t=_(this,Me);t<_(this,kt).length;t++){const n=_(this,kt)[t];e.push(`${n.type}:${n.text}`)}return``}};Me=new WeakMap,kt=new WeakMap,rl=new WeakSet,sp=function(e=0,t=0){return new b2(_(this,kt).slice(e,t).map(n=>Object.freeze(Object.assign({},n,{match:n.match-e,linkBack:n.linkBack-e,linkNext:n.linkNext-e}))))};let Lt=b2;function Ei(u){const e=[],t=a=>{const o=i0&&e[e.length-1].type==="NUMBER"){const E=e.pop().text;c=E+c,e[e.length-1].value=Gu(E)}if(e.length===0||e[e.length-1].type!=="BRACKET")throw new Error("missing opening bracket");e[e.length-1].text+=c}continue}if(o=a.match(V9u),o){if(s.text=o[1],i+=s.text.length,H9u.has(s.text)){s.type="KEYWORD";continue}if(s.text.match(Hk)){s.type="TYPE";continue}s.type="ID";continue}if(o=a.match(Q9u),o){s.text=o[1],s.type="NUMBER",i+=s.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(a[0])} at position ${i}`)}return new Lt(e.map(a=>Object.freeze(a)))}function T7(u,e){let t=[];for(const n in e.keys())u.has(n)&&t.push(n);if(t.length>1)throw new Error(`conflicting types: ${t.join(", ")}`)}function l9(u,e){if(e.peekKeyword($k)){const t=e.pop().text;if(t!==u)throw new Error(`expected ${u}, got ${t}`)}return e.popType("ID")}function Zn(u,e){const t=new Set;for(;;){const n=u.peekType("KEYWORD");if(n==null||e&&!e.has(n))break;if(u.pop(),t.has(n))throw new Error(`duplicate keywords: ${JSON.stringify(n)}`);t.add(n)}return Object.freeze(t)}function Gk(u){let e=Zn(u,L9u);return T7(e,d0("constant payable nonpayable".split(" "))),T7(e,d0("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function Hn(u,e){return u.popParams().map(t=>We.from(t,e))}function Kk(u){if(u.peekType("AT")){if(u.pop(),u.peekType("NUMBER"))return Su(u.pop().text);throw new Error("invalid gas")}return null}function fa(u){if(u.length)throw new Error(`unexpected tokens: ${u.toString()}`)}const J9u=new RegExp(/^(.*)\[([0-9]*)\]$/);function I7(u){const e=u.match(Hk);if(Q(e,"invalid type","type",u),u==="uint")return"uint256";if(u==="int")return"int256";if(e[2]){const t=parseInt(e[2]);Q(t!==0&&t<=32,"invalid bytes length","type",u)}else if(e[3]){const t=parseInt(e[3]);Q(t!==0&&t<=256&&t%8===0,"invalid numeric width","type",u)}return u}const fe={},T0=Symbol.for("_ethers_internal"),O7="_ParamTypeInternal",N7="_ErrorInternal",R7="_EventInternal",j7="_ConstructorInternal",z7="_FallbackInternal",M7="_FunctionInternal",U7="_StructInternal";var Wo,iE;const Z0=class Z0{constructor(e,t,n,r,i,a,o,s){tu(this,Wo);X(this,"name");X(this,"type");X(this,"baseType");X(this,"indexed");X(this,"components");X(this,"arrayLength");X(this,"arrayChildren");if(r9(e,fe,"ParamType"),Object.defineProperty(this,T0,{value:O7}),a&&(a=Object.freeze(a.slice())),r==="array"){if(o==null||s==null)throw new Error("")}else if(o!=null||s!=null)throw new Error("");if(r==="tuple"){if(a==null)throw new Error("")}else if(a!=null)throw new Error("");Ou(this,{name:t,type:n,baseType:r,indexed:i,components:a,arrayLength:o,arrayChildren:s})}format(e){if(e==null&&(e="sighash"),e==="json"){const n=this.name||"";if(this.isArray()){const i=JSON.parse(this.arrayChildren.format("json"));return i.name=n,i.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(i)}const r={type:this.baseType==="tuple"?"tuple":this.type,name:n};return typeof this.indexed=="boolean"&&(r.indexed=this.indexed),this.isTuple()&&(r.components=this.components.map(i=>JSON.parse(i.format(e)))),JSON.stringify(r)}let t="";return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?(e!=="sighash"&&(t+=this.type),t+="("+this.components.map(n=>n.format(e)).join(e==="full"?", ":",")+")"):t+=this.type,e!=="sighash"&&(this.indexed===!0&&(t+=" indexed"),e==="full"&&this.name&&(t+=" "+this.name)),t}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw new Error("array is wrong length");const n=this;return e.map(r=>n.arrayChildren.walk(r,t))}if(this.isTuple()){if(!Array.isArray(e))throw new Error("invalid tuple value");if(e.length!==this.components.length)throw new Error("array is wrong length");const n=this;return e.map((r,i)=>n.components[i].walk(r,t))}return t(this.type,e)}async walkAsync(e,t){const n=[],r=[e];return yu(this,Wo,iE).call(this,n,e,t,i=>{r[0]=i}),n.length&&await Promise.all(n),r[0]}static from(e,t){if(Z0.isParamType(e))return e;if(typeof e=="string")try{return Z0.from(Ei(e),t)}catch{Q(!1,"invalid param type","obj",e)}else if(e instanceof Lt){let o="",s="",l=null;Zn(e,d0(["tuple"])).has("tuple")||e.peekType("OPEN_PAREN")?(s="tuple",l=e.popParams().map(h=>Z0.from(h)),o=`tuple(${l.map(h=>h.format()).join(",")})`):(o=I7(e.popType("TYPE")),s=o);let c=null,E=null;for(;e.length&&e.peekType("BRACKET");){const h=e.pop();c=new Z0(fe,"",o,s,null,l,E,c),E=h.value,o+=h.text,s="array",l=null}let d=null;if(Zn(e,$9u).has("indexed")){if(!t)throw new Error("");d=!0}const C=e.peekType("ID")?e.pop().text:"";if(e.length)throw new Error("leftover tokens");return new Z0(fe,C,o,s,d,l,E,c)}const n=e.name;Q(!n||typeof n=="string"&&n.match(qk),"invalid name","obj.name",n);let r=e.indexed;r!=null&&(Q(t,"parameter cannot be indexed","obj.indexed",e.indexed),r=!!r);let i=e.type,a=i.match(J9u);if(a){const o=parseInt(a[2]||"-1"),s=Z0.from({type:a[1],components:e.components});return new Z0(fe,n||"",i,"array",r,null,o,s)}if(i==="tuple"||i.startsWith("tuple(")||i.startsWith("(")){const o=e.components!=null?e.components.map(l=>Z0.from(l)):null;return new Z0(fe,n||"",i,"tuple",r,o,null,null)}return i=I7(e.type),new Z0(fe,n||"",i,i,r,null,null,null)}static isParamType(e){return e&&e[T0]===O7}};Wo=new WeakSet,iE=function(e,t,n,r){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const a=this.arrayChildren,o=t.slice();o.forEach((s,l)=>{var c;yu(c=a,Wo,iE).call(c,e,s,n,E=>{o[l]=E})}),r(o);return}if(this.isTuple()){const a=this.components;let o;if(Array.isArray(t))o=t.slice();else{if(t==null||typeof t!="object")throw new Error("invalid tuple value");o=a.map(s=>{if(!s.name)throw new Error("cannot use object value with unnamed components");if(!(s.name in t))throw new Error(`missing value for component ${s.name}`);return t[s.name]})}if(o.length!==this.components.length)throw new Error("array is wrong length");o.forEach((s,l)=>{var c;yu(c=a[l],Wo,iE).call(c,e,s,n,E=>{o[l]=E})}),r(o);return}const i=n(this.type,t);i.then?e.push(async function(){r(await i)}()):r(i)};let We=Z0;class pa{constructor(e,t,n){X(this,"type");X(this,"inputs");r9(e,fe,"Fragment"),n=Object.freeze(n.slice()),Ou(this,{type:t,inputs:n})}static from(e){if(typeof e=="string"){try{pa.from(JSON.parse(e))}catch{}return pa.from(Ei(e))}if(e instanceof Lt)switch(e.peekKeyword($k)){case"constructor":return Un.from(e);case"error":return F0.from(e);case"event":return on.from(e);case"fallback":case"receive":return yn.from(e);case"function":return sn.from(e);case"struct":return ta.from(e)}else if(typeof e=="object"){switch(e.type){case"constructor":return Un.from(e);case"error":return F0.from(e);case"event":return on.from(e);case"fallback":case"receive":return yn.from(e);case"function":return sn.from(e);case"struct":return ta.from(e)}Eu(!1,`unsupported type: ${e.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}Q(!1,"unsupported frgament object","obj",e)}static isConstructor(e){return Un.isFragment(e)}static isError(e){return F0.isFragment(e)}static isEvent(e){return on.isFragment(e)}static isFunction(e){return sn.isFragment(e)}static isStruct(e){return ta.isFragment(e)}}class c9 extends pa{constructor(t,n,r,i){super(t,n,i);X(this,"name");Q(typeof r=="string"&&r.match(qk),"invalid identifier","name",r),i=Object.freeze(i.slice()),Ou(this,{name:r})}}function Y3(u,e){return"("+e.map(t=>t.format(u)).join(u==="full"?", ":",")+")"}class F0 extends c9{constructor(e,t,n){super(e,"error",t,n),Object.defineProperty(this,T0,{value:N7})}get selector(){return da(this.format("sighash")).substring(0,10)}format(e){if(e==null&&(e="sighash"),e==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(n=>JSON.parse(n.format(e)))});const t=[];return e!=="sighash"&&t.push("error"),t.push(this.name+Y3(e,this.inputs)),t.join(" ")}static from(e){if(F0.isFragment(e))return e;if(typeof e=="string")return F0.from(Ei(e));if(e instanceof Lt){const t=l9("error",e),n=Hn(e);return fa(e),new F0(fe,t,n)}return new F0(fe,e.name,e.inputs?e.inputs.map(We.from):[])}static isFragment(e){return e&&e[T0]===N7}}class on extends c9{constructor(t,n,r,i){super(t,"event",n,r);X(this,"anonymous");Object.defineProperty(this,T0,{value:R7}),Ou(this,{anonymous:i})}get topicHash(){return da(this.format("sighash"))}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(r=>JSON.parse(r.format(t)))});const n=[];return t!=="sighash"&&n.push("event"),n.push(this.name+Y3(t,this.inputs)),t!=="sighash"&&this.anonymous&&n.push("anonymous"),n.join(" ")}static getTopicHash(t,n){return n=(n||[]).map(i=>We.from(i)),new on(fe,t,n,!1).topicHash}static from(t){if(on.isFragment(t))return t;if(typeof t=="string")try{return on.from(Ei(t))}catch{Q(!1,"invalid event fragment","obj",t)}else if(t instanceof Lt){const n=l9("event",t),r=Hn(t,!0),i=!!Zn(t,d0(["anonymous"])).has("anonymous");return fa(t),new on(fe,n,r,i)}return new on(fe,t.name,t.inputs?t.inputs.map(n=>We.from(n,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[T0]===R7}}class Un extends pa{constructor(t,n,r,i,a){super(t,n,r);X(this,"payable");X(this,"gas");Object.defineProperty(this,T0,{value:j7}),Ou(this,{payable:i,gas:a})}format(t){if(Eu(t!=null&&t!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),t==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(r=>JSON.parse(r.format(t)))});const n=[`constructor${Y3(t,this.inputs)}`];return n.push(this.payable?"payable":"nonpayable"),this.gas!=null&&n.push(`@${this.gas.toString()}`),n.join(" ")}static from(t){if(Un.isFragment(t))return t;if(typeof t=="string")try{return Un.from(Ei(t))}catch{Q(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof Lt){Zn(t,d0(["constructor"]));const n=Hn(t),r=!!Zn(t,U9u).has("payable"),i=Kk(t);return fa(t),new Un(fe,"constructor",n,r,i)}return new Un(fe,"constructor",t.inputs?t.inputs.map(We.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[T0]===j7}}class yn extends pa{constructor(t,n,r){super(t,"fallback",n);X(this,"payable");Object.defineProperty(this,T0,{value:z7}),Ou(this,{payable:r})}format(t){const n=this.inputs.length===0?"receive":"fallback";if(t==="json"){const r=this.payable?"payable":"nonpayable";return JSON.stringify({type:n,stateMutability:r})}return`${n}()${this.payable?" payable":""}`}static from(t){if(yn.isFragment(t))return t;if(typeof t=="string")try{return yn.from(Ei(t))}catch{Q(!1,"invalid fallback fragment","obj",t)}else if(t instanceof Lt){const n=t.toString(),r=t.peekKeyword(d0(["fallback","receive"]));if(Q(r,"type must be fallback or receive","obj",n),t.popKeyword(d0(["fallback","receive"]))==="receive"){const s=Hn(t);return Q(s.length===0,"receive cannot have arguments","obj.inputs",s),Zn(t,d0(["payable"])),fa(t),new yn(fe,[],!0)}let a=Hn(t);a.length?Q(a.length===1&&a[0].type==="bytes","invalid fallback inputs","obj.inputs",a.map(s=>s.format("minimal")).join(", ")):a=[We.from("bytes")];const o=Gk(t);if(Q(o==="nonpayable"||o==="payable","fallback cannot be constants","obj.stateMutability",o),Zn(t,d0(["returns"])).has("returns")){const s=Hn(t);Q(s.length===1&&s[0].type==="bytes","invalid fallback outputs","obj.outputs",s.map(l=>l.format("minimal")).join(", "))}return fa(t),new yn(fe,a,o==="payable")}if(t.type==="receive")return new yn(fe,[],!0);if(t.type==="fallback"){const n=[We.from("bytes")],r=t.stateMutability==="payable";return new yn(fe,n,r)}Q(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[T0]===z7}}class sn extends c9{constructor(t,n,r,i,a,o){super(t,"function",n,i);X(this,"constant");X(this,"outputs");X(this,"stateMutability");X(this,"payable");X(this,"gas");Object.defineProperty(this,T0,{value:M7}),a=Object.freeze(a.slice()),Ou(this,{constant:r==="view"||r==="pure",gas:o,outputs:a,payable:r==="payable",stateMutability:r})}get selector(){return da(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(r=>JSON.parse(r.format(t))),outputs:this.outputs.map(r=>JSON.parse(r.format(t)))});const n=[];return t!=="sighash"&&n.push("function"),n.push(this.name+Y3(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&n.push(this.stateMutability),this.outputs&&this.outputs.length&&(n.push("returns"),n.push(Y3(t,this.outputs))),this.gas!=null&&n.push(`@${this.gas.toString()}`)),n.join(" ")}static getSelector(t,n){return n=(n||[]).map(i=>We.from(i)),new sn(fe,t,"view",n,[],null).selector}static from(t){if(sn.isFragment(t))return t;if(typeof t=="string")try{return sn.from(Ei(t))}catch{Q(!1,"invalid function fragment","obj",t)}else if(t instanceof Lt){const r=l9("function",t),i=Hn(t),a=Gk(t);let o=[];Zn(t,d0(["returns"])).has("returns")&&(o=Hn(t));const s=Kk(t);return fa(t),new sn(fe,r,a,i,o,s)}let n=t.stateMutability;return n==null&&(n="payable",typeof t.constant=="boolean"?(n="view",t.constant||(n="payable",typeof t.payable=="boolean"&&!t.payable&&(n="nonpayable"))):typeof t.payable=="boolean"&&!t.payable&&(n="nonpayable")),new sn(fe,t.name,n,t.inputs?t.inputs.map(We.from):[],t.outputs?t.outputs.map(We.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[T0]===M7}}class ta extends c9{constructor(e,t,n){super(e,"struct",t,n),Object.defineProperty(this,T0,{value:U7})}format(){throw new Error("@TODO")}static from(e){if(typeof e=="string")try{return ta.from(Ei(e))}catch{Q(!1,"invalid struct fragment","obj",e)}else if(e instanceof Lt){const t=l9("struct",e),n=Hn(e);return fa(e),new ta(fe,t,n)}return new ta(fe,e.name,e.inputs?e.inputs.map(We.from):[])}static isFragment(e){return e&&e[T0]===U7}}const Wt=new Map;Wt.set(0,"GENERIC_PANIC");Wt.set(1,"ASSERT_FALSE");Wt.set(17,"OVERFLOW");Wt.set(18,"DIVIDE_BY_ZERO");Wt.set(33,"ENUM_RANGE_ERROR");Wt.set(34,"BAD_STORAGE_DATA");Wt.set(49,"STACK_UNDERFLOW");Wt.set(50,"ARRAY_RANGE_ERROR");Wt.set(65,"OUT_OF_MEMORY");Wt.set(81,"UNINITIALIZED_FUNCTION_CALL");const Y9u=new RegExp(/^bytes([0-9]*)$/),X9u=new RegExp(/^(u?int)([0-9]*)$/);let M1=null;function Z9u(u,e,t,n){let r="missing revert data",i=null;const a=null;let o=null;if(t){r="execution reverted";const l=ue(t);if(t=ku(t),l.length===0)r+=" (no data present; likely require(false) occurred",i="require(false)";else if(l.length%32!==4)r+=" (could not decode reason; invalid data length)";else if(ku(l.slice(0,4))==="0x08c379a0")try{i=n.decode(["string"],l.slice(4))[0],o={signature:"Error(string)",name:"Error",args:[i]},r+=`: ${JSON.stringify(i)}`}catch{r+=" (could not decode reason; invalid string data)"}else if(ku(l.slice(0,4))==="0x4e487b71")try{const c=Number(n.decode(["uint256"],l.slice(4))[0]);o={signature:"Panic(uint256)",name:"Panic",args:[c]},i=`Panic due to ${Wt.get(c)||"UNKNOWN"}(${c})`,r+=`: ${i}`}catch{r+=" (could not decode panic code)"}else r+=" (unknown custom error)"}const s={to:e.to?Xu(e.to):null,data:e.data||"0x"};return e.from&&(s.from=Xu(e.from)),we(r,"CALL_EXCEPTION",{action:u,data:t,reason:i,transaction:s,invocation:a,revert:o})}var vr,Ua;const w2=class w2{constructor(){tu(this,vr)}getDefaultValue(e){const t=e.map(r=>yu(this,vr,Ua).call(this,We.from(r)));return new Ic(t,"_").defaultValue()}encode(e,t){Hx(t.length,e.length,"types/values length mismatch");const n=e.map(a=>yu(this,vr,Ua).call(this,We.from(a))),r=new Ic(n,"_"),i=new Zf;return r.encode(i,t),i.data}decode(e,t,n){const r=e.map(a=>yu(this,vr,Ua).call(this,We.from(a)));return new Ic(r,"_").decode(new up(t,n))}static defaultAbiCoder(){return M1==null&&(M1=new w2),M1}static getBuiltinCallException(e,t,n){return Z9u(e,t,n,w2.defaultAbiCoder())}};vr=new WeakSet,Ua=function(e){if(e.isArray())return new kdu(yu(this,vr,Ua).call(this,e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new Ic(e.components.map(n=>yu(this,vr,Ua).call(this,n)),e.name);switch(e.baseType){case"address":return new wdu(e.name);case"bool":return new _du(e.name);case"string":return new zdu(e.name);case"bytes":return new Sdu(e.name);case"":return new Idu(e.name)}let t=e.type.match(X9u);if(t){let n=parseInt(t[2]||"256");return Q(n!==0&&n<=256&&n%8===0,"invalid "+t[1]+" bit length","param",e),new jdu(n/8,t[1]==="int",e.name)}if(t=e.type.match(Y9u),t){let n=parseInt(t[1]);return Q(n!==0&&n<=32,"invalid bytes length","param",e),new Pdu(n,e.name)}Q(!1,"invalid type","type",e.type)};let X3=w2;class u1u{constructor(e,t,n){X(this,"fragment");X(this,"name");X(this,"signature");X(this,"topic");X(this,"args");const r=e.name,i=e.format();Ou(this,{fragment:e,name:r,signature:i,topic:t,args:n})}}class e1u{constructor(e,t,n,r){X(this,"fragment");X(this,"name");X(this,"args");X(this,"signature");X(this,"selector");X(this,"value");const i=e.name,a=e.format();Ou(this,{fragment:e,name:i,args:n,signature:a,selector:t,value:r})}}class t1u{constructor(e,t,n){X(this,"fragment");X(this,"name");X(this,"args");X(this,"signature");X(this,"selector");const r=e.name,i=e.format();Ou(this,{fragment:e,name:r,args:n,signature:i,selector:t})}}class L7{constructor(e){X(this,"hash");X(this,"_isIndexed");Ou(this,{hash:e,_isIndexed:!0})}static isIndexed(e){return!!(e&&e._isIndexed)}}const $7={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},W7={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:u=>`reverted with reason string ${JSON.stringify(u)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:u=>{let e="unknown panic code";return u>=0&&u<=255&&$7[u.toString()]&&(e=$7[u.toString()]),`reverted with panic code 0x${u.toString(16)} (${e})`}}};var Yt,Xt,Zt,Je,qo,aE,Ho,oE;const io=class io{constructor(e){tu(this,qo);tu(this,Ho);X(this,"fragments");X(this,"deploy");X(this,"fallback");X(this,"receive");tu(this,Yt,void 0);tu(this,Xt,void 0);tu(this,Zt,void 0);tu(this,Je,void 0);let t=[];typeof e=="string"?t=JSON.parse(e):t=e,R(this,Zt,new Map),R(this,Yt,new Map),R(this,Xt,new Map);const n=[];for(const a of t)try{n.push(pa.from(a))}catch(o){console.log("EE",o)}Ou(this,{fragments:Object.freeze(n)});let r=null,i=!1;R(this,Je,this.getAbiCoder()),this.fragments.forEach((a,o)=>{let s;switch(a.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}Ou(this,{deploy:a});return;case"fallback":a.inputs.length===0?i=!0:(Q(!r||a.payable!==r.payable,"conflicting fallback fragments",`fragments[${o}]`,a),r=a,i=r.payable);return;case"function":s=_(this,Zt);break;case"event":s=_(this,Xt);break;case"error":s=_(this,Yt);break;default:return}const l=a.format();s.has(l)||s.set(l,a)}),this.deploy||Ou(this,{deploy:Un.from("constructor()")}),Ou(this,{fallback:r,receive:i})}format(e){const t=e?"minimal":"full";return this.fragments.map(r=>r.format(t))}formatJson(){const e=this.fragments.map(t=>t.format("json"));return JSON.stringify(e.map(t=>JSON.parse(t)))}getAbiCoder(){return X3.defaultAbiCoder()}getFunctionName(e){const t=yu(this,qo,aE).call(this,e,null,!1);return Q(t,"no matching function","key",e),t.name}hasFunction(e){return!!yu(this,qo,aE).call(this,e,null,!1)}getFunction(e,t){return yu(this,qo,aE).call(this,e,t||null,!0)}forEachFunction(e){const t=Array.from(_(this,Zt).keys());t.sort((n,r)=>n.localeCompare(r));for(let n=0;nn.localeCompare(r));for(let n=0;n1){const i=r.map(a=>JSON.stringify(a.format())).join(", ");Q(!1,`ambiguous error description (i.e. ${i})`,"name",e)}return r[0]}if(e=F0.from(e).format(),e==="Error(string)")return F0.from("error Error(string)");if(e==="Panic(uint256)")return F0.from("error Panic(uint256)");const n=_(this,Yt).get(e);return n||null}forEachError(e){const t=Array.from(_(this,Yt).keys());t.sort((n,r)=>n.localeCompare(r));for(let n=0;ni.type==="string"?da(a):i.type==="bytes"?pe(ku(a)):(i.type==="bool"&&typeof a=="boolean"?a=a?"0x01":"0x00":i.type.match(/^u?int/)?a=ui(a):i.type.match(/^bytes/)?a=Z2u(a,32):i.type==="address"&&_(this,Je).encode(["address"],[a]),Ea(ku(a),32));for(t.forEach((i,a)=>{const o=e.inputs[a];if(!o.indexed){Q(i==null,"cannot filter non-indexed parameters; must be null","contract."+o.name,i);return}i==null?n.push(null):o.baseType==="array"||o.baseType==="tuple"?Q(!1,"filtering with tuples or arrays not supported","contract."+o.name,i):Array.isArray(i)?n.push(i.map(s=>r(o,s))):n.push(r(o,i))});n.length&&n[n.length-1]===null;)n.pop();return n}encodeEventLog(e,t){if(typeof e=="string"){const a=this.getEvent(e);Q(a,"unknown event","eventFragment",e),e=a}const n=[],r=[],i=[];return e.anonymous||n.push(e.topicHash),Q(t.length===e.inputs.length,"event arguments/values mismatch","values",t),e.inputs.forEach((a,o)=>{const s=t[o];if(a.indexed)if(a.type==="string")n.push(da(s));else if(a.type==="bytes")n.push(pe(s));else{if(a.baseType==="tuple"||a.baseType==="array")throw new Error("not implemented");n.push(_(this,Je).encode([a.type],[s]))}else r.push(a),i.push(s)}),{data:_(this,Je).encode(r,i),topics:n}}decodeEventLog(e,t,n){if(typeof e=="string"){const f=this.getEvent(e);Q(f,"unknown event","eventFragment",e),e=f}if(n!=null&&!e.anonymous){const f=e.topicHash;Q(he(n[0],32)&&n[0].toLowerCase()===f,"fragment/topic mismatch","topics[0]",n[0]),n=n.slice(1)}const r=[],i=[],a=[];e.inputs.forEach((f,C)=>{f.indexed?f.type==="string"||f.type==="bytes"||f.baseType==="tuple"||f.baseType==="array"?(r.push(We.from({type:"bytes32",name:f.name})),a.push(!0)):(r.push(f),a.push(!1)):(i.push(f),a.push(!1))});const o=n!=null?_(this,Je).decode(r,Ie(n)):null,s=_(this,Je).decode(i,t,!0),l=[],c=[];let E=0,d=0;return e.inputs.forEach((f,C)=>{let h=null;if(f.indexed)if(o==null)h=new L7(null);else if(a[C])h=new L7(o[d++]);else try{h=o[d++]}catch(B){h=B}else try{h=s[E++]}catch(B){h=B}l.push(h),c.push(f.name||null)}),d2.fromItems(l,c)}parseTransaction(e){const t=ue(e.data,"tx.data"),n=Su(e.value!=null?e.value:0,"tx.value"),r=this.getFunction(ku(t.slice(0,4)));if(!r)return null;const i=_(this,Je).decode(r.inputs,t.slice(4));return new e1u(r,r.selector,i,n)}parseCallResult(e){throw new Error("@TODO")}parseLog(e){const t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new u1u(t,t.topicHash,this.decodeEventLog(t,e.data,e.topics))}parseError(e){const t=ku(e),n=this.getError(ge(t,0,4));if(!n)return null;const r=_(this,Je).decode(n.inputs,ge(t,4));return new t1u(n,n.selector,r)}static from(e){return e instanceof io?e:typeof e=="string"?new io(JSON.parse(e)):typeof e.format=="function"?new io(e.format("json")):new io(e)}};Yt=new WeakMap,Xt=new WeakMap,Zt=new WeakMap,Je=new WeakMap,qo=new WeakSet,aE=function(e,t,n){if(he(e)){const i=e.toLowerCase();for(const a of _(this,Zt).values())if(i===a.selector)return a;return null}if(e.indexOf("(")===-1){const i=[];for(const[a,o]of _(this,Zt))a.split("(")[0]===e&&i.push(o);if(t){const a=t.length>0?t[t.length-1]:null;let o=t.length,s=!0;n0.isTyped(a)&&a.type==="overrides"&&(s=!1,o--);for(let l=i.length-1;l>=0;l--){const c=i[l].inputs.length;c!==o&&(!s||c!==o-1)&&i.splice(l,1)}for(let l=i.length-1;l>=0;l--){const c=i[l].inputs;for(let E=0;E=c.length){if(t[E].type==="overrides")continue;i.splice(l,1);break}if(t[E].type!==c[E].baseType){i.splice(l,1);break}}}}if(i.length===1&&t&&t.length!==i[0].inputs.length){const a=t[t.length-1];(a==null||Array.isArray(a)||typeof a!="object")&&i.splice(0,1)}if(i.length===0)return null;if(i.length>1&&n){const a=i.map(o=>JSON.stringify(o.format())).join(", ");Q(!1,`ambiguous function description (i.e. matches ${a})`,"key",e)}return i[0]}const r=_(this,Zt).get(sn.from(e).format());return r||null},Ho=new WeakSet,oE=function(e,t,n){if(he(e)){const i=e.toLowerCase();for(const a of _(this,Xt).values())if(i===a.topicHash)return a;return null}if(e.indexOf("(")===-1){const i=[];for(const[a,o]of _(this,Xt))a.split("(")[0]===e&&i.push(o);if(t){for(let a=i.length-1;a>=0;a--)i[a].inputs.length=0;a--){const o=i[a].inputs;for(let s=0;s1&&n){const a=i.map(o=>JSON.stringify(o.format())).join(", ");Q(!1,`ambiguous event description (i.e. matches ${a})`,"key",e)}return i[0]}const r=_(this,Xt).get(on.from(e).format());return r||null};let lp=io;const Qk=BigInt(0);function u3(u){return u??null}function u0(u){return u==null?null:u.toString()}class q7{constructor(e,t,n){X(this,"gasPrice");X(this,"maxFeePerGas");X(this,"maxPriorityFeePerGas");Ou(this,{gasPrice:u3(e),maxFeePerGas:u3(t),maxPriorityFeePerGas:u3(n)})}toJSON(){const{gasPrice:e,maxFeePerGas:t,maxPriorityFeePerGas:n}=this;return{_type:"FeeData",gasPrice:u0(e),maxFeePerGas:u0(t),maxPriorityFeePerGas:u0(n)}}}function A2(u){const e={};u.to&&(e.to=u.to),u.from&&(e.from=u.from),u.data&&(e.data=ku(u.data));const t="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const r of t)!(r in u)||u[r]==null||(e[r]=Su(u[r],`request.${r}`));const n="type,nonce".split(/,/);for(const r of n)!(r in u)||u[r]==null||(e[r]=Gu(u[r],`request.${r}`));return u.accessList&&(e.accessList=Da(u.accessList)),"blockTag"in u&&(e.blockTag=u.blockTag),"enableCcipRead"in u&&(e.enableCcipRead=!!u.enableCcipRead),"customData"in u&&(e.customData=u.customData),e}var kn;class n1u{constructor(e,t){X(this,"provider");X(this,"number");X(this,"hash");X(this,"timestamp");X(this,"parentHash");X(this,"nonce");X(this,"difficulty");X(this,"gasLimit");X(this,"gasUsed");X(this,"miner");X(this,"extraData");X(this,"baseFeePerGas");tu(this,kn,void 0);R(this,kn,e.transactions.map(n=>typeof n!="string"?new Z3(n,t):n)),Ou(this,{provider:t,hash:u3(e.hash),number:e.number,timestamp:e.timestamp,parentHash:e.parentHash,nonce:e.nonce,difficulty:e.difficulty,gasLimit:e.gasLimit,gasUsed:e.gasUsed,miner:e.miner,extraData:e.extraData,baseFeePerGas:u3(e.baseFeePerGas)})}get transactions(){return _(this,kn).map(e=>typeof e=="string"?e:e.hash)}get prefetchedTransactions(){const e=_(this,kn).slice();return e.length===0?[]:(Eu(typeof e[0]=="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),e)}toJSON(){const{baseFeePerGas:e,difficulty:t,extraData:n,gasLimit:r,gasUsed:i,hash:a,miner:o,nonce:s,number:l,parentHash:c,timestamp:E,transactions:d}=this;return{_type:"Block",baseFeePerGas:u0(e),difficulty:u0(t),extraData:n,gasLimit:u0(r),gasUsed:u0(i),hash:a,miner:o,nonce:s,number:l,parentHash:c,timestamp:E,transactions:d}}[Symbol.iterator](){let e=0;const t=this.transactions;return{next:()=>enew Yl(r,t))));let n=Qk;e.effectiveGasPrice!=null?n=e.effectiveGasPrice:e.gasPrice!=null&&(n=e.gasPrice),Ou(this,{provider:t,to:e.to,from:e.from,contractAddress:e.contractAddress,hash:e.hash,index:e.index,blockHash:e.blockHash,blockNumber:e.blockNumber,logsBloom:e.logsBloom,gasUsed:e.gasUsed,cumulativeGasUsed:e.cumulativeGasUsed,gasPrice:n,type:e.type,status:e.status,root:e.root})}get logs(){return _(this,il)}toJSON(){const{to:e,from:t,contractAddress:n,hash:r,index:i,blockHash:a,blockNumber:o,logsBloom:s,logs:l,status:c,root:E}=this;return{_type:"TransactionReceipt",blockHash:a,blockNumber:o,contractAddress:n,cumulativeGasUsed:u0(this.cumulativeGasUsed),from:t,gasPrice:u0(this.gasPrice),gasUsed:u0(this.gasUsed),hash:r,index:i,logs:l,logsBloom:s,root:E,status:c,to:e}}get length(){return this.logs.length}[Symbol.iterator](){let e=0;return{next:()=>e{if(o)return null;const{blockNumber:d,nonce:f}=await o0({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(f{if(d==null||d.status!==0)return d;Eu(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:d.to,from:d.from,data:""},receipt:d})},c=await this.provider.getTransactionReceipt(this.hash);if(n===0)return l(c);if(c){if(await c.confirmations()>=n)return l(c)}else if(await s(),n===0)return null;return await new Promise((d,f)=>{const C=[],h=()=>{C.forEach(g=>g())};if(C.push(()=>{o=!0}),r>0){const g=setTimeout(()=>{h(),f(we("wait for transaction timeout","TIMEOUT"))},r);C.push(()=>{clearTimeout(g)})}const B=async g=>{if(await g.confirmations()>=n){h();try{d(l(g))}catch(m){f(m)}}};if(C.push(()=>{this.provider.off(this.hash,B)}),this.provider.on(this.hash,B),i>=0){const g=async()=>{try{await s()}catch(m){if(dt(m,"TRANSACTION_REPLACED")){h(),f(m);return}}o||this.provider.once("block",g)};C.push(()=>{this.provider.off("block",g)}),this.provider.once("block",g)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}removedEvent(){return Eu(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Yk(this)}reorderedEvent(e){return Eu(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Eu(!e||e.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Jk(this,e)}replaceableTransaction(e){Q(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);const t=new IC(this,this.provider);return R(t,Fr,e),t}};Fr=new WeakMap;let Z3=IC;function r1u(u){return{orphan:"drop-block",hash:u.hash,number:u.number}}function Jk(u,e){return{orphan:"reorder-transaction",tx:u,other:e}}function Yk(u){return{orphan:"drop-transaction",tx:u}}function i1u(u){return{orphan:"drop-log",log:{transactionHash:u.transactionHash,blockHash:u.blockHash,blockNumber:u.blockNumber,address:u.address,data:u.data,topics:Object.freeze(u.topics.slice()),index:u.index}}}class wC extends Yl{constructor(t,n,r){super(t,t.provider);X(this,"interface");X(this,"fragment");X(this,"args");const i=n.decodeEventLog(r,t.data,t.topics);Ou(this,{args:i,fragment:r,interface:n})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class Xk extends Yl{constructor(t,n){super(t,t.provider);X(this,"error");Ou(this,{error:n})}}var Go;class a1u extends Vk{constructor(t,n,r){super(r,n);tu(this,Go,void 0);R(this,Go,t)}get logs(){return super.logs.map(t=>{const n=t.topics.length?_(this,Go).getEvent(t.topics[0]):null;if(n)try{return new wC(t,_(this,Go),n)}catch(r){return new Xk(t,r)}return t})}}Go=new WeakMap;var al;class xC extends Z3{constructor(t,n,r){super(r,n);tu(this,al,void 0);R(this,al,t)}async wait(t){const n=await super.wait(t);return n==null?null:new a1u(_(this,al),this.provider,n)}}al=new WeakMap;class Zk extends Vx{constructor(t,n,r,i){super(t,n,r);X(this,"log");Ou(this,{log:i})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class o1u extends Zk{constructor(e,t,n,r,i){super(e,t,n,new wC(i,e.interface,r));const a=e.interface.decodeEventLog(r,this.log.data,this.log.topics);Ou(this,{args:a,fragment:r})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const H7=BigInt(0);function u_(u){return u&&typeof u.call=="function"}function e_(u){return u&&typeof u.estimateGas=="function"}function E9(u){return u&&typeof u.resolveName=="function"}function t_(u){return u&&typeof u.sendTransaction=="function"}function n_(u){if(u!=null){if(E9(u))return u;if(u.provider)return u.provider}}var ol;class s1u{constructor(e,t,n){tu(this,ol,void 0);X(this,"fragment");if(Ou(this,{fragment:t}),t.inputs.lengthn[s]==null?null:o.walkAsync(n[s],(c,E)=>c==="address"?Array.isArray(E)?Promise.all(E.map(d=>E0(d,i))):E0(E,i):E)));return e.interface.encodeFilterTopics(t,a)}())}getTopicFilter(){return _(this,ol)}}ol=new WeakMap;function ha(u,e){return u==null?null:typeof u[e]=="function"?u:u.provider&&typeof u.provider[e]=="function"?u.provider:null}function _i(u){return u==null?null:u.provider||null}async function r_(u,e){const t=n0.dereference(u,"overrides");Q(typeof t=="object","invalid overrides parameter","overrides",u);const n=A2(t);return Q(n.to==null||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",n.to),Q(n.data==null||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",n.data),n.from&&(n.from=n.from),n}async function l1u(u,e,t){const n=ha(u,"resolveName"),r=E9(n)?n:null;return await Promise.all(e.map((i,a)=>i.walkAsync(t[a],(o,s)=>(s=n0.dereference(s,o),o==="address"?E0(s,r):s))))}function c1u(u){const e=async function(a){const o=await r_(a,["data"]);o.to=await u.getAddress(),o.from&&(o.from=await E0(o.from,n_(u.runner)));const s=u.interface,l=Su(o.value||H7,"overrides.value")===H7,c=(o.data||"0x")==="0x";s.fallback&&!s.fallback.payable&&s.receive&&!c&&!l&&Q(!1,"cannot send data to receive or send value to non-payable fallback","overrides",a),Q(s.fallback||c,"cannot send data to receive-only contract","overrides.data",o.data);const E=s.receive||s.fallback&&s.fallback.payable;return Q(E||l,"cannot send value to non-payable fallback","overrides.value",o.value),Q(s.fallback||c,"cannot send data to receive-only contract","overrides.data",o.data),o},t=async function(a){const o=ha(u.runner,"call");Eu(u_(o),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const s=await e(a);try{return await o.call(s)}catch(l){throw mC(l)&&l.data?u.interface.makeError(l.data,s):l}},n=async function(a){const o=u.runner;Eu(t_(o),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await o.sendTransaction(await e(a)),l=_i(u.runner);return new xC(u.interface,l,s)},r=async function(a){const o=ha(u.runner,"estimateGas");return Eu(e_(o),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await o.estimateGas(await e(a))},i=async a=>await n(a);return Ou(i,{_contract:u,estimateGas:r,populateTransaction:e,send:n,staticCall:t}),i}function E1u(u,e){const t=function(...l){const c=u.interface.getFunction(e,l);return Eu(c,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:l}}),c},n=async function(...l){const c=t(...l);let E={};if(c.inputs.length+1===l.length&&(E=await r_(l.pop()),E.from&&(E.from=await E0(E.from,n_(u.runner)))),c.inputs.length!==l.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const d=await l1u(u.runner,c.inputs,l);return Object.assign({},E,await o0({to:u.getAddress(),data:u.interface.encodeFunctionData(c,d)}))},r=async function(...l){const c=await o(...l);return c.length===1?c[0]:c},i=async function(...l){const c=u.runner;Eu(t_(c),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const E=await c.sendTransaction(await n(...l)),d=_i(u.runner);return new xC(u.interface,d,E)},a=async function(...l){const c=ha(u.runner,"estimateGas");return Eu(e_(c),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await c.estimateGas(await n(...l))},o=async function(...l){const c=ha(u.runner,"call");Eu(u_(c),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const E=await n(...l);let d="0x";try{d=await c.call(E)}catch(C){throw mC(C)&&C.data?u.interface.makeError(C.data,E):C}const f=t(...l);return u.interface.decodeFunctionResult(f,d)},s=async(...l)=>t(...l).constant?await r(...l):await i(...l);return Ou(s,{name:u.interface.getFunctionName(e),_contract:u,_key:e,getFragment:t,estimateGas:a,populateTransaction:n,send:i,staticCall:r,staticCallResult:o}),Object.defineProperty(s,"fragment",{configurable:!1,enumerable:!0,get:()=>{const l=u.interface.getFunction(e);return Eu(l,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),l}}),s}function d1u(u,e){const t=function(...r){const i=u.interface.getEvent(e,r);return Eu(i,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:r}}),i},n=function(...r){return new s1u(u,t(...r),r)};return Ou(n,{name:u.interface.getEventName(e),_contract:u,_key:e,getFragment:t}),Object.defineProperty(n,"fragment",{configurable:!1,enumerable:!0,get:()=>{const r=u.interface.getEvent(e);return Eu(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),r}}),n}const y2=Symbol.for("_ethersInternal_contract"),i_=new WeakMap;function f1u(u,e){i_.set(u[y2],e)}function N0(u){return i_.get(u[y2])}function p1u(u){return u&&typeof u=="object"&&"getTopicFilter"in u&&typeof u.getTopicFilter=="function"&&u.fragment}async function kC(u,e){let t,n=null;if(Array.isArray(e)){const i=function(a){if(he(a,32))return a;const o=u.interface.getEvent(a);return Q(o,"unknown fragment","name",a),o.topicHash};t=e.map(a=>a==null?null:Array.isArray(a)?a.map(i):i(a))}else e==="*"?t=[null]:typeof e=="string"?he(e,32)?t=[e]:(n=u.interface.getEvent(e),Q(n,"unknown fragment","event",e),t=[n.topicHash]):p1u(e)?t=await e.getTopicFilter():"fragment"in e?(n=e.fragment,t=[n.topicHash]):Q(!1,"unknown event name","event",e);t=t.map(i=>{if(i==null)return null;if(Array.isArray(i)){const a=Array.from(new Set(i.map(o=>o.toLowerCase())).values());return a.length===1?a[0]:(a.sort(),a)}return i.toLowerCase()});const r=t.map(i=>i==null?"null":Array.isArray(i)?i.join("|"):i).join("&");return{fragment:n,tag:r,topics:t}}async function z4(u,e){const{subs:t}=N0(u);return t.get((await kC(u,e)).tag)||null}async function G7(u,e,t){const n=_i(u.runner);Eu(n,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:r,tag:i,topics:a}=await kC(u,t),{addr:o,subs:s}=N0(u);let l=s.get(i);if(!l){const E={address:o||u,topics:a},d=B=>{let g=r;if(g==null)try{g=u.interface.getEvent(B.topics[0])}catch{}if(g){const m=g,y=r?u.interface.decodeEventLog(r,B.data,B.topics):[];Ep(u,t,y,v=>new o1u(u,v,t,m,B))}else Ep(u,t,[],m=>new Zk(u,m,t,B))};let f=[];l={tag:i,listeners:[],start:()=>{f.length||f.push(n.on(E,d))},stop:async()=>{if(f.length==0)return;let B=f;f=[],await Promise.all(B),n.off(E,d)}},s.set(i,l)}return l}let cp=Promise.resolve();async function h1u(u,e,t,n){await cp;const r=await z4(u,e);if(!r)return!1;const i=r.listeners.length;return r.listeners=r.listeners.filter(({listener:a,once:o})=>{const s=Array.from(t);n&&s.push(n(o?null:a));try{a.call(u,...s)}catch{}return!o}),r.listeners.length===0&&(r.stop(),N0(u).subs.delete(r.tag)),i>0}async function Ep(u,e,t,n){try{await cp}catch{}const r=h1u(u,e,t,n);return cp=r,await r}const Oc=["then"];var p6u;const t3=class t3{constructor(e,t,n,r){X(this,"target");X(this,"interface");X(this,"runner");X(this,"filters");X(this,p6u);X(this,"fallback");Q(typeof e=="string"||ok(e),"invalid value for Contract target","target",e),n==null&&(n=null);const i=lp.from(t);Ou(this,{target:e,runner:n,interface:i}),Object.defineProperty(this,y2,{value:{}});let a,o=null,s=null;if(r){const E=_i(n);s=new xC(this.interface,E,r)}let l=new Map;if(typeof e=="string")if(he(e))o=e,a=Promise.resolve(e);else{const E=ha(n,"resolveName");if(!E9(E))throw we("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});a=E.resolveName(e).then(d=>{if(d==null)throw we("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:e});return N0(this).addr=d,d})}else a=e.getAddress().then(E=>{if(E==null)throw new Error("TODO");return N0(this).addr=E,E});f1u(this,{addrPromise:a,addr:o,deployTx:s,subs:l});const c=new Proxy({},{get:(E,d,f)=>{if(typeof d=="symbol"||Oc.indexOf(d)>=0)return Reflect.get(E,d,f);try{return this.getEvent(d)}catch(C){if(!dt(C,"INVALID_ARGUMENT")||C.argument!=="key")throw C}},has:(E,d)=>Oc.indexOf(d)>=0?Reflect.has(E,d):Reflect.has(E,d)||this.interface.hasEvent(String(d))});return Ou(this,{filters:c}),Ou(this,{fallback:i.receive||i.fallback?c1u(this):null}),new Proxy(this,{get:(E,d,f)=>{if(typeof d=="symbol"||d in E||Oc.indexOf(d)>=0)return Reflect.get(E,d,f);try{return E.getFunction(d)}catch(C){if(!dt(C,"INVALID_ARGUMENT")||C.argument!=="key")throw C}},has:(E,d)=>typeof d=="symbol"||d in E||Oc.indexOf(d)>=0?Reflect.has(E,d):E.interface.hasFunction(d)})}connect(e){return new t3(this.target,this.interface,e)}attach(e){return new t3(e,this.interface,this.runner)}async getAddress(){return await N0(this).addrPromise}async getDeployedCode(){const e=_i(this.runner);Eu(e,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const t=await e.getCode(await this.getAddress());return t==="0x"?null:t}async waitForDeployment(){const e=this.deploymentTransaction();if(e)return await e.wait(),this;if(await this.getDeployedCode()!=null)return this;const n=_i(this.runner);return Eu(n!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((r,i)=>{const a=async()=>{try{if(await this.getDeployedCode()!=null)return r(this);n.once("block",a)}catch(o){i(o)}};a()})}deploymentTransaction(){return N0(this).deployTx}getFunction(e){return typeof e!="string"&&(e=e.format()),E1u(this,e)}getEvent(e){return typeof e!="string"&&(e=e.format()),d1u(this,e)}async queryTransaction(e){throw new Error("@TODO")}async queryFilter(e,t,n){t==null&&(t=0),n==null&&(n="latest");const{addr:r,addrPromise:i}=N0(this),a=r||await i,{fragment:o,topics:s}=await kC(this,e),l={address:a,topics:s,fromBlock:t,toBlock:n},c=_i(this.runner);return Eu(c,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await c.getLogs(l)).map(E=>{let d=o;if(d==null)try{d=this.interface.getEvent(E.topics[0])}catch{}if(d)try{return new wC(E,this.interface,d)}catch(f){return new Xk(E,f)}return new Yl(E,c)})}async on(e,t){const n=await G7(this,"on",e);return n.listeners.push({listener:t,once:!1}),n.start(),this}async once(e,t){const n=await G7(this,"once",e);return n.listeners.push({listener:t,once:!0}),n.start(),this}async emit(e,...t){return await Ep(this,e,t,null)}async listenerCount(e){if(e){const r=await z4(this,e);return r?r.listeners.length:0}const{subs:t}=N0(this);let n=0;for(const{listeners:r}of t.values())n+=r.length;return n}async listeners(e){if(e){const r=await z4(this,e);return r?r.listeners.map(({listener:i})=>i):[]}const{subs:t}=N0(this);let n=[];for(const{listeners:r}of t.values())n=n.concat(r.map(({listener:i})=>i));return n}async off(e,t){const n=await z4(this,e);if(!n)return this;if(t){const r=n.listeners.map(({listener:i})=>i).indexOf(t);r>=0&&n.listeners.splice(r,1)}return(t==null||n.listeners.length===0)&&(n.stop(),N0(this).subs.delete(n.tag)),this}async removeAllListeners(e){if(e){const t=await z4(this,e);if(!t)return this;t.stop(),N0(this).subs.delete(t.tag)}else{const{subs:t}=N0(this);for(const{tag:n,stop:r}of t.values())r(),t.delete(n)}return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return await this.off(e,t)}static buildClass(e){class t extends t3{constructor(r,i=null){super(r,e,i)}}return t}static from(e,t,n){return n==null&&(n=null),new this(e,t,n)}};p6u=y2;let dp=t3;function C1u(){return dp}let yo=class extends C1u(){};function U1(u){return u.match(/^ipfs:\/\/ipfs\//i)?u=u.substring(12):u.match(/^ipfs:\/\//i)?u=u.substring(7):Q(!1,"unsupported IPFS format","link",u),`https://gateway.ipfs.io/ipfs/${u}`}class m1u{constructor(e){X(this,"name");Ou(this,{name:e})}connect(e){return this}supportsCoinType(e){return!1}async encodeAddress(e,t){throw new Error("unsupported coin")}async decodeAddress(e,t){throw new Error("unsupported coin")}}const a_=new RegExp("^(ipfs)://(.*)$","i"),K7=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),a_,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];var Dr,Mi,br,La,x2,o_;const ao=class ao{constructor(e,t,n){tu(this,br);X(this,"provider");X(this,"address");X(this,"name");tu(this,Dr,void 0);tu(this,Mi,void 0);Ou(this,{provider:e,address:t,name:n}),R(this,Dr,null),R(this,Mi,new yo(t,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],e))}async supportsWildcard(){return _(this,Dr)==null&&R(this,Dr,(async()=>{try{return await _(this,Mi).supportsInterface("0x9061b923")}catch(e){if(dt(e,"CALL_EXCEPTION"))return!1;throw R(this,Dr,null),e}})()),await _(this,Dr)}async getAddress(e){if(e==null&&(e=60),e===60)try{const i=await yu(this,br,La).call(this,"addr(bytes32)");return i==null||i===ep?null:i}catch(i){if(dt(i,"CALL_EXCEPTION"))return null;throw i}if(e>=0&&e<2147483648){let i=e+2147483648;const a=await yu(this,br,La).call(this,"addr(bytes32,uint)",[i]);if(he(a,20))return Xu(a)}let t=null;for(const i of this.provider.plugins)if(i instanceof m1u&&i.supportsCoinType(e)){t=i;break}if(t==null)return null;const n=await yu(this,br,La).call(this,"addr(bytes32,uint)",[e]);if(n==null||n==="0x")return null;const r=await t.decodeAddress(e,n);if(r!=null)return r;Eu(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${e})`,info:{coinType:e,data:n}})}async getText(e){const t=await yu(this,br,La).call(this,"text(bytes32,string)",[e]);return t==null||t==="0x"?null:t}async getContentHash(){const e=await yu(this,br,La).call(this,"contenthash(bytes32)");if(e==null||e==="0x")return null;const t=e.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const r=t[1]==="e3010170"?"ipfs":"ipns",i=parseInt(t[4],16);if(t[5].length===i*2)return`${r}://${ndu("0x"+t[2])}`}const n=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&n[1].length===64)return`bzz://${n[1]}`;Eu(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:e}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const e=[{type:"name",value:this.name}];try{const t=await this.getText("avatar");if(t==null)return e.push({type:"!avatar",value:""}),{url:null,linkage:e};e.push({type:"avatar",value:t});for(let n=0;n{if(!Array.isArray(e))throw new Error("not an array");return e.map(t=>u(t))}}function Xl(u,e){return t=>{const n={};for(const r in u){let i=r;if(e&&r in e&&!(i in t)){for(const a of e[r])if(a in t){i=a;break}}try{const a=u[r](t[i]);a!==void 0&&(n[r]=a)}catch(a){const o=a instanceof Error?a.message:"not-an-error";Eu(!1,`invalid value for value.${r} (${o})`,"BAD_DATA",{value:t})}}return n}}function g1u(u){switch(u){case!0:case"true":return!0;case!1:case"false":return!1}Q(!1,`invalid boolean; ${JSON.stringify(u)}`,"value",u)}function Ps(u){return Q(he(u,!0),"invalid data","value",u),u}function ft(u){return Q(he(u,32),"invalid hash","value",u),u}const A1u=Xl({address:Xu,blockHash:ft,blockNumber:Gu,data:Ps,index:Gu,removed:ce(g1u,!1),topics:_C(ft),transactionHash:ft,transactionIndex:Gu},{index:["logIndex"]});function y1u(u){return A1u(u)}const B1u=Xl({hash:ce(ft),parentHash:ft,number:Gu,timestamp:Gu,nonce:ce(Ps),difficulty:Su,gasLimit:Su,gasUsed:Su,miner:ce(Xu),extraData:Ps,baseFeePerGas:ce(Su)});function v1u(u){const e=B1u(u);return e.transactions=u.transactions.map(t=>typeof t=="string"?t:s_(t)),e}const F1u=Xl({transactionIndex:Gu,blockNumber:Gu,transactionHash:ft,address:Xu,topics:_C(ft),data:Ps,index:Gu,blockHash:ft},{index:["logIndex"]});function D1u(u){return F1u(u)}const b1u=Xl({to:ce(Xu,null),from:ce(Xu,null),contractAddress:ce(Xu,null),index:Gu,root:ce(ku),gasUsed:Su,logsBloom:ce(Ps),blockHash:ft,hash:ft,logs:_C(D1u),blockNumber:Gu,cumulativeGasUsed:Su,effectiveGasPrice:ce(Su),status:ce(Gu),type:ce(Gu,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function w1u(u){return b1u(u)}function s_(u){u.to&&Su(u.to)===Q7&&(u.to="0x0000000000000000000000000000000000000000");const e=Xl({hash:ft,type:t=>t==="0x"||t==null?0:Gu(t),accessList:ce(Da,null),blockHash:ce(ft,null),blockNumber:ce(Gu,null),transactionIndex:ce(Gu,null),from:Xu,gasPrice:ce(Su),maxPriorityFeePerGas:ce(Su),maxFeePerGas:ce(Su),gasLimit:Su,to:ce(Xu,null),value:Su,nonce:Gu,data:Ps,creates:ce(Xu,null),chainId:ce(Su,null)},{data:["input"],gasLimit:["gas"]})(u);if(e.to==null&&e.creates==null&&(e.creates=bdu(e)),(u.type===1||u.type===2)&&u.accessList==null&&(e.accessList=[]),u.signature?e.signature=Ut.from(u.signature):e.signature=Ut.from(u),e.chainId==null){const t=e.signature.legacyChainId;t!=null&&(e.chainId=t)}return e.blockHash&&Su(e.blockHash)===Q7&&(e.blockHash=null),e}const x1u="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class Zl{constructor(e){X(this,"name");Ou(this,{name:e})}clone(){return new Zl(this.name)}}class d9 extends Zl{constructor(t,n){t==null&&(t=0);super(`org.ethers.network.plugins.GasCost#${t||0}`);X(this,"effectiveBlock");X(this,"txBase");X(this,"txCreate");X(this,"txDataZero");X(this,"txDataNonzero");X(this,"txAccessListStorageKey");X(this,"txAccessListAddress");const r={effectiveBlock:t};function i(a,o){let s=(n||{})[a];s==null&&(s=o),Q(typeof s=="number",`invalud value for ${a}`,"costs",n),r[a]=s}i("txBase",21e3),i("txCreate",32e3),i("txDataZero",4),i("txDataNonzero",16),i("txAccessListStorageKey",1900),i("txAccessListAddress",2400),Ou(this,r)}clone(){return new d9(this.effectiveBlock,this)}}class f9 extends Zl{constructor(t,n){super("org.ethers.plugins.network.Ens");X(this,"address");X(this,"targetNetwork");Ou(this,{address:t||x1u,targetNetwork:n??1})}clone(){return new f9(this.address,this.targetNetwork)}}var sl,ll;class l_ extends Zl{constructor(t,n){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin");tu(this,sl,void 0);tu(this,ll,void 0);R(this,sl,t),R(this,ll,n)}get url(){return _(this,sl)}get processFunc(){return _(this,ll)}clone(){return this}}sl=new WeakMap,ll=new WeakMap;const L1=new Map;var Ko,Qo,wr;const oo=class oo{constructor(e,t){tu(this,Ko,void 0);tu(this,Qo,void 0);tu(this,wr,void 0);R(this,Ko,e),R(this,Qo,Su(t)),R(this,wr,new Map)}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return _(this,Ko)}set name(e){R(this,Ko,e)}get chainId(){return _(this,Qo)}set chainId(e){R(this,Qo,Su(e,"chainId"))}matches(e){if(e==null)return!1;if(typeof e=="string"){try{return this.chainId===Su(e)}catch{}return this.name===e}if(typeof e=="number"||typeof e=="bigint"){try{return this.chainId===Su(e)}catch{}return!1}if(typeof e=="object"){if(e.chainId!=null){try{return this.chainId===Su(e.chainId)}catch{}return!1}return e.name!=null?this.name===e.name:!1}return!1}get plugins(){return Array.from(_(this,wr).values())}attachPlugin(e){if(_(this,wr).get(e.name))throw new Error(`cannot replace existing plugin: ${e.name} `);return _(this,wr).set(e.name,e.clone()),this}getPlugin(e){return _(this,wr).get(e)||null}getPlugins(e){return this.plugins.filter(t=>t.name.split("#")[0]===e)}clone(){const e=new oo(this.name,this.chainId);return this.plugins.forEach(t=>{e.attachPlugin(t.clone())}),e}computeIntrinsicGas(e){const t=this.getPlugin("org.ethers.plugins.network.GasCost")||new d9;let n=t.txBase;if(e.to==null&&(n+=t.txCreate),e.data)for(let r=2;r9){let r=BigInt(n[1].substring(0,9));n[1].substring(9).match(/^0+$/)||r++,n[1]=r.toString()}return BigInt(n[0]+n[1])}function J7(u){return new l_(u,async(e,t,n)=>{n.setHeader("User-Agent","ethers");let r;try{const[i,a]=await Promise.all([n.send(),e()]);r=i;const o=r.bodyJson.standard;return{gasPrice:a.gasPrice,maxFeePerGas:V7(o.maxFee,9),maxPriorityFeePerGas:V7(o.maxPriorityFee,9)}}catch(i){Eu(!1,`error encountered with polygon gas station (${JSON.stringify(n.url)})`,"SERVER_ERROR",{request:n,response:r,error:i})}})}function k1u(u){return new l_("data:",async(e,t,n)=>{const r=await e();if(r.maxFeePerGas==null||r.maxPriorityFeePerGas==null)return r;const i=r.maxFeePerGas-r.maxPriorityFeePerGas;return{gasPrice:r.gasPrice,maxFeePerGas:i+u,maxPriorityFeePerGas:u}})}let Y7=!1;function _1u(){if(Y7)return;Y7=!0;function u(e,t,n){const r=function(){const i=new Ln(e,t);return n.ensNetwork!=null&&i.attachPlugin(new f9(null,n.ensNetwork)),i.attachPlugin(new d9),(n.plugins||[]).forEach(a=>{i.attachPlugin(a)}),i};Ln.register(e,r),Ln.register(t,r),n.altNames&&n.altNames.forEach(i=>{Ln.register(i,r)})}u("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),u("ropsten",3,{ensNetwork:3}),u("rinkeby",4,{ensNetwork:4}),u("goerli",5,{ensNetwork:5}),u("kovan",42,{ensNetwork:42}),u("sepolia",11155111,{}),u("classic",61,{}),u("classicKotti",6,{}),u("arbitrum",42161,{ensNetwork:1}),u("arbitrum-goerli",421613,{}),u("bnb",56,{ensNetwork:1}),u("bnbt",97,{}),u("linea",59144,{ensNetwork:1}),u("linea-goerli",59140,{}),u("matic",137,{ensNetwork:1,plugins:[J7("https://gasstation.polygon.technology/v2")]}),u("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[J7("https://gasstation-testnet.polygon.technology/v2")]}),u("optimism",10,{ensNetwork:1,plugins:[k1u(BigInt("1000000"))]}),u("optimism-goerli",420,{}),u("xdai",100,{ensNetwork:1})}function fp(u){return JSON.parse(JSON.stringify(u))}var _n,tt,xr,un,Vo,sE;class S1u{constructor(e){tu(this,Vo);tu(this,_n,void 0);tu(this,tt,void 0);tu(this,xr,void 0);tu(this,un,void 0);R(this,_n,e),R(this,tt,null),R(this,xr,4e3),R(this,un,-2)}get pollingInterval(){return _(this,xr)}set pollingInterval(e){R(this,xr,e)}start(){_(this,tt)||(R(this,tt,_(this,_n)._setTimeout(yu(this,Vo,sE).bind(this),_(this,xr))),yu(this,Vo,sE).call(this))}stop(){_(this,tt)&&(_(this,_n)._clearTimeout(_(this,tt)),R(this,tt,null))}pause(e){this.stop(),e&&R(this,un,-2)}resume(){this.start()}}_n=new WeakMap,tt=new WeakMap,xr=new WeakMap,un=new WeakMap,Vo=new WeakSet,sE=async function(){try{const e=await _(this,_n).getBlockNumber();if(_(this,un)===-2){R(this,un,e);return}if(e!==_(this,un)){for(let t=_(this,un)+1;t<=e;t++){if(_(this,tt)==null)return;await _(this,_n).emit("block",t)}R(this,un,e)}}catch{}_(this,tt)!=null&&R(this,tt,_(this,_n)._setTimeout(yu(this,Vo,sE).bind(this),_(this,xr)))};var Ui,Li,kr;class c_{constructor(e){tu(this,Ui,void 0);tu(this,Li,void 0);tu(this,kr,void 0);R(this,Ui,e),R(this,kr,!1),R(this,Li,t=>{this._poll(t,_(this,Ui))})}async _poll(e,t){throw new Error("sub-classes must override this")}start(){_(this,kr)||(R(this,kr,!0),_(this,Li).call(this,-2),_(this,Ui).on("block",_(this,Li)))}stop(){_(this,kr)&&(R(this,kr,!1),_(this,Ui).off("block",_(this,Li)))}pause(e){this.stop()}resume(){this.start()}}Ui=new WeakMap,Li=new WeakMap,kr=new WeakMap;var k2;class P1u extends c_{constructor(t,n){super(t);tu(this,k2,void 0);R(this,k2,fp(n))}async _poll(t,n){throw new Error("@TODO")}}k2=new WeakMap;var Jo;class T1u extends c_{constructor(t,n){super(t);tu(this,Jo,void 0);R(this,Jo,n)}async _poll(t,n){const r=await n.getTransactionReceipt(_(this,Jo));r&&n.emit(_(this,Jo),r)}}Jo=new WeakMap;var Sn,Yo,Xo,_r,nt,_2,E_;class SC{constructor(e,t){tu(this,_2);tu(this,Sn,void 0);tu(this,Yo,void 0);tu(this,Xo,void 0);tu(this,_r,void 0);tu(this,nt,void 0);R(this,Sn,e),R(this,Yo,fp(t)),R(this,Xo,yu(this,_2,E_).bind(this)),R(this,_r,!1),R(this,nt,-2)}start(){_(this,_r)||(R(this,_r,!0),_(this,nt)===-2&&_(this,Sn).getBlockNumber().then(e=>{R(this,nt,e)}),_(this,Sn).on("block",_(this,Xo)))}stop(){_(this,_r)&&(R(this,_r,!1),_(this,Sn).off("block",_(this,Xo)))}pause(e){this.stop(),e&&R(this,nt,-2)}resume(){this.start()}}Sn=new WeakMap,Yo=new WeakMap,Xo=new WeakMap,_r=new WeakMap,nt=new WeakMap,_2=new WeakSet,E_=async function(e){if(_(this,nt)===-2)return;const t=fp(_(this,Yo));t.fromBlock=_(this,nt)+1,t.toBlock=e;const n=await _(this,Sn).getLogs(t);if(n.length===0){_(this,nt){if(n==null)return"null";if(typeof n=="bigint")return`bigint:${n.toString()}`;if(typeof n=="string")return n.toLowerCase();if(typeof n=="object"&&!Array.isArray(n)){const r=Object.keys(n);return r.sort(),r.reduce((i,a)=>(i[a]=n[a],i),{})}return n})}class d_{constructor(e){X(this,"name");Ou(this,{name:e})}start(){}stop(){}pause(e){}resume(){}}function N1u(u){return JSON.parse(JSON.stringify(u))}function pp(u){return u=Array.from(new Set(u).values()),u.sort(),u}async function $1(u,e){if(u==null)throw new Error("invalid event");if(Array.isArray(u)&&(u={topics:u}),typeof u=="string")switch(u){case"block":case"pending":case"debug":case"error":case"network":return{type:u,tag:u}}if(he(u,32)){const t=u.toLowerCase();return{type:"transaction",tag:lE("tx",{hash:t}),hash:t}}if(u.orphan){const t=u;return{type:"orphan",tag:lE("orphan",t),filter:N1u(t)}}if(u.address||u.topics){const t=u,n={topics:(t.topics||[]).map(r=>r==null?null:Array.isArray(r)?pp(r.map(i=>i.toLowerCase())):r.toLowerCase())};if(t.address){const r=[],i=[],a=o=>{he(o)?r.push(o):i.push((async()=>{r.push(await E0(o,e))})())};Array.isArray(t.address)?t.address.forEach(a):a(t.address),i.length&&await Promise.all(i),n.address=pp(r.map(o=>o.toLowerCase()))}return{filter:n,tag:lE("event",n),type:"event"}}Q(!1,"unknown ProviderEvent","event",u)}function W1(){return new Date().getTime()}const R1u={cacheTimeout:250,pollingInterval:4e3};var Ye,Sr,Xe,Zo,z0,$i,Pr,Pn,cl,rt,us,es,m0,Y0,El,hp,dl,Cp,Wi,M4,fl,mp,qi,U4,ts,cE;class j1u{constructor(e,t){tu(this,m0);tu(this,El);tu(this,dl);tu(this,Wi);tu(this,fl);tu(this,qi);tu(this,ts);tu(this,Ye,void 0);tu(this,Sr,void 0);tu(this,Xe,void 0);tu(this,Zo,void 0);tu(this,z0,void 0);tu(this,$i,void 0);tu(this,Pr,void 0);tu(this,Pn,void 0);tu(this,cl,void 0);tu(this,rt,void 0);tu(this,us,void 0);tu(this,es,void 0);if(R(this,es,Object.assign({},R1u,t||{})),e==="any")R(this,$i,!0),R(this,z0,null);else if(e){const n=Ln.from(e);R(this,$i,!1),R(this,z0,Promise.resolve(n)),setTimeout(()=>{this.emit("network",n,null)},0)}else R(this,$i,!1),R(this,z0,null);R(this,Pn,-1),R(this,Pr,new Map),R(this,Ye,new Map),R(this,Sr,new Map),R(this,Xe,null),R(this,Zo,!1),R(this,cl,1),R(this,rt,new Map),R(this,us,!1)}get pollingInterval(){return _(this,es).pollingInterval}get provider(){return this}get plugins(){return Array.from(_(this,Sr).values())}attachPlugin(e){if(_(this,Sr).get(e.name))throw new Error(`cannot replace existing plugin: ${e.name} `);return _(this,Sr).set(e.name,e.connect(this)),this}getPlugin(e){return _(this,Sr).get(e)||null}get disableCcipRead(){return _(this,us)}set disableCcipRead(e){R(this,us,!!e)}async ccipReadFetch(e,t,n){if(this.disableCcipRead||n.length===0||e.to==null)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),a=[];for(let o=0;o=500,`response not found during CCIP fetch: ${E}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:e,info:{url:s,errorMessage:E}}),a.push(E)}Eu(!1,`error encountered during CCIP fetch: ${a.map(o=>JSON.stringify(o)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:e,info:{urls:n,errorMessages:a}})}_wrapBlock(e,t){return new n1u(v1u(e),this)}_wrapLog(e,t){return new Yl(y1u(e),this)}_wrapTransactionReceipt(e,t){return new Vk(w1u(e),this)}_wrapTransactionResponse(e,t){return new Z3(s_(e),this)}_detectNetwork(){Eu(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(e){Eu(!1,`unsupported method: ${e.method}`,"UNSUPPORTED_OPERATION",{operation:e.method,info:e})}async getBlockNumber(){const e=Gu(await yu(this,m0,Y0).call(this,{method:"getBlockNumber"}),"%response");return _(this,Pn)>=0&&R(this,Pn,e),e}_getAddress(e){return E0(e,this)}_getBlockTag(e){if(e==null)return"latest";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if(he(e))return he(e,32)?e:no(e);if(typeof e=="bigint"&&(e=Gu(e,"blockTag")),typeof e=="number")return e>=0?no(e):_(this,Pn)>=0?no(_(this,Pn)+e):this.getBlockNumber().then(t=>no(t+e));Q(!1,"invalid blockTag","blockTag",e)}_getFilter(e){const t=(e.topics||[]).map(s=>s==null?null:Array.isArray(s)?pp(s.map(l=>l.toLowerCase())):s.toLowerCase()),n="blockHash"in e?e.blockHash:void 0,r=(s,l,c)=>{let E;switch(s.length){case 0:break;case 1:E=s[0];break;default:s.sort(),E=s}if(n&&(l!=null||c!=null))throw new Error("invalid filter");const d={};return E&&(d.address=E),t.length&&(d.topics=t),l&&(d.fromBlock=l),c&&(d.toBlock=c),n&&(d.blockHash=n),d};let i=[];if(e.address)if(Array.isArray(e.address))for(const s of e.address)i.push(this._getAddress(s));else i.push(this._getAddress(e.address));let a;"fromBlock"in e&&(a=this._getBlockTag(e.fromBlock));let o;return"toBlock"in e&&(o=this._getBlockTag(e.toBlock)),i.filter(s=>typeof s!="string").length||a!=null&&typeof a!="string"||o!=null&&typeof o!="string"?Promise.all([Promise.all(i),a,o]).then(s=>r(s[0],s[1],s[2])):r(i,a,o)}_getTransactionRequest(e){const t=A2(e),n=[];if(["to","from"].forEach(r=>{if(t[r]==null)return;const i=E0(t[r],this);Nc(i)?n.push(async function(){t[r]=await i}()):t[r]=i}),t.blockTag!=null){const r=this._getBlockTag(t.blockTag);Nc(r)?n.push(async function(){t.blockTag=await r}()):t.blockTag=r}return n.length?async function(){return await Promise.all(n),t}():t}async getNetwork(){if(_(this,z0)==null){const r=this._detectNetwork().then(i=>(this.emit("network",i,null),i),i=>{throw _(this,z0)===r&&R(this,z0,null),i});return R(this,z0,r),(await r).clone()}const e=_(this,z0),[t,n]=await Promise.all([e,this._detectNetwork()]);return t.chainId!==n.chainId&&(_(this,$i)?(this.emit("network",n,t),_(this,z0)===e&&R(this,z0,Promise.resolve(n))):Eu(!1,`network changed: ${t.chainId} => ${n.chainId} `,"NETWORK_ERROR",{event:"changed"})),t.clone()}async getFeeData(){const e=await this.getNetwork(),t=async()=>{const{_block:r,gasPrice:i}=await o0({_block:yu(this,fl,mp).call(this,"latest",!1),gasPrice:(async()=>{try{const l=await yu(this,m0,Y0).call(this,{method:"getGasPrice"});return Su(l,"%response")}catch{}return null})()});let a=null,o=null;const s=this._wrapBlock(r,e);return s&&s.baseFeePerGas&&(o=BigInt("1000000000"),a=s.baseFeePerGas*I1u+o),new q7(i,a,o)},n=e.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(n){const r=new Xn(n.url),i=await n.processFunc(t,this,r);return new q7(i.gasPrice,i.maxFeePerGas,i.maxPriorityFeePerGas)}return await t()}async estimateGas(e){let t=this._getTransactionRequest(e);return Nc(t)&&(t=await t),Su(await yu(this,m0,Y0).call(this,{method:"estimateGas",transaction:t}),"%response")}async call(e){const{tx:t,blockTag:n}=await o0({tx:this._getTransactionRequest(e),blockTag:this._getBlockTag(e.blockTag)});return await yu(this,dl,Cp).call(this,yu(this,El,hp).call(this,t,n,e.enableCcipRead?0:-1))}async getBalance(e,t){return Su(await yu(this,Wi,M4).call(this,{method:"getBalance"},e,t),"%response")}async getTransactionCount(e,t){return Gu(await yu(this,Wi,M4).call(this,{method:"getTransactionCount"},e,t),"%response")}async getCode(e,t){return ku(await yu(this,Wi,M4).call(this,{method:"getCode"},e,t))}async getStorage(e,t,n){const r=Su(t,"position");return ku(await yu(this,Wi,M4).call(this,{method:"getStorage",position:r},e,n))}async broadcastTransaction(e){const{blockNumber:t,hash:n,network:r}=await o0({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:e}),network:this.getNetwork()}),i=m2.from(e);if(i.hash!==n)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(i,r).replaceableTransaction(t)}async getBlock(e,t){const{network:n,params:r}=await o0({network:this.getNetwork(),params:yu(this,fl,mp).call(this,e,!!t)});return r==null?null:this._wrapBlock(r,n)}async getTransaction(e){const{network:t,params:n}=await o0({network:this.getNetwork(),params:yu(this,m0,Y0).call(this,{method:"getTransaction",hash:e})});return n==null?null:this._wrapTransactionResponse(n,t)}async getTransactionReceipt(e){const{network:t,params:n}=await o0({network:this.getNetwork(),params:yu(this,m0,Y0).call(this,{method:"getTransactionReceipt",hash:e})});if(n==null)return null;if(n.gasPrice==null&&n.effectiveGasPrice==null){const r=await yu(this,m0,Y0).call(this,{method:"getTransaction",hash:e});if(r==null)throw new Error("report this; could not find tx or effectiveGasPrice");n.effectiveGasPrice=r.gasPrice}return this._wrapTransactionReceipt(n,t)}async getTransactionResult(e){const{result:t}=await o0({network:this.getNetwork(),result:yu(this,m0,Y0).call(this,{method:"getTransactionResult",hash:e})});return t==null?null:ku(t)}async getLogs(e){let t=this._getFilter(e);Nc(t)&&(t=await t);const{network:n,params:r}=await o0({network:this.getNetwork(),params:yu(this,m0,Y0).call(this,{method:"getLogs",filter:t})});return r.map(i=>this._wrapLog(i,n))}_getProvider(e){Eu(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(e){return await B2.fromName(this,e)}async getAvatar(e){const t=await this.getResolver(e);return t?await t.getAvatar():null}async resolveName(e){const t=await this.getResolver(e);return t?await t.getAddress():null}async lookupAddress(e){e=Xu(e);const t=op(e.substring(2).toLowerCase()+".addr.reverse");try{const n=await B2.getEnsAddress(this),i=await new yo(n,["function resolver(bytes32) view returns (address)"],this).resolver(t);if(i==null||i===ep)return null;const o=await new yo(i,["function name(bytes32) view returns (string)"],this).name(t);return await this.resolveName(o)!==e?null:o}catch(n){if(dt(n,"BAD_DATA")&&n.value==="0x"||dt(n,"CALL_EXCEPTION"))return null;throw n}return null}async waitForTransaction(e,t,n){const r=t??1;return r===0?this.getTransactionReceipt(e):new Promise(async(i,a)=>{let o=null;const s=async l=>{try{const c=await this.getTransactionReceipt(e);if(c!=null&&l-c.blockNumber+1>=r){i(c),o&&(clearTimeout(o),o=null);return}}catch(c){console.log("EEE",c)}this.once("block",s)};n!=null&&(o=setTimeout(()=>{o!=null&&(o=null,this.off("block",s),a(we("timeout","TIMEOUT",{reason:"timeout"})))},n)),s(await this.getBlockNumber())})}async waitForBlock(e){Eu(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(e){const t=_(this,rt).get(e);t&&(t.timer&&clearTimeout(t.timer),_(this,rt).delete(e))}_setTimeout(e,t){t==null&&(t=0);const n=a4(this,cl)._++,r=()=>{_(this,rt).delete(n),e()};if(this.paused)_(this,rt).set(n,{timer:null,func:r,time:t});else{const i=setTimeout(r,t);_(this,rt).set(n,{timer:i,func:r,time:W1()})}return n}_forEachSubscriber(e){for(const t of _(this,Ye).values())e(t.subscriber)}_getSubscriber(e){switch(e.type){case"debug":case"error":case"network":return new d_(e.type);case"block":{const t=new S1u(this);return t.pollingInterval=this.pollingInterval,t}case"event":return new SC(this,e.filter);case"transaction":return new T1u(this,e.hash);case"orphan":return new P1u(this,e.filter)}throw new Error(`unsupported event: ${e.type}`)}_recoverSubscriber(e,t){for(const n of _(this,Ye).values())if(n.subscriber===e){n.started&&n.subscriber.stop(),n.subscriber=t,n.started&&t.start(),_(this,Xe)!=null&&t.pause(_(this,Xe));break}}async on(e,t){const n=await yu(this,ts,cE).call(this,e);return n.listeners.push({listener:t,once:!1}),n.started||(n.subscriber.start(),n.started=!0,_(this,Xe)!=null&&n.subscriber.pause(_(this,Xe))),this}async once(e,t){const n=await yu(this,ts,cE).call(this,e);return n.listeners.push({listener:t,once:!0}),n.started||(n.subscriber.start(),n.started=!0,_(this,Xe)!=null&&n.subscriber.pause(_(this,Xe))),this}async emit(e,...t){const n=await yu(this,qi,U4).call(this,e,t);if(!n||n.listeners.length===0)return!1;const r=n.listeners.length;return n.listeners=n.listeners.filter(({listener:i,once:a})=>{const o=new Vx(this,a?null:i,e);try{i.call(this,...t,o)}catch{}return!a}),n.listeners.length===0&&(n.started&&n.subscriber.stop(),_(this,Ye).delete(n.tag)),r>0}async listenerCount(e){if(e){const n=await yu(this,qi,U4).call(this,e);return n?n.listeners.length:0}let t=0;for(const{listeners:n}of _(this,Ye).values())t+=n.length;return t}async listeners(e){if(e){const n=await yu(this,qi,U4).call(this,e);return n?n.listeners.map(({listener:r})=>r):[]}let t=[];for(const{listeners:n}of _(this,Ye).values())t=t.concat(n.map(({listener:r})=>r));return t}async off(e,t){const n=await yu(this,qi,U4).call(this,e);if(!n)return this;if(t){const r=n.listeners.map(({listener:i})=>i).indexOf(t);r>=0&&n.listeners.splice(r,1)}return(!t||n.listeners.length===0)&&(n.started&&n.subscriber.stop(),_(this,Ye).delete(n.tag)),this}async removeAllListeners(e){if(e){const{tag:t,started:n,subscriber:r}=await yu(this,ts,cE).call(this,e);n&&r.stop(),_(this,Ye).delete(t)}else for(const[t,{started:n,subscriber:r}]of _(this,Ye))n&&r.stop(),_(this,Ye).delete(t);return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return this.off(e,t)}get destroyed(){return _(this,Zo)}destroy(){this.removeAllListeners();for(const e of _(this,rt).keys())this._clearTimeout(e);R(this,Zo,!0)}get paused(){return _(this,Xe)!=null}set paused(e){!!e!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(e){if(R(this,Pn,-1),_(this,Xe)!=null){if(_(this,Xe)==!!e)return;Eu(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber(t=>t.pause(e)),R(this,Xe,!!e);for(const t of _(this,rt).values())t.timer&&clearTimeout(t.timer),t.time=W1()-t.time}resume(){if(_(this,Xe)!=null){this._forEachSubscriber(e=>e.resume()),R(this,Xe,null);for(const e of _(this,rt).values()){let t=e.time;t<0&&(t=0),e.time=W1(),setTimeout(e.func,t)}}}}Ye=new WeakMap,Sr=new WeakMap,Xe=new WeakMap,Zo=new WeakMap,z0=new WeakMap,$i=new WeakMap,Pr=new WeakMap,Pn=new WeakMap,cl=new WeakMap,rt=new WeakMap,us=new WeakMap,es=new WeakMap,m0=new WeakSet,Y0=async function(e){const t=_(this,es).cacheTimeout;if(t<0)return await this._perform(e);const n=lE(e.method,e);let r=_(this,Pr).get(n);return r||(r=this._perform(e),_(this,Pr).set(n,r),setTimeout(()=>{_(this,Pr).get(n)===r&&_(this,Pr).delete(n)},t)),await r},El=new WeakSet,hp=async function(e,t,n){Eu(n=0&&t==="latest"&&r.to!=null&&ge(i.data,0,4)==="0x556f1830"){const a=i.data,o=await E0(r.to,this);let s;try{s=$1u(ge(i.data,4))}catch(E){Eu(!1,E.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:r,info:{data:a}})}Eu(s.sender.toLowerCase()===o.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:a,reason:"OffchainLookup",transaction:r,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:s.errorArgs}});const l=await this.ccipReadFetch(r,s.calldata,s.urls);Eu(l!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:r,info:{data:i.data,errorArgs:s.errorArgs}});const c={to:o,data:Ie([s.selector,L1u([l,s.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:c});try{const E=await yu(this,El,hp).call(this,c,t,n+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},c),result:E}),E}catch(E){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},c),error:E}),E}}throw i}},dl=new WeakSet,Cp=async function(e){const{value:t}=await o0({network:this.getNetwork(),value:e});return t},Wi=new WeakSet,M4=async function(e,t,n){let r=this._getAddress(t),i=this._getBlockTag(n);return(typeof r!="string"||typeof i!="string")&&([r,i]=await Promise.all([r,i])),await yu(this,dl,Cp).call(this,yu(this,m0,Y0).call(this,Object.assign(e,{address:r,blockTag:i})))},fl=new WeakSet,mp=async function(e,t){if(he(e,32))return await yu(this,m0,Y0).call(this,{method:"getBlock",blockHash:e,includeTransactions:t});let n=this._getBlockTag(e);return typeof n!="string"&&(n=await n),await yu(this,m0,Y0).call(this,{method:"getBlock",blockTag:n,includeTransactions:t})},qi=new WeakSet,U4=async function(e,t){let n=await $1(e,this);return n.type==="event"&&t&&t.length>0&&t[0].removed===!0&&(n=await $1({orphan:"drop-log",log:t[0]},this)),_(this,Ye).get(n.tag)||null},ts=new WeakSet,cE=async function(e){const t=await $1(e,this),n=t.tag;let r=_(this,Ye).get(n);return r||(r={subscriber:this._getSubscriber(t),tag:n,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},_(this,Ye).set(n,r)),r};function z1u(u,e){try{const t=gp(u,e);if(t)return AC(t)}catch{}return null}function gp(u,e){if(u==="0x")return null;try{const t=Gu(ge(u,e,e+32)),n=Gu(ge(u,t,t+32));return ge(u,t+32,t+32+n)}catch{}return null}function X7(u){const e=$0(u);if(e.length>32)throw new Error("internal; should not happen");const t=new Uint8Array(32);return t.set(e,32-e.length),t}function M1u(u){if(u.length%32===0)return u;const e=new Uint8Array(Math.ceil(u.length/32)*32);return e.set(u),e}const U1u=new Uint8Array([]);function L1u(u){const e=[];let t=0;for(let n=0;n=5*32,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const t=ge(u,0,32);Eu(ge(t,0,12)===ge(Z7,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),e.sender=ge(t,12);try{const n=[],r=Gu(ge(u,32,64)),i=Gu(ge(u,r,r+32)),a=ge(u,r+32);for(let o=0;oe[n]),e}function Ta(u,e){if(u.provider)return u.provider;Eu(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:e})}async function uy(u,e){let t=A2(e);if(t.to!=null&&(t.to=E0(t.to,u)),t.from!=null){const n=t.from;t.from=Promise.all([u.getAddress(),E0(n,u)]).then(([r,i])=>(Q(r.toLowerCase()===i.toLowerCase(),"transaction from mismatch","tx.from",i),r))}else t.from=u.getAddress();return await o0(t)}class W1u{constructor(e){X(this,"provider");Ou(this,{provider:e||null})}async getNonce(e){return Ta(this,"getTransactionCount").getTransactionCount(await this.getAddress(),e)}async populateCall(e){return await uy(this,e)}async populateTransaction(e){const t=Ta(this,"populateTransaction"),n=await uy(this,e);n.nonce==null&&(n.nonce=await this.getNonce("pending")),n.gasLimit==null&&(n.gasLimit=await this.estimateGas(n));const r=await this.provider.getNetwork();if(n.chainId!=null){const a=Su(n.chainId);Q(a===r.chainId,"transaction chainId mismatch","tx.chainId",e.chainId)}else n.chainId=r.chainId;const i=n.maxFeePerGas!=null||n.maxPriorityFeePerGas!=null;if(n.gasPrice!=null&&(n.type===2||i)?Q(!1,"eip-1559 transaction do not support gasPrice","tx",e):(n.type===0||n.type===1)&&i&&Q(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",e),(n.type===2||n.type==null)&&n.maxFeePerGas!=null&&n.maxPriorityFeePerGas!=null)n.type=2;else if(n.type===0||n.type===1){const a=await t.getFeeData();Eu(a.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),n.gasPrice==null&&(n.gasPrice=a.gasPrice)}else{const a=await t.getFeeData();if(n.type==null)if(a.maxFeePerGas!=null&&a.maxPriorityFeePerGas!=null)if(n.type=2,n.gasPrice!=null){const o=n.gasPrice;delete n.gasPrice,n.maxFeePerGas=o,n.maxPriorityFeePerGas=o}else n.maxFeePerGas==null&&(n.maxFeePerGas=a.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=a.maxPriorityFeePerGas);else a.gasPrice!=null?(Eu(!i,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),n.gasPrice==null&&(n.gasPrice=a.gasPrice),n.type=0):Eu(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else n.type===2&&(n.maxFeePerGas==null&&(n.maxFeePerGas=a.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=a.maxPriorityFeePerGas))}return await o0(n)}async estimateGas(e){return Ta(this,"estimateGas").estimateGas(await this.populateCall(e))}async call(e){return Ta(this,"call").call(await this.populateCall(e))}async resolveName(e){return await Ta(this,"resolveName").resolveName(e)}async sendTransaction(e){const t=Ta(this,"sendTransaction"),n=await this.populateTransaction(e);delete n.from;const r=m2.from(n);return await t.broadcastTransaction(await this.signTransaction(r))}}function q1u(u){return JSON.parse(JSON.stringify(u))}var g0,en,Hi,Tr,Gi,ns,pl,Ap,hl,yp;class f_{constructor(e){tu(this,pl);tu(this,hl);tu(this,g0,void 0);tu(this,en,void 0);tu(this,Hi,void 0);tu(this,Tr,void 0);tu(this,Gi,void 0);tu(this,ns,void 0);R(this,g0,e),R(this,en,null),R(this,Hi,yu(this,pl,Ap).bind(this)),R(this,Tr,!1),R(this,Gi,null),R(this,ns,!1)}_subscribe(e){throw new Error("subclasses must override this")}_emitResults(e,t){throw new Error("subclasses must override this")}_recover(e){throw new Error("subclasses must override this")}start(){_(this,Tr)||(R(this,Tr,!0),yu(this,pl,Ap).call(this,-2))}stop(){_(this,Tr)&&(R(this,Tr,!1),R(this,ns,!0),yu(this,hl,yp).call(this),_(this,g0).off("block",_(this,Hi)))}pause(e){e&&yu(this,hl,yp).call(this),_(this,g0).off("block",_(this,Hi))}resume(){this.start()}}g0=new WeakMap,en=new WeakMap,Hi=new WeakMap,Tr=new WeakMap,Gi=new WeakMap,ns=new WeakMap,pl=new WeakSet,Ap=async function(e){try{_(this,en)==null&&R(this,en,this._subscribe(_(this,g0)));let t=null;try{t=await _(this,en)}catch(i){if(!dt(i,"UNSUPPORTED_OPERATION")||i.operation!=="eth_newFilter")throw i}if(t==null){R(this,en,null),_(this,g0)._recoverSubscriber(this,this._recover(_(this,g0)));return}const n=await _(this,g0).getNetwork();if(_(this,Gi)||R(this,Gi,n),_(this,Gi).chainId!==n.chainId)throw new Error("chaid changed");if(_(this,ns))return;const r=await _(this,g0).send("eth_getFilterChanges",[t]);await this._emitResults(_(this,g0),r)}catch(t){console.log("@TODO",t)}_(this,g0).once("block",_(this,Hi))},hl=new WeakSet,yp=function(){const e=_(this,en);e&&(R(this,en,null),e.then(t=>{_(this,g0).send("eth_uninstallFilter",[t])}))};var Ki;class H1u extends f_{constructor(t,n){super(t);tu(this,Ki,void 0);R(this,Ki,q1u(n))}_recover(t){return new SC(t,_(this,Ki))}async _subscribe(t){return await t.send("eth_newFilter",[_(this,Ki)])}async _emitResults(t,n){for(const r of n)t.emit(_(this,Ki),t._wrapLog(r,t._network))}}Ki=new WeakMap;class G1u extends f_{async _subscribe(e){return await e.send("eth_newPendingTransactionFilter",[])}async _emitResults(e,t){for(const n of t)e.emit("pending",n)}}const K1u="bigint,boolean,function,number,string,symbol".split(/,/g);function EE(u){if(u==null||K1u.indexOf(typeof u)>=0||typeof u.getAddress=="function")return u;if(Array.isArray(u))return u.map(EE);if(typeof u=="object")return Object.keys(u).reduce((e,t)=>(e[t]=u[t],e),{});throw new Error(`should not happen: ${u} (${typeof u})`)}function Q1u(u){return new Promise(e=>{setTimeout(e,u)})}function Ia(u){return u&&u.toLowerCase()}function ey(u){return u&&typeof u.pollingInterval=="number"}const V1u={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class q1 extends W1u{constructor(t,n){super(t);X(this,"address");n=Xu(n),Ou(this,{address:n})}connect(t){Eu(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(t){return await this.populateCall(t)}async sendUncheckedTransaction(t){const n=EE(t),r=[];if(n.from){const a=n.from;r.push((async()=>{const o=await E0(a,this.provider);Q(o!=null&&o.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),n.from=o})())}else n.from=this.address;if(n.gasLimit==null&&r.push((async()=>{n.gasLimit=await this.provider.estimateGas({...n,from:this.address})})()),n.to!=null){const a=n.to;r.push((async()=>{n.to=await E0(a,this.provider)})())}r.length&&await Promise.all(r);const i=this.provider.getRpcTransaction(n);return this.provider.send("eth_sendTransaction",[i])}async sendTransaction(t){const n=await this.provider.getBlockNumber(),r=await this.sendUncheckedTransaction(t);return await new Promise((i,a)=>{const o=[1e3,100],s=async()=>{const l=await this.provider.getTransaction(r);if(l!=null){i(l.replaceableTransaction(n));return}this.provider._setTimeout(()=>{s()},o.pop()||4e3)};s()})}async signTransaction(t){const n=EE(t);if(n.from){const i=await E0(n.from,this.provider);Q(i!=null&&i.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),n.from=i}else n.from=this.address;const r=this.provider.getRpcTransaction(n);return await this.provider.send("eth_signTransaction",[r])}async signMessage(t){const n=typeof t=="string"?qn(t):t;return await this.provider.send("personal_sign",[ku(n),this.address.toLowerCase()])}async signTypedData(t,n,r){const i=EE(r),a=await g2.resolveNames(t,n,i,async o=>{const s=await E0(o);return Q(s!=null,"TypedData does not support null address","value",o),s});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(g2.getPayload(a.domain,n,a.value))])}async unlock(t){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),t,null])}async _legacySignMessage(t){const n=typeof t=="string"?qn(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),ku(n)])}}var Qi,rs,Tn,tn,_t,In,Cl,Bp;class J1u extends j1u{constructor(t,n){super(t,n);tu(this,Cl);tu(this,Qi,void 0);tu(this,rs,void 0);tu(this,Tn,void 0);tu(this,tn,void 0);tu(this,_t,void 0);tu(this,In,void 0);R(this,rs,1),R(this,Qi,Object.assign({},V1u,n||{})),R(this,Tn,[]),R(this,tn,null),R(this,In,null);{let i=null;const a=new Promise(o=>{i=o});R(this,_t,{promise:a,resolve:i})}const r=this._getOption("staticNetwork");r&&(Q(t==null||r.matches(t),"staticNetwork MUST match network object","options",n),R(this,In,r))}_getOption(t){return _(this,Qi)[t]}get _network(){return Eu(_(this,In),"network is not available yet","NETWORK_ERROR"),_(this,In)}async _perform(t){if(t.method==="call"||t.method==="estimateGas"){let r=t.transaction;if(r&&r.type!=null&&Su(r.type)&&r.maxFeePerGas==null&&r.maxPriorityFeePerGas==null){const i=await this.getFeeData();i.maxFeePerGas==null&&i.maxPriorityFeePerGas==null&&(t=Object.assign({},t,{transaction:Object.assign({},r,{type:void 0})}))}}const n=this.getRpcRequest(t);return n!=null?await this.send(n.method,n.args):super._perform(t)}async _detectNetwork(){const t=this._getOption("staticNetwork");if(t)return t;if(this.ready)return Ln.from(Su(await this.send("eth_chainId",[])));const n={id:a4(this,rs)._++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:n});let r;try{r=(await this._send(n))[0]}catch(i){throw this.emit("debug",{action:"receiveRpcError",error:i}),i}if(this.emit("debug",{action:"receiveRpcResult",result:r}),"result"in r)return Ln.from(Su(r.result));throw this.getRpcError(n,r)}_start(){_(this,_t)==null||_(this,_t).resolve==null||(_(this,_t).resolve(),R(this,_t,null),(async()=>{for(;_(this,In)==null&&!this.destroyed;)try{R(this,In,await this._detectNetwork())}catch(t){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",we("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await Q1u(1e3)}yu(this,Cl,Bp).call(this)})())}async _waitUntilReady(){if(_(this,_t)!=null)return await _(this,_t).promise}_getSubscriber(t){return t.type==="pending"?new G1u(this):t.type==="event"?this._getOption("polling")?new SC(this,t.filter):new H1u(this,t.filter):t.type==="orphan"&&t.filter.orphan==="drop-log"?new d_("orphan"):super._getSubscriber(t)}get ready(){return _(this,_t)==null}getRpcTransaction(t){const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(r=>{if(t[r]==null)return;let i=r;r==="gasLimit"&&(i="gas"),n[i]=no(Su(t[r],`tx.${r}`))}),["from","to","data"].forEach(r=>{t[r]!=null&&(n[r]=ku(t[r]))}),t.accessList&&(n.accessList=Da(t.accessList)),n}getRpcRequest(t){switch(t.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getBalance":return{method:"eth_getBalance",args:[Ia(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[Ia(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[Ia(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[Ia(t.address),"0x"+t.position.toString(16),t.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[t.signedTransaction]};case"getBlock":if("blockTag"in t)return{method:"eth_getBlockByNumber",args:[t.blockTag,!!t.includeTransactions]};if("blockHash"in t)return{method:"eth_getBlockByHash",args:[t.blockHash,!!t.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[t.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[t.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(t.transaction),t.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(t.transaction)]};case"getLogs":return t.filter&&t.filter.address!=null&&(Array.isArray(t.filter.address)?t.filter.address=t.filter.address.map(Ia):t.filter.address=Ia(t.filter.address)),{method:"eth_getLogs",args:[t.filter]}}return null}getRpcError(t,n){const{method:r}=t,{error:i}=n;if(r==="eth_estimateGas"&&i.message){const s=i.message;if(!s.match(/revert/i)&&s.match(/insufficient funds/i))return we("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:i}})}if(r==="eth_call"||r==="eth_estimateGas"){const s=vp(i),l=X3.getBuiltinCallException(r==="eth_call"?"call":"estimateGas",t.params[0],s?s.data:null);return l.info={error:i,payload:t},l}const a=JSON.stringify(Z1u(i));if(typeof i.message=="string"&&i.message.match(/user denied|ethers-user-denied/i))return we("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[r]||"unknown",reason:"rejected",info:{payload:t,error:i}});if(r==="eth_sendRawTransaction"||r==="eth_sendTransaction"){const s=t.params[0];if(a.match(/insufficient funds|base fee exceeds gas limit/i))return we("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:s,info:{error:i}});if(a.match(/nonce/i)&&a.match(/too low/i))return we("nonce has already been used","NONCE_EXPIRED",{transaction:s,info:{error:i}});if(a.match(/replacement transaction/i)&&a.match(/underpriced/i))return we("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:s,info:{error:i}});if(a.match(/only replay-protected/i))return we("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:r,info:{transaction:s,info:{error:i}}})}let o=!!a.match(/the method .* does not exist/i);return o||i&&i.details&&i.details.startsWith("Unauthorized method:")&&(o=!0),o?we("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:i,payload:t}}):we("could not coalesce error","UNKNOWN_ERROR",{error:i,payload:t})}send(t,n){if(this.destroyed)return Promise.reject(we("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t}));const r=a4(this,rs)._++,i=new Promise((a,o)=>{_(this,Tn).push({resolve:a,reject:o,payload:{method:t,params:n,id:r,jsonrpc:"2.0"}})});return yu(this,Cl,Bp).call(this),i}async getSigner(t){t==null&&(t=0);const n=this.send("eth_accounts",[]);if(typeof t=="number"){const i=await n;if(t>=i.length)throw new Error("no such account");return new q1(this,i[t])}const{accounts:r}=await o0({network:this.getNetwork(),accounts:n});t=Xu(t);for(const i of r)if(Xu(i)===t)return new q1(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map(n=>new q1(this,n))}destroy(){_(this,tn)&&(clearTimeout(_(this,tn)),R(this,tn,null));for(const{payload:t,reject:n}of _(this,Tn))n(we("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));R(this,Tn,[]),super.destroy()}}Qi=new WeakMap,rs=new WeakMap,Tn=new WeakMap,tn=new WeakMap,_t=new WeakMap,In=new WeakMap,Cl=new WeakSet,Bp=function(){if(_(this,tn))return;const t=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");R(this,tn,setTimeout(()=>{R(this,tn,null);const n=_(this,Tn);for(R(this,Tn,[]);n.length;){const r=[n.shift()];for(;n.length&&r.length!==_(this,Qi).batchMaxCount;)if(r.push(n.shift()),JSON.stringify(r.map(a=>a.payload)).length>_(this,Qi).batchMaxSize){n.unshift(r.pop());break}(async()=>{const i=r.length===1?r[0].payload:r.map(a=>a.payload);this.emit("debug",{action:"sendRpcPayload",payload:i});try{const a=await this._send(i);this.emit("debug",{action:"receiveRpcResult",result:a});for(const{resolve:o,reject:s,payload:l}of r){if(this.destroyed){s(we("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:l.method}));continue}const c=a.filter(E=>E.id===l.id)[0];if(c==null){const E=we("missing response for request","BAD_DATA",{value:a,info:{payload:l}});this.emit("error",E),s(E);continue}if("error"in c){s(this.getRpcError(l,c));continue}o(c.result)}}catch(a){this.emit("debug",{action:"receiveRpcError",error:a});for(const{reject:o}of r)o(a)}})()}},t))};var Ir;class Y1u extends J1u{constructor(t,n){super(t,n);tu(this,Ir,void 0);R(this,Ir,4e3)}_getSubscriber(t){const n=super._getSubscriber(t);return ey(n)&&(n.pollingInterval=_(this,Ir)),n}get pollingInterval(){return _(this,Ir)}set pollingInterval(t){if(!Number.isInteger(t)||t<0)throw new Error("invalid interval");R(this,Ir,t),this._forEachSubscriber(n=>{ey(n)&&(n.pollingInterval=_(this,Ir))})}}Ir=new WeakMap;var is;class X1u extends Y1u{constructor(t,n,r){t==null&&(t="http://localhost:8545");super(n,r);tu(this,is,void 0);typeof t=="string"?R(this,is,new Xn(t)):R(this,is,t.clone())}_getConnection(){return _(this,is).clone()}async send(t,n){return await this._start(),await super.send(t,n)}async _send(t){const n=this._getConnection();n.body=JSON.stringify(t),n.setHeader("content-type","application/json");const r=await n.send();r.assertOk();let i=r.bodyJson;return Array.isArray(i)||(i=[i]),i}}is=new WeakMap;function vp(u){if(u==null)return null;if(typeof u.message=="string"&&u.message.match(/revert/i)&&he(u.data))return{message:u.message,data:u.data};if(typeof u=="object"){for(const e in u){const t=vp(u[e]);if(t)return t}return null}if(typeof u=="string")try{return vp(JSON.parse(u))}catch{}return null}function Fp(u,e){if(u!=null){if(typeof u.message=="string"&&e.push(u.message),typeof u=="object")for(const t in u)Fp(u[t],e);if(typeof u=="string")try{return Fp(JSON.parse(u),e)}catch{}}}function Z1u(u){const e=[];return Fp(u,e),e}const u6u=yo,e6u=async()=>{const u=new X1u("https://goerli.optimism.io",420);return new u6u(Rn[420],an.abi,u).balanceOf(Rn[420])},t6u=()=>{const{error:u,isLoading:e,data:t}=eI(["ethers.Contract().balanceOf"],e6u);return e?$u.jsx("div",{children:"'loading balance...'"}):u?(console.error(u),$u.jsx("div",{children:"error loading balance"})):$u.jsx("div",{children:t==null?void 0:t.toString()})},n6u=()=>{const{address:u}=Q0(),{data:e}=h5(),[t,n]=M.useState([]),r=an.events.Transfer({fromBlock:e&&e-BigInt(1e3),args:{to:u}});return Gz({...r,address:Rn[420],listener:i=>{n([...t,i])}}),$u.jsx("div",{children:$u.jsx("div",{style:{display:"flex",flexDirection:"column-reverse"},children:t.map((i,a)=>$u.jsxs("div",{children:[$u.jsxs("div",{children:["Event ",a]}),$u.jsx("div",{children:JSON.stringify(i)})]}))})})},r6u=()=>{const{address:u,isConnected:e}=Q0(),{data:t}=Na({...an.read.balanceOf(u),address:Rn[420],enabled:e}),{data:n}=Na({...an.read.totalSupply(),address:Rn[420],enabled:e}),{data:r}=Na({...an.read.tokenURI(BigInt(1)),address:Rn[420],enabled:e}),{data:i}=Na({...an.read.symbol(),address:Rn[420],enabled:e}),{data:a}=Na({...an.read.ownerOf(BigInt(1)),address:Rn[420],enabled:e});return $u.jsx("div",{children:$u.jsxs("div",{children:[$u.jsxs("div",{children:["balanceOf(",u,"): ",t==null?void 0:t.toString()]}),$u.jsxs("div",{children:["totalSupply(): ",n==null?void 0:n.toString()]}),$u.jsxs("div",{children:["tokenUri(BigInt(1)): ",r==null?void 0:r.toString()]}),$u.jsxs("div",{children:["symbol(): ",i==null?void 0:i.toString()]}),$u.jsxs("div",{children:["ownerOf(BigInt(1)): ",a==null?void 0:a.toString()]})]})})};function i6u(u=1,e=1e9){const t=e-u+1;return Math.floor(Math.random()*t)+u}const a6u=()=>{const{address:u,isConnected:e}=Q0(),{data:t,refetch:n}=Na({...an.read.balanceOf(u),enabled:e}),{writeAsync:r,data:i}=Yz({address:Rn[420],...an.write.mint});return aM({hash:i==null?void 0:i.hash,onSuccess:a=>{console.log("minted",a),n()}}),$u.jsxs("div",{children:[$u.jsx("div",{children:$u.jsxs("div",{children:["balance: ",t==null?void 0:t.toString()]})}),$u.jsx("button",{type:"button",onClick:()=>r(an.write.mint(BigInt(i6u()))),children:"Mint"})]})};function o6u(){const[u,e]=M.useState("unselected"),{isConnected:t}=Q0(),n={unselected:$u.jsx($u.Fragment,{children:"Select which component to render"}),reads:$u.jsx(r6u,{}),writes:$u.jsx(a6u,{}),events:$u.jsx(n6u,{}),ethers:$u.jsx(t6u,{})};return $u.jsxs($u.Fragment,{children:[$u.jsx("h1",{children:"Evmts example"}),$u.jsx(Z5,{}),t&&$u.jsxs($u.Fragment,{children:[$u.jsx("hr",{}),$u.jsx("div",{style:{display:"flex"},children:Object.keys(n).map(r=>$u.jsx("button",{type:"button",onClick:()=>e(r),children:r}))}),$u.jsx("h2",{children:u}),n[u]]})]})}function s6u({rpc:u}){return function(e){const t=u(e);return!t||t.http===""?null:{chain:{...e,rpcUrls:{...e.rpcUrls,default:{http:[t.http]}}},rpcUrls:{http:[t.http],webSocket:t.webSocket?[t.webSocket]:void 0}}}}const l6u="898f836c53a18d0661340823973f0cb4",{chains:p_,publicClient:c6u,webSocketPublicClient:E6u}=Rj([l5,Fj],[s6u({rpc:u=>{const e={1:{http:"https://mainnet.infura.io/v3/845f07495e374dfabf3a66e3f10ad786"},420:{http:"https://goerli.optimism.io"}};return[1,420].includes(u.id)?e[u.id]:null}})]),{connectors:d6u}=r2u({appName:"My wagmi + RainbowKit App",chains:p_,projectId:l6u}),f6u=u=>Bz({autoConnect:!0,connectors:d6u,publicClient:c6u,webSocketPublicClient:E6u,queryClient:u}),ty=new Py,h_=document.getElementById("root");if(!h_)throw new Error("No root element found");Ix(h_).render($u.jsx(M.StrictMode,{children:$u.jsx($v,{client:ty,children:$u.jsx(vz,{config:f6u(ty),children:$u.jsx(Osu,{chains:p_,children:$u.jsx(o6u,{})})})})}));export{e9 as $,X6u as A,Y6u as B,U6u as C,tfu as D,K6u as E,N6u as F,G6u as G,sfu as H,efu as I,j6u as J,T6u as K,I6u as L,At as M,gr as N,q6u as O,$6u as P,W6u as Q,Kcu as R,t9 as S,sC as T,xs as U,S6u as V,yx as W,Afu as X,z6u as Y,gfu as Z,Vl as _,QN as a,Jn as a$,M6u as a0,P6u as a1,V6u as a2,J6u as a3,n9 as a4,R6u as a5,lC as a6,Z6u as a7,Q6u as a8,ufu as a9,fx as aA,Ccu as aB,rC as aC,mcu as aD,gcu as aE,ycu as aF,dx as aG,Fcu as aH,wcu as aI,_cu as aJ,Pcu as aK,Icu as aL,jlu as aM,px as aN,Ucu as aO,Lcu as aP,Rcu as aQ,Mcu as aR,lru as aS,Cru as aT,gu as aU,V2 as aV,p0 as aW,ps as aX,v3 as aY,LO as aZ,ad as a_,yfu as aa,afu as ab,ifu as ac,SEu as ad,Cfu as ae,lfu as af,PEu as ag,rfu as ah,ffu as ai,cfu as aj,pfu as ak,mfu as al,Efu as am,dfu as an,hfu as ao,ofu as ap,BEu as aq,vx as ar,S1 as as,b6u as at,w6u as au,qu as av,x3u as aw,Yu as ax,ny as ay,D6u as az,VN as b,Fl as b0,J4 as b1,En as b2,JN as c,TF as d,bp as e,ua as f,NN as g,Uu as h,Ot as i,vA as j,Dp as k,ON as l,ea as m,Jc as n,nfu as o,x6u as p,k6u as q,Qd as r,_6u as s,Mt as t,Ax as u,P0 as v,$t as w,O6u as x,L6u as y,H6u as z}; diff --git a/examples/vite/dist/assets/index-303d7bf0.js b/examples/vite/dist/assets/index-d1e546a8.js similarity index 99% rename from examples/vite/dist/assets/index-303d7bf0.js rename to examples/vite/dist/assets/index-d1e546a8.js index 946dc1fba3..4cd5e98be5 100644 --- a/examples/vite/dist/assets/index-303d7bf0.js +++ b/examples/vite/dist/assets/index-d1e546a8.js @@ -1,4 +1,4 @@ -import{n as _t,s as ce,T as N,t as U,a as C,o as rt,R as Br,p as q,y as gt}from"./index-99447ffe.js";import{aS as Dr,aT as Ur}from"./index-c43d377d.js";import"@safe-globalThis/safe-apps-provider";import"@safe-globalThis/safe-apps-sdk";/** +import{n as _t,s as ce,T as N,t as U,a as C,o as rt,R as Br,p as q,y as gt}from"./index-f89795f2.js";import{aS as Dr,aT as Ur}from"./index-90f155ac.js";import"@safe-globalThis/safe-apps-provider";import"@safe-globalThis/safe-apps-sdk";/** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: BSD-3-Clause diff --git a/examples/vite/dist/assets/index-99447ffe.js b/examples/vite/dist/assets/index-f89795f2.js similarity index 98% rename from examples/vite/dist/assets/index-99447ffe.js rename to examples/vite/dist/assets/index-f89795f2.js index d00459fc5c..86357c5121 100644 --- a/examples/vite/dist/assets/index-99447ffe.js +++ b/examples/vite/dist/assets/index-f89795f2.js @@ -1 +1 @@ -import{av as pe}from"./index-c43d377d.js";const fe=Symbol(),Z=Object.getPrototypeOf,J=new WeakMap,me=e=>e&&(J.has(e)?J.get(e):Z(e)===Object.prototype||Z(e)===Array.prototype),he=e=>me(e)&&e[fe]||null,ee=(e,t=!0)=>{J.set(e,t)},z=e=>typeof e=="object"&&e!==null,P=new WeakMap,B=new WeakSet,ge=(e=Object.is,t=(o,g)=>new Proxy(o,g),s=o=>z(o)&&!B.has(o)&&(Array.isArray(o)||!(Symbol.iterator in o))&&!(o instanceof WeakMap)&&!(o instanceof WeakSet)&&!(o instanceof Error)&&!(o instanceof Number)&&!(o instanceof Date)&&!(o instanceof String)&&!(o instanceof RegExp)&&!(o instanceof ArrayBuffer),r=o=>{switch(o.status){case"fulfilled":return o.value;case"rejected":throw o.reason;default:throw o}},l=new WeakMap,c=(o,g,v=r)=>{const b=l.get(o);if((b==null?void 0:b[0])===g)return b[1];const y=Array.isArray(o)?[]:Object.create(Object.getPrototypeOf(o));return ee(y,!0),l.set(o,[g,y]),Reflect.ownKeys(o).forEach(D=>{if(Object.getOwnPropertyDescriptor(y,D))return;const _=Reflect.get(o,D),W={value:_,enumerable:!0,configurable:!0};if(B.has(_))ee(_,!1);else if(_ instanceof Promise)delete W.value,W.get=()=>v(_);else if(P.has(_)){const[I,K]=P.get(_);W.value=c(I,K(),v)}Object.defineProperty(y,D,W)}),Object.preventExtensions(y)},m=new WeakMap,f=[1,1],C=o=>{if(!z(o))throw new Error("object required");const g=m.get(o);if(g)return g;let v=f[0];const b=new Set,y=(a,i=++f[0])=>{v!==i&&(v=i,b.forEach(n=>n(a,i)))};let D=f[1];const _=(a=++f[1])=>(D!==a&&!b.size&&(D=a,I.forEach(([i])=>{const n=i[1](a);n>v&&(v=n)})),v),W=a=>(i,n)=>{const h=[...i];h[1]=[a,...h[1]],y(h,n)},I=new Map,K=(a,i)=>{if(b.size){const n=i[3](W(a));I.set(a,[i,n])}else I.set(a,[i])},X=a=>{var i;const n=I.get(a);n&&(I.delete(a),(i=n[1])==null||i.call(n))},de=a=>(b.add(a),b.size===1&&I.forEach(([n,h],j)=>{const k=n[3](W(j));I.set(j,[n,k])}),()=>{b.delete(a),b.size===0&&I.forEach(([n,h],j)=>{h&&(h(),I.set(j,[n]))})}),H=Array.isArray(o)?[]:Object.create(Object.getPrototypeOf(o)),N=t(H,{deleteProperty(a,i){const n=Reflect.get(a,i);X(i);const h=Reflect.deleteProperty(a,i);return h&&y(["delete",[i],n]),h},set(a,i,n,h){const j=Reflect.has(a,i),k=Reflect.get(a,i,h);if(j&&(e(k,n)||m.has(n)&&e(k,m.get(n))))return!0;X(i),z(n)&&(n=he(n)||n);let $=n;if(n instanceof Promise)n.then(O=>{n.status="fulfilled",n.value=O,y(["resolve",[i],O])}).catch(O=>{n.status="rejected",n.reason=O,y(["reject",[i],O])});else{!P.has(n)&&s(n)&&($=C(n));const O=!B.has($)&&P.get($);O&&K(i,O)}return Reflect.set(a,i,$,h),y(["set",[i],n,k]),!0}});m.set(o,N);const ue=[H,_,c,de];return P.set(N,ue),Reflect.ownKeys(o).forEach(a=>{const i=Object.getOwnPropertyDescriptor(o,a);"value"in i&&(N[a]=o[a],delete i.value,delete i.writable),Object.defineProperty(H,a,i)}),N})=>[C,P,B,e,t,s,r,l,c,m,f],[be]=ge();function A(e={}){return be(e)}function M(e,t,s){const r=P.get(e);let l;const c=[],m=r[3];let f=!1;const o=m(g=>{if(c.push(g),s){t(c.splice(0));return}l||(l=Promise.resolve().then(()=>{l=void 0,f&&t(c.splice(0))}))});return f=!0,()=>{f=!1,o()}}function ye(e,t){const s=P.get(e),[r,l,c]=s;return c(r,l(),t)}const d=A({history:["ConnectWallet"],view:"ConnectWallet",data:void 0}),ce={state:d,subscribe(e){return M(d,()=>e(d))},push(e,t){e!==d.view&&(d.view=e,t&&(d.data=t),d.history.push(e))},reset(e){d.view=e,d.history=[e]},replace(e){d.history.length>1&&(d.history[d.history.length-1]=e,d.view=e)},goBack(){if(d.history.length>1){d.history.pop();const[e]=d.history.slice(-1);d.view=e}},setData(e){d.data=e}},p={WALLETCONNECT_DEEPLINK_CHOICE:"WALLETCONNECT_DEEPLINK_CHOICE",WCM_VERSION:"WCM_VERSION",RECOMMENDED_WALLET_AMOUNT:9,isMobile(){return typeof window<"u"?!!(window.matchMedia("(pointer:coarse)").matches||/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)):!1},isAndroid(){return p.isMobile()&&navigator.userAgent.toLowerCase().includes("android")},isIos(){const e=navigator.userAgent.toLowerCase();return p.isMobile()&&(e.includes("iphone")||e.includes("ipad"))},isHttpUrl(e){return e.startsWith("http://")||e.startsWith("https://")},isArray(e){return Array.isArray(e)&&e.length>0},formatNativeUrl(e,t,s){if(p.isHttpUrl(e))return this.formatUniversalUrl(e,t,s);let r=e;r.includes("://")||(r=e.replaceAll("/","").replaceAll(":",""),r=`${r}://`),r.endsWith("/")||(r=`${r}/`),this.setWalletConnectDeepLink(r,s);const l=encodeURIComponent(t);return`${r}wc?uri=${l}`},formatUniversalUrl(e,t,s){if(!p.isHttpUrl(e))return this.formatNativeUrl(e,t,s);let r=e;r.endsWith("/")||(r=`${r}/`),this.setWalletConnectDeepLink(r,s);const l=encodeURIComponent(t);return`${r}wc?uri=${l}`},async wait(e){return new Promise(t=>{setTimeout(t,e)})},openHref(e,t){window.open(e,t,"noreferrer noopener")},setWalletConnectDeepLink(e,t){try{localStorage.setItem(p.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:e,name:t}))}catch{console.info("Unable to set WalletConnect deep link")}},setWalletConnectAndroidDeepLink(e){try{const[t]=e.split("?");localStorage.setItem(p.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:t,name:"Android"}))}catch{console.info("Unable to set WalletConnect android deep link")}},removeWalletConnectDeepLink(){try{localStorage.removeItem(p.WALLETCONNECT_DEEPLINK_CHOICE)}catch{console.info("Unable to remove WalletConnect deep link")}},setModalVersionInStorage(){try{typeof localStorage<"u"&&localStorage.setItem(p.WCM_VERSION,"2.6.2")}catch{console.info("Unable to set Web3Modal version in storage")}},getWalletRouterData(){var e;const t=(e=ce.state.data)==null?void 0:e.Wallet;if(!t)throw new Error('Missing "Wallet" view data');return t}},Ie=typeof location<"u"&&(location.hostname.includes("localhost")||location.protocol.includes("https")),u=A({enabled:Ie,userSessionId:"",events:[],connectedWalletId:void 0}),Ee={state:u,subscribe(e){return M(u.events,()=>e(ye(u.events[u.events.length-1])))},initialize(){u.enabled&&typeof(crypto==null?void 0:crypto.randomUUID)<"u"&&(u.userSessionId=crypto.randomUUID())},setConnectedWalletId(e){u.connectedWalletId=e},click(e){if(u.enabled){const t={type:"CLICK",name:e.name,userSessionId:u.userSessionId,timestamp:Date.now(),data:e};u.events.push(t)}},track(e){if(u.enabled){const t={type:"TRACK",name:e.name,userSessionId:u.userSessionId,timestamp:Date.now(),data:e};u.events.push(t)}},view(e){if(u.enabled){const t={type:"VIEW",name:e.name,userSessionId:u.userSessionId,timestamp:Date.now(),data:e};u.events.push(t)}}},w=A({chains:void 0,walletConnectUri:void 0,isAuth:!1,isCustomDesktop:!1,isCustomMobile:!1,isDataLoaded:!1,isUiLoaded:!1}),E={state:w,subscribe(e){return M(w,()=>e(w))},setChains(e){w.chains=e},setWalletConnectUri(e){w.walletConnectUri=e},setIsCustomDesktop(e){w.isCustomDesktop=e},setIsCustomMobile(e){w.isCustomMobile=e},setIsDataLoaded(e){w.isDataLoaded=e},setIsUiLoaded(e){w.isUiLoaded=e},setIsAuth(e){w.isAuth=e}},Y=A({projectId:"",mobileWallets:void 0,desktopWallets:void 0,walletImages:void 0,chains:void 0,enableAuthMode:!1,enableExplorer:!0,explorerExcludedWalletIds:void 0,explorerRecommendedWalletIds:void 0,termsOfServiceUrl:void 0,privacyPolicyUrl:void 0}),T={state:Y,subscribe(e){return M(Y,()=>e(Y))},setConfig(e){var t,s;Ee.initialize(),E.setChains(e.chains),E.setIsAuth(!!e.enableAuthMode),E.setIsCustomMobile(!!((t=e.mobileWallets)!=null&&t.length)),E.setIsCustomDesktop(!!((s=e.desktopWallets)!=null&&s.length)),p.setModalVersionInStorage(),Object.assign(Y,e)}};var ve=Object.defineProperty,te=Object.getOwnPropertySymbols,we=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable,se=(e,t,s)=>t in e?ve(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,_e=(e,t)=>{for(var s in t||(t={}))we.call(t,s)&&se(e,s,t[s]);if(te)for(var s of te(t))Le.call(t,s)&&se(e,s,t[s]);return e};const q="https://explorer-api.walletconnect.com",F="wcm",G="js-2.6.2";async function x(e,t){const s=_e({sdkType:F,sdkVersion:G},t),r=new URL(e,q);return r.searchParams.append("projectId",T.state.projectId),Object.entries(s).forEach(([l,c])=>{c&&r.searchParams.append(l,String(c))}),(await fetch(r)).json()}const R={async getDesktopListings(e){return x("/w3m/v1/getDesktopListings",e)},async getMobileListings(e){return x("/w3m/v1/getMobileListings",e)},async getInjectedListings(e){return x("/w3m/v1/getInjectedListings",e)},async getAllListings(e){return x("/w3m/v1/getAllListings",e)},getWalletImageUrl(e){return`${q}/w3m/v1/getWalletImage/${e}?projectId=${T.state.projectId}&sdkType=${F}&sdkVersion=${G}`},getAssetImageUrl(e){return`${q}/w3m/v1/getAssetImage/${e}?projectId=${T.state.projectId}&sdkType=${F}&sdkVersion=${G}`}};var Ce=Object.defineProperty,oe=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,ne=(e,t,s)=>t in e?Ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Ae=(e,t)=>{for(var s in t||(t={}))Oe.call(t,s)&&ne(e,s,t[s]);if(oe)for(var s of oe(t))Pe.call(t,s)&&ne(e,s,t[s]);return e};const re=p.isMobile(),L=A({wallets:{listings:[],total:0,page:1},search:{listings:[],total:0,page:1},recomendedWallets:[]}),ke={state:L,async getRecomendedWallets(){const{explorerRecommendedWalletIds:e,explorerExcludedWalletIds:t}=T.state;if(e==="NONE"||t==="ALL"&&!e)return L.recomendedWallets;if(p.isArray(e)){const s={recommendedIds:e.join(",")},{listings:r}=await R.getAllListings(s),l=Object.values(r);l.sort((c,m)=>{const f=e.indexOf(c.id),C=e.indexOf(m.id);return f-C}),L.recomendedWallets=l}else{const{chains:s,isAuth:r}=E.state,l=s==null?void 0:s.join(","),c=p.isArray(t),m={page:1,sdks:r?"auth_v1":void 0,entries:p.RECOMMENDED_WALLET_AMOUNT,chains:l,version:2,excludedIds:c?t.join(","):void 0},{listings:f}=re?await R.getMobileListings(m):await R.getDesktopListings(m);L.recomendedWallets=Object.values(f)}return L.recomendedWallets},async getWallets(e){const t=Ae({},e),{explorerRecommendedWalletIds:s,explorerExcludedWalletIds:r}=T.state,{recomendedWallets:l}=L;if(r==="ALL")return L.wallets;l.length?t.excludedIds=l.map(v=>v.id).join(","):p.isArray(s)&&(t.excludedIds=s.join(",")),p.isArray(r)&&(t.excludedIds=[t.excludedIds,r].filter(Boolean).join(",")),E.state.isAuth&&(t.sdks="auth_v1");const{page:c,search:m}=e,{listings:f,total:C}=re?await R.getMobileListings(t):await R.getDesktopListings(t),o=Object.values(f),g=m?"search":"wallets";return L[g]={listings:[...L[g].listings,...o],total:C,page:c??1},{listings:o,total:C}},getWalletImageUrl(e){return R.getWalletImageUrl(e)},getAssetImageUrl(e){return R.getAssetImageUrl(e)},resetSearch(){L.search={listings:[],total:0,page:1}}},S=A({open:!1}),Q={state:S,subscribe(e){return M(S,()=>e(S))},async open(e){return new Promise(t=>{const{isUiLoaded:s,isDataLoaded:r}=E.state;if(p.removeWalletConnectDeepLink(),E.setWalletConnectUri(e==null?void 0:e.uri),E.setChains(e==null?void 0:e.chains),ce.reset("ConnectWallet"),s&&r)S.open=!0,t();else{const l=setInterval(()=>{const c=E.state;c.isUiLoaded&&c.isDataLoaded&&(clearInterval(l),S.open=!0,t())},200)}})},close(){S.open=!1}};var We=Object.defineProperty,ie=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable,ae=(e,t,s)=>t in e?We(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Me=(e,t)=>{for(var s in t||(t={}))Re.call(t,s)&&ae(e,s,t[s]);if(ie)for(var s of ie(t))Ue.call(t,s)&&ae(e,s,t[s]);return e};function De(){return typeof matchMedia<"u"&&matchMedia("(prefers-color-scheme: dark)").matches}const V=A({themeMode:De()?"dark":"light"}),le={state:V,subscribe(e){return M(V,()=>e(V))},setThemeConfig(e){const{themeMode:t,themeVariables:s}=e;t&&(V.themeMode=t),s&&(V.themeVariables=Me({},s))}},U=A({open:!1,message:"",variant:"success"}),Ve={state:U,subscribe(e){return M(U,()=>e(U))},openToast(e,t){U.open=!0,U.message=e,U.variant=t},closeToast(){U.open=!1}};class je{constructor(t){this.openModal=Q.open,this.closeModal=Q.close,this.subscribeModal=Q.subscribe,this.setTheme=le.setThemeConfig,le.setThemeConfig(t),T.setConfig(t),this.initUi()}async initUi(){if(typeof window<"u"){await pe(()=>import("./index-303d7bf0.js"),["assets/index-303d7bf0.js","assets/index-c43d377d.js","assets/index-882a2daf.css"]);const t=document.createElement("wcm-modal");document.body.insertAdjacentElement("beforeend",t),E.setIsUiLoaded(!0)}}}const Ne=Object.freeze(Object.defineProperty({__proto__:null,WalletConnectModal:je},Symbol.toStringTag,{value:"Module"}));export{Ee as R,ce as T,p as a,Ne as i,le as n,Ve as o,E as p,Q as s,ke as t,T as y}; +import{av as pe}from"./index-90f155ac.js";const fe=Symbol(),Z=Object.getPrototypeOf,J=new WeakMap,me=e=>e&&(J.has(e)?J.get(e):Z(e)===Object.prototype||Z(e)===Array.prototype),he=e=>me(e)&&e[fe]||null,ee=(e,t=!0)=>{J.set(e,t)},z=e=>typeof e=="object"&&e!==null,P=new WeakMap,B=new WeakSet,ge=(e=Object.is,t=(o,g)=>new Proxy(o,g),s=o=>z(o)&&!B.has(o)&&(Array.isArray(o)||!(Symbol.iterator in o))&&!(o instanceof WeakMap)&&!(o instanceof WeakSet)&&!(o instanceof Error)&&!(o instanceof Number)&&!(o instanceof Date)&&!(o instanceof String)&&!(o instanceof RegExp)&&!(o instanceof ArrayBuffer),r=o=>{switch(o.status){case"fulfilled":return o.value;case"rejected":throw o.reason;default:throw o}},l=new WeakMap,c=(o,g,v=r)=>{const b=l.get(o);if((b==null?void 0:b[0])===g)return b[1];const y=Array.isArray(o)?[]:Object.create(Object.getPrototypeOf(o));return ee(y,!0),l.set(o,[g,y]),Reflect.ownKeys(o).forEach(D=>{if(Object.getOwnPropertyDescriptor(y,D))return;const _=Reflect.get(o,D),W={value:_,enumerable:!0,configurable:!0};if(B.has(_))ee(_,!1);else if(_ instanceof Promise)delete W.value,W.get=()=>v(_);else if(P.has(_)){const[I,K]=P.get(_);W.value=c(I,K(),v)}Object.defineProperty(y,D,W)}),Object.preventExtensions(y)},m=new WeakMap,f=[1,1],C=o=>{if(!z(o))throw new Error("object required");const g=m.get(o);if(g)return g;let v=f[0];const b=new Set,y=(a,i=++f[0])=>{v!==i&&(v=i,b.forEach(n=>n(a,i)))};let D=f[1];const _=(a=++f[1])=>(D!==a&&!b.size&&(D=a,I.forEach(([i])=>{const n=i[1](a);n>v&&(v=n)})),v),W=a=>(i,n)=>{const h=[...i];h[1]=[a,...h[1]],y(h,n)},I=new Map,K=(a,i)=>{if(b.size){const n=i[3](W(a));I.set(a,[i,n])}else I.set(a,[i])},X=a=>{var i;const n=I.get(a);n&&(I.delete(a),(i=n[1])==null||i.call(n))},de=a=>(b.add(a),b.size===1&&I.forEach(([n,h],j)=>{const k=n[3](W(j));I.set(j,[n,k])}),()=>{b.delete(a),b.size===0&&I.forEach(([n,h],j)=>{h&&(h(),I.set(j,[n]))})}),H=Array.isArray(o)?[]:Object.create(Object.getPrototypeOf(o)),N=t(H,{deleteProperty(a,i){const n=Reflect.get(a,i);X(i);const h=Reflect.deleteProperty(a,i);return h&&y(["delete",[i],n]),h},set(a,i,n,h){const j=Reflect.has(a,i),k=Reflect.get(a,i,h);if(j&&(e(k,n)||m.has(n)&&e(k,m.get(n))))return!0;X(i),z(n)&&(n=he(n)||n);let $=n;if(n instanceof Promise)n.then(O=>{n.status="fulfilled",n.value=O,y(["resolve",[i],O])}).catch(O=>{n.status="rejected",n.reason=O,y(["reject",[i],O])});else{!P.has(n)&&s(n)&&($=C(n));const O=!B.has($)&&P.get($);O&&K(i,O)}return Reflect.set(a,i,$,h),y(["set",[i],n,k]),!0}});m.set(o,N);const ue=[H,_,c,de];return P.set(N,ue),Reflect.ownKeys(o).forEach(a=>{const i=Object.getOwnPropertyDescriptor(o,a);"value"in i&&(N[a]=o[a],delete i.value,delete i.writable),Object.defineProperty(H,a,i)}),N})=>[C,P,B,e,t,s,r,l,c,m,f],[be]=ge();function A(e={}){return be(e)}function M(e,t,s){const r=P.get(e);let l;const c=[],m=r[3];let f=!1;const o=m(g=>{if(c.push(g),s){t(c.splice(0));return}l||(l=Promise.resolve().then(()=>{l=void 0,f&&t(c.splice(0))}))});return f=!0,()=>{f=!1,o()}}function ye(e,t){const s=P.get(e),[r,l,c]=s;return c(r,l(),t)}const d=A({history:["ConnectWallet"],view:"ConnectWallet",data:void 0}),ce={state:d,subscribe(e){return M(d,()=>e(d))},push(e,t){e!==d.view&&(d.view=e,t&&(d.data=t),d.history.push(e))},reset(e){d.view=e,d.history=[e]},replace(e){d.history.length>1&&(d.history[d.history.length-1]=e,d.view=e)},goBack(){if(d.history.length>1){d.history.pop();const[e]=d.history.slice(-1);d.view=e}},setData(e){d.data=e}},p={WALLETCONNECT_DEEPLINK_CHOICE:"WALLETCONNECT_DEEPLINK_CHOICE",WCM_VERSION:"WCM_VERSION",RECOMMENDED_WALLET_AMOUNT:9,isMobile(){return typeof window<"u"?!!(window.matchMedia("(pointer:coarse)").matches||/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)):!1},isAndroid(){return p.isMobile()&&navigator.userAgent.toLowerCase().includes("android")},isIos(){const e=navigator.userAgent.toLowerCase();return p.isMobile()&&(e.includes("iphone")||e.includes("ipad"))},isHttpUrl(e){return e.startsWith("http://")||e.startsWith("https://")},isArray(e){return Array.isArray(e)&&e.length>0},formatNativeUrl(e,t,s){if(p.isHttpUrl(e))return this.formatUniversalUrl(e,t,s);let r=e;r.includes("://")||(r=e.replaceAll("/","").replaceAll(":",""),r=`${r}://`),r.endsWith("/")||(r=`${r}/`),this.setWalletConnectDeepLink(r,s);const l=encodeURIComponent(t);return`${r}wc?uri=${l}`},formatUniversalUrl(e,t,s){if(!p.isHttpUrl(e))return this.formatNativeUrl(e,t,s);let r=e;r.endsWith("/")||(r=`${r}/`),this.setWalletConnectDeepLink(r,s);const l=encodeURIComponent(t);return`${r}wc?uri=${l}`},async wait(e){return new Promise(t=>{setTimeout(t,e)})},openHref(e,t){window.open(e,t,"noreferrer noopener")},setWalletConnectDeepLink(e,t){try{localStorage.setItem(p.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:e,name:t}))}catch{console.info("Unable to set WalletConnect deep link")}},setWalletConnectAndroidDeepLink(e){try{const[t]=e.split("?");localStorage.setItem(p.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:t,name:"Android"}))}catch{console.info("Unable to set WalletConnect android deep link")}},removeWalletConnectDeepLink(){try{localStorage.removeItem(p.WALLETCONNECT_DEEPLINK_CHOICE)}catch{console.info("Unable to remove WalletConnect deep link")}},setModalVersionInStorage(){try{typeof localStorage<"u"&&localStorage.setItem(p.WCM_VERSION,"2.6.2")}catch{console.info("Unable to set Web3Modal version in storage")}},getWalletRouterData(){var e;const t=(e=ce.state.data)==null?void 0:e.Wallet;if(!t)throw new Error('Missing "Wallet" view data');return t}},Ie=typeof location<"u"&&(location.hostname.includes("localhost")||location.protocol.includes("https")),u=A({enabled:Ie,userSessionId:"",events:[],connectedWalletId:void 0}),Ee={state:u,subscribe(e){return M(u.events,()=>e(ye(u.events[u.events.length-1])))},initialize(){u.enabled&&typeof(crypto==null?void 0:crypto.randomUUID)<"u"&&(u.userSessionId=crypto.randomUUID())},setConnectedWalletId(e){u.connectedWalletId=e},click(e){if(u.enabled){const t={type:"CLICK",name:e.name,userSessionId:u.userSessionId,timestamp:Date.now(),data:e};u.events.push(t)}},track(e){if(u.enabled){const t={type:"TRACK",name:e.name,userSessionId:u.userSessionId,timestamp:Date.now(),data:e};u.events.push(t)}},view(e){if(u.enabled){const t={type:"VIEW",name:e.name,userSessionId:u.userSessionId,timestamp:Date.now(),data:e};u.events.push(t)}}},w=A({chains:void 0,walletConnectUri:void 0,isAuth:!1,isCustomDesktop:!1,isCustomMobile:!1,isDataLoaded:!1,isUiLoaded:!1}),E={state:w,subscribe(e){return M(w,()=>e(w))},setChains(e){w.chains=e},setWalletConnectUri(e){w.walletConnectUri=e},setIsCustomDesktop(e){w.isCustomDesktop=e},setIsCustomMobile(e){w.isCustomMobile=e},setIsDataLoaded(e){w.isDataLoaded=e},setIsUiLoaded(e){w.isUiLoaded=e},setIsAuth(e){w.isAuth=e}},Y=A({projectId:"",mobileWallets:void 0,desktopWallets:void 0,walletImages:void 0,chains:void 0,enableAuthMode:!1,enableExplorer:!0,explorerExcludedWalletIds:void 0,explorerRecommendedWalletIds:void 0,termsOfServiceUrl:void 0,privacyPolicyUrl:void 0}),T={state:Y,subscribe(e){return M(Y,()=>e(Y))},setConfig(e){var t,s;Ee.initialize(),E.setChains(e.chains),E.setIsAuth(!!e.enableAuthMode),E.setIsCustomMobile(!!((t=e.mobileWallets)!=null&&t.length)),E.setIsCustomDesktop(!!((s=e.desktopWallets)!=null&&s.length)),p.setModalVersionInStorage(),Object.assign(Y,e)}};var ve=Object.defineProperty,te=Object.getOwnPropertySymbols,we=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable,se=(e,t,s)=>t in e?ve(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,_e=(e,t)=>{for(var s in t||(t={}))we.call(t,s)&&se(e,s,t[s]);if(te)for(var s of te(t))Le.call(t,s)&&se(e,s,t[s]);return e};const q="https://explorer-api.walletconnect.com",F="wcm",G="js-2.6.2";async function x(e,t){const s=_e({sdkType:F,sdkVersion:G},t),r=new URL(e,q);return r.searchParams.append("projectId",T.state.projectId),Object.entries(s).forEach(([l,c])=>{c&&r.searchParams.append(l,String(c))}),(await fetch(r)).json()}const R={async getDesktopListings(e){return x("/w3m/v1/getDesktopListings",e)},async getMobileListings(e){return x("/w3m/v1/getMobileListings",e)},async getInjectedListings(e){return x("/w3m/v1/getInjectedListings",e)},async getAllListings(e){return x("/w3m/v1/getAllListings",e)},getWalletImageUrl(e){return`${q}/w3m/v1/getWalletImage/${e}?projectId=${T.state.projectId}&sdkType=${F}&sdkVersion=${G}`},getAssetImageUrl(e){return`${q}/w3m/v1/getAssetImage/${e}?projectId=${T.state.projectId}&sdkType=${F}&sdkVersion=${G}`}};var Ce=Object.defineProperty,oe=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,ne=(e,t,s)=>t in e?Ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Ae=(e,t)=>{for(var s in t||(t={}))Oe.call(t,s)&&ne(e,s,t[s]);if(oe)for(var s of oe(t))Pe.call(t,s)&&ne(e,s,t[s]);return e};const re=p.isMobile(),L=A({wallets:{listings:[],total:0,page:1},search:{listings:[],total:0,page:1},recomendedWallets:[]}),ke={state:L,async getRecomendedWallets(){const{explorerRecommendedWalletIds:e,explorerExcludedWalletIds:t}=T.state;if(e==="NONE"||t==="ALL"&&!e)return L.recomendedWallets;if(p.isArray(e)){const s={recommendedIds:e.join(",")},{listings:r}=await R.getAllListings(s),l=Object.values(r);l.sort((c,m)=>{const f=e.indexOf(c.id),C=e.indexOf(m.id);return f-C}),L.recomendedWallets=l}else{const{chains:s,isAuth:r}=E.state,l=s==null?void 0:s.join(","),c=p.isArray(t),m={page:1,sdks:r?"auth_v1":void 0,entries:p.RECOMMENDED_WALLET_AMOUNT,chains:l,version:2,excludedIds:c?t.join(","):void 0},{listings:f}=re?await R.getMobileListings(m):await R.getDesktopListings(m);L.recomendedWallets=Object.values(f)}return L.recomendedWallets},async getWallets(e){const t=Ae({},e),{explorerRecommendedWalletIds:s,explorerExcludedWalletIds:r}=T.state,{recomendedWallets:l}=L;if(r==="ALL")return L.wallets;l.length?t.excludedIds=l.map(v=>v.id).join(","):p.isArray(s)&&(t.excludedIds=s.join(",")),p.isArray(r)&&(t.excludedIds=[t.excludedIds,r].filter(Boolean).join(",")),E.state.isAuth&&(t.sdks="auth_v1");const{page:c,search:m}=e,{listings:f,total:C}=re?await R.getMobileListings(t):await R.getDesktopListings(t),o=Object.values(f),g=m?"search":"wallets";return L[g]={listings:[...L[g].listings,...o],total:C,page:c??1},{listings:o,total:C}},getWalletImageUrl(e){return R.getWalletImageUrl(e)},getAssetImageUrl(e){return R.getAssetImageUrl(e)},resetSearch(){L.search={listings:[],total:0,page:1}}},S=A({open:!1}),Q={state:S,subscribe(e){return M(S,()=>e(S))},async open(e){return new Promise(t=>{const{isUiLoaded:s,isDataLoaded:r}=E.state;if(p.removeWalletConnectDeepLink(),E.setWalletConnectUri(e==null?void 0:e.uri),E.setChains(e==null?void 0:e.chains),ce.reset("ConnectWallet"),s&&r)S.open=!0,t();else{const l=setInterval(()=>{const c=E.state;c.isUiLoaded&&c.isDataLoaded&&(clearInterval(l),S.open=!0,t())},200)}})},close(){S.open=!1}};var We=Object.defineProperty,ie=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable,ae=(e,t,s)=>t in e?We(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Me=(e,t)=>{for(var s in t||(t={}))Re.call(t,s)&&ae(e,s,t[s]);if(ie)for(var s of ie(t))Ue.call(t,s)&&ae(e,s,t[s]);return e};function De(){return typeof matchMedia<"u"&&matchMedia("(prefers-color-scheme: dark)").matches}const V=A({themeMode:De()?"dark":"light"}),le={state:V,subscribe(e){return M(V,()=>e(V))},setThemeConfig(e){const{themeMode:t,themeVariables:s}=e;t&&(V.themeMode=t),s&&(V.themeVariables=Me({},s))}},U=A({open:!1,message:"",variant:"success"}),Ve={state:U,subscribe(e){return M(U,()=>e(U))},openToast(e,t){U.open=!0,U.message=e,U.variant=t},closeToast(){U.open=!1}};class je{constructor(t){this.openModal=Q.open,this.closeModal=Q.close,this.subscribeModal=Q.subscribe,this.setTheme=le.setThemeConfig,le.setThemeConfig(t),T.setConfig(t),this.initUi()}async initUi(){if(typeof window<"u"){await pe(()=>import("./index-d1e546a8.js"),["assets/index-d1e546a8.js","assets/index-90f155ac.js","assets/index-882a2daf.css"]);const t=document.createElement("wcm-modal");document.body.insertAdjacentElement("beforeend",t),E.setIsUiLoaded(!0)}}}const Ne=Object.freeze(Object.defineProperty({__proto__:null,WalletConnectModal:je},Symbol.toStringTag,{value:"Module"}));export{Ee as R,ce as T,p as a,Ne as i,le as n,Ve as o,E as p,Q as s,ke as t,T as y}; diff --git a/examples/vite/dist/assets/index.es-e00ac5aa.js b/examples/vite/dist/assets/index.es-04947dcd.js similarity index 99% rename from examples/vite/dist/assets/index.es-e00ac5aa.js rename to examples/vite/dist/assets/index.es-04947dcd.js index c2cdd87a22..3c841e2877 100644 --- a/examples/vite/dist/assets/index.es-e00ac5aa.js +++ b/examples/vite/dist/assets/index.es-04947dcd.js @@ -1,4 +1,4 @@ -import{e as fa,f as re,h as t1,w as Dl,r as ql,i as bc,t as pa,j as r1,k as i1,m as mi,D as n1,o as s1,N as Z,p as a1,q as sc,s as o1,V as c1,R as u1,F as Nh,K as h1,x as l1,L as f1,u as Fh,$ as p1,v as d1,y as Bn,Z as Dh,J as g1,X as y1,_ as jl,z as $r,A as v1,B as m1,C as on,E as Nt,U as er,G as vi,H as cr,I as _1,M as cn,O as Ll,P as w1,Q as b1,S as E1,T as Ml,W as x1,Y as zl,a0 as Ul,a1 as hn,a2 as ac,a3 as aa,a4 as ln,a5 as I1,a6 as oa,a7 as S1,a8 as P1,a9 as O1,aa as ra,ab as C1,ac as A1,ad as ko,ae as qh,af as T1,ag as R1,ah as $1,ai as jh,aj as N1,ak as F1,al as D1,am as q1,an as j1,ao as L1,ap as M1,aq as Hn,ar as Hl,as as Ko,at as z1,au as U1,av as H1}from"./index-c43d377d.js";import{e as Ur,E as Ec}from"./events-43ea8283.js";import{s as xc,i as Lh,c as k1,a as K1,b as kl,f as Ic,p as V1,J as ii,d as Sc,e as Pc,g as Oc,h as yi,j as ri,k as Vn,l as B1,m as G1,H as bi}from"./http-1236d3a2.js";import"@safe-globalThis/safe-apps-provider";import"@safe-globalThis/safe-apps-sdk";var da={};/*! ***************************************************************************** +import{e as fa,f as re,h as t1,w as Dl,r as ql,i as bc,t as pa,j as r1,k as i1,m as mi,D as n1,o as s1,N as Z,p as a1,q as sc,s as o1,V as c1,R as u1,F as Nh,K as h1,x as l1,L as f1,u as Fh,$ as p1,v as d1,y as Bn,Z as Dh,J as g1,X as y1,_ as jl,z as $r,A as v1,B as m1,C as on,E as Nt,U as er,G as vi,H as cr,I as _1,M as cn,O as Ll,P as w1,Q as b1,S as E1,T as Ml,W as x1,Y as zl,a0 as Ul,a1 as hn,a2 as ac,a3 as aa,a4 as ln,a5 as I1,a6 as oa,a7 as S1,a8 as P1,a9 as O1,aa as ra,ab as C1,ac as A1,ad as ko,ae as qh,af as T1,ag as R1,ah as $1,ai as jh,aj as N1,ak as F1,al as D1,am as q1,an as j1,ao as L1,ap as M1,aq as Hn,ar as Hl,as as Ko,at as z1,au as U1,av as H1}from"./index-90f155ac.js";import{e as Ur,E as Ec}from"./events-d049dff1.js";import{s as xc,i as Lh,c as k1,a as K1,b as kl,f as Ic,p as V1,J as ii,d as Sc,e as Pc,g as Oc,h as yi,j as ri,k as Vn,l as B1,m as G1,H as bi}from"./http-ec971fc9.js";import"@safe-globalThis/safe-apps-provider";import"@safe-globalThis/safe-apps-sdk";var da={};/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -63,4 +63,4 @@ __p += '`),Oe&&(M+=`' + function print() { __p += __j.call(arguments, '') } `:`; `)+M+`return __p -}`;var me=Th(function(){return Fe(g,ee+"return "+M).apply(t,m)});if(me.source=M,$o(me))throw me;return me}function cv(e){return qe(e).toLowerCase()}function uv(e){return qe(e).toUpperCase()}function hv(e,r,s){if(e=qe(e),e&&(s||r===t))return Mc(e);if(!e||!(r=lr(r)))return e;var u=Or(e),l=Or(r),g=zc(u,l),m=Uc(u,l)+1;return di(u,g,m).join("")}function lv(e,r,s){if(e=qe(e),e&&(s||r===t))return e.slice(0,kc(e)+1);if(!e||!(r=lr(r)))return e;var u=Or(e),l=Uc(u,Or(r))+1;return di(u,0,l).join("")}function fv(e,r,s){if(e=qe(e),e&&(s||r===t))return e.replace(gt,"");if(!e||!(r=lr(r)))return e;var u=Or(e),l=zc(u,Or(r));return di(u,l).join("")}function pv(e,r){var s=te,u=Ee;if(ct(r)){var l="separator"in r?r.separator:l;s="length"in r?ye(r.length):s,u="omission"in r?lr(r.omission):u}e=qe(e);var g=e.length;if(Wi(e)){var m=Or(e);g=m.length}if(s>=g)return e;var w=s-Ji(u);if(w<1)return u;var I=m?di(m,0,w).join(""):e.slice(0,w);if(l===t)return I+u;if(m&&(w+=I.length-w),No(l)){if(e.slice(w).search(l)){var F,D=I;for(l.global||(l=Wa(l.source,qe(gr.exec(l))+"g")),l.lastIndex=0;F=l.exec(D);)var M=F.index;I=I.slice(0,M===t?w:M)}}else if(e.indexOf(lr(l),w)!=w){var G=I.lastIndexOf(l);G>-1&&(I=I.slice(0,G))}return I+u}function dv(e){return e=qe(e),e&<.test(e)?e.replace(si,kf):e}var gv=rn(function(e,r,s){return e+(s?" ":"")+r.toUpperCase()}),qo=Ru("toUpperCase");function Ah(e,r,s){return e=qe(e),r=s?t:r,r===t?Lf(e)?Bf(e):Af(e):e.match(r)||[]}var Th=we(function(e,r){try{return Lt(e,t,r)}catch(s){return $o(s)?s:new ce(s)}}),yv=Jr(function(e,r){return vr(r,function(s){s=Mr(s),Gr(e,s,To(e[s],e))}),e});function vv(e){var r=e==null?0:e.length,s=ie();return e=r?it(e,function(u){if(typeof u[1]!="function")throw new mr(f);return[s(u[0]),u[1]]}):[],we(function(u){for(var l=-1;++lJ)return[];var s=B,u=Kt(e,B);r=ie(r),e-=B;for(var l=Va(u,r);++s0||r<0)?new Se(s):(e<0?s=s.takeRight(-e):e&&(s=s.drop(e)),r!==t&&(r=ye(r),s=r<0?s.dropRight(-r):s.take(r-e)),s)},Se.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Se.prototype.toArray=function(){return this.take(B)},jr(Se.prototype,function(e,r){var s=/^(?:filter|find|map|reject)|While$/.test(r),u=/^(?:head|last)$/.test(r),l=p[u?"take"+(r=="last"?"Right":""):r],g=u||/^find/.test(r);l&&(p.prototype[r]=function(){var m=this.__wrapped__,w=u?[1]:arguments,I=m instanceof Se,F=w[0],D=I||fe(m),M=function(xe){var Oe=l.apply(p,ci([xe],w));return u&&G?Oe[0]:Oe};D&&s&&typeof F=="function"&&F.length!=1&&(I=D=!1);var G=this.__chain__,ee=!!this.__actions__.length,ne=g&&!G,me=I&&!ee;if(!g&&D){m=me?m:new Se(this);var se=e.apply(m,w);return se.__actions__.push({func:Ws,args:[M],thisArg:t}),new _r(se,G)}return ne&&me?e.apply(this,w):(se=this.thru(M),ne?u?se.value()[0]:se.value():se)})}),vr(["pop","push","shift","sort","splice","unshift"],function(e){var r=ws[e],s=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",u=/^(?:pop|shift)$/.test(e);p.prototype[e]=function(){var l=arguments;if(u&&!this.__chain__){var g=this.value();return r.apply(fe(g)?g:[],l)}return this[s](function(m){return r.apply(fe(m)?m:[],l)})}}),jr(Se.prototype,function(e,r){var s=p[r];if(s){var u=s.name+"";Le.call(Xi,u)||(Xi[u]=[]),Xi[u].push({name:r,func:s})}}),Xi[Us(t,be).name]=[{name:"wrapper",func:t}],Se.prototype.clone=dp,Se.prototype.reverse=gp,Se.prototype.value=yp,p.prototype.at=Vg,p.prototype.chain=Bg,p.prototype.commit=Gg,p.prototype.next=Wg,p.prototype.plant=Qg,p.prototype.reverse=Yg,p.prototype.toJSON=p.prototype.valueOf=p.prototype.value=Zg,p.prototype.first=p.prototype.head,mn&&(p.prototype[mn]=Jg),p},Qi=Gf();wt?((wt.exports=Qi)._=Qi,Be._=Qi):Pe._=Qi}).call(Un)})(mc,mc.exports);var ME=Object.defineProperty,zE=Object.defineProperties,UE=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,HE=Object.prototype.hasOwnProperty,kE=Object.prototype.propertyIsEnumerable,Cl=(o,i,t)=>i in o?ME(o,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[i]=t,na=(o,i)=>{for(var t in i||(i={}))HE.call(i,t)&&Cl(o,t,i[t]);if(Ol)for(var t of Ol(i))kE.call(i,t)&&Cl(o,t,i[t]);return o},KE=(o,i)=>zE(o,UE(i));function wi(o,i,t){var n;const a=z1(o);return((n=i.rpcMap)==null?void 0:n[a.reference])||`${LE}?chainId=${a.namespace}:${a.reference}&projectId=${t}`}function Mi(o){return o.includes(":")?o.split(":")[1]:o}function Ef(o){return o.map(i=>`${i.split(":")[0]}:${i.split(":")[1]}`)}function VE(o,i){const t=Object.keys(i.namespaces).filter(a=>a.includes(o));if(!t.length)return[];const n=[];return t.forEach(a=>{const c=i.namespaces[a].accounts;n.push(...c)}),n}function BE(o={},i={}){const t=Al(o),n=Al(i);return mc.exports.merge(t,n)}function Al(o){var i,t,n,a;const c={};if(!oa(o))return c;for(const[f,d]of Object.entries(o)){const _=Hl(f)?[f]:d.chains,v=d.methods||[],P=d.events||[],L=d.rpcMap||{},T=Hn(f);c[T]=KE(na(na({},c[T]),d),{chains:Ko(_,(i=c[T])==null?void 0:i.chains),methods:Ko(v,(t=c[T])==null?void 0:t.methods),events:Ko(P,(n=c[T])==null?void 0:n.events),rpcMap:na(na({},L),(a=c[T])==null?void 0:a.rpcMap)})}return c}function GE(o){return o.includes(":")?o.split(":")[2]:o}function WE(o){const i={};for(const[t,n]of Object.entries(o)){const a=n.methods||[],c=n.events||[],f=n.accounts||[],d=Hl(t)?[t]:n.chains?n.chains:Ef(n.accounts);i[t]={chains:d,methods:a,events:c,accounts:f}}return i}function tc(o){return typeof o=="number"?o:o.includes("0x")?parseInt(o,16):o.includes(":")?Number(o.split(":")[1]):Number(o)}const xf={},nt=o=>xf[o],rc=(o,i)=>{xf[o]=i};class JE{constructor(i){this.name="polkadot",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}getAccounts(){const i=this.namespace.accounts;return i?i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2])||[]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class QE{constructor(i){this.name="eip155",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(i){switch(i.request.method){case"eth_requestAccounts":return this.getAccounts();case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return await this.handleSwitchChain(i);case"eth_chainId":return parseInt(this.getDefaultChain())}return this.namespace.methods.includes(i.request.method)?await this.client.request(i):this.getHttpProvider().request(i.request)}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(parseInt(i),t),this.chainId=parseInt(i),this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}createHttpProvider(i,t){const n=t||wi(`${this.name}:${i}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=parseInt(Mi(t));i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}getHttpProvider(){const i=this.chainId,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}async handleSwitchChain(i){var t,n;let a=i.request.params?(t=i.request.params[0])==null?void 0:t.chainId:"0x0";a=a.startsWith("0x")?a:`0x${a}`;const c=parseInt(a,16);if(this.isChainApproved(c))this.setDefaultChain(`${c}`);else if(this.namespace.methods.includes("wallet_switchEthereumChain"))await this.client.request({topic:i.topic,request:{method:i.request.method,params:[{chainId:a}]},chainId:(n=this.namespace.chains)==null?void 0:n[0]}),this.setDefaultChain(`${c}`);else throw new Error(`Failed to switch to chain 'eip155:${c}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(i){return this.namespace.chains.includes(`${this.name}:${i}`)}}class YE{constructor(i){this.name="solana",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class ZE{constructor(i){this.name="cosmos",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class XE{constructor(i){this.name="cip34",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{const n=this.getCardanoRPCUrl(t),a=Mi(t);i[a]=this.createHttpProvider(a,n)}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}getCardanoRPCUrl(i){const t=this.namespace.rpcMap;if(t)return t[i]}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||this.getCardanoRPCUrl(i);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class ex{constructor(i){this.name="elrond",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class tx{constructor(i){this.name="multiversx",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class rx{constructor(i){this.name="near",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){if(this.chainId=i,!this.httpProviders[i]){const n=t||wi(`${this.name}:${i}`,this.namespace);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);this.setHttpProvider(i,n)}this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const i=this.namespace.accounts;return i?i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2])||[]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;i[t]=this.createHttpProvider(t,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace);return typeof n>"u"?void 0:new ii(new bi(n,nt("disableProviderPing")))}}var ix=Object.defineProperty,nx=Object.defineProperties,sx=Object.getOwnPropertyDescriptors,Tl=Object.getOwnPropertySymbols,ax=Object.prototype.hasOwnProperty,ox=Object.prototype.propertyIsEnumerable,Rl=(o,i,t)=>i in o?ix(o,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[i]=t,sa=(o,i)=>{for(var t in i||(i={}))ax.call(i,t)&&Rl(o,t,i[t]);if(Tl)for(var t of Tl(i))ox.call(i,t)&&Rl(o,t,i[t]);return o},ic=(o,i)=>nx(o,sx(i));class $c{constructor(i){this.events=new Ec,this.rpcProviders={},this.shouldAbortPairingAttempt=!1,this.maxPairingAttempts=10,this.disableProviderPing=!1,this.providerOpts=i,this.logger=typeof(i==null?void 0:i.logger)<"u"&&typeof(i==null?void 0:i.logger)!="string"?i.logger:Ce.pino(Ce.getDefaultLoggerOptions({level:(i==null?void 0:i.logger)||Sl})),this.disableProviderPing=(i==null?void 0:i.disableProviderPing)||!1}static async init(i){const t=new $c(i);return await t.initialize(),t}async request(i,t){const[n,a]=this.validateChain(t);if(!this.session)throw new Error("Please call connect() before request()");return await this.getProvider(n).request({request:sa({},i),chainId:`${n}:${a}`,topic:this.session.topic})}sendAsync(i,t,n){this.request(i,n).then(a=>t(null,a)).catch(a=>t(a,void 0))}async enable(){if(!this.client)throw new Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties}),await this.requestAccounts()}async disconnect(){var i;if(!this.session)throw new Error("Please call connect() before enable()");await this.client.disconnect({topic:(i=this.session)==null?void 0:i.topic,reason:er("USER_DISCONNECTED")}),await this.cleanup()}async connect(i){if(!this.client)throw new Error("Sign Client not initialized");if(this.setNamespaces(i),await this.cleanupPendingPairings(),!i.skipPairing)return await this.pair(i.pairingTopic)}on(i,t){this.events.on(i,t)}once(i,t){this.events.once(i,t)}removeListener(i,t){this.events.removeListener(i,t)}off(i,t){this.events.off(i,t)}get isWalletConnect(){return!0}async pair(i){this.shouldAbortPairingAttempt=!1;let t=0;do{if(this.shouldAbortPairingAttempt)throw new Error("Pairing aborted");if(t>=this.maxPairingAttempts)throw new Error("Max auto pairing attempts reached");const{uri:n,approval:a}=await this.client.connect({pairingTopic:i,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties});n&&(this.uri=n,this.events.emit("display_uri",n)),await a().then(c=>{this.session=c,this.namespaces||(this.namespaces=WE(c.namespaces),this.persist("namespaces",this.namespaces))}).catch(c=>{if(c.message!==wf)throw c;t++})}while(!this.session);return this.onConnect(),this.session}setDefaultChain(i,t){try{if(!this.session)return;const[n,a]=this.validateChain(i);this.getProvider(n).setDefaultChain(a,t)}catch(n){if(!/Please call connect/.test(n.message))throw n}}async cleanupPendingPairings(i={}){this.logger.info("Cleaning up inactive pairings...");const t=this.client.pairing.getAll();if(ln(t)){for(const n of t)i.deletePairings?this.client.core.expirer.set(n.topic,0):await this.client.core.relayer.subscriber.unsubscribe(n.topic);this.logger.info(`Inactive pairings cleared: ${t.length}`)}}abortPairingAttempt(){this.shouldAbortPairingAttempt=!0}async checkStorage(){if(this.namespaces=await this.getFromStore("namespaces"),this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.client.session.length){const i=this.client.session.keys.length-1;this.session=this.client.session.get(this.client.session.keys[i]),this.createProviders()}}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){this.client=this.providerOpts.client||await FE.init({logger:this.providerOpts.logger||Sl,relayUrl:this.providerOpts.relayUrl||DE,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name}),this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw new Error("Sign Client not initialized");if(!this.session)throw new Error("Session not initialized. Please call connect() before enable()");const i=[...new Set(Object.keys(this.session.namespaces).map(t=>Hn(t)))];rc("client",this.client),rc("events",this.events),rc("disableProviderPing",this.disableProviderPing),i.forEach(t=>{if(!this.session)return;const n=VE(t,this.session),a=Ef(n),c=BE(this.namespaces,this.optionalNamespaces),f=ic(sa({},c[t]),{accounts:n,chains:a});switch(t){case"eip155":this.rpcProviders[t]=new QE({namespace:f});break;case"solana":this.rpcProviders[t]=new YE({namespace:f});break;case"cosmos":this.rpcProviders[t]=new ZE({namespace:f});break;case"polkadot":this.rpcProviders[t]=new JE({namespace:f});break;case"cip34":this.rpcProviders[t]=new XE({namespace:f});break;case"elrond":this.rpcProviders[t]=new ex({namespace:f});break;case"multiversx":this.rpcProviders[t]=new tx({namespace:f});break;case"near":this.rpcProviders[t]=new rx({namespace:f});break}})}registerEventListeners(){if(typeof this.client>"u")throw new Error("Sign Client is not initialized");this.client.on("session_ping",i=>{this.events.emit("session_ping",i)}),this.client.on("session_event",i=>{const{params:t}=i,{event:n}=t;if(n.name==="accountsChanged"){const a=n.data;a&&ln(a)&&this.events.emit("accountsChanged",a.map(GE))}else if(n.name==="chainChanged"){const a=t.chainId,c=t.event.data,f=Hn(a),d=tc(a)!==tc(c)?`${f}:${tc(c)}`:a;this.onChainChanged(d)}else this.events.emit(n.name,n.data);this.events.emit("session_event",i)}),this.client.on("session_update",({topic:i,params:t})=>{var n;const{namespaces:a}=t,c=(n=this.client)==null?void 0:n.session.get(i);this.session=ic(sa({},c),{namespaces:a}),this.onSessionUpdate(),this.events.emit("session_update",{topic:i,params:t})}),this.client.on("session_delete",async i=>{await this.cleanup(),this.events.emit("session_delete",i),this.events.emit("disconnect",ic(sa({},er("USER_DISCONNECTED")),{data:i.topic}))}),this.on(ni.DEFAULT_CHAIN_CHANGED,i=>{this.onChainChanged(i,!0)})}getProvider(i){if(!this.rpcProviders[i])throw new Error(`Provider not found: ${i}`);return this.rpcProviders[i]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(i=>{var t;this.getProvider(i).updateNamespace((t=this.session)==null?void 0:t.namespaces[i])})}setNamespaces(i){const{namespaces:t,optionalNamespaces:n,sessionProperties:a}=i;t&&Object.keys(t).length&&(this.namespaces=t),n&&Object.keys(n).length&&(this.optionalNamespaces=n),this.sessionProperties=a,this.persist("namespaces",t),this.persist("optionalNamespaces",n)}validateChain(i){const[t,n]=(i==null?void 0:i.split(":"))||["",""];if(!this.namespaces||!Object.keys(this.namespaces).length)return[t,n];if(t&&!Object.keys(this.namespaces||{}).map(f=>Hn(f)).includes(t))throw new Error(`Namespace '${t}' is not configured. Please call connect() first with namespace config.`);if(t&&n)return[t,n];const a=Hn(Object.keys(this.namespaces)[0]),c=this.rpcProviders[a].getDefaultChain();return[a,c]}async requestAccounts(){const[i]=this.validateChain();return await this.getProvider(i).requestAccounts()}onChainChanged(i,t=!1){var n;if(!this.namespaces)return;const[a,c]=this.validateChain(i);t||this.getProvider(a).setDefaultChain(c),((n=this.namespaces[a])!=null?n:this.namespaces[`${a}:${c}`]).defaultChain=c,this.persist("namespaces",this.namespaces),this.events.emit("chainChanged",c)}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.session=void 0,this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,this.persist("namespaces",void 0),this.persist("optionalNamespaces",void 0),this.persist("sessionProperties",void 0),await this.cleanupPendingPairings({deletePairings:!0})}persist(i,t){this.client.core.storage.setItem(`${Pl}/${i}`,t)}async getFromStore(i){return await this.client.core.storage.getItem(`${Pl}/${i}`)}}const cx=$c,ux="wc",hx="ethereum_provider",lx=`${ux}@2:${hx}:`,fx="https://rpc.walletconnect.com/v1/",_c=["eth_sendTransaction","personal_sign"],px=["eth_accounts","eth_requestAccounts","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","eth_sendTransaction","personal_sign","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode"],wc=["chainChanged","accountsChanged"],dx=["chainChanged","accountsChanged","message","disconnect","connect"];var gx=Object.defineProperty,yx=Object.defineProperties,vx=Object.getOwnPropertyDescriptors,$l=Object.getOwnPropertySymbols,mx=Object.prototype.hasOwnProperty,_x=Object.prototype.propertyIsEnumerable,Nl=(o,i,t)=>i in o?gx(o,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[i]=t,Kn=(o,i)=>{for(var t in i||(i={}))mx.call(i,t)&&Nl(o,t,i[t]);if($l)for(var t of $l(i))_x.call(i,t)&&Nl(o,t,i[t]);return o},Fl=(o,i)=>yx(o,vx(i));function la(o){return Number(o[0].split(":")[1])}function nc(o){return`0x${o.toString(16)}`}function wx(o){const{chains:i,optionalChains:t,methods:n,optionalMethods:a,events:c,optionalEvents:f,rpcMap:d}=o;if(!ln(i))throw new Error("Invalid chains");const _={chains:i,methods:n||_c,events:c||wc,rpcMap:Kn({},i.length?{[la(i)]:d[la(i)]}:{})},v=c==null?void 0:c.filter(U=>!wc.includes(U)),P=n==null?void 0:n.filter(U=>!_c.includes(U));if(!t&&!f&&!a&&!(v!=null&&v.length)&&!(P!=null&&P.length))return{required:i.length?_:void 0};const L=(v==null?void 0:v.length)&&(P==null?void 0:P.length)||!t,T={chains:[...new Set(L?_.chains.concat(t||[]):t)],methods:[...new Set(_.methods.concat(a!=null&&a.length?a:px))],events:[...new Set(_.events.concat(f!=null&&f.length?f:dx))],rpcMap:d};return{required:i.length?_:void 0,optional:t.length?T:void 0}}class Nc{constructor(){this.events=new Ur.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.STORAGE_KEY=lx,this.on=(i,t)=>(this.events.on(i,t),this),this.once=(i,t)=>(this.events.once(i,t),this),this.removeListener=(i,t)=>(this.events.removeListener(i,t),this),this.off=(i,t)=>(this.events.off(i,t),this),this.parseAccount=i=>this.isCompatibleChainId(i)?this.parseAccountId(i).address:i,this.signer={},this.rpc={}}static async init(i){const t=new Nc;return await t.initialize(i),t}async request(i){return await this.signer.request(i,this.formatChainId(this.chainId))}sendAsync(i,t){this.signer.sendAsync(i,t,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(i){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(i);const{required:t,optional:n}=wx(this.rpc);try{const a=await new Promise(async(f,d)=>{var _;this.rpc.showQrModal&&((_=this.modal)==null||_.subscribeModal(v=>{!v.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),d(new Error("Connection request reset. Please try again.")))})),await this.signer.connect(Fl(Kn({namespaces:Kn({},t&&{[this.namespace]:t})},n&&{optionalNamespaces:{[this.namespace]:n}}),{pairingTopic:i==null?void 0:i.pairingTopic})).then(v=>{f(v)}).catch(v=>{d(new Error(v.message))})});if(!a)return;const c=U1(a.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:c),this.setAccounts(c),this.events.emit("connect",{chainId:nc(this.chainId)})}catch(a){throw this.signer.logger.error(a),a}finally{this.modal&&this.modal.closeModal()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",i=>{const{params:t}=i,{event:n}=t;n.name==="accountsChanged"?(this.accounts=this.parseAccounts(n.data),this.events.emit("accountsChanged",this.accounts)):n.name==="chainChanged"?this.setChainId(this.formatChainId(n.data)):this.events.emit(n.name,n.data),this.events.emit("session_event",i)}),this.signer.on("chainChanged",i=>{const t=parseInt(i);this.chainId=t,this.events.emit("chainChanged",nc(this.chainId)),this.persist()}),this.signer.on("session_update",i=>{this.events.emit("session_update",i)}),this.signer.on("session_delete",i=>{this.reset(),this.events.emit("session_delete",i),this.events.emit("disconnect",Fl(Kn({},er("USER_DISCONNECTED")),{data:i.topic,name:"USER_DISCONNECTED"}))}),this.signer.on("display_uri",i=>{var t,n;this.rpc.showQrModal&&((t=this.modal)==null||t.closeModal(),(n=this.modal)==null||n.openModal({uri:i})),this.events.emit("display_uri",i)})}switchEthereumChain(i){this.request({method:"wallet_switchEthereumChain",params:[{chainId:i.toString(16)}]})}isCompatibleChainId(i){return typeof i=="string"?i.startsWith(`${this.namespace}:`):!1}formatChainId(i){return`${this.namespace}:${i}`}parseChainId(i){return Number(i.split(":")[1])}setChainIds(i){const t=i.filter(n=>this.isCompatibleChainId(n)).map(n=>this.parseChainId(n));t.length&&(this.chainId=t[0],this.events.emit("chainChanged",nc(this.chainId)),this.persist())}setChainId(i){if(this.isCompatibleChainId(i)){const t=this.parseChainId(i);this.chainId=t,this.switchEthereumChain(t)}}parseAccountId(i){const[t,n,a]=i.split(":");return{chainId:`${t}:${n}`,address:a}}setAccounts(i){this.accounts=i.filter(t=>this.parseChainId(this.parseAccountId(t).chainId)===this.chainId).map(t=>this.parseAccountId(t).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(i){var t,n;const a=(t=i==null?void 0:i.chains)!=null?t:[],c=(n=i==null?void 0:i.optionalChains)!=null?n:[],f=a.concat(c);if(!f.length)throw new Error("No chains specified in either `chains` or `optionalChains`");const d=a.length?(i==null?void 0:i.methods)||_c:[],_=a.length?(i==null?void 0:i.events)||wc:[],v=(i==null?void 0:i.optionalMethods)||[],P=(i==null?void 0:i.optionalEvents)||[],L=(i==null?void 0:i.rpcMap)||this.buildRpcMap(f,i.projectId),T=(i==null?void 0:i.qrModalOptions)||void 0;return{chains:a==null?void 0:a.map(U=>this.formatChainId(U)),optionalChains:c.map(U=>this.formatChainId(U)),methods:d,events:_,optionalMethods:v,optionalEvents:P,rpcMap:L,showQrModal:!!(i!=null&&i.showQrModal),qrModalOptions:T,projectId:i.projectId,metadata:i.metadata}}buildRpcMap(i,t){const n={};return i.forEach(a=>{n[a]=this.getRpcUrl(a,t)}),n}async initialize(i){if(this.rpc=this.getRpcConfig(i),this.chainId=this.rpc.chains.length?la(this.rpc.chains):la(this.rpc.optionalChains),this.signer=await cx.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:i.disableProviderPing,relayUrl:i.relayUrl,storageOptions:i.storageOptions}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let t;try{const{WalletConnectModal:n}=await H1(()=>import("./index-99447ffe.js").then(a=>a.i),["assets/index-99447ffe.js","assets/index-c43d377d.js","assets/index-882a2daf.css"]);t=n}catch{throw new Error("To use QR modal, please install @walletconnect/modal package")}if(t)try{this.modal=new t(Kn({walletConnectVersion:2,projectId:this.rpc.projectId,standaloneChains:this.rpc.chains},this.rpc.qrModalOptions))}catch(n){throw this.signer.logger.error(n),new Error("Could not generate WalletConnectModal Instance")}}}loadConnectOpts(i){if(!i)return;const{chains:t,optionalChains:n,rpcMap:a}=i;t&&ln(t)&&(this.rpc.chains=t.map(c=>this.formatChainId(c)),t.forEach(c=>{this.rpc.rpcMap[c]=(a==null?void 0:a[c])||this.getRpcUrl(c)})),n&&ln(n)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=n==null?void 0:n.map(c=>this.formatChainId(c)),n.forEach(c=>{this.rpc.rpcMap[c]=(a==null?void 0:a[c])||this.getRpcUrl(c)}))}getRpcUrl(i,t){var n;return((n=this.rpc.rpcMap)==null?void 0:n[i])||`${fx}?chainId=eip155:${i}&projectId=${t||this.rpc.projectId}`}async loadPersistedSession(){if(!this.session)return;const i=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),t=this.session.namespaces[`${this.namespace}:${i}`]?this.session.namespaces[`${this.namespace}:${i}`]:this.session.namespaces[this.namespace];this.setChainIds(i?[this.formatChainId(i)]:t==null?void 0:t.accounts),this.setAccounts(t==null?void 0:t.accounts)}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(i){return typeof i=="string"||i instanceof String?[this.parseAccount(i)]:i.map(t=>this.parseAccount(t))}}const Nx=Nc;export{Nx as EthereumProvider,dx as OPTIONAL_EVENTS,px as OPTIONAL_METHODS,wc as REQUIRED_EVENTS,_c as REQUIRED_METHODS,Nc as default}; +}`;var me=Th(function(){return Fe(g,ee+"return "+M).apply(t,m)});if(me.source=M,$o(me))throw me;return me}function cv(e){return qe(e).toLowerCase()}function uv(e){return qe(e).toUpperCase()}function hv(e,r,s){if(e=qe(e),e&&(s||r===t))return Mc(e);if(!e||!(r=lr(r)))return e;var u=Or(e),l=Or(r),g=zc(u,l),m=Uc(u,l)+1;return di(u,g,m).join("")}function lv(e,r,s){if(e=qe(e),e&&(s||r===t))return e.slice(0,kc(e)+1);if(!e||!(r=lr(r)))return e;var u=Or(e),l=Uc(u,Or(r))+1;return di(u,0,l).join("")}function fv(e,r,s){if(e=qe(e),e&&(s||r===t))return e.replace(gt,"");if(!e||!(r=lr(r)))return e;var u=Or(e),l=zc(u,Or(r));return di(u,l).join("")}function pv(e,r){var s=te,u=Ee;if(ct(r)){var l="separator"in r?r.separator:l;s="length"in r?ye(r.length):s,u="omission"in r?lr(r.omission):u}e=qe(e);var g=e.length;if(Wi(e)){var m=Or(e);g=m.length}if(s>=g)return e;var w=s-Ji(u);if(w<1)return u;var I=m?di(m,0,w).join(""):e.slice(0,w);if(l===t)return I+u;if(m&&(w+=I.length-w),No(l)){if(e.slice(w).search(l)){var F,D=I;for(l.global||(l=Wa(l.source,qe(gr.exec(l))+"g")),l.lastIndex=0;F=l.exec(D);)var M=F.index;I=I.slice(0,M===t?w:M)}}else if(e.indexOf(lr(l),w)!=w){var G=I.lastIndexOf(l);G>-1&&(I=I.slice(0,G))}return I+u}function dv(e){return e=qe(e),e&<.test(e)?e.replace(si,kf):e}var gv=rn(function(e,r,s){return e+(s?" ":"")+r.toUpperCase()}),qo=Ru("toUpperCase");function Ah(e,r,s){return e=qe(e),r=s?t:r,r===t?Lf(e)?Bf(e):Af(e):e.match(r)||[]}var Th=we(function(e,r){try{return Lt(e,t,r)}catch(s){return $o(s)?s:new ce(s)}}),yv=Jr(function(e,r){return vr(r,function(s){s=Mr(s),Gr(e,s,To(e[s],e))}),e});function vv(e){var r=e==null?0:e.length,s=ie();return e=r?it(e,function(u){if(typeof u[1]!="function")throw new mr(f);return[s(u[0]),u[1]]}):[],we(function(u){for(var l=-1;++lJ)return[];var s=B,u=Kt(e,B);r=ie(r),e-=B;for(var l=Va(u,r);++s0||r<0)?new Se(s):(e<0?s=s.takeRight(-e):e&&(s=s.drop(e)),r!==t&&(r=ye(r),s=r<0?s.dropRight(-r):s.take(r-e)),s)},Se.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Se.prototype.toArray=function(){return this.take(B)},jr(Se.prototype,function(e,r){var s=/^(?:filter|find|map|reject)|While$/.test(r),u=/^(?:head|last)$/.test(r),l=p[u?"take"+(r=="last"?"Right":""):r],g=u||/^find/.test(r);l&&(p.prototype[r]=function(){var m=this.__wrapped__,w=u?[1]:arguments,I=m instanceof Se,F=w[0],D=I||fe(m),M=function(xe){var Oe=l.apply(p,ci([xe],w));return u&&G?Oe[0]:Oe};D&&s&&typeof F=="function"&&F.length!=1&&(I=D=!1);var G=this.__chain__,ee=!!this.__actions__.length,ne=g&&!G,me=I&&!ee;if(!g&&D){m=me?m:new Se(this);var se=e.apply(m,w);return se.__actions__.push({func:Ws,args:[M],thisArg:t}),new _r(se,G)}return ne&&me?e.apply(this,w):(se=this.thru(M),ne?u?se.value()[0]:se.value():se)})}),vr(["pop","push","shift","sort","splice","unshift"],function(e){var r=ws[e],s=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",u=/^(?:pop|shift)$/.test(e);p.prototype[e]=function(){var l=arguments;if(u&&!this.__chain__){var g=this.value();return r.apply(fe(g)?g:[],l)}return this[s](function(m){return r.apply(fe(m)?m:[],l)})}}),jr(Se.prototype,function(e,r){var s=p[r];if(s){var u=s.name+"";Le.call(Xi,u)||(Xi[u]=[]),Xi[u].push({name:r,func:s})}}),Xi[Us(t,be).name]=[{name:"wrapper",func:t}],Se.prototype.clone=dp,Se.prototype.reverse=gp,Se.prototype.value=yp,p.prototype.at=Vg,p.prototype.chain=Bg,p.prototype.commit=Gg,p.prototype.next=Wg,p.prototype.plant=Qg,p.prototype.reverse=Yg,p.prototype.toJSON=p.prototype.valueOf=p.prototype.value=Zg,p.prototype.first=p.prototype.head,mn&&(p.prototype[mn]=Jg),p},Qi=Gf();wt?((wt.exports=Qi)._=Qi,Be._=Qi):Pe._=Qi}).call(Un)})(mc,mc.exports);var ME=Object.defineProperty,zE=Object.defineProperties,UE=Object.getOwnPropertyDescriptors,Ol=Object.getOwnPropertySymbols,HE=Object.prototype.hasOwnProperty,kE=Object.prototype.propertyIsEnumerable,Cl=(o,i,t)=>i in o?ME(o,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[i]=t,na=(o,i)=>{for(var t in i||(i={}))HE.call(i,t)&&Cl(o,t,i[t]);if(Ol)for(var t of Ol(i))kE.call(i,t)&&Cl(o,t,i[t]);return o},KE=(o,i)=>zE(o,UE(i));function wi(o,i,t){var n;const a=z1(o);return((n=i.rpcMap)==null?void 0:n[a.reference])||`${LE}?chainId=${a.namespace}:${a.reference}&projectId=${t}`}function Mi(o){return o.includes(":")?o.split(":")[1]:o}function Ef(o){return o.map(i=>`${i.split(":")[0]}:${i.split(":")[1]}`)}function VE(o,i){const t=Object.keys(i.namespaces).filter(a=>a.includes(o));if(!t.length)return[];const n=[];return t.forEach(a=>{const c=i.namespaces[a].accounts;n.push(...c)}),n}function BE(o={},i={}){const t=Al(o),n=Al(i);return mc.exports.merge(t,n)}function Al(o){var i,t,n,a;const c={};if(!oa(o))return c;for(const[f,d]of Object.entries(o)){const _=Hl(f)?[f]:d.chains,v=d.methods||[],P=d.events||[],L=d.rpcMap||{},T=Hn(f);c[T]=KE(na(na({},c[T]),d),{chains:Ko(_,(i=c[T])==null?void 0:i.chains),methods:Ko(v,(t=c[T])==null?void 0:t.methods),events:Ko(P,(n=c[T])==null?void 0:n.events),rpcMap:na(na({},L),(a=c[T])==null?void 0:a.rpcMap)})}return c}function GE(o){return o.includes(":")?o.split(":")[2]:o}function WE(o){const i={};for(const[t,n]of Object.entries(o)){const a=n.methods||[],c=n.events||[],f=n.accounts||[],d=Hl(t)?[t]:n.chains?n.chains:Ef(n.accounts);i[t]={chains:d,methods:a,events:c,accounts:f}}return i}function tc(o){return typeof o=="number"?o:o.includes("0x")?parseInt(o,16):o.includes(":")?Number(o.split(":")[1]):Number(o)}const xf={},nt=o=>xf[o],rc=(o,i)=>{xf[o]=i};class JE{constructor(i){this.name="polkadot",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}getAccounts(){const i=this.namespace.accounts;return i?i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2])||[]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class QE{constructor(i){this.name="eip155",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(i){switch(i.request.method){case"eth_requestAccounts":return this.getAccounts();case"eth_accounts":return this.getAccounts();case"wallet_switchEthereumChain":return await this.handleSwitchChain(i);case"eth_chainId":return parseInt(this.getDefaultChain())}return this.namespace.methods.includes(i.request.method)?await this.client.request(i):this.getHttpProvider().request(i.request)}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(parseInt(i),t),this.chainId=parseInt(i),this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}createHttpProvider(i,t){const n=t||wi(`${this.name}:${i}`,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=parseInt(Mi(t));i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}getHttpProvider(){const i=this.chainId,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}async handleSwitchChain(i){var t,n;let a=i.request.params?(t=i.request.params[0])==null?void 0:t.chainId:"0x0";a=a.startsWith("0x")?a:`0x${a}`;const c=parseInt(a,16);if(this.isChainApproved(c))this.setDefaultChain(`${c}`);else if(this.namespace.methods.includes("wallet_switchEthereumChain"))await this.client.request({topic:i.topic,request:{method:i.request.method,params:[{chainId:a}]},chainId:(n=this.namespace.chains)==null?void 0:n[0]}),this.setDefaultChain(`${c}`);else throw new Error(`Failed to switch to chain 'eip155:${c}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(i){return this.namespace.chains.includes(`${this.name}:${i}`)}}class YE{constructor(i){this.name="solana",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class ZE{constructor(i){this.name="cosmos",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class XE{constructor(i){this.name="cip34",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{const n=this.getCardanoRPCUrl(t),a=Mi(t);i[a]=this.createHttpProvider(a,n)}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}getCardanoRPCUrl(i){const t=this.namespace.rpcMap;if(t)return t[i]}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||this.getCardanoRPCUrl(i);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class ex{constructor(i){this.name="elrond",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class tx{constructor(i){this.name="multiversx",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){this.httpProviders[i]||this.setHttpProvider(i,t),this.chainId=i,this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${i}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}getAccounts(){const i=this.namespace.accounts;return i?[...new Set(i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2]))]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;const a=Mi(t);i[a]=this.createHttpProvider(a,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace,this.client.core.projectId);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);return new ii(new bi(n,nt("disableProviderPing")))}}class rx{constructor(i){this.name="near",this.namespace=i.namespace,this.events=nt("events"),this.client=nt("client"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(i){this.namespace=Object.assign(this.namespace,i)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const i=this.namespace.chains[0];if(!i)throw new Error("ChainId not found");return i.split(":")[1]}request(i){return this.namespace.methods.includes(i.request.method)?this.client.request(i):this.getHttpProvider().request(i.request)}setDefaultChain(i,t){if(this.chainId=i,!this.httpProviders[i]){const n=t||wi(`${this.name}:${i}`,this.namespace);if(!n)throw new Error(`No RPC url provided for chainId: ${i}`);this.setHttpProvider(i,n)}this.events.emit(ni.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const i=this.namespace.accounts;return i?i.filter(t=>t.split(":")[1]===this.chainId.toString()).map(t=>t.split(":")[2])||[]:[]}createHttpProviders(){const i={};return this.namespace.chains.forEach(t=>{var n;i[t]=this.createHttpProvider(t,(n=this.namespace.rpcMap)==null?void 0:n[t])}),i}getHttpProvider(){const i=`${this.name}:${this.chainId}`,t=this.httpProviders[i];if(typeof t>"u")throw new Error(`JSON-RPC provider for ${i} not found`);return t}setHttpProvider(i,t){const n=this.createHttpProvider(i,t);n&&(this.httpProviders[i]=n)}createHttpProvider(i,t){const n=t||wi(i,this.namespace);return typeof n>"u"?void 0:new ii(new bi(n,nt("disableProviderPing")))}}var ix=Object.defineProperty,nx=Object.defineProperties,sx=Object.getOwnPropertyDescriptors,Tl=Object.getOwnPropertySymbols,ax=Object.prototype.hasOwnProperty,ox=Object.prototype.propertyIsEnumerable,Rl=(o,i,t)=>i in o?ix(o,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[i]=t,sa=(o,i)=>{for(var t in i||(i={}))ax.call(i,t)&&Rl(o,t,i[t]);if(Tl)for(var t of Tl(i))ox.call(i,t)&&Rl(o,t,i[t]);return o},ic=(o,i)=>nx(o,sx(i));class $c{constructor(i){this.events=new Ec,this.rpcProviders={},this.shouldAbortPairingAttempt=!1,this.maxPairingAttempts=10,this.disableProviderPing=!1,this.providerOpts=i,this.logger=typeof(i==null?void 0:i.logger)<"u"&&typeof(i==null?void 0:i.logger)!="string"?i.logger:Ce.pino(Ce.getDefaultLoggerOptions({level:(i==null?void 0:i.logger)||Sl})),this.disableProviderPing=(i==null?void 0:i.disableProviderPing)||!1}static async init(i){const t=new $c(i);return await t.initialize(),t}async request(i,t){const[n,a]=this.validateChain(t);if(!this.session)throw new Error("Please call connect() before request()");return await this.getProvider(n).request({request:sa({},i),chainId:`${n}:${a}`,topic:this.session.topic})}sendAsync(i,t,n){this.request(i,n).then(a=>t(null,a)).catch(a=>t(a,void 0))}async enable(){if(!this.client)throw new Error("Sign Client not initialized");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties}),await this.requestAccounts()}async disconnect(){var i;if(!this.session)throw new Error("Please call connect() before enable()");await this.client.disconnect({topic:(i=this.session)==null?void 0:i.topic,reason:er("USER_DISCONNECTED")}),await this.cleanup()}async connect(i){if(!this.client)throw new Error("Sign Client not initialized");if(this.setNamespaces(i),await this.cleanupPendingPairings(),!i.skipPairing)return await this.pair(i.pairingTopic)}on(i,t){this.events.on(i,t)}once(i,t){this.events.once(i,t)}removeListener(i,t){this.events.removeListener(i,t)}off(i,t){this.events.off(i,t)}get isWalletConnect(){return!0}async pair(i){this.shouldAbortPairingAttempt=!1;let t=0;do{if(this.shouldAbortPairingAttempt)throw new Error("Pairing aborted");if(t>=this.maxPairingAttempts)throw new Error("Max auto pairing attempts reached");const{uri:n,approval:a}=await this.client.connect({pairingTopic:i,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties});n&&(this.uri=n,this.events.emit("display_uri",n)),await a().then(c=>{this.session=c,this.namespaces||(this.namespaces=WE(c.namespaces),this.persist("namespaces",this.namespaces))}).catch(c=>{if(c.message!==wf)throw c;t++})}while(!this.session);return this.onConnect(),this.session}setDefaultChain(i,t){try{if(!this.session)return;const[n,a]=this.validateChain(i);this.getProvider(n).setDefaultChain(a,t)}catch(n){if(!/Please call connect/.test(n.message))throw n}}async cleanupPendingPairings(i={}){this.logger.info("Cleaning up inactive pairings...");const t=this.client.pairing.getAll();if(ln(t)){for(const n of t)i.deletePairings?this.client.core.expirer.set(n.topic,0):await this.client.core.relayer.subscriber.unsubscribe(n.topic);this.logger.info(`Inactive pairings cleared: ${t.length}`)}}abortPairingAttempt(){this.shouldAbortPairingAttempt=!0}async checkStorage(){if(this.namespaces=await this.getFromStore("namespaces"),this.optionalNamespaces=await this.getFromStore("optionalNamespaces")||{},this.client.session.length){const i=this.client.session.keys.length-1;this.session=this.client.session.get(this.client.session.keys[i]),this.createProviders()}}async initialize(){this.logger.trace("Initialized"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){this.client=this.providerOpts.client||await FE.init({logger:this.providerOpts.logger||Sl,relayUrl:this.providerOpts.relayUrl||DE,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name}),this.logger.trace("SignClient Initialized")}createProviders(){if(!this.client)throw new Error("Sign Client not initialized");if(!this.session)throw new Error("Session not initialized. Please call connect() before enable()");const i=[...new Set(Object.keys(this.session.namespaces).map(t=>Hn(t)))];rc("client",this.client),rc("events",this.events),rc("disableProviderPing",this.disableProviderPing),i.forEach(t=>{if(!this.session)return;const n=VE(t,this.session),a=Ef(n),c=BE(this.namespaces,this.optionalNamespaces),f=ic(sa({},c[t]),{accounts:n,chains:a});switch(t){case"eip155":this.rpcProviders[t]=new QE({namespace:f});break;case"solana":this.rpcProviders[t]=new YE({namespace:f});break;case"cosmos":this.rpcProviders[t]=new ZE({namespace:f});break;case"polkadot":this.rpcProviders[t]=new JE({namespace:f});break;case"cip34":this.rpcProviders[t]=new XE({namespace:f});break;case"elrond":this.rpcProviders[t]=new ex({namespace:f});break;case"multiversx":this.rpcProviders[t]=new tx({namespace:f});break;case"near":this.rpcProviders[t]=new rx({namespace:f});break}})}registerEventListeners(){if(typeof this.client>"u")throw new Error("Sign Client is not initialized");this.client.on("session_ping",i=>{this.events.emit("session_ping",i)}),this.client.on("session_event",i=>{const{params:t}=i,{event:n}=t;if(n.name==="accountsChanged"){const a=n.data;a&&ln(a)&&this.events.emit("accountsChanged",a.map(GE))}else if(n.name==="chainChanged"){const a=t.chainId,c=t.event.data,f=Hn(a),d=tc(a)!==tc(c)?`${f}:${tc(c)}`:a;this.onChainChanged(d)}else this.events.emit(n.name,n.data);this.events.emit("session_event",i)}),this.client.on("session_update",({topic:i,params:t})=>{var n;const{namespaces:a}=t,c=(n=this.client)==null?void 0:n.session.get(i);this.session=ic(sa({},c),{namespaces:a}),this.onSessionUpdate(),this.events.emit("session_update",{topic:i,params:t})}),this.client.on("session_delete",async i=>{await this.cleanup(),this.events.emit("session_delete",i),this.events.emit("disconnect",ic(sa({},er("USER_DISCONNECTED")),{data:i.topic}))}),this.on(ni.DEFAULT_CHAIN_CHANGED,i=>{this.onChainChanged(i,!0)})}getProvider(i){if(!this.rpcProviders[i])throw new Error(`Provider not found: ${i}`);return this.rpcProviders[i]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(i=>{var t;this.getProvider(i).updateNamespace((t=this.session)==null?void 0:t.namespaces[i])})}setNamespaces(i){const{namespaces:t,optionalNamespaces:n,sessionProperties:a}=i;t&&Object.keys(t).length&&(this.namespaces=t),n&&Object.keys(n).length&&(this.optionalNamespaces=n),this.sessionProperties=a,this.persist("namespaces",t),this.persist("optionalNamespaces",n)}validateChain(i){const[t,n]=(i==null?void 0:i.split(":"))||["",""];if(!this.namespaces||!Object.keys(this.namespaces).length)return[t,n];if(t&&!Object.keys(this.namespaces||{}).map(f=>Hn(f)).includes(t))throw new Error(`Namespace '${t}' is not configured. Please call connect() first with namespace config.`);if(t&&n)return[t,n];const a=Hn(Object.keys(this.namespaces)[0]),c=this.rpcProviders[a].getDefaultChain();return[a,c]}async requestAccounts(){const[i]=this.validateChain();return await this.getProvider(i).requestAccounts()}onChainChanged(i,t=!1){var n;if(!this.namespaces)return;const[a,c]=this.validateChain(i);t||this.getProvider(a).setDefaultChain(c),((n=this.namespaces[a])!=null?n:this.namespaces[`${a}:${c}`]).defaultChain=c,this.persist("namespaces",this.namespaces),this.events.emit("chainChanged",c)}onConnect(){this.createProviders(),this.events.emit("connect",{session:this.session})}async cleanup(){this.session=void 0,this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,this.persist("namespaces",void 0),this.persist("optionalNamespaces",void 0),this.persist("sessionProperties",void 0),await this.cleanupPendingPairings({deletePairings:!0})}persist(i,t){this.client.core.storage.setItem(`${Pl}/${i}`,t)}async getFromStore(i){return await this.client.core.storage.getItem(`${Pl}/${i}`)}}const cx=$c,ux="wc",hx="ethereum_provider",lx=`${ux}@2:${hx}:`,fx="https://rpc.walletconnect.com/v1/",_c=["eth_sendTransaction","personal_sign"],px=["eth_accounts","eth_requestAccounts","eth_sendRawTransaction","eth_sign","eth_signTransaction","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","eth_sendTransaction","personal_sign","wallet_switchEthereumChain","wallet_addEthereumChain","wallet_getPermissions","wallet_requestPermissions","wallet_registerOnboarding","wallet_watchAsset","wallet_scanQRCode"],wc=["chainChanged","accountsChanged"],dx=["chainChanged","accountsChanged","message","disconnect","connect"];var gx=Object.defineProperty,yx=Object.defineProperties,vx=Object.getOwnPropertyDescriptors,$l=Object.getOwnPropertySymbols,mx=Object.prototype.hasOwnProperty,_x=Object.prototype.propertyIsEnumerable,Nl=(o,i,t)=>i in o?gx(o,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[i]=t,Kn=(o,i)=>{for(var t in i||(i={}))mx.call(i,t)&&Nl(o,t,i[t]);if($l)for(var t of $l(i))_x.call(i,t)&&Nl(o,t,i[t]);return o},Fl=(o,i)=>yx(o,vx(i));function la(o){return Number(o[0].split(":")[1])}function nc(o){return`0x${o.toString(16)}`}function wx(o){const{chains:i,optionalChains:t,methods:n,optionalMethods:a,events:c,optionalEvents:f,rpcMap:d}=o;if(!ln(i))throw new Error("Invalid chains");const _={chains:i,methods:n||_c,events:c||wc,rpcMap:Kn({},i.length?{[la(i)]:d[la(i)]}:{})},v=c==null?void 0:c.filter(U=>!wc.includes(U)),P=n==null?void 0:n.filter(U=>!_c.includes(U));if(!t&&!f&&!a&&!(v!=null&&v.length)&&!(P!=null&&P.length))return{required:i.length?_:void 0};const L=(v==null?void 0:v.length)&&(P==null?void 0:P.length)||!t,T={chains:[...new Set(L?_.chains.concat(t||[]):t)],methods:[...new Set(_.methods.concat(a!=null&&a.length?a:px))],events:[...new Set(_.events.concat(f!=null&&f.length?f:dx))],rpcMap:d};return{required:i.length?_:void 0,optional:t.length?T:void 0}}class Nc{constructor(){this.events=new Ur.EventEmitter,this.namespace="eip155",this.accounts=[],this.chainId=1,this.STORAGE_KEY=lx,this.on=(i,t)=>(this.events.on(i,t),this),this.once=(i,t)=>(this.events.once(i,t),this),this.removeListener=(i,t)=>(this.events.removeListener(i,t),this),this.off=(i,t)=>(this.events.off(i,t),this),this.parseAccount=i=>this.isCompatibleChainId(i)?this.parseAccountId(i).address:i,this.signer={},this.rpc={}}static async init(i){const t=new Nc;return await t.initialize(i),t}async request(i){return await this.signer.request(i,this.formatChainId(this.chainId))}sendAsync(i,t){this.signer.sendAsync(i,t,this.formatChainId(this.chainId))}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:"eth_requestAccounts"})}async connect(i){if(!this.signer.client)throw new Error("Provider not initialized. Call init() first");this.loadConnectOpts(i);const{required:t,optional:n}=wx(this.rpc);try{const a=await new Promise(async(f,d)=>{var _;this.rpc.showQrModal&&((_=this.modal)==null||_.subscribeModal(v=>{!v.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),d(new Error("Connection request reset. Please try again.")))})),await this.signer.connect(Fl(Kn({namespaces:Kn({},t&&{[this.namespace]:t})},n&&{optionalNamespaces:{[this.namespace]:n}}),{pairingTopic:i==null?void 0:i.pairingTopic})).then(v=>{f(v)}).catch(v=>{d(new Error(v.message))})});if(!a)return;const c=U1(a.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:c),this.setAccounts(c),this.events.emit("connect",{chainId:nc(this.chainId)})}catch(a){throw this.signer.logger.error(a),a}finally{this.modal&&this.modal.closeModal()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on("session_event",i=>{const{params:t}=i,{event:n}=t;n.name==="accountsChanged"?(this.accounts=this.parseAccounts(n.data),this.events.emit("accountsChanged",this.accounts)):n.name==="chainChanged"?this.setChainId(this.formatChainId(n.data)):this.events.emit(n.name,n.data),this.events.emit("session_event",i)}),this.signer.on("chainChanged",i=>{const t=parseInt(i);this.chainId=t,this.events.emit("chainChanged",nc(this.chainId)),this.persist()}),this.signer.on("session_update",i=>{this.events.emit("session_update",i)}),this.signer.on("session_delete",i=>{this.reset(),this.events.emit("session_delete",i),this.events.emit("disconnect",Fl(Kn({},er("USER_DISCONNECTED")),{data:i.topic,name:"USER_DISCONNECTED"}))}),this.signer.on("display_uri",i=>{var t,n;this.rpc.showQrModal&&((t=this.modal)==null||t.closeModal(),(n=this.modal)==null||n.openModal({uri:i})),this.events.emit("display_uri",i)})}switchEthereumChain(i){this.request({method:"wallet_switchEthereumChain",params:[{chainId:i.toString(16)}]})}isCompatibleChainId(i){return typeof i=="string"?i.startsWith(`${this.namespace}:`):!1}formatChainId(i){return`${this.namespace}:${i}`}parseChainId(i){return Number(i.split(":")[1])}setChainIds(i){const t=i.filter(n=>this.isCompatibleChainId(n)).map(n=>this.parseChainId(n));t.length&&(this.chainId=t[0],this.events.emit("chainChanged",nc(this.chainId)),this.persist())}setChainId(i){if(this.isCompatibleChainId(i)){const t=this.parseChainId(i);this.chainId=t,this.switchEthereumChain(t)}}parseAccountId(i){const[t,n,a]=i.split(":");return{chainId:`${t}:${n}`,address:a}}setAccounts(i){this.accounts=i.filter(t=>this.parseChainId(this.parseAccountId(t).chainId)===this.chainId).map(t=>this.parseAccountId(t).address),this.events.emit("accountsChanged",this.accounts)}getRpcConfig(i){var t,n;const a=(t=i==null?void 0:i.chains)!=null?t:[],c=(n=i==null?void 0:i.optionalChains)!=null?n:[],f=a.concat(c);if(!f.length)throw new Error("No chains specified in either `chains` or `optionalChains`");const d=a.length?(i==null?void 0:i.methods)||_c:[],_=a.length?(i==null?void 0:i.events)||wc:[],v=(i==null?void 0:i.optionalMethods)||[],P=(i==null?void 0:i.optionalEvents)||[],L=(i==null?void 0:i.rpcMap)||this.buildRpcMap(f,i.projectId),T=(i==null?void 0:i.qrModalOptions)||void 0;return{chains:a==null?void 0:a.map(U=>this.formatChainId(U)),optionalChains:c.map(U=>this.formatChainId(U)),methods:d,events:_,optionalMethods:v,optionalEvents:P,rpcMap:L,showQrModal:!!(i!=null&&i.showQrModal),qrModalOptions:T,projectId:i.projectId,metadata:i.metadata}}buildRpcMap(i,t){const n={};return i.forEach(a=>{n[a]=this.getRpcUrl(a,t)}),n}async initialize(i){if(this.rpc=this.getRpcConfig(i),this.chainId=this.rpc.chains.length?la(this.rpc.chains):la(this.rpc.optionalChains),this.signer=await cx.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:i.disableProviderPing,relayUrl:i.relayUrl,storageOptions:i.storageOptions}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let t;try{const{WalletConnectModal:n}=await H1(()=>import("./index-f89795f2.js").then(a=>a.i),["assets/index-f89795f2.js","assets/index-90f155ac.js","assets/index-882a2daf.css"]);t=n}catch{throw new Error("To use QR modal, please install @walletconnect/modal package")}if(t)try{this.modal=new t(Kn({walletConnectVersion:2,projectId:this.rpc.projectId,standaloneChains:this.rpc.chains},this.rpc.qrModalOptions))}catch(n){throw this.signer.logger.error(n),new Error("Could not generate WalletConnectModal Instance")}}}loadConnectOpts(i){if(!i)return;const{chains:t,optionalChains:n,rpcMap:a}=i;t&&ln(t)&&(this.rpc.chains=t.map(c=>this.formatChainId(c)),t.forEach(c=>{this.rpc.rpcMap[c]=(a==null?void 0:a[c])||this.getRpcUrl(c)})),n&&ln(n)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=n==null?void 0:n.map(c=>this.formatChainId(c)),n.forEach(c=>{this.rpc.rpcMap[c]=(a==null?void 0:a[c])||this.getRpcUrl(c)}))}getRpcUrl(i,t){var n;return((n=this.rpc.rpcMap)==null?void 0:n[i])||`${fx}?chainId=eip155:${i}&projectId=${t||this.rpc.projectId}`}async loadPersistedSession(){if(!this.session)return;const i=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),t=this.session.namespaces[`${this.namespace}:${i}`]?this.session.namespaces[`${this.namespace}:${i}`]:this.session.namespaces[this.namespace];this.setChainIds(i?[this.formatChainId(i)]:t==null?void 0:t.accounts),this.setAccounts(t==null?void 0:t.accounts)}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(i){return typeof i=="string"||i instanceof String?[this.parseAccount(i)]:i.map(t=>this.parseAccount(t))}}const Nx=Nc;export{Nx as EthereumProvider,dx as OPTIONAL_EVENTS,px as OPTIONAL_METHODS,wc as REQUIRED_EVENTS,_c as REQUIRED_METHODS,Nc as default}; diff --git a/examples/vite/dist/index.html b/examples/vite/dist/index.html index 1e52156ff8..3ad37e5d48 100644 --- a/examples/vite/dist/index.html +++ b/examples/vite/dist/index.html @@ -5,7 +5,7 @@ wagmi - + diff --git a/examples/vite/src/contracts/WagmiMintExample.sol b/examples/vite/src/contracts/WagmiMintExample.sol index 85ea96e5d1..34855d9aa7 100644 --- a/examples/vite/src/contracts/WagmiMintExample.sol +++ b/examples/vite/src/contracts/WagmiMintExample.sol @@ -2,7 +2,7 @@ pragma solidity >0.8.16; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; -import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/utils/Base64.sol"; /// @author Wagmi diff --git a/resolutions/CHANGELOG.md b/resolutions/CHANGELOG.md deleted file mode 100644 index 980c76a30d..0000000000 --- a/resolutions/CHANGELOG.md +++ /dev/null @@ -1,361 +0,0 @@ -# @evmts/core - -## 0.11.2 - -### Patch Changes - -- Updated dependencies [[`f3b2b21`](https://github.com/evmts/evmts-monorepo/commit/f3b2b2184aad4dbefd1c840bae72dcf9aff4a1fc)]: - - @evmts/core@0.11.2 - -## 0.10.0 - -### Patch Changes - -- [#469](https://github.com/evmts/evmts-monorepo/pull/469) [`dbc2da6`](https://github.com/evmts/evmts-monorepo/commit/dbc2da6092eae3a7ec2d2519ea8c04505aa911f6) Thanks [@roninjin10](https://github.com/roninjin10)! - Made @evmts/config loading async - -- [#466](https://github.com/evmts/evmts-monorepo/pull/466) [`1c4cbd2`](https://github.com/evmts/evmts-monorepo/commit/1c4cbd2b87abd1c2174fb0d2e7a684367e074440) Thanks [@roninjin10](https://github.com/roninjin10)! - Updated @evmts/bundler to take a fileAccessObject as a parameter - - ### Context - - @evmts/bundler is the internal bundler for all other bundlers and the language server. We changed it to take fileAccessObject as a parameter instead of using `fs` and `fs/promises` - - ### Impact - - By taking in a file-access-object instead of using `fs` we can implement important features. - - - the ability to use virtual files in the typescript lsp before the user saves the file. - - the ability to use more peformant bun file read methods - -- [#468](https://github.com/evmts/evmts-monorepo/pull/468) [`e99fcd0`](https://github.com/evmts/evmts-monorepo/commit/e99fcd09e530a58fddb0d3fa19be0f5439e74f30) Thanks [@roninjin10](https://github.com/roninjin10)! - Improved peformance of bundler via enabling async mode - - Previously all bundlers including the Bun bundler ran with syncronous IO such as readFileSync. With the introduction of async mode the bundler now is more non blocking when it is bundling now. Solc is still syncronous but all IO is now async. - - @evmts/bundler now takes a File-Access-Object as a param. This FileAccessObject is the same shape as `node:fs` module. Bun uses this generic interace to use native Bun file access. - -- [#475](https://github.com/evmts/evmts-monorepo/pull/475) [`cb83c0c`](https://github.com/evmts/evmts-monorepo/commit/cb83c0c81fae63decd7bbdb79b9c3cce2c7e0b8e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added snapshot test of vite bundler build outputs - -- Updated dependencies [[`dbc2da6`](https://github.com/evmts/evmts-monorepo/commit/dbc2da6092eae3a7ec2d2519ea8c04505aa911f6), [`cb83c0c`](https://github.com/evmts/evmts-monorepo/commit/cb83c0c81fae63decd7bbdb79b9c3cce2c7e0b8e)]: - - @evmts/config@0.10.0 - - @evmts/core@0.10.0 - -## 0.9.0 - -### Patch Changes - -- Updated dependencies [[`1f80589`](https://github.com/evmts/evmts-monorepo/commit/1f8058969e2b0290f5032166928f76cfc74e9d74)]: - - @evmts/config@0.9.0 - -## 0.8.1 - -### Patch Changes - -- [#453](https://github.com/evmts/evmts-monorepo/pull/453) [`c23302a`](https://github.com/evmts/evmts-monorepo/commit/c23302a9623a968917df19de8dfa2c56b4612712) Thanks [@roninjin10](https://github.com/roninjin10)! - Started publishing every commit to main so all EVMts changes can be used early. To use the latest main branch release install with `@main` tag. e.g. `npm install @evmts/ts-plugin@main` - -- Updated dependencies [[`c23302a`](https://github.com/evmts/evmts-monorepo/commit/c23302a9623a968917df19de8dfa2c56b4612712), [`ae772ac`](https://github.com/evmts/evmts-monorepo/commit/ae772ac62ad16d19c48b82dfd005458bf27200fe)]: - - @evmts/config@0.8.1 - - @evmts/core@0.8.1 - - @evmts/tsconfig@0.8.1 - -## 0.8.0 - -### Minor Changes - -- [#439](https://github.com/evmts/evmts-monorepo/pull/439) [`91e43e9`](https://github.com/evmts/evmts-monorepo/commit/91e43e952a440f037d52146511ed2508d289874e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for natspec comments showing up in EVMts contracts LSP and bundled code. Now when you hover over an EVMts contract any natspec comments will be available as jsdoc comments. - - This support is limited based on what [solc](https://docs.soliditylang.org/en/v0.8.17/using-the-compiler.html) supports. In future more robust natspec parsing is expected to be added via [soldity-ast](Add function to parse NatSpec) - ![image](https://github.com/evmts/evmts-monorepo/assets/35039927/da3b2c70-f16d-4f47-9de8-c05b4442193f) - -- [#438](https://github.com/evmts/evmts-monorepo/pull/438) [`eedb7e0`](https://github.com/evmts/evmts-monorepo/commit/eedb7e0e8f853acf59c3f86c1d7317bad8ee7e2b) Thanks [@roninjin10](https://github.com/roninjin10)! - Improve peformance by 98% (5x) testing against 101 simple NFT contract imports - - Major change: remove bytecode from EVMts. Needing the bytecode is a niche use case and removing it improves peformance of the compiler significantly. In future bytecode will be brought back as an optional prop - - This improves peformance by 98% (50x) testing against 101 simple NFT contract imports - - Because EVMts is still considered in alpha this will not cause a major semver bump - -- [#440](https://github.com/evmts/evmts-monorepo/pull/440) [`8cceec7`](https://github.com/evmts/evmts-monorepo/commit/8cceec7409a5fc0e72168a10821a64203ba374ab) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for resolving an AST. - Passing in an optional flag to the bundler will return an ast along with comments and abi. By default it's turned off. This AST will be usable in future prs to implement advanced langauge features like goToDefinition - - To work with the AST we add [solidity-ast](https://github.com/OpenZeppelin/solidity-ast) from open-zeppelin. - -- [#444](https://github.com/evmts/evmts-monorepo/pull/444) [`793798e`](https://github.com/evmts/evmts-monorepo/commit/793798ec3782e4081840bcd77242104c9546e70c) Thanks [@roninjin10](https://github.com/roninjin10)! - Added solcInput and solcOutput to return objects for bundler. - - Now in addition to the compiled code and the modules solcInput and solcOutput are also added along with the recently added asts property - - ![image](https://github.com/evmts/evmts-monorepo/assets/35039927/57277b41-195c-4c54-ab70-a4e1ef3fceaa) - - This will be used internally to implement go-to-definition LSP support to [@evmts/ts-plugin](https://github.com/evmts/evmts-monorepo/tree/main/ts-plugin) - -### Patch Changes - -- [#436](https://github.com/evmts/evmts-monorepo/pull/436) [`e1903df`](https://github.com/evmts/evmts-monorepo/commit/e1903df625c54b2447ce2bc2318f4c74f9a02bb5) Thanks [@roninjin10](https://github.com/roninjin10)! - Internal change: Made usage of solc typesafe - - This change adds new solc types to the [solc](https://github.com/ethereum/solc-bin) peer dependency used by EVMts. This is used by @evmts/bundler to - - - includes type for SolcInputSources and outputsources - - ![image](https://github.com/evmts/evmts-monorepo/assets/35039927/1ee13b76-98ab-4f62-9266-6e4a972de223) - - These types were adapted from [solc documentation](https://docs.soliditylang.org/en/v0.8.17/using-the-compiler.html#compiler-input-and-output-json-description) - - Shout out @o-az who kicked off this improvement in #435 - -- [#442](https://github.com/evmts/evmts-monorepo/pull/442) [`b020298`](https://github.com/evmts/evmts-monorepo/commit/b020298f1acbfad396b0c1c9a1618e00bc750a43) Thanks [@roninjin10](https://github.com/roninjin10)! - ⬆️ Upgraded all npm packages to latest - Every package in EVMts is consistently updated to it's latest version using `pnpm up --latest` -- Updated dependencies [[`eedb7e0`](https://github.com/evmts/evmts-monorepo/commit/eedb7e0e8f853acf59c3f86c1d7317bad8ee7e2b), [`b020298`](https://github.com/evmts/evmts-monorepo/commit/b020298f1acbfad396b0c1c9a1618e00bc750a43)]: - - @evmts/core@0.8.0 - - @evmts/config@0.8.0 - -## 0.7.1 - -### Patch Changes - -- Updated dependencies [[`eb6ec5d`](https://github.com/evmts/evmts-monorepo/commit/eb6ec5dff13c51baa09f0019fb8b1b94a41108cb)]: - - @evmts/tsconfig@0.7.1 - - @evmts/config@0.7.0 - - @evmts/core@0.6.0 - -## 0.7.0 - -### Minor Changes - -- [#419](https://github.com/evmts/evmts-monorepo/pull/419) [`644e8fd`](https://github.com/evmts/evmts-monorepo/commit/644e8fda95d2824c9145f8d6278cbdb6272b0609) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for monorepo imports and node_module imports - - Previously, these use cases would fail because @evmts/core was not in scope. EVMts injects a module that uses the `@evmts/core` package to create the contract objects at runtime. These packages are installed to the users node_modules and thus were not in scope for sub dependencies and other workspaces. @evmts/core now handles this via always importing @evmts/core from the users main workspace. This feature enables 2 use cases. - - ## Use case 1 - Importing from Node Modules - - A solid way to use EVMts is to install a package that has contracts in it and import the contract from node module - - ``` - import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - import { viemPublicClient, Address } from './publicClient' - - const balanceOf = (address: Address) => viemPublicClient.readContract(ERC20.balanceOf( - ``` - - ## Use case 2 - Importing from PNPM monorepos - - Devs commonly use monorepo tools such as npm workspaces, yarn workspaces, or pnpm workspaces. Previously these tools failed to work correctly but are now supported. - -### Patch Changes - -- [#411](https://github.com/evmts/evmts-monorepo/pull/411) [`8dbc952`](https://github.com/evmts/evmts-monorepo/commit/8dbc952d2dc2ca97e89bad55b162056d4f6b31a6) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed a bug with stack too deep error. - - Error happens when recursive contract imports (e.g. contract a imports contract b which imports contract c etc.) go over the total amount of stack frames allowed by JS. When this happens the process would fail with a "stack too deep error". - -- [#408](https://github.com/evmts/evmts-monorepo/pull/408) [`d7e6158`](https://github.com/evmts/evmts-monorepo/commit/d7e61583dc1529569de92868ffe49d75c045dc1f) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with using '.' instead of process.cwd() - - This bug was unlikely to affect users and mostly a stylistic problem - -- [#402](https://github.com/evmts/evmts-monorepo/pull/402) [`4f532eb`](https://github.com/evmts/evmts-monorepo/commit/4f532ebab51004603b1a41f956729fec4a3dbd2d) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed version of plugin defaulting to 0.0.0 instead of the package.json version - - Previously the version of all evmts-plugins were hardcoded to 0.0.0. Now they will correctly show the correct version. - -- [#416](https://github.com/evmts/evmts-monorepo/pull/416) [`fc28f54`](https://github.com/evmts/evmts-monorepo/commit/fc28f545635a23a76e4acce0ff48d0902eed484c) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed another stack too deep bug from a recursive function in bundler - - - A previous fix fixed a stack too deep error but another one was discovered. - - Fixed via refactoring a recursive internal function to iterative. - - This bug affected projects importing solidity that imports other solidity deep enough to make the stack too deep - -- Updated dependencies [[`8f11961`](https://github.com/evmts/evmts-monorepo/commit/8f11961f6b3ebc5882a1e5403d3726df7ddee0d4), [`fa7555a`](https://github.com/evmts/evmts-monorepo/commit/fa7555a8b0bac268f5297544422c516dae4c5511), [`c71cd30`](https://github.com/evmts/evmts-monorepo/commit/c71cd30818b311c95852a720c170ef18915b750f)]: - - @evmts/config@0.7.0 - -## 0.6.0 - -### Minor Changes - -- [#372](https://github.com/evmts/evmts-monorepo/pull/372) [`0a87d1a`](https://github.com/evmts/evmts-monorepo/commit/0a87d1a290e6cdd6902d6c1c84ea56d8bc227c45) Thanks [@roninjin10](https://github.com/roninjin10)! - Generalize and export module creators that create .d.ts .ts .cjs and .mjs modules from abis. These were previously private. - -### Patch Changes - -- [#378](https://github.com/evmts/evmts-monorepo/pull/378) [`97d7aec`](https://github.com/evmts/evmts-monorepo/commit/97d7aec9844b370129b9c46ab8c19fe9d13880ec) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed type bug of config being falsely marked as required - -- [#379](https://github.com/evmts/evmts-monorepo/pull/379) [`0ff53e7`](https://github.com/evmts/evmts-monorepo/commit/0ff53e71ff792ed4df1fa180f5a72dd5d65f4142) Thanks [@roninjin10](https://github.com/roninjin10)! - Updated build pipeline to generate .d.ts files - -- [#370](https://github.com/evmts/evmts-monorepo/pull/370) [`58862a6`](https://github.com/evmts/evmts-monorepo/commit/58862a6ebe6ec1e04961dbc2da6e846a02ef0692) Thanks [@roninjin10](https://github.com/roninjin10)! - Added 100% test coverage to bundler - -- Updated dependencies [[`6da3fe7`](https://github.com/evmts/evmts-monorepo/commit/6da3fe7fdec9bc2e4d35fc0558b79c65a105a516), [`6de12df`](https://github.com/evmts/evmts-monorepo/commit/6de12df39cf9da0635c246c685036e83a8e97255), [`0ff53e7`](https://github.com/evmts/evmts-monorepo/commit/0ff53e71ff792ed4df1fa180f5a72dd5d65f4142), [`e24901a`](https://github.com/evmts/evmts-monorepo/commit/e24901a7b503354af6174bac81a868a8598f143b), [`3a2dfae`](https://github.com/evmts/evmts-monorepo/commit/3a2dfae3a38ca7052b57b57e5c95a952a7f0be71), [`6dd223b`](https://github.com/evmts/evmts-monorepo/commit/6dd223b0b625bd7dcbea7537f053b32457761955), [`6da3fe7`](https://github.com/evmts/evmts-monorepo/commit/6da3fe7fdec9bc2e4d35fc0558b79c65a105a516)]: - - @evmts/core@0.6.0 - - @evmts/config@0.6.0 - -## 0.5.7 - -### Patch Changes - -- [#361](https://github.com/evmts/evmts-monorepo/pull/361) [`4fc4872`](https://github.com/evmts/evmts-monorepo/commit/4fc48722380d4390ef527ccbb27a63f73503c750) Thanks [@roninjin10](https://github.com/roninjin10)! - Added warning when solc version does not match config - -- [#353](https://github.com/evmts/evmts-monorepo/pull/353) [`97cb0c1`](https://github.com/evmts/evmts-monorepo/commit/97cb0c1381f3a0b3ffa92dfcb09c397cff3190dd) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with exporting private variables in .d.ts - -- [#351](https://github.com/evmts/evmts-monorepo/pull/351) [`ca58f7a`](https://github.com/evmts/evmts-monorepo/commit/ca58f7a66b01a68d93585d664a77a43f67ce5bbc) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for reload when any contract in the import graph changes - -## 0.5.6 - -### Patch Changes - -- [#345](https://github.com/evmts/evmts-monorepo/pull/345) [`31186f7`](https://github.com/evmts/evmts-monorepo/commit/31186f749ce5cd3c6e0ca4d4885975aa74512c45) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed typo breaking TS language server - -- [#346](https://github.com/evmts/evmts-monorepo/pull/346) [`6d9365d`](https://github.com/evmts/evmts-monorepo/commit/6d9365db3ab197ea4ad53f777d755ee3ad562b21) Thanks [@roninjin10](https://github.com/roninjin10)! - Change naming to Evmts from EVMts - -- Updated dependencies [[`6d9365d`](https://github.com/evmts/evmts-monorepo/commit/6d9365db3ab197ea4ad53f777d755ee3ad562b21)]: - - @evmts/config@0.5.6 - - @evmts/core@0.5.6 - -## 0.5.5 - -### Patch Changes - -- [#343](https://github.com/evmts/evmts-monorepo/pull/343) [`bec7e33`](https://github.com/evmts/evmts-monorepo/commit/bec7e3303e8b241213804c42f6673a38dc7a954c) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with generated .d.ts file name param - -## 0.5.4 - -### Patch Changes - -- [#339](https://github.com/evmts/evmts-monorepo/pull/339) [`c9dec08`](https://github.com/evmts/evmts-monorepo/commit/c9dec084df5c5a9999a8f917405a15b11a004c02) Thanks [@roninjin10](https://github.com/roninjin10)! - Upgraded all dependencies - -- Updated dependencies [[`0116537`](https://github.com/evmts/evmts-monorepo/commit/0116537d3423c8decfd0adaf490d37d33f8a540f), [`2b8b5ed`](https://github.com/evmts/evmts-monorepo/commit/2b8b5ed9852c32e15a7466f00f4ca9c0458cfeef)]: - - @evmts/config@0.5.4 - - @evmts/core@0.5.4 - -## 0.5.3 - -### Patch Changes - -- Updated dependencies [[`2dc1950`](https://github.com/evmts/evmts-monorepo/commit/2dc19507c9d957948dcff8f65a359fc25b0ceb10)]: - - @evmts/core@0.5.3 - -## 0.5.2 - -### Patch Changes - -- Updated dependencies [[`cdbe2b1`](https://github.com/evmts/evmts-monorepo/commit/cdbe2b14d3a9b40ea37898829bc982b5e76e3c4c)]: - - @evmts/core@0.5.2 - -## 0.5.1 - -### Patch Changes - -- Updated dependencies [[`cec44b5`](https://github.com/evmts/evmts-monorepo/commit/cec44b5042bc76c21a9b695383714642c2b44da6)]: - - @evmts/core@0.5.1 - -## 0.5.0 - -### Minor Changes - -- [#283](https://github.com/evmts/evmts-monorepo/pull/283) [`05a8efe`](https://github.com/evmts/evmts-monorepo/commit/05a8efede4acad157e3820bdba24d92f598699e5) Thanks [@roninjin10](https://github.com/roninjin10)! - Updated config schema to support etherscan - - Solc version is now listed under `compiler.solcVersion` instead of `solc` - - Foundry projects are now listed under `compiler.foundryProject` instead of `forge` - - Local contracts are now specified under `localContracts.contracts` instead of `deployments` - - New external option (unimplemented) `externalContracts` which is used to specifify contracts imported from etherscan in the next release - -### Patch Changes - -- [#298](https://github.com/evmts/evmts-monorepo/pull/298) [`841d6a8`](https://github.com/evmts/evmts-monorepo/commit/841d6a89f4995e4f666902d27cb7dbfc3efd77e5) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with etherscan links showing as undefined if they didn't exist - -- [#301](https://github.com/evmts/evmts-monorepo/pull/301) [`83bf23b`](https://github.com/evmts/evmts-monorepo/commit/83bf23b0cb2eb5860f9dfb63a773541e48c62abc) Thanks [@roninjin10](https://github.com/roninjin10)! - Upgraded all dependencies - -- Updated dependencies [[`700b3d0`](https://github.com/evmts/evmts-monorepo/commit/700b3d0907df243b29e96b1b3246b8c75cfb9900), [`720bfdb`](https://github.com/evmts/evmts-monorepo/commit/720bfdba790699e388c5ec1c68630b9f0f077158), [`05a8efe`](https://github.com/evmts/evmts-monorepo/commit/05a8efede4acad157e3820bdba24d92f598699e5), [`85c340d`](https://github.com/evmts/evmts-monorepo/commit/85c340dc4a63afdbc6bd92fb4b2cf3fe0ffdc6e7), [`0bd5b45`](https://github.com/evmts/evmts-monorepo/commit/0bd5b4511e292380a7ac87a898d22dbd32df9e35), [`720bfdb`](https://github.com/evmts/evmts-monorepo/commit/720bfdba790699e388c5ec1c68630b9f0f077158), [`2ab7c02`](https://github.com/evmts/evmts-monorepo/commit/2ab7c022520fe3c03f337d51dc0f7875830492f1)]: - - @evmts/config@0.5.0 - - @evmts/core@0.5.0 - -## 0.4.2 - -### Patch Changes - -- [#279](https://github.com/evmts/evmts-monorepo/pull/279) [`fd6b482`](https://github.com/evmts/evmts-monorepo/commit/fd6b4825417fa81d601e9a3c5078131bc1f816c0) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed source file does not exist warning in @evmts/bundler - -## 0.4.1 - -### Patch Changes - -- Updated dependencies [[`2a89e13`](https://github.com/evmts/evmts-monorepo/commit/2a89e136d8dfcd997ae5ff227a96de4702dfbe19)]: - - @evmts/config@0.2.1 - -## 0.4.0 - -### Minor Changes - -- [#268](https://github.com/evmts/evmts-monorepo/pull/268) [`a37844f`](https://github.com/evmts/evmts-monorepo/commit/a37844faa425d1eaca112b9a09640b7ec7e288de) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for detecting foundry.toml and remappings as tsconfig option. Set forge: true in plugin tsconfig options or forge: '/path/to/binary/forge' for a custom forge binary - -### Patch Changes - -- Updated dependencies [[`1f6919c`](https://github.com/evmts/evmts-monorepo/commit/1f6919cfc54648499129d3642ddbb64568b1e798), [`a37844f`](https://github.com/evmts/evmts-monorepo/commit/a37844faa425d1eaca112b9a09640b7ec7e288de)]: - - @evmts/core@0.3.1 - - @evmts/config@0.2.0 - -## 0.3.0 - -### Minor Changes - -- [#259](https://github.com/evmts/evmts-monorepo/pull/259) [`7ad7463`](https://github.com/evmts/evmts-monorepo/commit/7ad746347d3e127f001abdc28fff2a10c1ffed65) Thanks [@roninjin10](https://github.com/roninjin10)! - Added bytecode to Evmts contracts - -### Patch Changes - -- [#258](https://github.com/evmts/evmts-monorepo/pull/258) [`9a9b963`](https://github.com/evmts/evmts-monorepo/commit/9a9b96327cd2f8415cf09a471a7589fa3df90394) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with handling overloaded functions - -- Updated dependencies [[`7ad7463`](https://github.com/evmts/evmts-monorepo/commit/7ad746347d3e127f001abdc28fff2a10c1ffed65), [`9a9b963`](https://github.com/evmts/evmts-monorepo/commit/9a9b96327cd2f8415cf09a471a7589fa3df90394)]: - - @evmts/core@0.3.0 - -## 0.2.0 - -### Minor Changes - -- [#252](https://github.com/evmts/evmts-monorepo/pull/252) [`4b361ea`](https://github.com/evmts/evmts-monorepo/commit/4b361ea43fb34541bee4f75c8bea9d93543b1813) Thanks [@roninjin10](https://github.com/roninjin10)! - Changed Evmts configuration to be purely from tsconfig - -### Patch Changes - -- [#251](https://github.com/evmts/evmts-monorepo/pull/251) [`52732a1`](https://github.com/evmts/evmts-monorepo/commit/52732a1bcd59faa7970e5298d1e71a61c687fd67) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed missing src folder in npm packages - -- Updated dependencies [[`52732a1`](https://github.com/evmts/evmts-monorepo/commit/52732a1bcd59faa7970e5298d1e71a61c687fd67), [`4b361ea`](https://github.com/evmts/evmts-monorepo/commit/4b361ea43fb34541bee4f75c8bea9d93543b1813)]: - - @evmts/config@0.1.0 - - @evmts/core@0.2.0 - -## 0.1.0 - -### Minor Changes - -- [#249](https://github.com/evmts/evmts-monorepo/pull/249) [`fda2523`](https://github.com/evmts/evmts-monorepo/commit/fda25237cea8a4e94fc6dc043174810ae441fb8e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added etherscan links for most major EVM networks - -### Patch Changes - -- [#247](https://github.com/evmts/evmts-monorepo/pull/247) [`f7ba6e5`](https://github.com/evmts/evmts-monorepo/commit/f7ba6e5546263d7a94baf50ca1010a2b505580e0) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed incorrect peer dependency configuation for solc - -## 0.0.3 - -### Patch Changes - -- Updated dependencies [[`ab40941`](https://github.com/evmts/evmts-monorepo/commit/ab40941221c4edacce16659ef88bdfdb90c325bb), [`058d904`](https://github.com/evmts/evmts-monorepo/commit/058d90474598ea790d4de9fd8501381a77edbcb6)]: - - @evmts/core@0.1.2 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies []: - - @evmts/core@0.1.1 - -## 0.0.1 - -### Patch Changes - -- [`2a31d64`](https://github.com/evmts/evmts-monorepo/commit/2a31d640b61a3e3eda63e0ca0442104ea27bfaec) - Init new changesets - -- Updated dependencies [[`e21f2f4`](https://github.com/evmts/evmts-monorepo/commit/e21f2f4fbdafc7d6d859f513afa319b9812826f0), [`88ec554`](https://github.com/evmts/evmts-monorepo/commit/88ec554a592d29aaba0a0d69ec61fd75118e817c), [`877c137`](https://github.com/evmts/evmts-monorepo/commit/877c137dfbe8a143099ddb0656236c35bceb2f87), [`2a31d64`](https://github.com/evmts/evmts-monorepo/commit/2a31d640b61a3e3eda63e0ca0442104ea27bfaec)]: - - @evmts/core@0.1.0 - - @evmts/config@0.0.1 - -## 0.0.1-next.0 - -### Patch Changes - -- [`2a31d64`](https://github.com/evmts/evmts-monorepo/commit/2a31d640b61a3e3eda63e0ca0442104ea27bfaec) - Init new changesets - -- Updated dependencies [[`2a31d64`](https://github.com/evmts/evmts-monorepo/commit/2a31d640b61a3e3eda63e0ca0442104ea27bfaec)]: - - @evmts/config@0.0.1-next.0 - - @evmts/core@0.0.4-next.0 - -## 0.0.2 - -### Patch Changes - -- Release working proof of concept diff --git a/resolutions/docs/README.md b/resolutions/docs/README.md index a6d6c3e3b7..1d2c3f3592 100644 --- a/resolutions/docs/README.md +++ b/resolutions/docs/README.md @@ -1,4 +1,4 @@ -@evmts/resolutions / [Exports](modules.md) +@evmts/resolutions / [Modules](modules.md)

diff --git a/resolutions/docs/interfaces/ModuleInfo.md b/resolutions/docs/interfaces/types.ModuleInfo.md similarity index 65% rename from resolutions/docs/interfaces/ModuleInfo.md rename to resolutions/docs/interfaces/types.ModuleInfo.md index c89389c2a0..40a1482813 100644 --- a/resolutions/docs/interfaces/ModuleInfo.md +++ b/resolutions/docs/interfaces/types.ModuleInfo.md @@ -1,7 +1,9 @@ -[@evmts/resolutions](../README.md) / [Exports](../modules.md) / ModuleInfo +[@evmts/resolutions](../README.md) / [Modules](../modules.md) / [types](../modules/types.md) / ModuleInfo # Interface: ModuleInfo +[types](../modules/types.md).ModuleInfo + Copied from rollup (kinda) **`See`** @@ -12,11 +14,10 @@ https://rollupjs.org/plugin-development/#this-getmoduleinfo ### Properties -- [code](ModuleInfo.md#code) -- [id](ModuleInfo.md#id) -- [importedIds](ModuleInfo.md#importedids) -- [rawCode](ModuleInfo.md#rawcode) -- [resolutions](ModuleInfo.md#resolutions) +- [code](types.ModuleInfo.md#code) +- [id](types.ModuleInfo.md#id) +- [importedIds](types.ModuleInfo.md#importedids) +- [rawCode](types.ModuleInfo.md#rawcode) ## Properties @@ -57,13 +58,3 @@ ___ #### Defined in [types.ts:19](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/types.ts#L19) - -___ - -### resolutions - -• **resolutions**: [`ModuleInfo`](ModuleInfo.md)[] - -#### Defined in - -[types.ts:22](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/types.ts#L22) diff --git a/resolutions/docs/modules.md b/resolutions/docs/modules.md index 4ffea225b6..d3e0a764a0 100644 --- a/resolutions/docs/modules.md +++ b/resolutions/docs/modules.md @@ -1,146 +1,11 @@ -[@evmts/resolutions](README.md) / Exports +[@evmts/resolutions](README.md) / Modules # @evmts/resolutions ## Table of contents -### Interfaces +### Modules -- [ModuleInfo](interfaces/ModuleInfo.md) - -### Type Aliases - -- [FileAccessObject](modules.md#fileaccessobject) -- [Logger](modules.md#logger) - -### Functions - -- [moduleFactory](modules.md#modulefactory) -- [moduleFactorySync](modules.md#modulefactorysync) -- [resolveImports](modules.md#resolveimports) - -## Type Aliases - -### FileAccessObject - -Ƭ **FileAccessObject**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :------ | -| `existsSync` | (`path`: `string`) => `boolean` | -| `readFile` | (`path`: `string`, `encoding`: `BufferEncoding`) => `Promise`<`string`\> | -| `readFileSync` | (`path`: `string`, `encoding`: `BufferEncoding`) => `string` | - -#### Defined in - -[types.ts:1](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/types.ts#L1) - -___ - -### Logger - -Ƭ **Logger**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :------ | -| `error` | (...`message`: `string`[]) => `void` | -| `info` | (...`messages`: `string`[]) => `void` | -| `log` | (...`message`: `string`[]) => `void` | -| `warn` | (...`message`: `string`[]) => `void` | - -#### Defined in - -[types.ts:7](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/types.ts#L7) - -## Functions - -### moduleFactory - -▸ **moduleFactory**(`absolutePath`, `rawCode`, `remappings`, `libs`, `fao`): `Promise`<[`ModuleInfo`](interfaces/ModuleInfo.md)\> - -Creates a module from the given module information. -This includes resolving all imports and creating a dependency graph. - -Currently it modifies the source code in place which causes the ast to not match the source code. -This complexity leaks to the typescript lsp which has to account for this -Ideally we refactor this to not need to modify source code in place -Doing this hurts our ability to control the import graph and make it use node resolution though -See foundry that is alergic to using npm -Doing it this way for now is easier but for sure a leaky abstraction - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `absolutePath` | `string` | -| `rawCode` | `string` | -| `remappings` | `Record`<`string`, `string`\> | -| `libs` | readonly `string`[] | -| `fao` | [`FileAccessObject`](modules.md#fileaccessobject) | - -#### Returns - -`Promise`<[`ModuleInfo`](interfaces/ModuleInfo.md)\> - -#### Defined in - -[importResolution/moduleFactory.js:22](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/importResolution/moduleFactory.js#L22) - -___ - -### moduleFactorySync - -▸ **moduleFactorySync**(`absolutePath`, `rawCode`, `remappings`, `libs`, `fao`): [`ModuleInfo`](interfaces/ModuleInfo.md) - -Creates a module from the given module information. -This includes resolving all imports and creating a dependency graph. - -Currently it modifies the source code in place which causes the ast to not match the source code. -This complexity leaks to the typescript lsp which has to account for this -Ideally we refactor this to not need to modify source code in place -Doing this hurts our ability to control the import graph and make it use node resolution though -See foundry that is alergic to using npm -Doing it this way for now is easier but for sure a leaky abstraction - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `absolutePath` | `string` | -| `rawCode` | `string` | -| `remappings` | `Record`<`string`, `string`\> | -| `libs` | readonly `string`[] | -| `fao` | [`FileAccessObject`](modules.md#fileaccessobject) | - -#### Returns - -[`ModuleInfo`](interfaces/ModuleInfo.md) - -#### Defined in - -[importResolution/moduleFactorySync.js:22](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/importResolution/moduleFactorySync.js#L22) - -___ - -### resolveImports - -▸ **resolveImports**(`absolutePath`, `code`): readonly `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `absolutePath` | `string` | -| `code` | `string` | - -#### Returns - -readonly `string`[] - -#### Defined in - -[importResolution/resolveImports.js:10](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/importResolution/resolveImports.js#L10) +- [moduleFactory](modules/moduleFactory.md) +- [resolveImports](modules/resolveImports.md) +- [types](modules/types.md) diff --git a/resolutions/docs/modules/moduleFactory.md b/resolutions/docs/modules/moduleFactory.md new file mode 100644 index 0000000000..6694a37a61 --- /dev/null +++ b/resolutions/docs/modules/moduleFactory.md @@ -0,0 +1,83 @@ +[@evmts/resolutions](../README.md) / [Modules](../modules.md) / moduleFactory + +# Module: moduleFactory + +## Table of contents + +### Type Aliases + +- [ModuleFactoryError](moduleFactory.md#modulefactoryerror) + +### Functions + +- [moduleFactory](moduleFactory.md#modulefactory) + +## Type Aliases + +### ModuleFactoryError + +Ƭ **ModuleFactoryError**<\>: [`resolveImports`](resolveImports.md) \| `ReadFileError` \| `CouldNotResolveImportError` + +#### Defined in + +[moduleFactory.js:8](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/moduleFactory.js#L8) + +## Functions + +### moduleFactory + +▸ **moduleFactory**(`absolutePath`, `rawCode`, `remappings`, `libs`, `fao`, `sync`): `Effect`<`never`, [`ModuleFactoryError`](moduleFactory.md#modulefactoryerror), `Map`<`string`, [`ModuleInfo`](../interfaces/types.ModuleInfo.md)\>\> + +Creates a module from the given module information. +This includes resolving all imports and creating a dependency graph. + +Currently it modifies the source code in place which causes the ast to not match the source code. +This complexity leaks to the typescript lsp which has to account for this +Ideally we refactor this to not need to modify source code in place +Doing this hurts our ability to control the import graph and make it use node resolution though +See foundry that is alergic to using npm +Doing it this way for now is easier but for sure a leaky abstraction + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `absolutePath` | `string` | | +| `rawCode` | `string` | | +| `remappings` | `Record`<`string`, `string`\> | | +| `libs` | readonly `string`[] | | +| `fao` | [`FileAccessObject`](types.md#fileaccessobject) | | +| `sync` | `boolean` | Whether to run this synchronously or not | + +#### Returns + +`Effect`<`never`, [`ModuleFactoryError`](moduleFactory.md#modulefactoryerror), `Map`<`string`, [`ModuleInfo`](../interfaces/types.ModuleInfo.md)\>\> + +**`Example`** + +```ts +const pathToSolidity = path.join(__dirname, '../Contract.sol') +const rawCode = fs.readFileSync(pathToSolidity, 'utf8'), + +const modules = runPromise( + moduleFactory( + pathToSolidity, + rawCode, + { + "remapping": "remapping/src" + }, + ["lib/path"], + { + readFileSync, + readFile, + existsSync, + }, + false + ) +) +console.log(modules.get(pathToSolidity)) // { id: '/path/to/Contract.sol', rawCode: '...', importedIds: ['/path/to/Imported.sol'], code: '...' } +``` + +#### Defined in + +[moduleFactory.js:52](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/moduleFactory.js#L52) diff --git a/resolutions/docs/modules/resolveImports.md b/resolutions/docs/modules/resolveImports.md new file mode 100644 index 0000000000..e6a42e6dab --- /dev/null +++ b/resolutions/docs/modules/resolveImports.md @@ -0,0 +1,69 @@ +[@evmts/resolutions](../README.md) / [Modules](../modules.md) / resolveImports + +# Module: resolveImports + +## Table of contents + +### Type Aliases + +- [ResolveImportsError](resolveImports.md#resolveimportserror) + +### Functions + +- [resolveImports](resolveImports.md#resolveimports) + +## Type Aliases + +### ResolveImportsError + +Ƭ **ResolveImportsError**<\>: `ImportDoesNotExistError` \| `CouldNotResolveImportError` + +#### Defined in + +[resolveImports.js:20](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/resolveImports.js#L20) + +## Functions + +### resolveImports + +▸ **resolveImports**(`absolutePath`, `code`, `remappings`, `libs`, `sync?`): `Effect`<`never`, [`ResolveImportsError`](resolveImports.md#resolveimportserror), readonly [`ResolvedImport`](types.md#resolvedimport)[]\> + +Returns a the import resolutions for the given code + +#### Parameters + +| Name | Type | Default value | +| :------ | :------ | :------ | +| `absolutePath` | `string` | `undefined` | +| `code` | `string` | `undefined` | +| `remappings` | `Record`<`string`, `string`\> | `undefined` | +| `libs` | readonly `string`[] | `undefined` | +| `sync` | `boolean` | `false` | + +#### Returns + +`Effect`<`never`, [`ResolveImportsError`](resolveImports.md#resolveimportserror), readonly [`ResolvedImport`](types.md#resolvedimport)[]\> + +**`Example`** + +```ts +const pathToSolidity = path.join(__dirname, '../Contract.sol') +const code = fs.readFileSync(pathToSolidity, 'utf8'), +const remappings = {} +const lib = [] + +const imports = runPromise( + resolveImports( + pathToSolidity, + code, + remappings, + libs, + false + ) +) +console.log(imports) // [{ updated: '/path/to/Contract.sol', absolute: '/path/to/Contract.sol', original: '../Contract.sol' }] +``` + +#### Defined in + +[resolveImports.js:50](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/resolveImports.js#L50) diff --git a/resolutions/docs/modules/types.md b/resolutions/docs/modules/types.md new file mode 100644 index 0000000000..902fa60c8d --- /dev/null +++ b/resolutions/docs/modules/types.md @@ -0,0 +1,72 @@ +[@evmts/resolutions](../README.md) / [Modules](../modules.md) / types + +# Module: types + +## Table of contents + +### Interfaces + +- [ModuleInfo](../interfaces/types.ModuleInfo.md) + +### Type Aliases + +- [FileAccessObject](types.md#fileaccessobject) +- [Logger](types.md#logger) +- [ResolvedImport](types.md#resolvedimport) + +## Type Aliases + +### FileAccessObject + +Ƭ **FileAccessObject**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `existsSync` | (`path`: `string`) => `boolean` | +| `readFile` | (`path`: `string`, `encoding`: `BufferEncoding`) => `Promise`<`string`\> | +| `readFileSync` | (`path`: `string`, `encoding`: `BufferEncoding`) => `string` | + +#### Defined in + +[types.ts:1](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/types.ts#L1) + +___ + +### Logger + +Ƭ **Logger**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `error` | (...`message`: `string`[]) => `void` | +| `info` | (...`messages`: `string`[]) => `void` | +| `log` | (...`message`: `string`[]) => `void` | +| `warn` | (...`message`: `string`[]) => `void` | + +#### Defined in + +[types.ts:7](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/types.ts#L7) + +___ + +### ResolvedImport + +Ƭ **ResolvedImport**: `Object` + +The result of the resolution of an import + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `absolute` | `string` | +| `original` | `string` | +| `updated` | `string` | + +#### Defined in + +[types.ts:27](https://github.com/evmts/evmts-monorepo/blob/main/resolutions/src/types.ts#L27) diff --git a/resolutions/package.json b/resolutions/package.json index 53ee064600..97568c357c 100644 --- a/resolutions/package.json +++ b/resolutions/package.json @@ -50,17 +50,18 @@ "generate:docs": "bun run typedoc", "lint": "rome check . --apply-unsafe", "lint:check": "rome check . --verbose", - "test": "vitest --coverage", - "test:coverage": "vitest run --coverage", - "test:run": "vitest run", - "test:ui": "vitest --ui" + "test": "bun run vitest --coverage", + "test:coverage": "bun run vitest run --coverage", + "test:run": "bun run vitest run", + "test:ui": "bun run vitest --ui" }, "dependencies": { "@evmts/config": "workspace:^", + "@evmts/effect": "workspace:^", "@evmts/tsconfig": "workspace:^", "@types/node": "^20.7.2", "@types/resolve": "^1.20.3", - "effect": "2.0.0-next.50", + "effect": "^2.0.0-next.52", "glob": "^10.3.10", "resolve": "^1.22.6", "solidity-ast": "^0.4.52", diff --git a/resolutions/src/__snapshots__/moduleFactory.spec.ts.snap b/resolutions/src/__snapshots__/moduleFactory.spec.ts.snap new file mode 100644 index 0000000000..8c178adf80 --- /dev/null +++ b/resolutions/src/__snapshots__/moduleFactory.spec.ts.snap @@ -0,0 +1,81 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`moduleFactory > should resolve correctly for case $s 1`] = `{}`; + +exports[`moduleFactory > should resolve correctly for case $s 2`] = ` +"{ + \\"id\\": \\"/evmts-monorepo/resolutions/src/fixtures/basic/Contract.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\" +}" +`; + +exports[`moduleFactory > should resolve correctly for case $s 3`] = `{}`; + +exports[`moduleFactory > should resolve correctly for case $s 4`] = ` +"{ + \\"id\\": \\"/evmts-monorepo/resolutions/src/fixtures/basic/Contract.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\" +}" +`; + +exports[`moduleFactory > should resolve correctly for case $s 5`] = `{}`; + +exports[`moduleFactory > should resolve correctly for case $s 6`] = ` +"{ + \\"id\\": \\"/evmts-monorepo/resolutions/src/fixtures/withlib/Contract.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.0;\\\\n\\\\nimport {BaseContract} from \\\\\\"mylib/BaseContract.sol\\\\\\"\\\\n\\\\n// Derived contract that inherits from BaseContract\\\\ncontract DerivedContract is BaseContract {\\\\n\\\\n // This variable is additional to the one in the BaseContract\\\\n string public name;\\\\n\\\\n constructor(uint256 _value, string memory _name) BaseContract(_value) {\\\\n name = _name;\\\\n }\\\\n\\\\n function setName(string memory _name) public {\\\\n name = _name;\\\\n }\\\\n}\\\\n\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/resolutions/src/fixtures/withlib/lib/mylib/BaseContract.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.0;\\\\n\\\\nimport {BaseContract} from \\\\\\"/evmts-monorepo/resolutions/src/fixtures/withlib/lib/mylib/BaseContract.sol\\\\\\"\\\\n\\\\n// Derived contract that inherits from BaseContract\\\\ncontract DerivedContract is BaseContract {\\\\n\\\\n // This variable is additional to the one in the BaseContract\\\\n string public name;\\\\n\\\\n constructor(uint256 _value, string memory _name) BaseContract(_value) {\\\\n name = _name;\\\\n }\\\\n\\\\n function setName(string memory _name) public {\\\\n name = _name;\\\\n }\\\\n}\\\\n\\\\n\\" +}" +`; + +exports[`moduleFactory > should resolve correctly for case $s 7`] = `{}`; + +exports[`moduleFactory > should resolve correctly for case $s 8`] = ` +"{ + \\"id\\": \\"/evmts-monorepo/resolutions/src/fixtures/withlib/Contract.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.0;\\\\n\\\\nimport {BaseContract} from \\\\\\"mylib/BaseContract.sol\\\\\\"\\\\n\\\\n// Derived contract that inherits from BaseContract\\\\ncontract DerivedContract is BaseContract {\\\\n\\\\n // This variable is additional to the one in the BaseContract\\\\n string public name;\\\\n\\\\n constructor(uint256 _value, string memory _name) BaseContract(_value) {\\\\n name = _name;\\\\n }\\\\n\\\\n function setName(string memory _name) public {\\\\n name = _name;\\\\n }\\\\n}\\\\n\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/resolutions/src/fixtures/withlib/lib/mylib/BaseContract.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.0;\\\\n\\\\nimport {BaseContract} from \\\\\\"/evmts-monorepo/resolutions/src/fixtures/withlib/lib/mylib/BaseContract.sol\\\\\\"\\\\n\\\\n// Derived contract that inherits from BaseContract\\\\ncontract DerivedContract is BaseContract {\\\\n\\\\n // This variable is additional to the one in the BaseContract\\\\n string public name;\\\\n\\\\n constructor(uint256 _value, string memory _name) BaseContract(_value) {\\\\n name = _name;\\\\n }\\\\n\\\\n function setName(string memory _name) public {\\\\n name = _name;\\\\n }\\\\n}\\\\n\\\\n\\" +}" +`; + +exports[`moduleFactory > should resolve correctly for case $s 9`] = `{}`; + +exports[`moduleFactory > should resolve correctly for case $s 10`] = ` +"{ + \\"id\\": \\"/evmts-monorepo/resolutions/src/fixtures/withremappings/Contract.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.0;\\\\n\\\\nimport {BaseContract} from \\\\\\"mylib/BaseContract.sol\\\\\\"\\\\n\\\\n// Derived contract that inherits from BaseContract\\\\ncontract DerivedContract is BaseContract {\\\\n\\\\n // This variable is additional to the one in the BaseContract\\\\n string public name;\\\\n\\\\n constructor(uint256 _value, string memory _name) BaseContract(_value) {\\\\n name = _name;\\\\n }\\\\n\\\\n function setName(string memory _name) public {\\\\n name = _name;\\\\n }\\\\n}\\\\n\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/resolutions/src/fixtures/withremappings/lib/mylib/BaseContract.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.0;\\\\n\\\\nimport {BaseContract} from \\\\\\"/evmts-monorepo/resolutions/src/fixtures/withremappings/lib/mylib/BaseContract.sol\\\\\\"\\\\n\\\\n// Derived contract that inherits from BaseContract\\\\ncontract DerivedContract is BaseContract {\\\\n\\\\n // This variable is additional to the one in the BaseContract\\\\n string public name;\\\\n\\\\n constructor(uint256 _value, string memory _name) BaseContract(_value) {\\\\n name = _name;\\\\n }\\\\n\\\\n function setName(string memory _name) public {\\\\n name = _name;\\\\n }\\\\n}\\\\n\\\\n\\" +}" +`; + +exports[`moduleFactory > should resolve correctly for case $s 11`] = `{}`; + +exports[`moduleFactory > should resolve correctly for case $s 12`] = ` +"{ + \\"id\\": \\"/evmts-monorepo/resolutions/src/fixtures/withremappings/Contract.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.0;\\\\n\\\\nimport {BaseContract} from \\\\\\"mylib/BaseContract.sol\\\\\\"\\\\n\\\\n// Derived contract that inherits from BaseContract\\\\ncontract DerivedContract is BaseContract {\\\\n\\\\n // This variable is additional to the one in the BaseContract\\\\n string public name;\\\\n\\\\n constructor(uint256 _value, string memory _name) BaseContract(_value) {\\\\n name = _name;\\\\n }\\\\n\\\\n function setName(string memory _name) public {\\\\n name = _name;\\\\n }\\\\n}\\\\n\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/resolutions/src/fixtures/withremappings/lib/mylib/BaseContract.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.0;\\\\n\\\\nimport {BaseContract} from \\\\\\"/evmts-monorepo/resolutions/src/fixtures/withremappings/lib/mylib/BaseContract.sol\\\\\\"\\\\n\\\\n// Derived contract that inherits from BaseContract\\\\ncontract DerivedContract is BaseContract {\\\\n\\\\n // This variable is additional to the one in the BaseContract\\\\n string public name;\\\\n\\\\n constructor(uint256 _value, string memory _name) BaseContract(_value) {\\\\n name = _name;\\\\n }\\\\n\\\\n function setName(string memory _name) public {\\\\n name = _name;\\\\n }\\\\n}\\\\n\\\\n\\" +}" +`; diff --git a/resolutions/src/fixtures/basic/Contract.sol b/resolutions/src/fixtures/basic/Contract.sol new file mode 100644 index 0000000000..c43081c96b --- /dev/null +++ b/resolutions/src/fixtures/basic/Contract.sol @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.16; + +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +// import "this shouldn't be imorted"; + +/// @author Wagmi +/// @author EVMts +/// @title WagmiMintExample +/// @notice An example token original from the wagmi template +contract WagmiMintExample is ERC721 { + uint256 public totalSupply; + +// import "@openzeppelin/contracts/utils/Base64.sol"; + uint256 private nextTokenId = 0; + + constructor() ERC721("wagmi", "WAGMI") {} + + /// @notice Allows an address to mint + function mint() external { + uint256 tokenId = nextTokenId; + while (_exists(tokenId)) { + unchecked { + tokenId++; + } + } + _safeMint(msg.sender, tokenId); + unchecked { + totalSupply++; + nextTokenId = tokenId + 1; + } + } + + /// @notice Returns the token URI for a given token by ID + /// @param tokenId Token ID to mint. + function mint(uint256 tokenId) external { + require(!_exists(tokenId), "Token ID is taken"); + _safeMint(msg.sender, tokenId); + unchecked { + totalSupply++; + } + } + + /// @notice Returns the token URI for a given token by ID + /// @param tokenId Token ID to query. + /// @return uri_ Token URI for the given token by ID. + function tokenURI( + uint256 tokenId + ) public pure override returns (string memory) { + uint256 foregroundHue = uint256( + keccak256(abi.encodePacked("foreground", tokenId)) + ) % 360; + uint256 backgroundHue = uint256( + keccak256(abi.encodePacked("background", tokenId)) + ) % 360; + string memory json = Base64.encode( + bytes( + abi.encodePacked( + '{"name": "wagmi #', + toString(tokenId), + '", "image": "data:image/svg+xml;base64,', + Base64.encode( + bytes( + abi.encodePacked( + '' + ) + ) + ), + '"}' + ) + ) + ); + string memory output = string( + abi.encodePacked("data:application/json;base64,", json) + ); + return output; + } + + function toString(uint256 value) internal pure returns (string memory) { + // Inspired by OraclizeAPI's implementation - MIT licence + // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol + + if (value == 0) { + return "0"; + } + uint256 temp = value; + uint256 digits; + while (temp != 0) { + digits++; + temp /= 10; + } + bytes memory buffer = new bytes(digits); + while (value != 0) { + digits -= 1; + buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); + value /= 10; + } + return string(buffer); + } +} diff --git a/resolutions/src/fixtures/withlib/Contract.sol b/resolutions/src/fixtures/withlib/Contract.sol new file mode 100644 index 0000000000..0b98ae6951 --- /dev/null +++ b/resolutions/src/fixtures/withlib/Contract.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.0; + +import {BaseContract} from "mylib/BaseContract.sol" + +// Derived contract that inherits from BaseContract +contract DerivedContract is BaseContract { + + // This variable is additional to the one in the BaseContract + string public name; + + constructor(uint256 _value, string memory _name) BaseContract(_value) { + name = _name; + } + + function setName(string memory _name) public { + name = _name; + } +} + diff --git a/resolutions/src/fixtures/withlib/lib/mylib/BaseContract.sol b/resolutions/src/fixtures/withlib/lib/mylib/BaseContract.sol new file mode 100644 index 0000000000..01c2238bde --- /dev/null +++ b/resolutions/src/fixtures/withlib/lib/mylib/BaseContract.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.0; + +// Base contract +contract BaseContract { + uint256 public value; + + constructor(uint256 _value) { + value = _value; + } + + function setValue(uint256 _value) public { + value = _value; + } +} diff --git a/resolutions/src/fixtures/withremappings/Contract.sol b/resolutions/src/fixtures/withremappings/Contract.sol new file mode 100644 index 0000000000..0b98ae6951 --- /dev/null +++ b/resolutions/src/fixtures/withremappings/Contract.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.0; + +import {BaseContract} from "mylib/BaseContract.sol" + +// Derived contract that inherits from BaseContract +contract DerivedContract is BaseContract { + + // This variable is additional to the one in the BaseContract + string public name; + + constructor(uint256 _value, string memory _name) BaseContract(_value) { + name = _name; + } + + function setName(string memory _name) public { + name = _name; + } +} + diff --git a/resolutions/src/fixtures/withremappings/lib/mylib/BaseContract.sol b/resolutions/src/fixtures/withremappings/lib/mylib/BaseContract.sol new file mode 100644 index 0000000000..01c2238bde --- /dev/null +++ b/resolutions/src/fixtures/withremappings/lib/mylib/BaseContract.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.0; + +// Base contract +contract BaseContract { + uint256 public value; + + constructor(uint256 _value) { + value = _value; + } + + function setValue(uint256 _value) public { + value = _value; + } +} diff --git a/resolutions/src/fixtures/withremappings/remappings.json b/resolutions/src/fixtures/withremappings/remappings.json new file mode 100644 index 0000000000..bba5bb826a --- /dev/null +++ b/resolutions/src/fixtures/withremappings/remappings.json @@ -0,0 +1,3 @@ +{ + "bylib": "lib/mylib" +} diff --git a/resolutions/src/importResolution/README.md b/resolutions/src/importResolution/README.md deleted file mode 100644 index 127b5063dd..0000000000 --- a/resolutions/src/importResolution/README.md +++ /dev/null @@ -1,28 +0,0 @@ -## @evmts/config/src/importResolution - -Private internal code to handle import resolution - -EVMts resolves the module graph itself before passing off the modules to solc. This is to keep the module resolution fully `hackable` internally. - -Module resolution is done iteratively to avoid stack to deep errors - -## [moduleFactory](./moduleFactory.js) -## [moduleFactorySync](./moduleFactorySync.js) - -A moduleFactory takes props -- absolutePath - absolutePath of the solidity module -- rawCode - a string or buffer of the solidity source code -- remappings - any import remappings -- libs - any lib to resolve to (note node_module handled by default) - -It then builds a recursive structure of modules to be used by the [compiler](../compiler/) - -## [resolveImports](./resolveImports.js) - -A simple function that resolves imports. It expects remappings to already be applied - -## Warning about source maps - -Because of the way we handle remappings and import resolutions the solc input doesn't match the source code. This needs to be taken into account if using solc for source maps like in [@evmts/ts-plugin](../../ts-plugin/) - -This will get handled internally in future diff --git a/resolutions/src/importResolution/index.js b/resolutions/src/importResolution/index.js deleted file mode 100644 index 4980586337..0000000000 --- a/resolutions/src/importResolution/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { moduleFactory } from './moduleFactory.js' -export { moduleFactorySync } from './moduleFactorySync.js' diff --git a/resolutions/src/importResolution/moduleFactory.js b/resolutions/src/importResolution/moduleFactory.js deleted file mode 100644 index aea657a65f..0000000000 --- a/resolutions/src/importResolution/moduleFactory.js +++ /dev/null @@ -1,105 +0,0 @@ -import { invariant } from '../utils/invariant.js' -import { resolveImportPath } from './resolveImportPath.js' -import { resolveImports } from './resolveImports.js' - -/** - * Creates a module from the given module information. - * This includes resolving all imports and creating a dependency graph. - * - * Currently it modifies the source code in place which causes the ast to not match the source code. - * This complexity leaks to the typescript lsp which has to account for this - * Ideally we refactor this to not need to modify source code in place - * Doing this hurts our ability to control the import graph and make it use node resolution though - * See foundry that is alergic to using npm - * Doing it this way for now is easier but for sure a leaky abstraction - * @param {string} absolutePath - * @param {string} rawCode - * @param {Record} remappings - * @param {ReadonlyArray} libs - * @param {import("../types.js").FileAccessObject} fao - * @returns {Promise} - */ -export const moduleFactory = async ( - absolutePath, - rawCode, - remappings, - libs, - fao, -) => { - const stack = [{ absolutePath, rawCode }] - const modules = - /** @type{Map} */ - (new Map()) - - while (stack.length) { - const nextItem = stack.pop() - invariant(nextItem, 'Module should exist') - const { absolutePath, rawCode } = nextItem - - if (modules.has(absolutePath)) continue - - const importedIds = resolveImports(absolutePath, rawCode).map((paths) => - resolveImportPath(absolutePath, paths, remappings, libs), - ) - - const importRegEx = /(^\s?import\s+[^'"]*['"])(.*)(['"]\s*)/gm - const code = importedIds.reduce((code, importedId) => { - console.log({ importedId }) - const depImportAbsolutePath = resolveImportPath( - absolutePath, - importedId, - remappings, - libs, - ) - return code.replace(importRegEx, (match, p1, p2, p3) => { - const resolvedPath = resolveImportPath( - absolutePath, - p2, - remappings, - libs, - ) - if (resolvedPath === importedId) { - return `${p1}${depImportAbsolutePath}${p3}` - } else { - return match - } - }) - }, rawCode) - - modules.set(absolutePath, { - id: absolutePath, - rawCode, - code, - importedIds, - resolutions: [], - }) - - for (const importedId of importedIds) { - const depImportAbsolutePath = resolveImportPath( - absolutePath, - importedId, - remappings, - libs, - ) - const depRawCode = await fao.readFile(depImportAbsolutePath, 'utf8') - - stack.push({ absolutePath: depImportAbsolutePath, rawCode: depRawCode }) - } - } - - for (const [_, m] of modules.entries()) { - const { importedIds } = m - m.resolutions = [] - importedIds.forEach((importedId) => { - const resolution = modules.get(importedId) - invariant(resolution, `resolution for ${importedId} not found`) - m.resolutions.push(resolution) - }) - } - - const out = modules.get(absolutePath) - if (!out) { - throw new Error('No module found') - } - return out -} diff --git a/resolutions/src/importResolution/moduleFactory.spec.ts b/resolutions/src/importResolution/moduleFactory.spec.ts deleted file mode 100644 index a21d1ae567..0000000000 --- a/resolutions/src/importResolution/moduleFactory.spec.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { FileAccessObject, ModuleInfo } from '../types.js' -import { moduleFactory } from './moduleFactory.js' -import { - type Mock, - afterEach, - beforeEach, - describe, - expect, - it, - vi, -} from 'vitest' - -const fao: FileAccessObject = { - existsSync: vi.fn(), - readFile: vi.fn(), - readFileSync: vi.fn(), -} - -vi.mock('fs', () => ({ - readFileSync: vi.fn(), -})) -const mockReadFileSync = fao.readFileSync as Mock - -describe('moduleFactory', () => { - const remappings = { - 'key1/': '/path/to/key1', - 'key2/': '/path/to/key2', - } as const - - const testModuleCode = `import "key1/somefile" -import "./localfile" -import "./anotherLocalFile" -import "othermodule" -import "otherOthermodule"` - - const absolutePath = '/project/src/testModule.sol' - - const localfileMockContent = 'contract LocalFile {}' - const key1MockContent = 'contract Key1 {}' - const othermoduleMockContent = 'contract OtherModule {}' - - let testModule: ModuleInfo - - beforeEach(async () => { - mockReadFileSync - .mockReturnValueOnce(localfileMockContent) - .mockReturnValueOnce(key1MockContent) - .mockReturnValueOnce(othermoduleMockContent) - - testModule = await moduleFactory( - absolutePath, - testModuleCode, - remappings, - ['../node_modules'], - fao, - ) - }) - - it('should correctly resolve import paths', () => { - expect(testModule.importedIds).toMatchInlineSnapshot(` - [ - "/path/to/key1somefile", - "/project/src/localfile", - "/project/src/anotherLocalFile", - "othermodule", - "otherOthermodule", - ] - `) - }) - - it('should correctly replace import statements in code', () => { - expect(testModule.code).toMatchInlineSnapshot(` - "import \\"/path/to/key1somefile\\" - import \\"/project/src/localfile\\" - import \\"/project/src/anotherLocalFile\\" - import \\"othermodule\\" - import \\"otherOthermodule\\"" - `) - }) - - it('should correctly resolve module dependencies', () => { - expect(testModule.resolutions.map((r) => r.id)).toMatchInlineSnapshot(` - [ - "/path/to/key1somefile", - "/project/src/localfile", - "/project/src/anotherLocalFile", - "othermodule", - "otherOthermodule", - ] - `) - }) - - it('should not replace import statements if resolveImportPath returns the original import', async () => { - // This import path does not start with a remapping key, is not local, and cannot be resolved by Node - const testModuleCodeUnresolvedImport = `import "unresolved/import"` - const unresolvedImportMockContent = 'contract UnresolvedImport {}' - - mockReadFileSync - .mockReturnValueOnce(unresolvedImportMockContent) - .mockReturnValueOnce(key1MockContent) - .mockReturnValueOnce(othermoduleMockContent) - - const testModuleUnresolvedImport = await moduleFactory( - absolutePath, - testModuleCodeUnresolvedImport, - remappings, - ['../node_modules'], - fao, - ) - - // Update the expected snapshot to reflect the change. - // The snapshot string might need to be adjusted based on the actual output of your function. - expect(testModuleUnresolvedImport.code).toMatchInlineSnapshot(` - "import \\"unresolved/import\\"" - `) - }) - - afterEach(() => { - vi.clearAllMocks() - }) -}) diff --git a/resolutions/src/importResolution/moduleFactorySync.js b/resolutions/src/importResolution/moduleFactorySync.js deleted file mode 100644 index 552426adb4..0000000000 --- a/resolutions/src/importResolution/moduleFactorySync.js +++ /dev/null @@ -1,102 +0,0 @@ -import { invariant } from '../utils/invariant.js' -import { resolveImportPath } from './resolveImportPath.js' -import { resolveImports } from './resolveImports.js' - -/** - * Creates a module from the given module information. - * This includes resolving all imports and creating a dependency graph. - * - * Currently it modifies the source code in place which causes the ast to not match the source code. - * This complexity leaks to the typescript lsp which has to account for this - * Ideally we refactor this to not need to modify source code in place - * Doing this hurts our ability to control the import graph and make it use node resolution though - * See foundry that is alergic to using npm - * Doing it this way for now is easier but for sure a leaky abstraction - * @param {string} absolutePath - * @param {string} rawCode - * @param {Record} remappings - * @param {ReadonlyArray} libs - * @param {import("../types.js").FileAccessObject} fao - * @returns {import("../types.js").ModuleInfo} - */ -export const moduleFactorySync = ( - absolutePath, - rawCode, - remappings, - libs, - fao, -) => { - const stack = [{ absolutePath, rawCode }] - const modules = /** @type {Map} */ ( - new Map() - ) - - while (stack.length) { - const nextItem = stack.pop() - invariant(nextItem, 'Module should exist') - const { absolutePath, rawCode } = nextItem - - if (modules.has(absolutePath)) continue - - const importedIds = resolveImports(absolutePath, rawCode).map((paths) => - resolveImportPath(absolutePath, paths, remappings, libs), - ) - - const importRegEx = /(^\s?import\s+[^'"]*['"])(.*)(['"]\s*)/gm - const code = importedIds.reduce((code, importedId) => { - const depImportAbsolutePath = resolveImportPath( - absolutePath, - importedId, - remappings, - libs, - ) - return code.replace(importRegEx, (match, p1, p2, p3) => { - const resolvedPath = resolveImportPath( - absolutePath, - p2, - remappings, - libs, - ) - if (resolvedPath === importedId) { - return `${p1}${depImportAbsolutePath}${p3}` - } else { - return match - } - }) - }, rawCode) - - modules.set(absolutePath, { - id: absolutePath, - rawCode, - code, - importedIds, - resolutions: [], - }) - - importedIds.forEach((importedId) => { - const depImportAbsolutePath = resolveImportPath( - absolutePath, - importedId, - remappings, - libs, - ) - const depRawCode = fao.readFileSync(depImportAbsolutePath, 'utf8') - - stack.push({ absolutePath: depImportAbsolutePath, rawCode: depRawCode }) - }) - } - - for (const [_, m] of modules.entries()) { - const { importedIds } = m - m.resolutions = [] - importedIds.forEach((importedId) => { - const resolution = modules.get(importedId) - invariant(resolution, `resolution for ${importedId} not found`) - m.resolutions.push(resolution) - }) - } - - return /** @type import("../types.js").ModuleInfo */ ( - modules.get(absolutePath) - ) -} diff --git a/resolutions/src/importResolution/moduleFactorySync.spec.ts b/resolutions/src/importResolution/moduleFactorySync.spec.ts deleted file mode 100644 index 19d953f0fc..0000000000 --- a/resolutions/src/importResolution/moduleFactorySync.spec.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { FileAccessObject, ModuleInfo } from '../types.js' -import { moduleFactorySync } from './moduleFactorySync.js' -import { - type Mock, - afterEach, - beforeEach, - describe, - expect, - it, - vi, -} from 'vitest' - -const fao: FileAccessObject = { - existsSync: vi.fn(), - readFile: vi.fn(), - readFileSync: vi.fn(), -} - -vi.mock('fs', () => ({ - readFileSync: vi.fn(), -})) -const mockReadFileSync = fao.readFileSync as Mock - -describe(moduleFactorySync.name, () => { - const remappings = { - 'key1/': '/path/to/key1', - 'key2/': '/path/to/key2', - } as const - - const testModuleCode = `import "key1/somefile" -import "./localfile" -import "./anotherLocalFile" -import "othermodule" -import "otherOthermodule"` - - const absolutePath = '/project/src/testModule.sol' - - const localfileMockContent = 'import "othermodule"\ncontract LocalFile {}' - const key1MockContent = 'contract Key1 {}' - const othermoduleMockContent = 'contract OtherModule {}' - - let testModule: ModuleInfo - - beforeEach(() => { - mockReadFileSync - .mockReturnValueOnce(localfileMockContent) - .mockReturnValueOnce(key1MockContent) - .mockReturnValueOnce(othermoduleMockContent) - - testModule = moduleFactorySync( - absolutePath, - testModuleCode, - remappings, - ['../node_modules'], - fao, - ) - }) - - it('should correctly resolve import paths', () => { - expect(testModule.importedIds).toMatchInlineSnapshot(` - [ - "/path/to/key1somefile", - "/project/src/localfile", - "/project/src/anotherLocalFile", - "othermodule", - "otherOthermodule", - ] - `) - }) - - it('should correctly replace import statements in code', () => { - expect(testModule.code).toMatchInlineSnapshot(` - "import \\"/path/to/key1somefile\\" - import \\"/project/src/localfile\\" - import \\"/project/src/anotherLocalFile\\" - import \\"othermodule\\" - import \\"otherOthermodule\\"" - `) - }) - - it('should correctly resolve module dependencies', () => { - expect(testModule.resolutions.map((r) => r.id)).toMatchInlineSnapshot(` - [ - "/path/to/key1somefile", - "/project/src/localfile", - "/project/src/anotherLocalFile", - "othermodule", - "otherOthermodule", - ] - `) - }) - - it('should not replace import statements if resolveImportPath returns the original import', () => { - // This import path does not start with a remapping key, is not local, and cannot be resolved by Node - const testModuleCodeUnresolvedImport = `import "unresolved/import"` - const unresolvedImportMockContent = 'contract UnresolvedImport {}' - - mockReadFileSync - .mockReturnValueOnce(unresolvedImportMockContent) - .mockReturnValueOnce(key1MockContent) - .mockReturnValueOnce(othermoduleMockContent) - - const testModuleUnresolvedImport = moduleFactorySync( - absolutePath, - testModuleCodeUnresolvedImport, - remappings, - ['../node_modules'], - fao, - ) - - // Update the expected snapshot to reflect the change. - // The snapshot string might need to be adjusted based on the actual output of your function. - expect(testModuleUnresolvedImport.code).toMatchInlineSnapshot(` - "import \\"unresolved/import\\"" - `) - }) - - afterEach(() => { - vi.clearAllMocks() - }) -}) diff --git a/resolutions/src/importResolution/resolveImportPath.js b/resolutions/src/importResolution/resolveImportPath.js deleted file mode 100644 index d30b231e1d..0000000000 --- a/resolutions/src/importResolution/resolveImportPath.js +++ /dev/null @@ -1,44 +0,0 @@ -import { formatPath } from '../utils/formatPath.js' -import { isImportLocal } from '../utils/isImportLocal.js' -import * as path from 'path' -import resolve from 'resolve' - -/** - * Resolve import statement to absolute file path - * - * @param {string} importPath import statement in *.sol contract - * @param {string} absolutePath absolute path to the contract - * @param {Record} remappings remappings from the config - * @param {ReadonlyArray} libs libs from the config - * @returns {string} absolute path to the imported file - */ -export const resolveImportPath = ( - absolutePath, - importPath, - remappings, - libs, -) => { - // Foundry remappings - for (const [key, value] of Object.entries(remappings)) { - if (importPath.startsWith(key)) { - return formatPath(path.resolve(importPath.replace(key, value))) - } - } - // Local import "./LocalContract.sol" - if (isImportLocal(importPath)) { - return formatPath(path.resolve(path.dirname(absolutePath), importPath)) - } /*else if (project !== undefined && project !== null) {*/ - // try resolving with node resolution - try { - return resolve.sync(importPath, { - basedir: path.dirname(absolutePath), - paths: libs, - }) - } catch (e) { - console.error( - `Could not resolve import ${importPath} from ${absolutePath}`, - e, - ) - return importPath - } -} diff --git a/resolutions/src/importResolution/resolveImportPath.spec.ts b/resolutions/src/importResolution/resolveImportPath.spec.ts deleted file mode 100644 index d9f40f32f6..0000000000 --- a/resolutions/src/importResolution/resolveImportPath.spec.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { resolveImportPath } from './resolveImportPath.js' -import { describe, expect, it } from 'vitest' - -describe('resolveImportPath', () => { - it('should correctly resolve paths using Foundry remappings', () => { - const remappings = { - 'key1/': '/path/to/key1', - 'key2/': '/path/to/key2', - } as const - - const importPath = resolveImportPath( - '/project/src', - 'key1/somefile', - remappings, - [], - ) - expect(importPath).toMatchInlineSnapshot('"/path/to/key1somefile"') - - const importPath2 = resolveImportPath( - '/project/src', - 'key2/somefile', - remappings, - [], - ) - expect(importPath2).toMatchInlineSnapshot('"/path/to/key2somefile"') - }) - - it('should correctly resolve local imports', () => { - const importPath = resolveImportPath('/project/src', './somefile', {}, []) - expect(importPath).toMatchInlineSnapshot('"/project/somefile"') - }) - - it('should correctly resolve with node resolution', () => { - const importPath = resolveImportPath('/project/src', 'somemodule', {}, [ - '../node_modules', - ]) - // Assuming somemodule can be found in ../node_modules/somemodule - expect(importPath).toMatchInlineSnapshot('"somemodule"') - }) - - it('should return the import path itself if not able to resolve', () => { - const importPath = resolveImportPath('/project/src', 'somemodule', {}, []) - // Assuming somemodule can't be found in the base directory - expect(importPath).toMatchInlineSnapshot('"somemodule"') - }) -}) diff --git a/resolutions/src/importResolution/resolveImports.js b/resolutions/src/importResolution/resolveImports.js deleted file mode 100644 index d9fa3a1f0b..0000000000 --- a/resolutions/src/importResolution/resolveImports.js +++ /dev/null @@ -1,30 +0,0 @@ -import { formatPath } from '../utils/formatPath.js' -import { isImportLocal } from '../utils/isImportLocal.js' -import * as path from 'path' - -/** - * @param {string} absolutePath - * @param {string} code - * @returns {ReadonlyArray} - */ -export const resolveImports = (absolutePath, code) => { - const imports = /** @type Array */ ([]) - const importRegEx = /^\s?import\s+[^'"]*['"](.*)['"]\s*/gm - let foundImport = importRegEx.exec(code) - while (foundImport != null) { - const importPath = foundImport[1] - if (!importPath) { - throw new Error('expected import path to exist') - } - if (isImportLocal(importPath)) { - const importFullPath = formatPath( - path.resolve(path.dirname(absolutePath), importPath), - ) - imports.push(importFullPath) - } else { - imports.push(importPath) - } - foundImport = importRegEx.exec(code) - } - return imports -} diff --git a/resolutions/src/importResolution/resolveImports.spec.ts b/resolutions/src/importResolution/resolveImports.spec.ts deleted file mode 100644 index 1be45e678d..0000000000 --- a/resolutions/src/importResolution/resolveImports.spec.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { resolveImports } from './resolveImports.js' -import { describe, expect, it } from 'vitest' - -describe('resolveImports', () => { - it('should correctly resolve local imports', () => { - const code = `import { Something } from "./something"` - const imports = resolveImports('/project/src', code) - - expect(imports).toMatchInlineSnapshot(` - [ - "/project/something", - ] - `) - }) - - it('should correctly resolve non-local imports', () => { - const code = `import { Something } from "some-module"` - const imports = resolveImports('/project/src', code) - - expect(imports).toMatchInlineSnapshot(` - [ - "some-module", - ] - `) - }) - - it('should correctly handle multiple imports', () => { - const code = ` -import { Something } from "./something" -import { Other } from "other-module" - ` - const imports = resolveImports('/project/src', code) - - expect(imports).toMatchInlineSnapshot(` - [ - "/project/something", - "other-module", - ] - `) - }) - - it('should return an empty array if there are no imports', () => { - const code = 'const x = 10' - const imports = resolveImports('/project/src', code) - - expect(imports).toMatchInlineSnapshot('[]') - }) - - it('should throw an error if import path does not exist', () => { - const code = 'import { Something } from ""' - expect(() => - resolveImports('/project/src', code), - ).toThrowErrorMatchingInlineSnapshot('"expected import path to exist"') - }) - - it('should correctly resolve import nothing statements', () => { - const code = 'import "./something"' - const imports = resolveImports('/project/src', code) - expect(imports).toMatchInlineSnapshot(` - [ - "/project/something", - ] - `) - }) - - it('should ignore lines that resemble import statements', () => { - const code = 'console.log("import { Something } from \\"./something\\"")' - const imports = resolveImports('/project/src', code) - expect(imports).toMatchInlineSnapshot('[]') - }) -}) diff --git a/resolutions/src/index.js b/resolutions/src/index.js index 3dbed9487c..79d73565ae 100644 --- a/resolutions/src/index.js +++ b/resolutions/src/index.js @@ -3,7 +3,13 @@ * @typedef {import('./types.js').FileAccessObject} FileAccessObject * @typedef {import('./types.js').Logger} Logger * @typedef {import('./types.js').ModuleInfo} ModuleInfo + * + * ./moduleFactory.js + * @typedef {import('./moduleFactory.js').ModuleFactoryError} ModuleFactoryError + * + * ./resolveImports.js + * @typedef {import('./resolveImports.js').ResolveImportsError} ResolveImportsError */ -export { moduleFactory } from './importResolution/moduleFactory.js' -export { moduleFactorySync } from './importResolution/moduleFactorySync.js' -export { resolveImports } from './importResolution/resolveImports.js' + +export { moduleFactory } from './moduleFactory.js' +export { resolveImports } from './resolveImports.js' diff --git a/resolutions/src/moduleFactory.js b/resolutions/src/moduleFactory.js new file mode 100644 index 0000000000..d8a64dc0ad --- /dev/null +++ b/resolutions/src/moduleFactory.js @@ -0,0 +1,94 @@ +import { resolveImports } from './resolveImports.js' +import { invariant } from './utils/invariant.js' +import { safeFao } from './utils/safeFao.js' +import { updateImportPaths } from './utils/updateImportPath.js' +import { gen } from 'effect/Effect' + +/** + * @typedef {import("./resolveImports.js").ResolveImportsError | import("./utils/safeFao.js").ReadFileError | import("./utils/resolveImportPath.js").CouldNotResolveImportError} ModuleFactoryError + */ + +/** + * Creates a module from the given module information. + * This includes resolving all imports and creating a dependency graph. + * + * Currently it modifies the source code in place which causes the ast to not match the source code. + * This complexity leaks to the typescript lsp which has to account for this + * Ideally we refactor this to not need to modify source code in place + * Doing this hurts our ability to control the import graph and make it use node resolution though + * See foundry that is alergic to using npm + * Doing it this way for now is easier but for sure a leaky abstraction + * @param {string} absolutePath + * @param {string} rawCode + * @param {Record} remappings + * @param {ReadonlyArray} libs + * @param {import("./types.js").FileAccessObject} fao + * @param {boolean} sync Whether to run this synchronously or not + * @returns {import("effect/Effect").Effect>} + * @example + * ```ts + * const pathToSolidity = path.join(__dirname, '../Contract.sol') + * const rawCode = fs.readFileSync(pathToSolidity, 'utf8'), + * + * const modules = runPromise( + * moduleFactory( + * pathToSolidity, + * rawCode, + * { + * "remapping": "remapping/src" + * }, + * ["lib/path"], + * { + * readFileSync, + * readFile, + * existsSync, + * }, + * false + * ) + * ) + * console.log(modules.get(pathToSolidity)) // { id: '/path/to/Contract.sol', rawCode: '...', importedIds: ['/path/to/Imported.sol'], code: '...' } + * ``` + */ +export const moduleFactory = ( + absolutePath, + rawCode, + remappings, + libs, + fao, + sync, +) => { + return gen(function* (_) { + const readFile = sync ? safeFao(fao).readFileSync : safeFao(fao).readFile + const stack = [{ absolutePath, rawCode }] + const modules = + /** @type{Map} */ + (new Map()) + while (stack.length) { + const nextItem = stack.pop() + invariant(nextItem, 'Module should exist') + const { absolutePath, rawCode } = nextItem + + if (modules.has(absolutePath)) continue + + const resolvedImports = yield* _( + resolveImports(absolutePath, rawCode, remappings, libs, sync), + ) + + modules.set(absolutePath, { + id: absolutePath, + rawCode, + importedIds: resolvedImports.map(({ absolute }) => absolute), + code: yield* _(updateImportPaths(rawCode, resolvedImports)), + }) + + for (const resolvedImport of resolvedImports) { + const depRawCode = yield* _(readFile(resolvedImport.absolute, 'utf8')) + stack.push({ + absolutePath: resolvedImport.absolute, + rawCode: depRawCode, + }) + } + } + return modules + }) +} diff --git a/resolutions/src/moduleFactory.spec.ts b/resolutions/src/moduleFactory.spec.ts new file mode 100644 index 0000000000..c784c82b91 --- /dev/null +++ b/resolutions/src/moduleFactory.spec.ts @@ -0,0 +1,92 @@ +import { moduleFactory } from './moduleFactory.js' +import type { FileAccessObject } from './types.js' +import { runPromise, runSync } from 'effect/Effect' +import { existsSync, readFileSync } from 'fs' +import { readFile } from 'fs/promises' +import { join } from 'path' +import { describe, expect, it } from 'vitest' + +const fao: FileAccessObject = { + existsSync: existsSync, + readFile: readFile, + readFileSync: readFileSync, +} + +class Fixture { + constructor(public readonly name: string) {} + dir = () => join(__dirname, 'fixtures', this.name) + entrypoint = () => join(this.dir(), 'Contract.sol') + rawCode = () => readFileSync(this.entrypoint(), 'utf8') + remappings = () => { + if (existsSync(join(this.dir(), 'remappings.json'))) { + return JSON.parse( + readFileSync(join(this.dir(), 'remappings.json'), 'utf8'), + ) + } + return {} + } + libs = () => { + if (existsSync(join(this.dir(), 'lib'))) { + return [join(this.dir(), 'lib')] + } + return [] + } +} +const fixtures = { + basic: new Fixture('basic'), + withlib: new Fixture('withlib'), + withremappings: new Fixture('withremappings'), +} + +const absolutePathToNormalize = join(__dirname, '..', '..', '..') + +describe('moduleFactory', () => { + const cases: Array> = [ + ['basic'], + ['withlib'], + ['withremappings'], + ] + it.each(cases)( + 'should resolve correctly for case $s', + async (testCase: keyof typeof fixtures) => { + let runSyncronously = true + let modules = runSync( + moduleFactory( + fixtures[testCase].entrypoint(), + fixtures[testCase].rawCode(), + fixtures[testCase].remappings(), + fixtures[testCase].libs(), + fao, + runSyncronously, + ), + ) + expect(modules.keys()).toMatchSnapshot() + expect( + JSON.stringify( + modules.get(fixtures[testCase].entrypoint()), + null, + 2, + ).replaceAll(absolutePathToNormalize, ''), + ).toMatchSnapshot() + runSyncronously = false + modules = await runPromise( + moduleFactory( + fixtures[testCase].entrypoint(), + fixtures[testCase].rawCode(), + fixtures[testCase].remappings(), + fixtures[testCase].libs(), + fao, + runSyncronously, + ), + ) + expect(modules.keys()).toMatchSnapshot() + expect( + JSON.stringify( + modules.get(fixtures[testCase].entrypoint()), + null, + 2, + ).replaceAll(absolutePathToNormalize, ''), + ).toMatchSnapshot() + }, + ) +}) diff --git a/resolutions/src/resolveImports.js b/resolutions/src/resolveImports.js new file mode 100644 index 0000000000..591b78db9a --- /dev/null +++ b/resolutions/src/resolveImports.js @@ -0,0 +1,88 @@ +import { resolveImportPath } from './utils/resolveImportPath.js' +import { all, die, fail, map } from 'effect/Effect' + +class ImportDoesNotExistError extends Error { + /** + * @type {'ImportDoesNotExistError'} + */ + _tag = 'ImportDoesNotExistError' + /** + * @type {'ImportDoesNotExistError'} + * @override + */ + name = 'ImportDoesNotExistError' + constructor() { + super('Import does not exist') + } +} + +/** + * @typedef {ImportDoesNotExistError | import("./utils/resolveImportPath.js").CouldNotResolveImportError} ResolveImportsError + */ + +/** + * Returns a the import resolutions for the given code + * @param {string} absolutePath + * @param {string} code + * @param {Record} remappings + * @param {ReadonlyArray} libs + * @param {boolean} sync + * @returns {import("effect/Effect").Effect>} + * @example + * ```ts + * const pathToSolidity = path.join(__dirname, '../Contract.sol') + * const code = fs.readFileSync(pathToSolidity, 'utf8'), + * const remappings = {} + * const lib = [] + * + * const imports = runPromise( + * resolveImports( + * pathToSolidity, + * code, + * remappings, + * libs, + * false + * ) + * ) + * console.log(imports) // [{ updated: '/path/to/Contract.sol', absolute: '/path/to/Contract.sol', original: '../Contract.sol' }] + * ``` + */ +export const resolveImports = ( + absolutePath, + code, + remappings, + libs, + sync = false, +) => { + const importRegEx = /^\s?import\s+[^'"]*['"](.*)['"]\s*/gm + + if (typeof absolutePath !== 'string') { + return die(`Type ${typeof absolutePath} is not of type string`) + } + if (typeof code !== 'string') { + return die(`Type ${typeof code} is not of type string`) + } + if (typeof sync !== 'boolean') { + return die(`Type ${typeof sync} is not of type boolean`) + } + const imports = + /** @type Array> */ ([]) + let foundImport = importRegEx.exec(code) + while (foundImport != null) { + const importPath = foundImport[1] + if (!importPath) { + return fail(new ImportDoesNotExistError()) + } + imports.push( + resolveImportPath(absolutePath, importPath, remappings, libs, sync).pipe( + map((absolute) => ({ + updated: absolute, + absolute, + original: importPath, + })), + ), + ) + foundImport = importRegEx.exec(code) + } + return all(imports) +} diff --git a/resolutions/src/resolveImports.spec.ts b/resolutions/src/resolveImports.spec.ts new file mode 100644 index 0000000000..8eef89101e --- /dev/null +++ b/resolutions/src/resolveImports.spec.ts @@ -0,0 +1,131 @@ +import { resolveImports } from './resolveImports.js' +import type { ResolvedImport } from './types.js' +import { runSync } from 'effect/Effect' +import { join } from 'path' +import { describe, expect, it } from 'vitest' + +const repoDir = join(__dirname, '..', '..') +const normalizeImports = (imports: ReadonlyArray) => { + return imports.map((i) => ({ + ...i, + absolute: i.absolute.replace(repoDir, ''), + original: i.original.replace(repoDir, ''), + updated: i.updated.replace(repoDir, ''), + })) +} + +describe('resolveImports', () => { + it('should correctly resolve local imports', () => { + const code = `import { WagmiMintExample } from "../fixtures/basic/Contract.sol"` + const imports = runSync(resolveImports(__dirname, code, {}, [], true)) + + expect(normalizeImports(imports)).toMatchInlineSnapshot(` + [ + { + "absolute": "/fixtures/basic/Contract.sol", + "original": "../fixtures/basic/Contract.sol", + "updated": "/fixtures/basic/Contract.sol", + }, + ] + `) + }) + + it('should correctly resolve non-local imports', () => { + const code = `import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"` + const imports = runSync(resolveImports(__dirname, code, {}, [], true)) + + expect(normalizeImports(imports)).toMatchInlineSnapshot(` + [ + { + "absolute": "/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", + "original": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "updated": "/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", + }, + ] + `) + }) + + it('should correctly handle multiple imports', () => { + const code = `import { WagmiMintExample } from "../fixtures/basic/Contract.sol" +import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol" + ` + const imports = runSync(resolveImports(__dirname, code, {}, [], true)) + + expect(normalizeImports(imports)).toMatchInlineSnapshot(` + [ + { + "absolute": "/fixtures/basic/Contract.sol", + "original": "../fixtures/basic/Contract.sol", + "updated": "/fixtures/basic/Contract.sol", + }, + { + "absolute": "/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", + "original": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "updated": "/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", + }, + ] + `) + }) + + it('should return an empty array if there are no imports', () => { + const code = 'const x = 10' + const imports = runSync(resolveImports(__dirname, code, {}, [], true)) + + expect(normalizeImports(imports)).toMatchInlineSnapshot('[]') + }) + + it('should throw an error if import path does not exist', () => { + const code = 'import { Something } from ""' + expect(() => + runSync(resolveImports('/project/src', code, {}, [], true)), + ).toThrowErrorMatchingInlineSnapshot('"Import does not exist"') + }) + + it('should correctly resolve import nothing statements', () => { + const code = 'import "./something"' + const imports = runSync(resolveImports('/project/src', code, {}, [], true)) + expect(normalizeImports(imports)).toMatchInlineSnapshot(` + [ + { + "absolute": "/project/something", + "original": "./something", + "updated": "/project/something", + }, + ] + `) + }) + + it('should ignore lines that resemble import statements', () => { + const code = 'console.log("import { Something } from \\"./something\\"")' + const imports = runSync(resolveImports('/project/src', code, {}, [], true)) + expect(normalizeImports(imports)).toMatchInlineSnapshot('[]') + }) + + it('should die if non string is passed in for absolute path', () => { + const code = 'console.log("import { Something } from \\"./something\\"")' + expect(() => + runSync(resolveImports(52n as any, code, {}, [], true)), + ).toThrowErrorMatchingInlineSnapshot('"Type bigint is not of type string"') + }) + + it('should die if non string is passed in for absolute path', () => { + const code = 52n as any + expect(() => + runSync(resolveImports('/project/src', code, {}, [], true)), + ).toThrowErrorMatchingInlineSnapshot('"Type bigint is not of type string"') + }) + + it('should die if non boolean is passed in for sync', () => { + expect(() => + runSync( + resolveImports( + '/project/src', + "import {Foo} from 'bar'", + {}, + [], + 5 as any, + ), + ), + ).toThrowErrorMatchingInlineSnapshot('"Type number is not of type boolean"') + }) +}) diff --git a/resolutions/src/types.ts b/resolutions/src/types.ts index 9ad67b77e6..8dbda61955 100644 --- a/resolutions/src/types.ts +++ b/resolutions/src/types.ts @@ -19,5 +19,13 @@ export interface ModuleInfo { rawCode: string | null // the source code of the module, `null` if external or not yet available code: string | null // the code after transformed to correctly resolve remappings and node_module imports importedIds: string[] // the module ids statically imported by this module - resolutions: ModuleInfo[] // how statically imported ids were resolved, for use with this.load +} + +/** + * The result of the resolution of an import + */ +export type ResolvedImport = { + original: string + absolute: string + updated: string } diff --git a/resolutions/src/utils/formatPath.js b/resolutions/src/utils/formatPath.js index 93c632fdf0..f0d5dabdb8 100644 --- a/resolutions/src/utils/formatPath.js +++ b/resolutions/src/utils/formatPath.js @@ -2,6 +2,12 @@ * Formats a path to be used in the contract loader * @param {string} contractPath - The path to the contract * @returns {string} - The formatted path + * @example + * ```ts + * const pathToSolidity = path.join(__dirname, '../Contract.sol') + * const formattedPath = formatPath(pathToSolidity) + * console.log(formattedPath) // '/path/to/Contract.sol' + * ``` */ export const formatPath = (contractPath) => { return contractPath.replace(/\\/g, '/') diff --git a/resolutions/src/utils/index.js b/resolutions/src/utils/index.js index 484a59dfb7..c50cfcaca2 100644 --- a/resolutions/src/utils/index.js +++ b/resolutions/src/utils/index.js @@ -5,4 +5,4 @@ export * from './formatPath.js' export * from './invariant.js' export * from './isSolidity.js' export * from './isRelativeSolidity.js' -export * from './resolvePromise.js' +export * from './resolveSafe.js' diff --git a/resolutions/src/utils/invariant.d.ts b/resolutions/src/utils/invariant.d.ts index 186b92be74..c77285e296 100644 --- a/resolutions/src/utils/invariant.d.ts +++ b/resolutions/src/utils/invariant.d.ts @@ -1 +1,10 @@ +/** + * Enforces an invariant in a type-safe way + * @example + * ```ts + * const x: number | undefined = 1 + * invariant(x, 'x should be 1') + * // x is now narrowed to number + * ``` + */ export function invariant(condition: any, message: string): asserts condition diff --git a/resolutions/src/utils/invariant.js b/resolutions/src/utils/invariant.js index 0e916a8f51..af68cfc465 100644 --- a/resolutions/src/utils/invariant.js +++ b/resolutions/src/utils/invariant.js @@ -1,3 +1,16 @@ +/** + * Error thrown if an invariant is violated + */ +export class InvariantError extends Error { + /** + * @param {string} message - The message to display + */ + constructor(message) { + super(message) + this.name = 'InvariantError' + } +} + /** * Asserts an invariant in a typesafe way * @param {boolean} condition - The condition to assert @@ -6,6 +19,6 @@ */ export function invariant(condition, message) { if (!condition) { - throw new Error(message) + throw new InvariantError(message) } } diff --git a/resolutions/src/utils/isImportLocal.js b/resolutions/src/utils/isImportLocal.js index 7263531dc6..3dd80d3a69 100644 --- a/resolutions/src/utils/isImportLocal.js +++ b/resolutions/src/utils/isImportLocal.js @@ -2,6 +2,11 @@ * Check if import path is local * @param {string} importPath * @returns {boolean} + * @example + * ```ts + * const isLocal = isImportLocal('../Contract.sol') + * console.log(isLocal) // true + * ``` */ export const isImportLocal = (importPath) => { return importPath.startsWith('.') diff --git a/resolutions/src/utils/isRelativeSolidity.js b/resolutions/src/utils/isRelativeSolidity.js index 1553944630..1acd851964 100644 --- a/resolutions/src/utils/isRelativeSolidity.js +++ b/resolutions/src/utils/isRelativeSolidity.js @@ -4,6 +4,11 @@ import { isSolidity } from './isSolidity.js' * Util to determine if a file path is a solidity file referenced via a relative import * @param {string} fileName - The file path to check * @returns {boolean} True if the file path is a solidity file referenced via a relative import + * @example + * ```ts + * const isRelativeSolidity = isRelativeSolidity('./Contract.sol') + * console.log(isRelativeSolidity) // true + * ``` */ export const isRelativeSolidity = (fileName) => fileName.startsWith('./') && isSolidity(fileName) diff --git a/resolutions/src/utils/isSolidity.js b/resolutions/src/utils/isSolidity.js index a815d257f9..ab0b750c39 100644 --- a/resolutions/src/utils/isSolidity.js +++ b/resolutions/src/utils/isSolidity.js @@ -2,6 +2,11 @@ * Util to determine if a file path is a solidity file * @param {string} fileName - The file name to check * @returns {boolean} - Whether or not the file is a solidity file + * @example + * ```ts + * const isSolidity = isSolidity('Contract.sol') + * console.log(isSolidity) // true + * ``` */ export const isSolidity = (fileName) => fileName.endsWith('.sol') && diff --git a/resolutions/src/utils/resolveImportPath.js b/resolutions/src/utils/resolveImportPath.js new file mode 100644 index 0000000000..487aad6ec3 --- /dev/null +++ b/resolutions/src/utils/resolveImportPath.js @@ -0,0 +1,104 @@ +import { formatPath } from './formatPath.js' +import { isImportLocal } from './isImportLocal.js' +import { + async as effectAsync, + fail, + succeed, + try as trySync, +} from 'effect/Effect' +import { dirname, resolve as pathResolve } from 'path' +import resolve from 'resolve' + +export class CouldNotResolveImportError extends Error { + /** + * @type {'CouldNotResolveImportError'} + */ + _tag = 'CouldNotResolveImportError' + /** + * @type {'CouldNotResolveImportError'} + * @override + */ + name = 'CouldNotResolveImportError' + /** + * @param {string} importPath + * @param {string} absolutePath + * @param {Error} cause + */ + constructor(importPath, absolutePath, cause) { + super( + `Could not resolve import ${importPath} from ${absolutePath}. Please check your remappings and libraries.`, + { cause }, + ) + } +} + +/** + * Resolve import statement to absolute file path + * + * @param {string} importPath import statement in *.sol contract + * @param {string} absolutePath absolute path to the contract + * @param {Record} remappings remappings from the config + * @param {ReadonlyArray} libs libs from the config + * @param {boolean} sync Whether to run this synchronously or not + * @returns {import("effect/Effect").Effect} absolute path to the imported file + * @example + * ```ts + * const pathToSolidity = path.join(__dirname, '../Contract.sol') + * ``` + */ +export const resolveImportPath = ( + absolutePath, + importPath, + remappings, + libs, + sync, +) => { + // Remappings + for (const [key, value] of Object.entries(remappings)) { + if (importPath.startsWith(key)) { + return succeed(formatPath(pathResolve(importPath.replace(key, value)))) + } + } + // Local import "./LocalContract.sol" + if (isImportLocal(importPath)) { + return succeed(formatPath(pathResolve(dirname(absolutePath), importPath))) + } + // try resolving with node resolution + if (sync) { + return trySync({ + try: () => + resolve.sync(importPath, { + basedir: dirname(absolutePath), + paths: libs, + }), + catch: (e) => + new CouldNotResolveImportError( + importPath, + absolutePath, + /** @type {Error}*/ (e), + ), + }) + } else { + return effectAsync((resume) => { + resolve( + importPath, + { + basedir: dirname(absolutePath), + paths: libs, + }, + (err, resolvedPath) => { + if (err) { + console.error(err) + resume( + fail( + new CouldNotResolveImportError(importPath, absolutePath, err), + ), + ) + } else { + resume(succeed(formatPath(/** @type {string} */ (resolvedPath)))) + } + }, + ) + }) + } +} diff --git a/resolutions/src/utils/resolveImportPath.spec.ts b/resolutions/src/utils/resolveImportPath.spec.ts new file mode 100644 index 0000000000..8d87da5dcd --- /dev/null +++ b/resolutions/src/utils/resolveImportPath.spec.ts @@ -0,0 +1,60 @@ +import { resolveImportPath } from './resolveImportPath.js' +import { flip, runPromise, runSync } from 'effect/Effect' +import { describe, expect, it } from 'vitest' + +describe('resolveImportPath', () => { + it('should correctly resolve paths using Foundry remappings', async () => { + const remappings = { + 'key1/': '/path/to/key1', + 'key2/': '/path/to/key2', + } as const + + const importPath = await runPromise( + resolveImportPath('/project/src', 'key1/somefile', remappings, [], false), + ) + expect(importPath).toMatchInlineSnapshot('"/path/to/key1somefile"') + + const importPath2 = await runPromise( + resolveImportPath('/project/src', 'key2/somefile', remappings, [], false), + ) + expect(importPath2).toMatchInlineSnapshot('"/path/to/key2somefile"') + }) + it('should correctly resolve paths using Foundry remappings syncronously', async () => { + const remappings = { + 'key1/': '/path/to/key1', + 'key2/': '/path/to/key2', + } as const + + const importPath = runSync( + resolveImportPath('/project/src', 'key1/somefile', remappings, [], true), + ) + expect(importPath).toMatchInlineSnapshot('"/path/to/key1somefile"') + + const importPath2 = runSync( + resolveImportPath('/project/src', 'key2/somefile', remappings, [], true), + ) + expect(importPath2).toMatchInlineSnapshot('"/path/to/key2somefile"') + }) + + it('should correctly resolve local imports', async () => { + const importPath = await runPromise( + resolveImportPath('/project/src', './somefile', {}, [], false), + ) + expect(importPath).toMatchInlineSnapshot('"/project/somefile"') + }) + + it('should return an error if not able to resolve', async () => { + let error = await runPromise( + flip(resolveImportPath('/project/src', 'somemodule', {}, [], false)), + ) + expect(error).toMatchInlineSnapshot( + '[CouldNotResolveImportError: Could not resolve import somemodule from /project/src. Please check your remappings and libraries.]', + ) + error = runSync( + flip(resolveImportPath('/project/src', 'somemodule', {}, [], true)), + ) + expect(error).toMatchInlineSnapshot( + '[CouldNotResolveImportError: Could not resolve import somemodule from /project/src. Please check your remappings and libraries.]', + ) + }) +}) diff --git a/resolutions/src/utils/resolvePromise.js b/resolutions/src/utils/resolvePromise.js deleted file mode 100644 index 0a508dc615..0000000000 --- a/resolutions/src/utils/resolvePromise.js +++ /dev/null @@ -1,53 +0,0 @@ -import { Effect } from 'effect' -import resolve from 'resolve' - -/** - * import resolve from 'resolve wrapped in an effect - * @param {string} filePath - * @param {string} basedir - * @param {import("../types.js").FileAccessObject} fao - * @param {import("../types.js").Logger} logger - * @returns {Effect.Effect} - */ -export const resolveEffect = (filePath, basedir, fao, logger) => { - return Effect.async((resume) => { - resolve( - filePath, - { - basedir, - readFile: (file, cb) => { - fao - .readFile(file, 'utf8') - .then((fileContent) => { - cb(null, fileContent) - }) - .catch((e) => { - logger.error(e) - logger.error('Error reading file') - cb(e) - }) - }, - isFile: (file, cb) => { - try { - cb(null, fao.existsSync(file)) - } catch (e) { - cb(/** @type Error */ (e)) - logger.error(/** @type any */ (e)) - logger.error(`Error checking if isFile ${file}`) - resume(Effect.fail(/** @type Error */ (e))) // resume with a failure effect when error occurs - return - } - }, - }, - (err, res) => { - if (err) { - logger.error(/** @type any */ (err)) - logger.error(`There was an error resolving ${filePath}`) - resume(Effect.fail(err)) // resume with a failure effect when error occurs - } else { - resume(Effect.succeed(/** @type string */ (res))) // resume with a success effect when the operation succeeds - } - }, - ) - }) -} diff --git a/resolutions/src/utils/resolvePromise.spec.ts b/resolutions/src/utils/resolvePromise.spec.ts deleted file mode 100644 index b40c612798..0000000000 --- a/resolutions/src/utils/resolvePromise.spec.ts +++ /dev/null @@ -1,145 +0,0 @@ -import type { FileAccessObject, Logger } from '../types.js' -import { resolveEffect } from './resolvePromise.js' -import { Effect } from 'effect' -import fs from 'fs' -import { type Mock, beforeEach, describe, expect, it, vi } from 'vitest' - -const fao: FileAccessObject = { - existsSync: (filePath: string) => fs.existsSync(filePath), - readFile: (filePath: string, encoding: string) => - Promise.resolve( - fs.readFileSync(filePath, { encoding: encoding as 'utf8' }), - ), - readFileSync: (filePath: string) => fs.readFileSync(filePath, 'utf8'), -} - -let logger: Logger = { - error: vi.fn(), - info: vi.fn(), - warn: vi.fn(), - log: vi.fn(), -} - -describe('resolvePromise', () => { - beforeEach(() => { - logger = { - error: vi.fn(), - info: vi.fn(), - warn: vi.fn(), - log: vi.fn(), - } - }) - - it('should resolve a file path in the base directory', async () => { - const resolvedPath = await Effect.runPromise( - resolveEffect('./resolvePromise.spec.ts', __dirname, fao, logger), - ) - expect(resolvedPath.endsWith('src/utils/resolvePromise.spec.ts')).toBe(true) - }) - - it('should handle readFile throwing', async () => { - fao.readFile = () => Promise.reject('readFile error') - await expect( - Effect.runPromise( - resolveEffect('./resolvePromise.spec.tst', './src/utils', fao, logger), - ), - ).rejects.toThrowErrorMatchingInlineSnapshot('"readFile error"') - expect((logger.error as Mock).mock.calls).toMatchInlineSnapshot(` - [ - [ - "readFile error", - ], - [ - "Error reading file", - ], - [ - "readFile error", - ], - [ - "There was an error resolving ./resolvePromise.spec.tst", - ], - [ - "readFile error", - ], - [ - "Error reading file", - ], - [ - "readFile error", - ], - [ - "There was an error resolving ./resolvePromise.spec.tst", - ], - [ - "readFile error", - ], - [ - "Error reading file", - ], - [ - "readFile error", - ], - [ - "There was an error resolving ./resolvePromise.spec.tst", - ], - [ - "readFile error", - ], - [ - "Error reading file", - ], - [ - "readFile error", - ], - [ - "There was an error resolving ./resolvePromise.spec.tst", - ], - [ - [Error: Cannot find module './resolvePromise.spec.tst' from './src/utils'], - ], - [ - "There was an error resolving ./resolvePromise.spec.tst", - ], - ] - `) - }) - - it('should throw an error for non-existent file', async () => { - fao.existsSync = () => false - await expect( - Effect.runPromise( - resolveEffect('./resolvePromise.spec.tst', './src/utils', fao, logger), - ), - ).rejects.toThrowErrorMatchingInlineSnapshot( - "\"Cannot find module './resolvePromise.spec.tst' from './src/utils'\"", - ) - expect((logger.error as Mock).mock.calls).toMatchInlineSnapshot(` - [ - [ - [Error: Cannot find module './resolvePromise.spec.tst' from './src/utils'], - ], - [ - "There was an error resolving ./resolvePromise.spec.tst", - ], - ] - `) - }) - - it('should throw an error if existsSync throws', () => { - fao.existsSync = () => { - throw new Error('existsSync error') - } - expect( - Effect.runPromise( - resolveEffect('./resolvePromise.spec.ts', './src/utils', fao, logger), - ), - ).rejects.toThrowErrorMatchingInlineSnapshot('"existsSync error"') - expect( - (logger.error as Mock).mock.calls[0].slice(0, 2), - ).toMatchInlineSnapshot(` - [ - [Error: existsSync error], - ] - `) - }) -}) diff --git a/resolutions/src/utils/resolveSafe.js b/resolutions/src/utils/resolveSafe.js new file mode 100644 index 0000000000..1cda8821b1 --- /dev/null +++ b/resolutions/src/utils/resolveSafe.js @@ -0,0 +1,91 @@ +import { ExistsSyncError, ReadFileError } from './safeFao.js' +import { + async as effectAsync, + fail, + runPromise, + runSync, + succeed, +} from 'effect/Effect' +import resolve from 'resolve' + +/** + * Error thrown when resolve fails + */ +export class ResolveError extends Error { + /** + * @type {'ResolveError'} + */ + _tag = 'ResolveError' + /** + * @type {'ResolveError'} + * @override + */ + name = 'ResolveError' + /** + * @param {Error} cause + */ + constructor(cause) { + super('Failed to resolve', { cause }) + } +} + +/** + * @typedef {ResolveError|import("./safeFao.js").ReadFileError | import("./safeFao.js").ExistsSyncError} ResolveSafeError + */ + +/** + * import resolve from 'resolve wrapped in an effect + * @param {string} filePath + * @param {string} basedir + * @param {import("./safeFao.js").SafeFao} fao + * @returns {import("effect/Effect").Effect} + * @example + * ```ts + * const pathToSolidity = path.join(__dirname, '../Contract.sol') + * const formattedPath = formatPath(pathToSolidity) + * console.log(formattedPath) // '/path/to/Contract.sol' + * ``` + */ +export const resolveSafe = (filePath, basedir, fao) => { + return effectAsync((resume) => { + resolve( + filePath, + { + basedir, + readFile: (file, cb) => { + runPromise(fao.readFile(file, 'utf8')) + .then((fileContent) => { + cb(null, fileContent) + }) + .catch((e) => { + cb(e) + }) + }, + isFile: (file, cb) => { + try { + cb(null, runSync(fao.existsSync(file))) + } catch (e) { + cb(/** @type {Error} */ (e)) + } + }, + }, + (err, res) => { + if (err) { + const typedError = + /** @type {import("./safeFao.js").ReadFileError | import("./safeFao.js").ExistsSyncError} */ ( + err + ) + if (typedError.name === 'ExistsSyncError') { + resume(fail(new ExistsSyncError(typedError))) + } else if (typedError.name === 'ReadFileError') { + resume(fail(new ReadFileError(typedError))) + } else { + resume(fail(new ResolveError(err))) + } + } else { + resume(succeed(/** @type string */ (res))) // resume with a success effect when the operation succeeds + } + }, + ) + }) +} diff --git a/resolutions/src/utils/resolveSafe.spec.ts b/resolutions/src/utils/resolveSafe.spec.ts new file mode 100644 index 0000000000..d7f9c5cf64 --- /dev/null +++ b/resolutions/src/utils/resolveSafe.spec.ts @@ -0,0 +1,79 @@ +import type { FileAccessObject } from '../types.js' +import { resolveSafe } from './resolveSafe.js' +import { safeFao } from './safeFao.js' +import { Effect } from 'effect' +import { flip } from 'effect/Effect' +import fs from 'fs' +import { describe, expect, it } from 'vitest' + +const fao: FileAccessObject = { + existsSync: (filePath: string) => fs.existsSync(filePath), + readFile: (filePath: string, encoding: string) => + Promise.resolve( + fs.readFileSync(filePath, { encoding: encoding as 'utf8' }), + ), + readFileSync: (filePath: string) => fs.readFileSync(filePath, 'utf8'), +} + +describe('resolveSafe', () => { + it('should resolve a file path in the base directory', async () => { + const resolvedPath = await Effect.runPromise( + resolveSafe('./resolveSafe.spec.ts', __dirname, safeFao(fao)), + ) + expect(resolvedPath.endsWith('src/utils/resolveSafe.spec.ts')).toBe(true) + }) + + it('should handle readFile throwing', async () => { + fao.readFile = () => Promise.reject('readFile error') + await expect( + Effect.runPromise( + resolveSafe('./resolveSafe.spec.ts', './src/utils', safeFao(fao)), + ), + ).rejects.toThrowErrorMatchingInlineSnapshot( + '"Read file error: Read file error: undefined"', + ) + }) + + it('should throw an error for non-existent file', async () => { + fao.existsSync = () => false + await expect( + Effect.runPromise( + resolveSafe('./resolveSafe.spec.ts', './src/utils', safeFao(fao)), + ), + ).rejects.toThrowErrorMatchingInlineSnapshot('"Failed to resolve"') + }) + + it('should throw an error if existsSync throws', async () => { + fao.existsSync = () => { + throw new Error('existsSync error') + } + expect( + await Effect.runPromise( + flip(resolveSafe('./resolveSafe.spec.ts', './src/utils', safeFao(fao))), + ), + ).toMatchInlineSnapshot( + '[ExistsSyncError: ExistsSync error: ExistsSync error: existsSync error]', + ) + }) + it('should return ReadFileError if readFile throws', async () => { + fao.readFile = () => Promise.reject(new Error('readFile error')) + const error = await Effect.runPromise( + flip(resolveSafe('./resolveSafe.spec.ts', './src/utils', safeFao(fao))), + ) + expect(error).toMatchInlineSnapshot( + '[ExistsSyncError: ExistsSync error: ExistsSync error: existsSync error]', + ) + }) + + it('should return ExistsSyncError if existsSync throws', async () => { + fao.existsSync = () => { + throw new Error('existsSync error') + } + const error = await Effect.runPromise( + flip(resolveSafe('./resolveSafe.spec.ts', './src/utils', safeFao(fao))), + ) + expect(error).toMatchInlineSnapshot( + '[ExistsSyncError: ExistsSync error: ExistsSync error: existsSync error]', + ) + }) +}) diff --git a/resolutions/src/utils/safeFao.js b/resolutions/src/utils/safeFao.js new file mode 100644 index 0000000000..fb74423436 --- /dev/null +++ b/resolutions/src/utils/safeFao.js @@ -0,0 +1,103 @@ +import { try as trySync, tryPromise } from 'effect/Effect' + +/** + * @typedef {ReturnType} SafeFao + */ + +export class ReadFileError extends Error { + /** + * @type {'ReadFileError'} + */ + _tag = 'ReadFileError' + /** + * @type {'ReadFileError'} + * @override + */ + name = 'ReadFileError' + /** + * @param {Error} cause + */ + constructor(cause) { + super(`Read file error: ${cause.message}`, { cause }) + } +} + +export class ExistsSyncError extends Error { + /** + * @type {'ExistsSyncError'} + */ + _tag = 'ExistsSyncError' + /** + * @type {'ExistsSyncError'} + * @override + */ + name = 'ExistsSyncError' + /** + * @param {Error} cause + */ + constructor(cause) { + super(`ExistsSync error: ${cause.message}`, { cause }) + } +} + +/** + * Turns a file access object into a safe file access object that returns effects + * @param {import("../types.js").FileAccessObject} fao + * @example + * ```ts + * const fao = { + * readFile: readFile, + * readFileSync: readFileSync, + * existsSync: existsSync, + * } + * const safeFao = safeFao(fao) + * safeFao.readFileSync('path/to/file', 'utf8') .pipe( + * tap((fileContent) => console.log(fileContent)), + * ) + * ``` + */ +export const safeFao = (fao) => { + return { + /** + * @param {string} path + * @param {BufferEncoding} encoding + */ + readFile: (path, encoding) => { + return tryPromise({ + try: () => { + return fao.readFile(path, encoding) + }, + catch: (e) => { + return new ReadFileError(/** @type Error */ (e)) + }, + }) + }, + /** + * @param {string} path + * @param {BufferEncoding} encoding + */ + readFileSync: (path, encoding) => { + return trySync({ + try: () => { + return fao.readFileSync(path, encoding) + }, + catch: (e) => { + return new ReadFileError(/** @type Error */ (e)) + }, + }) + }, + /** + * @param {string} path + */ + existsSync: (path) => { + return trySync({ + try: () => { + return fao.existsSync(path) + }, + catch: (e) => { + return new ExistsSyncError(/** @type Error */ (e)) + }, + }) + }, + } +} diff --git a/resolutions/src/utils/safeFao.spec.ts b/resolutions/src/utils/safeFao.spec.ts new file mode 100644 index 0000000000..98e2955125 --- /dev/null +++ b/resolutions/src/utils/safeFao.spec.ts @@ -0,0 +1,93 @@ +import type { FileAccessObject } from '../types.js' +import { ExistsSyncError, ReadFileError, safeFao } from './safeFao.js' +import { flip, runPromise, runSync } from 'effect/Effect' +import fs from 'fs' +import { describe, expect, it } from 'vitest' + +const fao: FileAccessObject = { + existsSync: (filePath: string) => fs.existsSync(filePath), + readFile: (filePath: string, encoding: string) => + Promise.resolve( + fs.readFileSync(filePath, { encoding: encoding as 'utf8' }), + ), + readFileSync: (filePath: string) => fs.readFileSync(filePath, 'utf8'), +} + +describe('safeFao', () => { + it('should have same properties as the original Fao', () => { + expect(safeFao(fao)).toHaveProperty('existsSync') + expect(safeFao(fao)).toHaveProperty('readFile') + expect(safeFao(fao)).toHaveProperty('readFileSync') + }) + + describe('existsSync', () => { + it('existsSync should true if a file exists', () => { + const sf = safeFao(fao) + expect(runSync(sf.existsSync(__filename))).toBe(true) + }) + it('existsSync should false if a file does not exist', () => { + const sf = safeFao(fao) + expect(runSync(sf.existsSync('./nonexistent'))).toBe(false) + }) + it('should return a ExistsSyncError if existsSync throws', () => { + const expectedCause = 'existsSync error' + const sf = safeFao({ + ...fao, + existsSync: () => { + throw new Error(expectedCause) + }, + }) + const err = runSync(flip(sf.existsSync('./nonexistent'))) + expect(err).toBeInstanceOf(ExistsSyncError) + expect(err._tag).toBe('ExistsSyncError') + expect(err.name).toBe('ExistsSyncError') + expect((err.cause as Error)?.message).toBe(expectedCause) + }) + }) + + describe('readFile', () => { + it('should read a file asynchronously if the file exists', async () => { + const sf = safeFao(fao) + const content = await runPromise(sf.readFile(__filename, 'utf8')) + expect(content).toBe(fs.readFileSync(__filename, 'utf8')) + }) + + it('should return a ReadFileError if readFile throws', async () => { + const expectedCause = 'readFile error' + const sf = safeFao({ + ...fao, + readFile: () => { + throw new Error(expectedCause) + }, + }) + const err = await runPromise(flip(sf.readFile('./nonexistent', 'utf8'))) + expect(err).toBeInstanceOf(ReadFileError) + expect(err._tag).toBe('ReadFileError') + expect(err.name).toBe('ReadFileError') + expect((err.cause as Error)?.message).toBe(expectedCause) + }) + }) + + describe('readFileSync', () => { + it('should read a file synchronously if the file exists', () => { + const sf = safeFao(fao) + const content = runSync(sf.readFileSync(__filename, 'utf8')) + expect(content).toBe(fs.readFileSync(__filename, 'utf8')) + }) + + it('should return a ReadFileError if readFileSync throws', () => { + const expectedCause = 'readFileSync error' + const sf = safeFao({ + ...fao, + readFileSync: () => { + throw new Error(expectedCause) + }, + }) + const err = runSync(flip(sf.readFileSync('./nonexistent', 'utf8'))) + expect(err).toBeInstanceOf(ReadFileError) + expect(err._tag).toBe('ReadFileError') + expect(err.name).toBe('ReadFileError') + expect((err.cause as Error)?.message).toBe(expectedCause) + }) + }) +}) diff --git a/resolutions/src/utils/updateImportPath.js b/resolutions/src/utils/updateImportPath.js new file mode 100644 index 0000000000..1e5faaf3aa --- /dev/null +++ b/resolutions/src/utils/updateImportPath.js @@ -0,0 +1,23 @@ +import { succeed } from 'effect/Effect' + +/** + * Updates all the import paths that match the importedIds + * @param {string} code Source code to update + * @param {ReadonlyArray} resolvedImports Import to update + * @returns {import("effect/Effect").Effect} the source code formatted with the imprt replaced + */ +export const updateImportPaths = (code, resolvedImports) => { + const solidityImportRegex = /(^\s?import\s+[^'"]*['"])(.*)(['"]\s*)/gm + return succeed( + code.replaceAll(solidityImportRegex, (match, p1, p2, p3) => { + const resolvedImport = resolvedImports.find( + ({ original }) => original === p2, + ) + if (resolvedImport) { + return `${p1}${resolvedImport.updated}${p3}` + } else { + return match + } + }), + ) +} diff --git a/resolutions/src/utils/updateImportPath.spec.ts b/resolutions/src/utils/updateImportPath.spec.ts new file mode 100644 index 0000000000..ce6157a5a2 --- /dev/null +++ b/resolutions/src/utils/updateImportPath.spec.ts @@ -0,0 +1,84 @@ +import { updateImportPaths } from './updateImportPath.js' +import { runSync } from 'effect/Effect' +import { describe, expect, it } from 'vitest' + +describe('updateImportPaths', () => { + it('should update all import paths', () => { + const mockCode = `import something from "./oldPath1"; +import somethingElse from "./oldPath2"; + ` + const mockResolvedImports = [ + { + original: './oldPath1', + updated: './newPath1', + absolute: '/path/to/newPath1', + }, + { + original: './oldPath2', + updated: './newPath2', + absolute: '/path/to/newPath2', + }, + ] + + const result = runSync(updateImportPaths(mockCode, mockResolvedImports)) + + expect(result).toContain('import something from "./newPath1";') + expect(result).toContain('import somethingElse from "./newPath2";') + }) + + it('should update some import paths', () => { + const mockCode = `import something from "./oldPath1"; +import somethingElse from "./oldPath2"; + ` + const mockResolvedImports = [ + { + original: './oldPath1', + updated: './newPath1', + absolute: '/path/to/newPath1', + }, + ] + + const result = runSync(updateImportPaths(mockCode, mockResolvedImports)) + + expect(result).toContain('import something from "./newPath1";') + expect(result).toContain('import somethingElse from "./oldPath2";') + }) + + it('should not update import paths if none match', () => { + const mockCode = `import something from "./oldPath1"; +import somethingElse from "./oldPath2"; + ` + const mockResolvedImports = [ + { + original: './notPresent1', + updated: './newPath1', + absolute: '/path/to/newPath1', + }, + { + original: './notPresent2', + updated: './newPath2', + absolute: '/path/to/newPath2', + }, + ] + + const result = runSync(updateImportPaths(mockCode, mockResolvedImports)) + + expect(result).toContain('import something from "./oldPath1";') + expect(result).toContain('import somethingElse from "./oldPath2";') + }) + + it('should return the original code if no imports present', () => { + const mockCode = `console.log("No imports here!");` + const mockResolvedImports = [ + { + original: './oldPath1', + updated: './newPath1', + absolute: '/path/to/newPath1', + }, + ] + + const result = runSync(updateImportPaths(mockCode, mockResolvedImports)) + + expect(result).toBe(mockCode) + }) +}) diff --git a/resolutions/typedoc.json b/resolutions/typedoc.json index d78cdfd822..69ca6ab7b4 100644 --- a/resolutions/typedoc.json +++ b/resolutions/typedoc.json @@ -1,7 +1,11 @@ { "$schema": "https://typedoc.org/schema.json", "out": "./docs", - "entryPoints": ["./src/index.js"], + "entryPoints": [ + "./src/moduleFactory.js", + "./src/types.ts", + "./src/resolveImports.js" + ], "plugin": ["typedoc-plugin-markdown"], "gitRevision": "main" } diff --git a/resolutions/vitest.config.ts b/resolutions/vitest.config.ts index a0836c791b..2693e52525 100644 --- a/resolutions/vitest.config.ts +++ b/resolutions/vitest.config.ts @@ -7,10 +7,10 @@ export default defineConfig({ environment: 'node', coverage: { reporter: ['text', 'json-summary', 'json'], - lines: 99.47, + lines: 100, functions: 100, - branches: 96.49, - statements: 99.47, + branches: 100, + statements: 100, thresholdAutoUpdate: true, }, }, diff --git a/runtime/CHANGELOG.md b/runtime/CHANGELOG.md deleted file mode 100644 index 980c76a30d..0000000000 --- a/runtime/CHANGELOG.md +++ /dev/null @@ -1,361 +0,0 @@ -# @evmts/core - -## 0.11.2 - -### Patch Changes - -- Updated dependencies [[`f3b2b21`](https://github.com/evmts/evmts-monorepo/commit/f3b2b2184aad4dbefd1c840bae72dcf9aff4a1fc)]: - - @evmts/core@0.11.2 - -## 0.10.0 - -### Patch Changes - -- [#469](https://github.com/evmts/evmts-monorepo/pull/469) [`dbc2da6`](https://github.com/evmts/evmts-monorepo/commit/dbc2da6092eae3a7ec2d2519ea8c04505aa911f6) Thanks [@roninjin10](https://github.com/roninjin10)! - Made @evmts/config loading async - -- [#466](https://github.com/evmts/evmts-monorepo/pull/466) [`1c4cbd2`](https://github.com/evmts/evmts-monorepo/commit/1c4cbd2b87abd1c2174fb0d2e7a684367e074440) Thanks [@roninjin10](https://github.com/roninjin10)! - Updated @evmts/bundler to take a fileAccessObject as a parameter - - ### Context - - @evmts/bundler is the internal bundler for all other bundlers and the language server. We changed it to take fileAccessObject as a parameter instead of using `fs` and `fs/promises` - - ### Impact - - By taking in a file-access-object instead of using `fs` we can implement important features. - - - the ability to use virtual files in the typescript lsp before the user saves the file. - - the ability to use more peformant bun file read methods - -- [#468](https://github.com/evmts/evmts-monorepo/pull/468) [`e99fcd0`](https://github.com/evmts/evmts-monorepo/commit/e99fcd09e530a58fddb0d3fa19be0f5439e74f30) Thanks [@roninjin10](https://github.com/roninjin10)! - Improved peformance of bundler via enabling async mode - - Previously all bundlers including the Bun bundler ran with syncronous IO such as readFileSync. With the introduction of async mode the bundler now is more non blocking when it is bundling now. Solc is still syncronous but all IO is now async. - - @evmts/bundler now takes a File-Access-Object as a param. This FileAccessObject is the same shape as `node:fs` module. Bun uses this generic interace to use native Bun file access. - -- [#475](https://github.com/evmts/evmts-monorepo/pull/475) [`cb83c0c`](https://github.com/evmts/evmts-monorepo/commit/cb83c0c81fae63decd7bbdb79b9c3cce2c7e0b8e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added snapshot test of vite bundler build outputs - -- Updated dependencies [[`dbc2da6`](https://github.com/evmts/evmts-monorepo/commit/dbc2da6092eae3a7ec2d2519ea8c04505aa911f6), [`cb83c0c`](https://github.com/evmts/evmts-monorepo/commit/cb83c0c81fae63decd7bbdb79b9c3cce2c7e0b8e)]: - - @evmts/config@0.10.0 - - @evmts/core@0.10.0 - -## 0.9.0 - -### Patch Changes - -- Updated dependencies [[`1f80589`](https://github.com/evmts/evmts-monorepo/commit/1f8058969e2b0290f5032166928f76cfc74e9d74)]: - - @evmts/config@0.9.0 - -## 0.8.1 - -### Patch Changes - -- [#453](https://github.com/evmts/evmts-monorepo/pull/453) [`c23302a`](https://github.com/evmts/evmts-monorepo/commit/c23302a9623a968917df19de8dfa2c56b4612712) Thanks [@roninjin10](https://github.com/roninjin10)! - Started publishing every commit to main so all EVMts changes can be used early. To use the latest main branch release install with `@main` tag. e.g. `npm install @evmts/ts-plugin@main` - -- Updated dependencies [[`c23302a`](https://github.com/evmts/evmts-monorepo/commit/c23302a9623a968917df19de8dfa2c56b4612712), [`ae772ac`](https://github.com/evmts/evmts-monorepo/commit/ae772ac62ad16d19c48b82dfd005458bf27200fe)]: - - @evmts/config@0.8.1 - - @evmts/core@0.8.1 - - @evmts/tsconfig@0.8.1 - -## 0.8.0 - -### Minor Changes - -- [#439](https://github.com/evmts/evmts-monorepo/pull/439) [`91e43e9`](https://github.com/evmts/evmts-monorepo/commit/91e43e952a440f037d52146511ed2508d289874e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for natspec comments showing up in EVMts contracts LSP and bundled code. Now when you hover over an EVMts contract any natspec comments will be available as jsdoc comments. - - This support is limited based on what [solc](https://docs.soliditylang.org/en/v0.8.17/using-the-compiler.html) supports. In future more robust natspec parsing is expected to be added via [soldity-ast](Add function to parse NatSpec) - ![image](https://github.com/evmts/evmts-monorepo/assets/35039927/da3b2c70-f16d-4f47-9de8-c05b4442193f) - -- [#438](https://github.com/evmts/evmts-monorepo/pull/438) [`eedb7e0`](https://github.com/evmts/evmts-monorepo/commit/eedb7e0e8f853acf59c3f86c1d7317bad8ee7e2b) Thanks [@roninjin10](https://github.com/roninjin10)! - Improve peformance by 98% (5x) testing against 101 simple NFT contract imports - - Major change: remove bytecode from EVMts. Needing the bytecode is a niche use case and removing it improves peformance of the compiler significantly. In future bytecode will be brought back as an optional prop - - This improves peformance by 98% (50x) testing against 101 simple NFT contract imports - - Because EVMts is still considered in alpha this will not cause a major semver bump - -- [#440](https://github.com/evmts/evmts-monorepo/pull/440) [`8cceec7`](https://github.com/evmts/evmts-monorepo/commit/8cceec7409a5fc0e72168a10821a64203ba374ab) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for resolving an AST. - Passing in an optional flag to the bundler will return an ast along with comments and abi. By default it's turned off. This AST will be usable in future prs to implement advanced langauge features like goToDefinition - - To work with the AST we add [solidity-ast](https://github.com/OpenZeppelin/solidity-ast) from open-zeppelin. - -- [#444](https://github.com/evmts/evmts-monorepo/pull/444) [`793798e`](https://github.com/evmts/evmts-monorepo/commit/793798ec3782e4081840bcd77242104c9546e70c) Thanks [@roninjin10](https://github.com/roninjin10)! - Added solcInput and solcOutput to return objects for bundler. - - Now in addition to the compiled code and the modules solcInput and solcOutput are also added along with the recently added asts property - - ![image](https://github.com/evmts/evmts-monorepo/assets/35039927/57277b41-195c-4c54-ab70-a4e1ef3fceaa) - - This will be used internally to implement go-to-definition LSP support to [@evmts/ts-plugin](https://github.com/evmts/evmts-monorepo/tree/main/ts-plugin) - -### Patch Changes - -- [#436](https://github.com/evmts/evmts-monorepo/pull/436) [`e1903df`](https://github.com/evmts/evmts-monorepo/commit/e1903df625c54b2447ce2bc2318f4c74f9a02bb5) Thanks [@roninjin10](https://github.com/roninjin10)! - Internal change: Made usage of solc typesafe - - This change adds new solc types to the [solc](https://github.com/ethereum/solc-bin) peer dependency used by EVMts. This is used by @evmts/bundler to - - - includes type for SolcInputSources and outputsources - - ![image](https://github.com/evmts/evmts-monorepo/assets/35039927/1ee13b76-98ab-4f62-9266-6e4a972de223) - - These types were adapted from [solc documentation](https://docs.soliditylang.org/en/v0.8.17/using-the-compiler.html#compiler-input-and-output-json-description) - - Shout out @o-az who kicked off this improvement in #435 - -- [#442](https://github.com/evmts/evmts-monorepo/pull/442) [`b020298`](https://github.com/evmts/evmts-monorepo/commit/b020298f1acbfad396b0c1c9a1618e00bc750a43) Thanks [@roninjin10](https://github.com/roninjin10)! - ⬆️ Upgraded all npm packages to latest - Every package in EVMts is consistently updated to it's latest version using `pnpm up --latest` -- Updated dependencies [[`eedb7e0`](https://github.com/evmts/evmts-monorepo/commit/eedb7e0e8f853acf59c3f86c1d7317bad8ee7e2b), [`b020298`](https://github.com/evmts/evmts-monorepo/commit/b020298f1acbfad396b0c1c9a1618e00bc750a43)]: - - @evmts/core@0.8.0 - - @evmts/config@0.8.0 - -## 0.7.1 - -### Patch Changes - -- Updated dependencies [[`eb6ec5d`](https://github.com/evmts/evmts-monorepo/commit/eb6ec5dff13c51baa09f0019fb8b1b94a41108cb)]: - - @evmts/tsconfig@0.7.1 - - @evmts/config@0.7.0 - - @evmts/core@0.6.0 - -## 0.7.0 - -### Minor Changes - -- [#419](https://github.com/evmts/evmts-monorepo/pull/419) [`644e8fd`](https://github.com/evmts/evmts-monorepo/commit/644e8fda95d2824c9145f8d6278cbdb6272b0609) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for monorepo imports and node_module imports - - Previously, these use cases would fail because @evmts/core was not in scope. EVMts injects a module that uses the `@evmts/core` package to create the contract objects at runtime. These packages are installed to the users node_modules and thus were not in scope for sub dependencies and other workspaces. @evmts/core now handles this via always importing @evmts/core from the users main workspace. This feature enables 2 use cases. - - ## Use case 1 - Importing from Node Modules - - A solid way to use EVMts is to install a package that has contracts in it and import the contract from node module - - ``` - import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - import { viemPublicClient, Address } from './publicClient' - - const balanceOf = (address: Address) => viemPublicClient.readContract(ERC20.balanceOf( - ``` - - ## Use case 2 - Importing from PNPM monorepos - - Devs commonly use monorepo tools such as npm workspaces, yarn workspaces, or pnpm workspaces. Previously these tools failed to work correctly but are now supported. - -### Patch Changes - -- [#411](https://github.com/evmts/evmts-monorepo/pull/411) [`8dbc952`](https://github.com/evmts/evmts-monorepo/commit/8dbc952d2dc2ca97e89bad55b162056d4f6b31a6) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed a bug with stack too deep error. - - Error happens when recursive contract imports (e.g. contract a imports contract b which imports contract c etc.) go over the total amount of stack frames allowed by JS. When this happens the process would fail with a "stack too deep error". - -- [#408](https://github.com/evmts/evmts-monorepo/pull/408) [`d7e6158`](https://github.com/evmts/evmts-monorepo/commit/d7e61583dc1529569de92868ffe49d75c045dc1f) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with using '.' instead of process.cwd() - - This bug was unlikely to affect users and mostly a stylistic problem - -- [#402](https://github.com/evmts/evmts-monorepo/pull/402) [`4f532eb`](https://github.com/evmts/evmts-monorepo/commit/4f532ebab51004603b1a41f956729fec4a3dbd2d) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed version of plugin defaulting to 0.0.0 instead of the package.json version - - Previously the version of all evmts-plugins were hardcoded to 0.0.0. Now they will correctly show the correct version. - -- [#416](https://github.com/evmts/evmts-monorepo/pull/416) [`fc28f54`](https://github.com/evmts/evmts-monorepo/commit/fc28f545635a23a76e4acce0ff48d0902eed484c) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed another stack too deep bug from a recursive function in bundler - - - A previous fix fixed a stack too deep error but another one was discovered. - - Fixed via refactoring a recursive internal function to iterative. - - This bug affected projects importing solidity that imports other solidity deep enough to make the stack too deep - -- Updated dependencies [[`8f11961`](https://github.com/evmts/evmts-monorepo/commit/8f11961f6b3ebc5882a1e5403d3726df7ddee0d4), [`fa7555a`](https://github.com/evmts/evmts-monorepo/commit/fa7555a8b0bac268f5297544422c516dae4c5511), [`c71cd30`](https://github.com/evmts/evmts-monorepo/commit/c71cd30818b311c95852a720c170ef18915b750f)]: - - @evmts/config@0.7.0 - -## 0.6.0 - -### Minor Changes - -- [#372](https://github.com/evmts/evmts-monorepo/pull/372) [`0a87d1a`](https://github.com/evmts/evmts-monorepo/commit/0a87d1a290e6cdd6902d6c1c84ea56d8bc227c45) Thanks [@roninjin10](https://github.com/roninjin10)! - Generalize and export module creators that create .d.ts .ts .cjs and .mjs modules from abis. These were previously private. - -### Patch Changes - -- [#378](https://github.com/evmts/evmts-monorepo/pull/378) [`97d7aec`](https://github.com/evmts/evmts-monorepo/commit/97d7aec9844b370129b9c46ab8c19fe9d13880ec) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed type bug of config being falsely marked as required - -- [#379](https://github.com/evmts/evmts-monorepo/pull/379) [`0ff53e7`](https://github.com/evmts/evmts-monorepo/commit/0ff53e71ff792ed4df1fa180f5a72dd5d65f4142) Thanks [@roninjin10](https://github.com/roninjin10)! - Updated build pipeline to generate .d.ts files - -- [#370](https://github.com/evmts/evmts-monorepo/pull/370) [`58862a6`](https://github.com/evmts/evmts-monorepo/commit/58862a6ebe6ec1e04961dbc2da6e846a02ef0692) Thanks [@roninjin10](https://github.com/roninjin10)! - Added 100% test coverage to bundler - -- Updated dependencies [[`6da3fe7`](https://github.com/evmts/evmts-monorepo/commit/6da3fe7fdec9bc2e4d35fc0558b79c65a105a516), [`6de12df`](https://github.com/evmts/evmts-monorepo/commit/6de12df39cf9da0635c246c685036e83a8e97255), [`0ff53e7`](https://github.com/evmts/evmts-monorepo/commit/0ff53e71ff792ed4df1fa180f5a72dd5d65f4142), [`e24901a`](https://github.com/evmts/evmts-monorepo/commit/e24901a7b503354af6174bac81a868a8598f143b), [`3a2dfae`](https://github.com/evmts/evmts-monorepo/commit/3a2dfae3a38ca7052b57b57e5c95a952a7f0be71), [`6dd223b`](https://github.com/evmts/evmts-monorepo/commit/6dd223b0b625bd7dcbea7537f053b32457761955), [`6da3fe7`](https://github.com/evmts/evmts-monorepo/commit/6da3fe7fdec9bc2e4d35fc0558b79c65a105a516)]: - - @evmts/core@0.6.0 - - @evmts/config@0.6.0 - -## 0.5.7 - -### Patch Changes - -- [#361](https://github.com/evmts/evmts-monorepo/pull/361) [`4fc4872`](https://github.com/evmts/evmts-monorepo/commit/4fc48722380d4390ef527ccbb27a63f73503c750) Thanks [@roninjin10](https://github.com/roninjin10)! - Added warning when solc version does not match config - -- [#353](https://github.com/evmts/evmts-monorepo/pull/353) [`97cb0c1`](https://github.com/evmts/evmts-monorepo/commit/97cb0c1381f3a0b3ffa92dfcb09c397cff3190dd) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with exporting private variables in .d.ts - -- [#351](https://github.com/evmts/evmts-monorepo/pull/351) [`ca58f7a`](https://github.com/evmts/evmts-monorepo/commit/ca58f7a66b01a68d93585d664a77a43f67ce5bbc) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for reload when any contract in the import graph changes - -## 0.5.6 - -### Patch Changes - -- [#345](https://github.com/evmts/evmts-monorepo/pull/345) [`31186f7`](https://github.com/evmts/evmts-monorepo/commit/31186f749ce5cd3c6e0ca4d4885975aa74512c45) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed typo breaking TS language server - -- [#346](https://github.com/evmts/evmts-monorepo/pull/346) [`6d9365d`](https://github.com/evmts/evmts-monorepo/commit/6d9365db3ab197ea4ad53f777d755ee3ad562b21) Thanks [@roninjin10](https://github.com/roninjin10)! - Change naming to Evmts from EVMts - -- Updated dependencies [[`6d9365d`](https://github.com/evmts/evmts-monorepo/commit/6d9365db3ab197ea4ad53f777d755ee3ad562b21)]: - - @evmts/config@0.5.6 - - @evmts/core@0.5.6 - -## 0.5.5 - -### Patch Changes - -- [#343](https://github.com/evmts/evmts-monorepo/pull/343) [`bec7e33`](https://github.com/evmts/evmts-monorepo/commit/bec7e3303e8b241213804c42f6673a38dc7a954c) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with generated .d.ts file name param - -## 0.5.4 - -### Patch Changes - -- [#339](https://github.com/evmts/evmts-monorepo/pull/339) [`c9dec08`](https://github.com/evmts/evmts-monorepo/commit/c9dec084df5c5a9999a8f917405a15b11a004c02) Thanks [@roninjin10](https://github.com/roninjin10)! - Upgraded all dependencies - -- Updated dependencies [[`0116537`](https://github.com/evmts/evmts-monorepo/commit/0116537d3423c8decfd0adaf490d37d33f8a540f), [`2b8b5ed`](https://github.com/evmts/evmts-monorepo/commit/2b8b5ed9852c32e15a7466f00f4ca9c0458cfeef)]: - - @evmts/config@0.5.4 - - @evmts/core@0.5.4 - -## 0.5.3 - -### Patch Changes - -- Updated dependencies [[`2dc1950`](https://github.com/evmts/evmts-monorepo/commit/2dc19507c9d957948dcff8f65a359fc25b0ceb10)]: - - @evmts/core@0.5.3 - -## 0.5.2 - -### Patch Changes - -- Updated dependencies [[`cdbe2b1`](https://github.com/evmts/evmts-monorepo/commit/cdbe2b14d3a9b40ea37898829bc982b5e76e3c4c)]: - - @evmts/core@0.5.2 - -## 0.5.1 - -### Patch Changes - -- Updated dependencies [[`cec44b5`](https://github.com/evmts/evmts-monorepo/commit/cec44b5042bc76c21a9b695383714642c2b44da6)]: - - @evmts/core@0.5.1 - -## 0.5.0 - -### Minor Changes - -- [#283](https://github.com/evmts/evmts-monorepo/pull/283) [`05a8efe`](https://github.com/evmts/evmts-monorepo/commit/05a8efede4acad157e3820bdba24d92f598699e5) Thanks [@roninjin10](https://github.com/roninjin10)! - Updated config schema to support etherscan - - Solc version is now listed under `compiler.solcVersion` instead of `solc` - - Foundry projects are now listed under `compiler.foundryProject` instead of `forge` - - Local contracts are now specified under `localContracts.contracts` instead of `deployments` - - New external option (unimplemented) `externalContracts` which is used to specifify contracts imported from etherscan in the next release - -### Patch Changes - -- [#298](https://github.com/evmts/evmts-monorepo/pull/298) [`841d6a8`](https://github.com/evmts/evmts-monorepo/commit/841d6a89f4995e4f666902d27cb7dbfc3efd77e5) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with etherscan links showing as undefined if they didn't exist - -- [#301](https://github.com/evmts/evmts-monorepo/pull/301) [`83bf23b`](https://github.com/evmts/evmts-monorepo/commit/83bf23b0cb2eb5860f9dfb63a773541e48c62abc) Thanks [@roninjin10](https://github.com/roninjin10)! - Upgraded all dependencies - -- Updated dependencies [[`700b3d0`](https://github.com/evmts/evmts-monorepo/commit/700b3d0907df243b29e96b1b3246b8c75cfb9900), [`720bfdb`](https://github.com/evmts/evmts-monorepo/commit/720bfdba790699e388c5ec1c68630b9f0f077158), [`05a8efe`](https://github.com/evmts/evmts-monorepo/commit/05a8efede4acad157e3820bdba24d92f598699e5), [`85c340d`](https://github.com/evmts/evmts-monorepo/commit/85c340dc4a63afdbc6bd92fb4b2cf3fe0ffdc6e7), [`0bd5b45`](https://github.com/evmts/evmts-monorepo/commit/0bd5b4511e292380a7ac87a898d22dbd32df9e35), [`720bfdb`](https://github.com/evmts/evmts-monorepo/commit/720bfdba790699e388c5ec1c68630b9f0f077158), [`2ab7c02`](https://github.com/evmts/evmts-monorepo/commit/2ab7c022520fe3c03f337d51dc0f7875830492f1)]: - - @evmts/config@0.5.0 - - @evmts/core@0.5.0 - -## 0.4.2 - -### Patch Changes - -- [#279](https://github.com/evmts/evmts-monorepo/pull/279) [`fd6b482`](https://github.com/evmts/evmts-monorepo/commit/fd6b4825417fa81d601e9a3c5078131bc1f816c0) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed source file does not exist warning in @evmts/bundler - -## 0.4.1 - -### Patch Changes - -- Updated dependencies [[`2a89e13`](https://github.com/evmts/evmts-monorepo/commit/2a89e136d8dfcd997ae5ff227a96de4702dfbe19)]: - - @evmts/config@0.2.1 - -## 0.4.0 - -### Minor Changes - -- [#268](https://github.com/evmts/evmts-monorepo/pull/268) [`a37844f`](https://github.com/evmts/evmts-monorepo/commit/a37844faa425d1eaca112b9a09640b7ec7e288de) Thanks [@roninjin10](https://github.com/roninjin10)! - Added support for detecting foundry.toml and remappings as tsconfig option. Set forge: true in plugin tsconfig options or forge: '/path/to/binary/forge' for a custom forge binary - -### Patch Changes - -- Updated dependencies [[`1f6919c`](https://github.com/evmts/evmts-monorepo/commit/1f6919cfc54648499129d3642ddbb64568b1e798), [`a37844f`](https://github.com/evmts/evmts-monorepo/commit/a37844faa425d1eaca112b9a09640b7ec7e288de)]: - - @evmts/core@0.3.1 - - @evmts/config@0.2.0 - -## 0.3.0 - -### Minor Changes - -- [#259](https://github.com/evmts/evmts-monorepo/pull/259) [`7ad7463`](https://github.com/evmts/evmts-monorepo/commit/7ad746347d3e127f001abdc28fff2a10c1ffed65) Thanks [@roninjin10](https://github.com/roninjin10)! - Added bytecode to Evmts contracts - -### Patch Changes - -- [#258](https://github.com/evmts/evmts-monorepo/pull/258) [`9a9b963`](https://github.com/evmts/evmts-monorepo/commit/9a9b96327cd2f8415cf09a471a7589fa3df90394) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed bug with handling overloaded functions - -- Updated dependencies [[`7ad7463`](https://github.com/evmts/evmts-monorepo/commit/7ad746347d3e127f001abdc28fff2a10c1ffed65), [`9a9b963`](https://github.com/evmts/evmts-monorepo/commit/9a9b96327cd2f8415cf09a471a7589fa3df90394)]: - - @evmts/core@0.3.0 - -## 0.2.0 - -### Minor Changes - -- [#252](https://github.com/evmts/evmts-monorepo/pull/252) [`4b361ea`](https://github.com/evmts/evmts-monorepo/commit/4b361ea43fb34541bee4f75c8bea9d93543b1813) Thanks [@roninjin10](https://github.com/roninjin10)! - Changed Evmts configuration to be purely from tsconfig - -### Patch Changes - -- [#251](https://github.com/evmts/evmts-monorepo/pull/251) [`52732a1`](https://github.com/evmts/evmts-monorepo/commit/52732a1bcd59faa7970e5298d1e71a61c687fd67) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed missing src folder in npm packages - -- Updated dependencies [[`52732a1`](https://github.com/evmts/evmts-monorepo/commit/52732a1bcd59faa7970e5298d1e71a61c687fd67), [`4b361ea`](https://github.com/evmts/evmts-monorepo/commit/4b361ea43fb34541bee4f75c8bea9d93543b1813)]: - - @evmts/config@0.1.0 - - @evmts/core@0.2.0 - -## 0.1.0 - -### Minor Changes - -- [#249](https://github.com/evmts/evmts-monorepo/pull/249) [`fda2523`](https://github.com/evmts/evmts-monorepo/commit/fda25237cea8a4e94fc6dc043174810ae441fb8e) Thanks [@roninjin10](https://github.com/roninjin10)! - Added etherscan links for most major EVM networks - -### Patch Changes - -- [#247](https://github.com/evmts/evmts-monorepo/pull/247) [`f7ba6e5`](https://github.com/evmts/evmts-monorepo/commit/f7ba6e5546263d7a94baf50ca1010a2b505580e0) Thanks [@roninjin10](https://github.com/roninjin10)! - Fixed incorrect peer dependency configuation for solc - -## 0.0.3 - -### Patch Changes - -- Updated dependencies [[`ab40941`](https://github.com/evmts/evmts-monorepo/commit/ab40941221c4edacce16659ef88bdfdb90c325bb), [`058d904`](https://github.com/evmts/evmts-monorepo/commit/058d90474598ea790d4de9fd8501381a77edbcb6)]: - - @evmts/core@0.1.2 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies []: - - @evmts/core@0.1.1 - -## 0.0.1 - -### Patch Changes - -- [`2a31d64`](https://github.com/evmts/evmts-monorepo/commit/2a31d640b61a3e3eda63e0ca0442104ea27bfaec) - Init new changesets - -- Updated dependencies [[`e21f2f4`](https://github.com/evmts/evmts-monorepo/commit/e21f2f4fbdafc7d6d859f513afa319b9812826f0), [`88ec554`](https://github.com/evmts/evmts-monorepo/commit/88ec554a592d29aaba0a0d69ec61fd75118e817c), [`877c137`](https://github.com/evmts/evmts-monorepo/commit/877c137dfbe8a143099ddb0656236c35bceb2f87), [`2a31d64`](https://github.com/evmts/evmts-monorepo/commit/2a31d640b61a3e3eda63e0ca0442104ea27bfaec)]: - - @evmts/core@0.1.0 - - @evmts/config@0.0.1 - -## 0.0.1-next.0 - -### Patch Changes - -- [`2a31d64`](https://github.com/evmts/evmts-monorepo/commit/2a31d640b61a3e3eda63e0ca0442104ea27bfaec) - Init new changesets - -- Updated dependencies [[`2a31d64`](https://github.com/evmts/evmts-monorepo/commit/2a31d640b61a3e3eda63e0ca0442104ea27bfaec)]: - - @evmts/config@0.0.1-next.0 - - @evmts/core@0.0.4-next.0 - -## 0.0.2 - -### Patch Changes - -- Release working proof of concept diff --git a/runtime/README.md b/runtime/README.md index c812fa9c34..196199e051 100644 --- a/runtime/README.md +++ b/runtime/README.md @@ -13,11 +13,11 @@ [![CI](https://github.com/evmts/evmts-monorepo/actions/workflows/e2e.yml/badge.svg)](https://github.com/evmts/evmts-monorepo/actions/workflows/e2e.yml) [![CI](https://github.com/evmts/evmts-monorepo/actions/workflows/unit.yml/badge.svg)](https://github.com/evmts/evmts-monorepo/actions/workflows/unit.yml) - - + + - - + + # @evmts/runtime diff --git a/runtime/docs/README.md b/runtime/docs/README.md index 7195017612..51d50da8df 100644 --- a/runtime/docs/README.md +++ b/runtime/docs/README.md @@ -15,11 +15,11 @@ [![CI](https://github.com/evmts/evmts-monorepo/actions/workflows/e2e.yml/badge.svg)](https://github.com/evmts/evmts-monorepo/actions/workflows/e2e.yml) [![CI](https://github.com/evmts/evmts-monorepo/actions/workflows/unit.yml/badge.svg)](https://github.com/evmts/evmts-monorepo/actions/workflows/unit.yml) - - + + - - + + # @evmts/runtime diff --git a/runtime/package.json b/runtime/package.json index 81a2b47a46..d67367d2a4 100644 --- a/runtime/package.json +++ b/runtime/package.json @@ -60,7 +60,7 @@ "@evmts/tsconfig": "workspace:^", "@types/node": "^20.7.2", "@types/resolve": "^1.20.3", - "effect": "2.0.0-next.50", + "effect": "^2.0.0-next.52", "glob": "^10.3.10", "resolve": "^1.22.6", "solidity-ast": "^0.4.52", diff --git a/schemas/package.json b/schemas/package.json index e4d8218aa0..fa893dc80d 100644 --- a/schemas/package.json +++ b/schemas/package.json @@ -58,8 +58,8 @@ "typecheck": "bun run tsc --noEmit" }, "dependencies": { - "@effect/schema": "^0.45.5", - "effect": "2.0.0-next.50" + "@effect/schema": "^0.46.2", + "effect": "^2.0.0-next.52" }, "devDependencies": { "@evmts/tsconfig": "workspace:^", diff --git a/solc/docs/interfaces/types.ModuleInfo.md b/solc/docs/interfaces/types.ModuleInfo.md deleted file mode 100644 index 0c4ecd672e..0000000000 --- a/solc/docs/interfaces/types.ModuleInfo.md +++ /dev/null @@ -1,71 +0,0 @@ -[@evmts/solc](../README.md) / [Modules](../modules.md) / [types](../modules/types.md) / ModuleInfo - -# Interface: ModuleInfo - -[types](../modules/types.md).ModuleInfo - -Copied from rollup (kinda) - -**`See`** - -https://rollupjs.org/plugin-development/#this-getmoduleinfo - -## Table of contents - -### Properties - -- [code](types.ModuleInfo.md#code) -- [id](types.ModuleInfo.md#id) -- [importedIds](types.ModuleInfo.md#importedids) -- [rawCode](types.ModuleInfo.md#rawcode) -- [resolutions](types.ModuleInfo.md#resolutions) - -## Properties - -### code - -• **code**: ``null`` \| `string` - -#### Defined in - -[types.ts:27](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L27) - -___ - -### id - -• **id**: `string` - -#### Defined in - -[types.ts:25](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L25) - -___ - -### importedIds - -• **importedIds**: `string`[] - -#### Defined in - -[types.ts:28](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L28) - -___ - -### rawCode - -• **rawCode**: ``null`` \| `string` - -#### Defined in - -[types.ts:26](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L26) - -___ - -### resolutions - -• **resolutions**: [`ModuleInfo`](types.ModuleInfo.md)[] - -#### Defined in - -[types.ts:29](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L29) diff --git a/solc/docs/modules/resolveArtifacts.md b/solc/docs/modules/resolveArtifacts.md index 34fb960200..443b375361 100644 --- a/solc/docs/modules/resolveArtifacts.md +++ b/solc/docs/modules/resolveArtifacts.md @@ -35,10 +35,10 @@ Resolves artifacts with solc asyncronously | :------ | :------ | | `artifacts` | [`Artifacts`](types.md#artifacts) | | `asts` | `undefined` \| `Record`<`string`, `Node`\> | -| `modules` | `Record`<``"string"``, [`ModuleInfo`](../interfaces/types.ModuleInfo.md)\> | +| `modules` | `Record`<``"string"``, `ModuleInfo`\> | | `solcInput` | `SolcInputDescription` | | `solcOutput` | `SolcOutput` | #### Defined in -[resolveArtifactsSync.d.ts:16](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/resolveArtifactsSync.d.ts#L16) +[solc/src/resolveArtifactsSync.d.ts:16](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/resolveArtifactsSync.d.ts#L16) diff --git a/solc/docs/modules/resolveArtifactsSync.md b/solc/docs/modules/resolveArtifactsSync.md index 2b2643e2b6..efd64c3802 100644 --- a/solc/docs/modules/resolveArtifactsSync.md +++ b/solc/docs/modules/resolveArtifactsSync.md @@ -33,10 +33,10 @@ | :------ | :------ | | `artifacts` | [`Artifacts`](types.md#artifacts) | | `asts` | `undefined` \| `Record`<`string`, `Node`\> | -| `modules` | `Record`<``"string"``, [`ModuleInfo`](../interfaces/types.ModuleInfo.md)\> | +| `modules` | `Record`<``"string"``, `ModuleInfo`\> | | `solcInput` | `SolcInputDescription` | | `solcOutput` | `SolcOutput` | #### Defined in -[resolveArtifactsSync.d.ts:16](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/resolveArtifactsSync.d.ts#L16) +[solc/src/resolveArtifactsSync.d.ts:16](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/resolveArtifactsSync.d.ts#L16) diff --git a/solc/docs/modules/solc.md b/solc/docs/modules/solc.md index 3a7d71532c..83ee69d263 100644 --- a/solc/docs/modules/solc.md +++ b/solc/docs/modules/solc.md @@ -20,7 +20,7 @@ #### Defined in -[solc.js:7](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/solc.js#L7) +[solc/src/solc.js:7](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/solc.js#L7) ## Functions @@ -42,4 +42,4 @@ Typesafe wrapper around solc.compile #### Defined in -[solc.js:14](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/solc.js#L14) +[solc/src/solc.js:14](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/solc.js#L14) diff --git a/solc/docs/modules/types.md b/solc/docs/modules/types.md index 6ec070c77a..78a22a013f 100644 --- a/solc/docs/modules/types.md +++ b/solc/docs/modules/types.md @@ -4,16 +4,13 @@ ## Table of contents -### Interfaces - -- [ModuleInfo](../interfaces/types.ModuleInfo.md) - ### Type Aliases - [Artifacts](types.md#artifacts) - [CompiledContracts](types.md#compiledcontracts) - [FileAccessObject](types.md#fileaccessobject) - [Logger](types.md#logger) +- [ModuleInfo](types.md#moduleinfo) ## Type Aliases @@ -23,7 +20,7 @@ #### Defined in -[types.ts:40](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L40) +[solc/src/types.ts:32](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L32) ___ @@ -43,13 +40,13 @@ ___ | :------ | :------ | | `artifacts` | `SolcOutput`[``"contracts"``][`string`] \| `undefined` | | `asts` | `TIncludeAsts` extends ``true`` ? `Record`<`string`, `Node`\> : `undefined` | -| `modules` | `Record`<``"string"``, [`ModuleInfo`](../interfaces/types.ModuleInfo.md)\> | +| `modules` | `Record`<``"string"``, [`ModuleInfo`](types.md#moduleinfo)\> | | `solcInput` | `SolcInputDescription` | | `solcOutput` | `SolcOutput` | #### Defined in -[types.ts:32](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L32) +[solc/src/types.ts:24](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L24) ___ @@ -67,7 +64,7 @@ ___ #### Defined in -[types.ts:8](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L8) +[solc/src/types.ts:9](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L9) ___ @@ -86,4 +83,16 @@ ___ #### Defined in -[types.ts:14](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L14) +[solc/src/types.ts:15](https://github.com/evmts/evmts-monorepo/blob/main/solc/src/types.ts#L15) + +___ + +### ModuleInfo + +Ƭ **ModuleInfo**: `ModuleInfo` + +./moduleFactory.js + +#### Defined in + +resolutions/types/src/index.d.ts:14 diff --git a/solc/package.json b/solc/package.json index 524a1ce61e..2fd63ad1b3 100644 --- a/solc/package.json +++ b/solc/package.json @@ -50,17 +50,17 @@ "generate:docs": "bun run typedoc", "lint": "rome check . --apply-unsafe", "lint:check": "rome check . --verbose", - "test": "vitest --coverage", - "test:coverage": "vitest run --coverage", - "test:run": "vitest run", - "test:ui": "vitest --ui" + "test": "bun run vitest --coverage", + "test:coverage": "bun run vitest run --coverage", + "test:run": "bun run vitest run", + "test:ui": "bun run vitest --ui" }, "dependencies": { "@evmts/config": "workspace:^", "@evmts/tsconfig": "workspace:^", "@types/node": "^20.7.2", "@types/resolve": "^1.20.3", - "effect": "2.0.0-next.50", + "effect": "^2.0.0-next.52", "glob": "^10.3.10", "resolve": "^1.22.6", "solidity-ast": "^0.4.52", @@ -69,6 +69,7 @@ "devDependencies": { "@evmts/core": "workspace:^", "@evmts/resolutions": "workspace:^", + "@openzeppelin/contracts": "^4.9.3", "@vitest/coverage-v8": "^0.34.6", "@vitest/ui": "^0.34.6", "abitype": "^0.9.8", diff --git a/solc/src/compiler/__snapshots__/compileContracts.spec.ts.snap b/solc/src/compiler/__snapshots__/compileContracts.spec.ts.snap new file mode 100644 index 0000000000..c355513c0c --- /dev/null +++ b/solc/src/compiler/__snapshots__/compileContracts.spec.ts.snap @@ -0,0 +1,2923 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`compileContract > should successfully compile a contract without errors 1`] = ` +"{ + \\"artifacts\\": { + \\"WagmiMintExample\\": { + \\"abi\\": [ + { + \\"inputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"constructor\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"mint\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"mint\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"pure\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"totalSupply\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": { + \\"mint()\\": { + \\"notice\\": \\"Allows an address to mint\\" + }, + \\"mint(uint256)\\": { + \\"notice\\": \\"Returns the token URI for a given token by ID\\" + }, + \\"tokenURI(uint256)\\": { + \\"notice\\": \\"Returns the token URI for a given token by ID\\" + } + }, + \\"notice\\": \\"An example token original from the wagmi template\\", + \\"version\\": 1 + } + } + }, + \\"modules\\": { + \\"./Contract.sol\\": { + \\"id\\": \\"./Contract.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Base64.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides a set of functions to operate with Base64 strings.\\\\n *\\\\n * _Available since v4.5._\\\\n */\\\\nlibrary Base64 {\\\\n /**\\\\n * @dev Base64 Encoding/Decoding Table\\\\n */\\\\n string internal constant _TABLE = \\\\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\\\\";\\\\n\\\\n /**\\\\n * @dev Converts a \`bytes\` to its Bytes64 \`string\` representation.\\\\n */\\\\n function encode(bytes memory data) internal pure returns (string memory) {\\\\n /**\\\\n * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\\\\n * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\\\\n */\\\\n if (data.length == 0) return \\\\\\"\\\\\\";\\\\n\\\\n // Loads the table into memory\\\\n string memory table = _TABLE;\\\\n\\\\n // Encoding takes 3 bytes chunks of binary data from \`bytes\` data parameter\\\\n // and split into 4 numbers of 6 bits.\\\\n // The final Base64 length should be \`bytes\` data length multiplied by 4/3 rounded up\\\\n // - \`data.length + 2\` -> Round up\\\\n // - \`/ 3\` -> Number of 3-bytes chunks\\\\n // - \`4 *\` -> 4 characters for each chunk\\\\n string memory result = new string(4 * ((data.length + 2) / 3));\\\\n\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n // Prepare the lookup table (skip the first \\\\\\"length\\\\\\" byte)\\\\n let tablePtr := add(table, 1)\\\\n\\\\n // Prepare result pointer, jump over length\\\\n let resultPtr := add(result, 32)\\\\n\\\\n // Run over the input, 3 bytes at a time\\\\n for {\\\\n let dataPtr := data\\\\n let endPtr := add(data, mload(data))\\\\n } lt(dataPtr, endPtr) {\\\\n\\\\n } {\\\\n // Advance 3 bytes\\\\n dataPtr := add(dataPtr, 3)\\\\n let input := mload(dataPtr)\\\\n\\\\n // To write each character, shift the 3 bytes (18 bits) chunk\\\\n // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\\\\n // and apply logical AND with 0x3F which is the number of\\\\n // the previous character in the ASCII table prior to the Base64 Table\\\\n // The result is then added to the table to get the character to write,\\\\n // and finally write it in the result pointer but with a left shift\\\\n // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n }\\\\n\\\\n // When data \`bytes\` is not exactly 3 bytes long\\\\n // it is padded with \`=\` characters at the end\\\\n switch mod(mload(data), 3)\\\\n case 1 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n mstore8(sub(resultPtr, 2), 0x3d)\\\\n }\\\\n case 2 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n }\\\\n }\\\\n\\\\n return result;\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Base64.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides a set of functions to operate with Base64 strings.\\\\n *\\\\n * _Available since v4.5._\\\\n */\\\\nlibrary Base64 {\\\\n /**\\\\n * @dev Base64 Encoding/Decoding Table\\\\n */\\\\n string internal constant _TABLE = \\\\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\\\\";\\\\n\\\\n /**\\\\n * @dev Converts a \`bytes\` to its Bytes64 \`string\` representation.\\\\n */\\\\n function encode(bytes memory data) internal pure returns (string memory) {\\\\n /**\\\\n * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\\\\n * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\\\\n */\\\\n if (data.length == 0) return \\\\\\"\\\\\\";\\\\n\\\\n // Loads the table into memory\\\\n string memory table = _TABLE;\\\\n\\\\n // Encoding takes 3 bytes chunks of binary data from \`bytes\` data parameter\\\\n // and split into 4 numbers of 6 bits.\\\\n // The final Base64 length should be \`bytes\` data length multiplied by 4/3 rounded up\\\\n // - \`data.length + 2\` -> Round up\\\\n // - \`/ 3\` -> Number of 3-bytes chunks\\\\n // - \`4 *\` -> 4 characters for each chunk\\\\n string memory result = new string(4 * ((data.length + 2) / 3));\\\\n\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n // Prepare the lookup table (skip the first \\\\\\"length\\\\\\" byte)\\\\n let tablePtr := add(table, 1)\\\\n\\\\n // Prepare result pointer, jump over length\\\\n let resultPtr := add(result, 32)\\\\n\\\\n // Run over the input, 3 bytes at a time\\\\n for {\\\\n let dataPtr := data\\\\n let endPtr := add(data, mload(data))\\\\n } lt(dataPtr, endPtr) {\\\\n\\\\n } {\\\\n // Advance 3 bytes\\\\n dataPtr := add(dataPtr, 3)\\\\n let input := mload(dataPtr)\\\\n\\\\n // To write each character, shift the 3 bytes (18 bits) chunk\\\\n // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\\\\n // and apply logical AND with 0x3F which is the number of\\\\n // the previous character in the ASCII table prior to the Base64 Table\\\\n // The result is then added to the table to get the character to write,\\\\n // and finally write it in the result pointer but with a left shift\\\\n // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n }\\\\n\\\\n // When data \`bytes\` is not exactly 3 bytes long\\\\n // it is padded with \`=\` characters at the end\\\\n switch mod(mload(data), 3)\\\\n case 1 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n mstore8(sub(resultPtr, 2), 0x3d)\\\\n }\\\\n case 2 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n }\\\\n }\\\\n\\\\n return result;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"./IERC721.sol\\\\\\";\\\\nimport \\\\\\"./IERC721Receiver.sol\\\\\\";\\\\nimport \\\\\\"./extensions/IERC721Metadata.sol\\\\\\";\\\\nimport \\\\\\"../../utils/Address.sol\\\\\\";\\\\nimport \\\\\\"../../utils/Context.sol\\\\\\";\\\\nimport \\\\\\"../../utils/Strings.sol\\\\\\";\\\\nimport \\\\\\"../../utils/introspection/ERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\\\n * {ERC721Enumerable}.\\\\n */\\\\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\\\\n using Address for address;\\\\n using Strings for uint256;\\\\n\\\\n // Token name\\\\n string private _name;\\\\n\\\\n // Token symbol\\\\n string private _symbol;\\\\n\\\\n // Mapping from token ID to owner address\\\\n mapping(uint256 => address) private _owners;\\\\n\\\\n // Mapping owner address to token count\\\\n mapping(address => uint256) private _balances;\\\\n\\\\n // Mapping from token ID to approved address\\\\n mapping(uint256 => address) private _tokenApprovals;\\\\n\\\\n // Mapping from owner to operator approvals\\\\n mapping(address => mapping(address => bool)) private _operatorApprovals;\\\\n\\\\n /**\\\\n * @dev Initializes the contract by setting a \`name\` and a \`symbol\` to the token collection.\\\\n */\\\\n constructor(string memory name_, string memory symbol_) {\\\\n _name = name_;\\\\n _symbol = symbol_;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\\\n return\\\\n interfaceId == type(IERC721).interfaceId ||\\\\n interfaceId == type(IERC721Metadata).interfaceId ||\\\\n super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-balanceOf}.\\\\n */\\\\n function balanceOf(address owner) public view virtual override returns (uint256) {\\\\n require(owner != address(0), \\\\\\"ERC721: address zero is not a valid owner\\\\\\");\\\\n return _balances[owner];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-ownerOf}.\\\\n */\\\\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\\\\n address owner = _ownerOf(tokenId);\\\\n require(owner != address(0), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n return owner;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-name}.\\\\n */\\\\n function name() public view virtual override returns (string memory) {\\\\n return _name;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-symbol}.\\\\n */\\\\n function symbol() public view virtual override returns (string memory) {\\\\n return _symbol;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-tokenURI}.\\\\n */\\\\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\\\\n _requireMinted(tokenId);\\\\n\\\\n string memory baseURI = _baseURI();\\\\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\\\n * token will be the concatenation of the \`baseURI\` and the \`tokenId\`. Empty\\\\n * by default, can be overridden in child contracts.\\\\n */\\\\n function _baseURI() internal view virtual returns (string memory) {\\\\n return \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-approve}.\\\\n */\\\\n function approve(address to, uint256 tokenId) public virtual override {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n require(to != owner, \\\\\\"ERC721: approval to current owner\\\\\\");\\\\n\\\\n require(\\\\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\\\\n \\\\\\"ERC721: approve caller is not token owner or approved for all\\\\\\"\\\\n );\\\\n\\\\n _approve(to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-getApproved}.\\\\n */\\\\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\\\\n _requireMinted(tokenId);\\\\n\\\\n return _tokenApprovals[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-setApprovalForAll}.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) public virtual override {\\\\n _setApprovalForAll(_msgSender(), operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-isApprovedForAll}.\\\\n */\\\\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\\\\n return _operatorApprovals[owner][operator];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-transferFrom}.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n //solhint-disable-next-line max-line-length\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n\\\\n _transfer(from, to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n safeTransferFrom(from, to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override {\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n _safeTransfer(from, to, tokenId, data);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * \`data\` is additional data, it has no specified format and it is sent in call to \`to\`.\\\\n *\\\\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\\\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _transfer(from, to, tokenId);\\\\n require(_checkOnERC721Received(from, to, tokenId, data), \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\`. Does NOT revert if token doesn't exist\\\\n */\\\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\\\n return _owners[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`tokenId\` exists.\\\\n *\\\\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\\\\n *\\\\n * Tokens start existing when they are minted (\`_mint\`),\\\\n * and stop existing when they are burned (\`_burn\`).\\\\n */\\\\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\\\\n return _ownerOf(tokenId) != address(0);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`spender\` is allowed to manage \`tokenId\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId) internal virtual {\\\\n _safeMint(to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[\`_safeMint\`], with an additional \`data\` parameter which is\\\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _mint(to, tokenId);\\\\n require(\\\\n _checkOnERC721Received(address(0), to, tokenId, data),\\\\n \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\"\\\\n );\\\\n }\\\\n\\\\n /**\\\\n * @dev Mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - \`to\` cannot be the zero address.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _mint(address to, uint256 tokenId) internal virtual {\\\\n require(to != address(0), \\\\\\"ERC721: mint to the zero address\\\\\\");\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n _beforeTokenTransfer(address(0), to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not minted by \`_beforeTokenTransfer\` hook\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n unchecked {\\\\n // Will not overflow unless all 2**256 token ids are minted to the same owner.\\\\n // Given that tokens are minted one by one, it is impossible in practice that\\\\n // this ever happens. Might change if we allow batch minting.\\\\n // The ERC fails to describe this case.\\\\n _balances[to] += 1;\\\\n }\\\\n\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(address(0), to, tokenId);\\\\n\\\\n _afterTokenTransfer(address(0), to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Destroys \`tokenId\`.\\\\n * The approval is cleared when the token is burned.\\\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _burn(uint256 tokenId) internal virtual {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n\\\\n _beforeTokenTransfer(owner, address(0), tokenId, 1);\\\\n\\\\n // Update ownership in case tokenId was transferred by \`_beforeTokenTransfer\` hook\\\\n owner = ERC721.ownerOf(tokenId);\\\\n\\\\n // Clear approvals\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // Cannot overflow, as that would require more tokens to be burned/transferred\\\\n // out than the owner initially received through minting and transferring in.\\\\n _balances[owner] -= 1;\\\\n }\\\\n delete _owners[tokenId];\\\\n\\\\n emit Transfer(owner, address(0), tokenId);\\\\n\\\\n _afterTokenTransfer(owner, address(0), tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` from \`from\` to \`to\`.\\\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n require(to != address(0), \\\\\\"ERC721: transfer to the zero address\\\\\\");\\\\n\\\\n _beforeTokenTransfer(from, to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not transferred by \`_beforeTokenTransfer\` hook\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n\\\\n // Clear approvals from the previous owner\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // \`_balances[from]\` cannot overflow for the same reason as described in \`_burn\`:\\\\n // \`from\`'s balance is the number of token held, which is at least one before the current\\\\n // transfer.\\\\n // \`_balances[to]\` could overflow in the conditions described in \`_mint\`. That would require\\\\n // all 2**256 token ids to be minted, which in practice is impossible.\\\\n _balances[from] -= 1;\\\\n _balances[to] += 1;\\\\n }\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(from, to, tokenId);\\\\n\\\\n _afterTokenTransfer(from, to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`to\` to operate on \`tokenId\`\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function _approve(address to, uint256 tokenId) internal virtual {\\\\n _tokenApprovals[tokenId] = to;\\\\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`operator\` to operate on all of \`owner\` tokens\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\\\n require(owner != operator, \\\\\\"ERC721: approve to caller\\\\\\");\\\\n _operatorApprovals[owner][operator] = approved;\\\\n emit ApprovalForAll(owner, operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev Reverts if the \`tokenId\` has not been minted yet.\\\\n */\\\\n function _requireMinted(uint256 tokenId) internal view virtual {\\\\n require(_exists(tokenId), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\\\\n * The call is not executed if the target address is not a contract.\\\\n *\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param to target address that will receive the tokens\\\\n * @param tokenId uint256 ID of the token to be transferred\\\\n * @param data bytes optional data to send along with the call\\\\n * @return bool whether the call correctly returned the expected magic value\\\\n */\\\\n function _checkOnERC721Received(\\\\n address from,\\\\n address to,\\\\n uint256 tokenId,\\\\n bytes memory data\\\\n ) private returns (bool) {\\\\n if (to.isContract()) {\\\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\\\n return retval == IERC721Receiver.onERC721Received.selector;\\\\n } catch (bytes memory reason) {\\\\n if (reason.length == 0) {\\\\n revert(\\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n } else {\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n revert(add(32, reason), mload(reason))\\\\n }\\\\n }\\\\n }\\\\n } else {\\\\n return true;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens will be transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens will be minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens will be burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens were transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens were minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens were burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _afterTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Unsafe write access to the balances, used by extensions that \\\\\\"mint\\\\\\" tokens using an {ownerOf} override.\\\\n *\\\\n * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\\\\n * being that for any address \`a\` the value returned by \`balanceOf(a)\` must be equal to the number of tokens such\\\\n * that \`ownerOf(tokenId)\` is \`a\`.\\\\n */\\\\n // solhint-disable-next-line func-name-mixedcase\\\\n function __unsafe_increaseBalance(address account, uint256 amount) internal {\\\\n _balances[account] += amount;\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\\\n * {ERC721Enumerable}.\\\\n */\\\\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\\\\n using Address for address;\\\\n using Strings for uint256;\\\\n\\\\n // Token name\\\\n string private _name;\\\\n\\\\n // Token symbol\\\\n string private _symbol;\\\\n\\\\n // Mapping from token ID to owner address\\\\n mapping(uint256 => address) private _owners;\\\\n\\\\n // Mapping owner address to token count\\\\n mapping(address => uint256) private _balances;\\\\n\\\\n // Mapping from token ID to approved address\\\\n mapping(uint256 => address) private _tokenApprovals;\\\\n\\\\n // Mapping from owner to operator approvals\\\\n mapping(address => mapping(address => bool)) private _operatorApprovals;\\\\n\\\\n /**\\\\n * @dev Initializes the contract by setting a \`name\` and a \`symbol\` to the token collection.\\\\n */\\\\n constructor(string memory name_, string memory symbol_) {\\\\n _name = name_;\\\\n _symbol = symbol_;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\\\n return\\\\n interfaceId == type(IERC721).interfaceId ||\\\\n interfaceId == type(IERC721Metadata).interfaceId ||\\\\n super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-balanceOf}.\\\\n */\\\\n function balanceOf(address owner) public view virtual override returns (uint256) {\\\\n require(owner != address(0), \\\\\\"ERC721: address zero is not a valid owner\\\\\\");\\\\n return _balances[owner];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-ownerOf}.\\\\n */\\\\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\\\\n address owner = _ownerOf(tokenId);\\\\n require(owner != address(0), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n return owner;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-name}.\\\\n */\\\\n function name() public view virtual override returns (string memory) {\\\\n return _name;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-symbol}.\\\\n */\\\\n function symbol() public view virtual override returns (string memory) {\\\\n return _symbol;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-tokenURI}.\\\\n */\\\\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\\\\n _requireMinted(tokenId);\\\\n\\\\n string memory baseURI = _baseURI();\\\\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\\\n * token will be the concatenation of the \`baseURI\` and the \`tokenId\`. Empty\\\\n * by default, can be overridden in child contracts.\\\\n */\\\\n function _baseURI() internal view virtual returns (string memory) {\\\\n return \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-approve}.\\\\n */\\\\n function approve(address to, uint256 tokenId) public virtual override {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n require(to != owner, \\\\\\"ERC721: approval to current owner\\\\\\");\\\\n\\\\n require(\\\\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\\\\n \\\\\\"ERC721: approve caller is not token owner or approved for all\\\\\\"\\\\n );\\\\n\\\\n _approve(to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-getApproved}.\\\\n */\\\\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\\\\n _requireMinted(tokenId);\\\\n\\\\n return _tokenApprovals[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-setApprovalForAll}.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) public virtual override {\\\\n _setApprovalForAll(_msgSender(), operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-isApprovedForAll}.\\\\n */\\\\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\\\\n return _operatorApprovals[owner][operator];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-transferFrom}.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n //solhint-disable-next-line max-line-length\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n\\\\n _transfer(from, to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n safeTransferFrom(from, to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override {\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n _safeTransfer(from, to, tokenId, data);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * \`data\` is additional data, it has no specified format and it is sent in call to \`to\`.\\\\n *\\\\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\\\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _transfer(from, to, tokenId);\\\\n require(_checkOnERC721Received(from, to, tokenId, data), \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\`. Does NOT revert if token doesn't exist\\\\n */\\\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\\\n return _owners[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`tokenId\` exists.\\\\n *\\\\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\\\\n *\\\\n * Tokens start existing when they are minted (\`_mint\`),\\\\n * and stop existing when they are burned (\`_burn\`).\\\\n */\\\\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\\\\n return _ownerOf(tokenId) != address(0);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`spender\` is allowed to manage \`tokenId\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId) internal virtual {\\\\n _safeMint(to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[\`_safeMint\`], with an additional \`data\` parameter which is\\\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _mint(to, tokenId);\\\\n require(\\\\n _checkOnERC721Received(address(0), to, tokenId, data),\\\\n \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\"\\\\n );\\\\n }\\\\n\\\\n /**\\\\n * @dev Mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - \`to\` cannot be the zero address.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _mint(address to, uint256 tokenId) internal virtual {\\\\n require(to != address(0), \\\\\\"ERC721: mint to the zero address\\\\\\");\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n _beforeTokenTransfer(address(0), to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not minted by \`_beforeTokenTransfer\` hook\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n unchecked {\\\\n // Will not overflow unless all 2**256 token ids are minted to the same owner.\\\\n // Given that tokens are minted one by one, it is impossible in practice that\\\\n // this ever happens. Might change if we allow batch minting.\\\\n // The ERC fails to describe this case.\\\\n _balances[to] += 1;\\\\n }\\\\n\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(address(0), to, tokenId);\\\\n\\\\n _afterTokenTransfer(address(0), to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Destroys \`tokenId\`.\\\\n * The approval is cleared when the token is burned.\\\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _burn(uint256 tokenId) internal virtual {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n\\\\n _beforeTokenTransfer(owner, address(0), tokenId, 1);\\\\n\\\\n // Update ownership in case tokenId was transferred by \`_beforeTokenTransfer\` hook\\\\n owner = ERC721.ownerOf(tokenId);\\\\n\\\\n // Clear approvals\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // Cannot overflow, as that would require more tokens to be burned/transferred\\\\n // out than the owner initially received through minting and transferring in.\\\\n _balances[owner] -= 1;\\\\n }\\\\n delete _owners[tokenId];\\\\n\\\\n emit Transfer(owner, address(0), tokenId);\\\\n\\\\n _afterTokenTransfer(owner, address(0), tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` from \`from\` to \`to\`.\\\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n require(to != address(0), \\\\\\"ERC721: transfer to the zero address\\\\\\");\\\\n\\\\n _beforeTokenTransfer(from, to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not transferred by \`_beforeTokenTransfer\` hook\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n\\\\n // Clear approvals from the previous owner\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // \`_balances[from]\` cannot overflow for the same reason as described in \`_burn\`:\\\\n // \`from\`'s balance is the number of token held, which is at least one before the current\\\\n // transfer.\\\\n // \`_balances[to]\` could overflow in the conditions described in \`_mint\`. That would require\\\\n // all 2**256 token ids to be minted, which in practice is impossible.\\\\n _balances[from] -= 1;\\\\n _balances[to] += 1;\\\\n }\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(from, to, tokenId);\\\\n\\\\n _afterTokenTransfer(from, to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`to\` to operate on \`tokenId\`\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function _approve(address to, uint256 tokenId) internal virtual {\\\\n _tokenApprovals[tokenId] = to;\\\\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`operator\` to operate on all of \`owner\` tokens\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\\\n require(owner != operator, \\\\\\"ERC721: approve to caller\\\\\\");\\\\n _operatorApprovals[owner][operator] = approved;\\\\n emit ApprovalForAll(owner, operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev Reverts if the \`tokenId\` has not been minted yet.\\\\n */\\\\n function _requireMinted(uint256 tokenId) internal view virtual {\\\\n require(_exists(tokenId), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\\\\n * The call is not executed if the target address is not a contract.\\\\n *\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param to target address that will receive the tokens\\\\n * @param tokenId uint256 ID of the token to be transferred\\\\n * @param data bytes optional data to send along with the call\\\\n * @return bool whether the call correctly returned the expected magic value\\\\n */\\\\n function _checkOnERC721Received(\\\\n address from,\\\\n address to,\\\\n uint256 tokenId,\\\\n bytes memory data\\\\n ) private returns (bool) {\\\\n if (to.isContract()) {\\\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\\\n return retval == IERC721Receiver.onERC721Received.selector;\\\\n } catch (bytes memory reason) {\\\\n if (reason.length == 0) {\\\\n revert(\\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n } else {\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n revert(add(32, reason), mload(reason))\\\\n }\\\\n }\\\\n }\\\\n } else {\\\\n return true;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens will be transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens will be minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens will be burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens were transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens were minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens were burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _afterTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Unsafe write access to the balances, used by extensions that \\\\\\"mint\\\\\\" tokens using an {ownerOf} override.\\\\n *\\\\n * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\\\\n * being that for any address \`a\` the value returned by \`balanceOf(a)\` must be equal to the number of tokens such\\\\n * that \`ownerOf(tokenId)\` is \`a\`.\\\\n */\\\\n // solhint-disable-next-line func-name-mixedcase\\\\n function __unsafe_increaseBalance(address account, uint256 amount) internal {\\\\n _balances[account] += amount;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"./IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of the {IERC165} interface.\\\\n *\\\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\\\n * for the additional interface id that will be supported. For example:\\\\n *\\\\n * \`\`\`solidity\\\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\\\n * }\\\\n * \`\`\`\\\\n *\\\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\\\n */\\\\nabstract contract ERC165 is IERC165 {\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n return interfaceId == type(IERC165).interfaceId;\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of the {IERC165} interface.\\\\n *\\\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\\\n * for the additional interface id that will be supported. For example:\\\\n *\\\\n * \`\`\`solidity\\\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\\\n * }\\\\n * \`\`\`\\\\n *\\\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\\\n */\\\\nabstract contract ERC165 is IERC165 {\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n return interfaceId == type(IERC165).interfaceId;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Interface of the ERC165 standard, as defined in the\\\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\\\n *\\\\n * Implementers can declare support of contract interfaces, which can then be\\\\n * queried by others ({ERC165Checker}).\\\\n *\\\\n * For an implementation, see {ERC165}.\\\\n */\\\\ninterface IERC165 {\\\\n /**\\\\n * @dev Returns true if this contract implements the interface defined by\\\\n * \`interfaceId\`. See the corresponding\\\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\\\n * to learn more about how these ids are created.\\\\n *\\\\n * This function call must use less than 30 000 gas.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Interface of the ERC165 standard, as defined in the\\\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\\\n *\\\\n * Implementers can declare support of contract interfaces, which can then be\\\\n * queried by others ({ERC165Checker}).\\\\n *\\\\n * For an implementation, see {ERC165}.\\\\n */\\\\ninterface IERC165 {\\\\n /**\\\\n * @dev Returns true if this contract implements the interface defined by\\\\n * \`interfaceId\`. See the corresponding\\\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\\\n * to learn more about how these ids are created.\\\\n *\\\\n * This function call must use less than 30 000 gas.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"./math/Math.sol\\\\\\";\\\\nimport \\\\\\"./math/SignedMath.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev String operations.\\\\n */\\\\nlibrary Strings {\\\\n bytes16 private constant _SYMBOLS = \\\\\\"0123456789abcdef\\\\\\";\\\\n uint8 private constant _ADDRESS_LENGTH = 20;\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n uint256 length = Math.log10(value) + 1;\\\\n string memory buffer = new string(length);\\\\n uint256 ptr;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n ptr := add(buffer, add(32, length))\\\\n }\\\\n while (true) {\\\\n ptr--;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\\\n }\\\\n value /= 10;\\\\n if (value == 0) break;\\\\n }\\\\n return buffer;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`int256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(int256 value) internal pure returns (string memory) {\\\\n return string(abi.encodePacked(value < 0 ? \\\\\\"-\\\\\\" : \\\\\\"\\\\\\", toString(SignedMath.abs(value))));\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n return toHexString(value, Math.log256(value) + 1);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation with fixed length.\\\\n */\\\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\\\n bytes memory buffer = new bytes(2 * length + 2);\\\\n buffer[0] = \\\\\\"0\\\\\\";\\\\n buffer[1] = \\\\\\"x\\\\\\";\\\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\\\n buffer[i] = _SYMBOLS[value & 0xf];\\\\n value >>= 4;\\\\n }\\\\n require(value == 0, \\\\\\"Strings: hex length insufficient\\\\\\");\\\\n return string(buffer);\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts an \`address\` with fixed length of 20 bytes to its not checksummed ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(address addr) internal pure returns (string memory) {\\\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns true if the two strings are equal.\\\\n */\\\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\\\n return keccak256(bytes(a)) == keccak256(bytes(b));\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev String operations.\\\\n */\\\\nlibrary Strings {\\\\n bytes16 private constant _SYMBOLS = \\\\\\"0123456789abcdef\\\\\\";\\\\n uint8 private constant _ADDRESS_LENGTH = 20;\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n uint256 length = Math.log10(value) + 1;\\\\n string memory buffer = new string(length);\\\\n uint256 ptr;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n ptr := add(buffer, add(32, length))\\\\n }\\\\n while (true) {\\\\n ptr--;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\\\n }\\\\n value /= 10;\\\\n if (value == 0) break;\\\\n }\\\\n return buffer;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`int256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(int256 value) internal pure returns (string memory) {\\\\n return string(abi.encodePacked(value < 0 ? \\\\\\"-\\\\\\" : \\\\\\"\\\\\\", toString(SignedMath.abs(value))));\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n return toHexString(value, Math.log256(value) + 1);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation with fixed length.\\\\n */\\\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\\\n bytes memory buffer = new bytes(2 * length + 2);\\\\n buffer[0] = \\\\\\"0\\\\\\";\\\\n buffer[1] = \\\\\\"x\\\\\\";\\\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\\\n buffer[i] = _SYMBOLS[value & 0xf];\\\\n value >>= 4;\\\\n }\\\\n require(value == 0, \\\\\\"Strings: hex length insufficient\\\\\\");\\\\n return string(buffer);\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts an \`address\` with fixed length of 20 bytes to its not checksummed ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(address addr) internal pure returns (string memory) {\\\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns true if the two strings are equal.\\\\n */\\\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\\\n return keccak256(bytes(a)) == keccak256(bytes(b));\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard signed math utilities missing in the Solidity language.\\\\n */\\\\nlibrary SignedMath {\\\\n /**\\\\n * @dev Returns the largest of two signed numbers.\\\\n */\\\\n function max(int256 a, int256 b) internal pure returns (int256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two signed numbers.\\\\n */\\\\n function min(int256 a, int256 b) internal pure returns (int256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two signed numbers without overflow.\\\\n * The result is rounded towards zero.\\\\n */\\\\n function average(int256 a, int256 b) internal pure returns (int256) {\\\\n // Formula from the book \\\\\\"Hacker's Delight\\\\\\"\\\\n int256 x = (a & b) + ((a ^ b) >> 1);\\\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the absolute unsigned value of a signed value.\\\\n */\\\\n function abs(int256 n) internal pure returns (uint256) {\\\\n unchecked {\\\\n // must be unchecked in order to support \`n = type(int256).min\`\\\\n return uint256(n >= 0 ? n : -n);\\\\n }\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard signed math utilities missing in the Solidity language.\\\\n */\\\\nlibrary SignedMath {\\\\n /**\\\\n * @dev Returns the largest of two signed numbers.\\\\n */\\\\n function max(int256 a, int256 b) internal pure returns (int256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two signed numbers.\\\\n */\\\\n function min(int256 a, int256 b) internal pure returns (int256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two signed numbers without overflow.\\\\n * The result is rounded towards zero.\\\\n */\\\\n function average(int256 a, int256 b) internal pure returns (int256) {\\\\n // Formula from the book \\\\\\"Hacker's Delight\\\\\\"\\\\n int256 x = (a & b) + ((a ^ b) >> 1);\\\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the absolute unsigned value of a signed value.\\\\n */\\\\n function abs(int256 n) internal pure returns (uint256) {\\\\n unchecked {\\\\n // must be unchecked in order to support \`n = type(int256).min\`\\\\n return uint256(n >= 0 ? n : -n);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard math utilities missing in the Solidity language.\\\\n */\\\\nlibrary Math {\\\\n enum Rounding {\\\\n Down, // Toward negative infinity\\\\n Up, // Toward infinity\\\\n Zero // Toward zero\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the largest of two numbers.\\\\n */\\\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two numbers.\\\\n */\\\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two numbers. The result is rounded towards\\\\n * zero.\\\\n */\\\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b) / 2 can overflow.\\\\n return (a & b) + (a ^ b) / 2;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the ceiling of the division of two numbers.\\\\n *\\\\n * This differs from standard division with \`/\` in that it rounds up instead\\\\n * of rounding down.\\\\n */\\\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\\\n return a == 0 ? 0 : (a - 1) / b + 1;\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\\\n * with further edits by Uniswap Labs also under MIT license.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\\\n unchecked {\\\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\\\n // variables such that product = prod1 * 2^256 + prod0.\\\\n uint256 prod0; // Least significant 256 bits of the product\\\\n uint256 prod1; // Most significant 256 bits of the product\\\\n assembly {\\\\n let mm := mulmod(x, y, not(0))\\\\n prod0 := mul(x, y)\\\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\\\n }\\\\n\\\\n // Handle non-overflow cases, 256 by 256 division.\\\\n if (prod1 == 0) {\\\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\\\n // The surrounding unchecked block does not change this fact.\\\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\\\n return prod0 / denominator;\\\\n }\\\\n\\\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\\\n require(denominator > prod1, \\\\\\"Math: mulDiv overflow\\\\\\");\\\\n\\\\n ///////////////////////////////////////////////\\\\n // 512 by 256 division.\\\\n ///////////////////////////////////////////////\\\\n\\\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\\\n uint256 remainder;\\\\n assembly {\\\\n // Compute remainder using mulmod.\\\\n remainder := mulmod(x, y, denominator)\\\\n\\\\n // Subtract 256 bit number from 512 bit number.\\\\n prod1 := sub(prod1, gt(remainder, prod0))\\\\n prod0 := sub(prod0, remainder)\\\\n }\\\\n\\\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\\\n // See https://cs.stackexchange.com/q/138556/92363.\\\\n\\\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\\\n uint256 twos = denominator & (~denominator + 1);\\\\n assembly {\\\\n // Divide denominator by twos.\\\\n denominator := div(denominator, twos)\\\\n\\\\n // Divide [prod1 prod0] by twos.\\\\n prod0 := div(prod0, twos)\\\\n\\\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\\\n twos := add(div(sub(0, twos), twos), 1)\\\\n }\\\\n\\\\n // Shift in bits from prod1 into prod0.\\\\n prod0 |= prod1 * twos;\\\\n\\\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\\\n uint256 inverse = (3 * denominator) ^ 2;\\\\n\\\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\\\n // in modular arithmetic, doubling the correct bits in each step.\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\\\n\\\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\\\n // is no longer required.\\\\n result = prod0 * inverse;\\\\n return result;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\\\n uint256 result = mulDiv(x, y, denominator);\\\\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\\\n result += 1;\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\\\n *\\\\n * Inspired by Henry S. Warren, Jr.'s \\\\\\"Hacker's Delight\\\\\\" (Chapter 11).\\\\n */\\\\n function sqrt(uint256 a) internal pure returns (uint256) {\\\\n if (a == 0) {\\\\n return 0;\\\\n }\\\\n\\\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\\\n //\\\\n // We know that the \\\\\\"msb\\\\\\" (most significant bit) of our target number \`a\` is a power of 2 such that we have\\\\n // \`msb(a) <= a < 2*msb(a)\`. This value can be written \`msb(a)=2**k\` with \`k=log2(a)\`.\\\\n //\\\\n // This can be rewritten \`2**log2(a) <= a < 2**(log2(a) + 1)\`\\\\n // → \`sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))\`\\\\n // → \`2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)\`\\\\n //\\\\n // Consequently, \`2**(log2(a) / 2)\` is a good first approximation of \`sqrt(a)\` with at least 1 correct bit.\\\\n uint256 result = 1 << (log2(a) >> 1);\\\\n\\\\n // At this point \`result\` is an estimation with one bit of precision. We know the true value is a uint128,\\\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\\\n // into the expected uint128 result.\\\\n unchecked {\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n return min(result, a / result);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\\\n */\\\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = sqrt(a);\\\\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 128;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 64;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 32;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 16;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n value >>= 8;\\\\n result += 8;\\\\n }\\\\n if (value >> 4 > 0) {\\\\n value >>= 4;\\\\n result += 4;\\\\n }\\\\n if (value >> 2 > 0) {\\\\n value >>= 2;\\\\n result += 2;\\\\n }\\\\n if (value >> 1 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log2(value);\\\\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >= 10 ** 64) {\\\\n value /= 10 ** 64;\\\\n result += 64;\\\\n }\\\\n if (value >= 10 ** 32) {\\\\n value /= 10 ** 32;\\\\n result += 32;\\\\n }\\\\n if (value >= 10 ** 16) {\\\\n value /= 10 ** 16;\\\\n result += 16;\\\\n }\\\\n if (value >= 10 ** 8) {\\\\n value /= 10 ** 8;\\\\n result += 8;\\\\n }\\\\n if (value >= 10 ** 4) {\\\\n value /= 10 ** 4;\\\\n result += 4;\\\\n }\\\\n if (value >= 10 ** 2) {\\\\n value /= 10 ** 2;\\\\n result += 2;\\\\n }\\\\n if (value >= 10 ** 1) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log10(value);\\\\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n *\\\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent \`value\` as a hex string.\\\\n */\\\\n function log256(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 16;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 8;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 4;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 2;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log256(value);\\\\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\\\n }\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard math utilities missing in the Solidity language.\\\\n */\\\\nlibrary Math {\\\\n enum Rounding {\\\\n Down, // Toward negative infinity\\\\n Up, // Toward infinity\\\\n Zero // Toward zero\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the largest of two numbers.\\\\n */\\\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two numbers.\\\\n */\\\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two numbers. The result is rounded towards\\\\n * zero.\\\\n */\\\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b) / 2 can overflow.\\\\n return (a & b) + (a ^ b) / 2;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the ceiling of the division of two numbers.\\\\n *\\\\n * This differs from standard division with \`/\` in that it rounds up instead\\\\n * of rounding down.\\\\n */\\\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\\\n return a == 0 ? 0 : (a - 1) / b + 1;\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\\\n * with further edits by Uniswap Labs also under MIT license.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\\\n unchecked {\\\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\\\n // variables such that product = prod1 * 2^256 + prod0.\\\\n uint256 prod0; // Least significant 256 bits of the product\\\\n uint256 prod1; // Most significant 256 bits of the product\\\\n assembly {\\\\n let mm := mulmod(x, y, not(0))\\\\n prod0 := mul(x, y)\\\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\\\n }\\\\n\\\\n // Handle non-overflow cases, 256 by 256 division.\\\\n if (prod1 == 0) {\\\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\\\n // The surrounding unchecked block does not change this fact.\\\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\\\n return prod0 / denominator;\\\\n }\\\\n\\\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\\\n require(denominator > prod1, \\\\\\"Math: mulDiv overflow\\\\\\");\\\\n\\\\n ///////////////////////////////////////////////\\\\n // 512 by 256 division.\\\\n ///////////////////////////////////////////////\\\\n\\\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\\\n uint256 remainder;\\\\n assembly {\\\\n // Compute remainder using mulmod.\\\\n remainder := mulmod(x, y, denominator)\\\\n\\\\n // Subtract 256 bit number from 512 bit number.\\\\n prod1 := sub(prod1, gt(remainder, prod0))\\\\n prod0 := sub(prod0, remainder)\\\\n }\\\\n\\\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\\\n // See https://cs.stackexchange.com/q/138556/92363.\\\\n\\\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\\\n uint256 twos = denominator & (~denominator + 1);\\\\n assembly {\\\\n // Divide denominator by twos.\\\\n denominator := div(denominator, twos)\\\\n\\\\n // Divide [prod1 prod0] by twos.\\\\n prod0 := div(prod0, twos)\\\\n\\\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\\\n twos := add(div(sub(0, twos), twos), 1)\\\\n }\\\\n\\\\n // Shift in bits from prod1 into prod0.\\\\n prod0 |= prod1 * twos;\\\\n\\\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\\\n uint256 inverse = (3 * denominator) ^ 2;\\\\n\\\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\\\n // in modular arithmetic, doubling the correct bits in each step.\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\\\n\\\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\\\n // is no longer required.\\\\n result = prod0 * inverse;\\\\n return result;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\\\n uint256 result = mulDiv(x, y, denominator);\\\\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\\\n result += 1;\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\\\n *\\\\n * Inspired by Henry S. Warren, Jr.'s \\\\\\"Hacker's Delight\\\\\\" (Chapter 11).\\\\n */\\\\n function sqrt(uint256 a) internal pure returns (uint256) {\\\\n if (a == 0) {\\\\n return 0;\\\\n }\\\\n\\\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\\\n //\\\\n // We know that the \\\\\\"msb\\\\\\" (most significant bit) of our target number \`a\` is a power of 2 such that we have\\\\n // \`msb(a) <= a < 2*msb(a)\`. This value can be written \`msb(a)=2**k\` with \`k=log2(a)\`.\\\\n //\\\\n // This can be rewritten \`2**log2(a) <= a < 2**(log2(a) + 1)\`\\\\n // → \`sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))\`\\\\n // → \`2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)\`\\\\n //\\\\n // Consequently, \`2**(log2(a) / 2)\` is a good first approximation of \`sqrt(a)\` with at least 1 correct bit.\\\\n uint256 result = 1 << (log2(a) >> 1);\\\\n\\\\n // At this point \`result\` is an estimation with one bit of precision. We know the true value is a uint128,\\\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\\\n // into the expected uint128 result.\\\\n unchecked {\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n return min(result, a / result);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\\\n */\\\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = sqrt(a);\\\\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 128;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 64;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 32;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 16;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n value >>= 8;\\\\n result += 8;\\\\n }\\\\n if (value >> 4 > 0) {\\\\n value >>= 4;\\\\n result += 4;\\\\n }\\\\n if (value >> 2 > 0) {\\\\n value >>= 2;\\\\n result += 2;\\\\n }\\\\n if (value >> 1 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log2(value);\\\\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >= 10 ** 64) {\\\\n value /= 10 ** 64;\\\\n result += 64;\\\\n }\\\\n if (value >= 10 ** 32) {\\\\n value /= 10 ** 32;\\\\n result += 32;\\\\n }\\\\n if (value >= 10 ** 16) {\\\\n value /= 10 ** 16;\\\\n result += 16;\\\\n }\\\\n if (value >= 10 ** 8) {\\\\n value /= 10 ** 8;\\\\n result += 8;\\\\n }\\\\n if (value >= 10 ** 4) {\\\\n value /= 10 ** 4;\\\\n result += 4;\\\\n }\\\\n if (value >= 10 ** 2) {\\\\n value /= 10 ** 2;\\\\n result += 2;\\\\n }\\\\n if (value >= 10 ** 1) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log10(value);\\\\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n *\\\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent \`value\` as a hex string.\\\\n */\\\\n function log256(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 16;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 8;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 4;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 2;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log256(value);\\\\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides information about the current execution context, including the\\\\n * sender of the transaction and its data. While these are generally available\\\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\\\n * manner, since when dealing with meta-transactions the account sending and\\\\n * paying for execution may not be the actual sender (as far as an application\\\\n * is concerned).\\\\n *\\\\n * This contract is only required for intermediate, library-like contracts.\\\\n */\\\\nabstract contract Context {\\\\n function _msgSender() internal view virtual returns (address) {\\\\n return msg.sender;\\\\n }\\\\n\\\\n function _msgData() internal view virtual returns (bytes calldata) {\\\\n return msg.data;\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides information about the current execution context, including the\\\\n * sender of the transaction and its data. While these are generally available\\\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\\\n * manner, since when dealing with meta-transactions the account sending and\\\\n * paying for execution may not be the actual sender (as far as an application\\\\n * is concerned).\\\\n *\\\\n * This contract is only required for intermediate, library-like contracts.\\\\n */\\\\nabstract contract Context {\\\\n function _msgSender() internal view virtual returns (address) {\\\\n return msg.sender;\\\\n }\\\\n\\\\n function _msgData() internal view virtual returns (bytes calldata) {\\\\n return msg.data;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\\\n\\\\npragma solidity ^0.8.1;\\\\n\\\\n/**\\\\n * @dev Collection of functions related to the address type\\\\n */\\\\nlibrary Address {\\\\n /**\\\\n * @dev Returns true if \`account\` is a contract.\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * It is unsafe to assume that an address for which this function returns\\\\n * false is an externally-owned account (EOA) and not a contract.\\\\n *\\\\n * Among others, \`isContract\` will return false for the following\\\\n * types of addresses:\\\\n *\\\\n * - an externally-owned account\\\\n * - a contract in construction\\\\n * - an address where a contract will be created\\\\n * - an address where a contract lived, but was destroyed\\\\n *\\\\n * Furthermore, \`isContract\` will also return true if the target contract within\\\\n * the same transaction is already scheduled for destruction by \`SELFDESTRUCT\`,\\\\n * which only has an effect at the end of a transaction.\\\\n * ====\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * You shouldn't rely on \`isContract\` to protect against flash loan attacks!\\\\n *\\\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\\\n * constructor.\\\\n * ====\\\\n */\\\\n function isContract(address account) internal view returns (bool) {\\\\n // This method relies on extcodesize/address.code.length, which returns 0\\\\n // for contracts in construction, since the code is only stored at the end\\\\n // of the constructor execution.\\\\n\\\\n return account.code.length > 0;\\\\n }\\\\n\\\\n /**\\\\n * @dev Replacement for Solidity's \`transfer\`: sends \`amount\` wei to\\\\n * \`recipient\`, forwarding all available gas and reverting on errors.\\\\n *\\\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\\\n * imposed by \`transfer\`, making them unable to receive funds via\\\\n * \`transfer\`. {sendValue} removes this limitation.\\\\n *\\\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\\\n *\\\\n * IMPORTANT: because control is transferred to \`recipient\`, care must be\\\\n * taken to not create reentrancy vulnerabilities. Consider using\\\\n * {ReentrancyGuard} or the\\\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\\\n */\\\\n function sendValue(address payable recipient, uint256 amount) internal {\\\\n require(address(this).balance >= amount, \\\\\\"Address: insufficient balance\\\\\\");\\\\n\\\\n (bool success, ) = recipient.call{value: amount}(\\\\\\"\\\\\\");\\\\n require(success, \\\\\\"Address: unable to send value, recipient may have reverted\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Performs a Solidity function call using a low level \`call\`. A\\\\n * plain \`call\` is an unsafe replacement for a function call: use this\\\\n * function instead.\\\\n *\\\\n * If \`target\` reverts with a revert reason, it is bubbled up by this\\\\n * function (like regular Solidity function calls).\\\\n *\\\\n * Returns the raw returned data. To convert to the expected return value,\\\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[\`abi.decode\`].\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`target\` must be a contract.\\\\n * - calling \`target\` with \`data\` must not revert.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, \\\\\\"Address: low-level call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`], but with\\\\n * \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but also transferring \`value\` wei to \`target\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - the calling contract must have an ETH balance of at least \`value\`.\\\\n * - the called Solidity function must be \`payable\`.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, value, \\\\\\"Address: low-level call with value failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[\`functionCallWithValue\`], but\\\\n * with \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(\\\\n address target,\\\\n bytes memory data,\\\\n uint256 value,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n require(address(this).balance >= value, \\\\\\"Address: insufficient balance for call\\\\\\");\\\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\\\n return functionStaticCall(target, data, \\\\\\"Address: low-level static call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.staticcall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionDelegateCall(target, data, \\\\\\"Address: low-level delegate call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\\\n *\\\\n * _Available since v4.8._\\\\n */\\\\n function verifyCallResultFromTarget(\\\\n address target,\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n if (success) {\\\\n if (returndata.length == 0) {\\\\n // only check isContract if the call was successful and the return data is empty\\\\n // otherwise we already know that it was a contract\\\\n require(isContract(target), \\\\\\"Address: call to non-contract\\\\\\");\\\\n }\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\\\n * revert reason or using the provided one.\\\\n *\\\\n * _Available since v4.3._\\\\n */\\\\n function verifyCallResult(\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal pure returns (bytes memory) {\\\\n if (success) {\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\\\n // Look for revert reason and bubble it up if present\\\\n if (returndata.length > 0) {\\\\n // The easiest way to bubble the revert reason is using memory via assembly\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n let returndata_size := mload(returndata)\\\\n revert(add(32, returndata), returndata_size)\\\\n }\\\\n } else {\\\\n revert(errorMessage);\\\\n }\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\\\n\\\\npragma solidity ^0.8.1;\\\\n\\\\n/**\\\\n * @dev Collection of functions related to the address type\\\\n */\\\\nlibrary Address {\\\\n /**\\\\n * @dev Returns true if \`account\` is a contract.\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * It is unsafe to assume that an address for which this function returns\\\\n * false is an externally-owned account (EOA) and not a contract.\\\\n *\\\\n * Among others, \`isContract\` will return false for the following\\\\n * types of addresses:\\\\n *\\\\n * - an externally-owned account\\\\n * - a contract in construction\\\\n * - an address where a contract will be created\\\\n * - an address where a contract lived, but was destroyed\\\\n *\\\\n * Furthermore, \`isContract\` will also return true if the target contract within\\\\n * the same transaction is already scheduled for destruction by \`SELFDESTRUCT\`,\\\\n * which only has an effect at the end of a transaction.\\\\n * ====\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * You shouldn't rely on \`isContract\` to protect against flash loan attacks!\\\\n *\\\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\\\n * constructor.\\\\n * ====\\\\n */\\\\n function isContract(address account) internal view returns (bool) {\\\\n // This method relies on extcodesize/address.code.length, which returns 0\\\\n // for contracts in construction, since the code is only stored at the end\\\\n // of the constructor execution.\\\\n\\\\n return account.code.length > 0;\\\\n }\\\\n\\\\n /**\\\\n * @dev Replacement for Solidity's \`transfer\`: sends \`amount\` wei to\\\\n * \`recipient\`, forwarding all available gas and reverting on errors.\\\\n *\\\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\\\n * imposed by \`transfer\`, making them unable to receive funds via\\\\n * \`transfer\`. {sendValue} removes this limitation.\\\\n *\\\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\\\n *\\\\n * IMPORTANT: because control is transferred to \`recipient\`, care must be\\\\n * taken to not create reentrancy vulnerabilities. Consider using\\\\n * {ReentrancyGuard} or the\\\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\\\n */\\\\n function sendValue(address payable recipient, uint256 amount) internal {\\\\n require(address(this).balance >= amount, \\\\\\"Address: insufficient balance\\\\\\");\\\\n\\\\n (bool success, ) = recipient.call{value: amount}(\\\\\\"\\\\\\");\\\\n require(success, \\\\\\"Address: unable to send value, recipient may have reverted\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Performs a Solidity function call using a low level \`call\`. A\\\\n * plain \`call\` is an unsafe replacement for a function call: use this\\\\n * function instead.\\\\n *\\\\n * If \`target\` reverts with a revert reason, it is bubbled up by this\\\\n * function (like regular Solidity function calls).\\\\n *\\\\n * Returns the raw returned data. To convert to the expected return value,\\\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[\`abi.decode\`].\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`target\` must be a contract.\\\\n * - calling \`target\` with \`data\` must not revert.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, \\\\\\"Address: low-level call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`], but with\\\\n * \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but also transferring \`value\` wei to \`target\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - the calling contract must have an ETH balance of at least \`value\`.\\\\n * - the called Solidity function must be \`payable\`.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, value, \\\\\\"Address: low-level call with value failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[\`functionCallWithValue\`], but\\\\n * with \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(\\\\n address target,\\\\n bytes memory data,\\\\n uint256 value,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n require(address(this).balance >= value, \\\\\\"Address: insufficient balance for call\\\\\\");\\\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\\\n return functionStaticCall(target, data, \\\\\\"Address: low-level static call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.staticcall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionDelegateCall(target, data, \\\\\\"Address: low-level delegate call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\\\n *\\\\n * _Available since v4.8._\\\\n */\\\\n function verifyCallResultFromTarget(\\\\n address target,\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n if (success) {\\\\n if (returndata.length == 0) {\\\\n // only check isContract if the call was successful and the return data is empty\\\\n // otherwise we already know that it was a contract\\\\n require(isContract(target), \\\\\\"Address: call to non-contract\\\\\\");\\\\n }\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\\\n * revert reason or using the provided one.\\\\n *\\\\n * _Available since v4.3._\\\\n */\\\\n function verifyCallResult(\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal pure returns (bytes memory) {\\\\n if (success) {\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\\\n // Look for revert reason and bubble it up if present\\\\n if (returndata.length > 0) {\\\\n // The easiest way to bubble the revert reason is using memory via assembly\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n let returndata_size := mload(returndata)\\\\n revert(add(32, returndata), returndata_size)\\\\n }\\\\n } else {\\\\n revert(errorMessage);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"../IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Metadata is IERC721 {\\\\n /**\\\\n * @dev Returns the token collection name.\\\\n */\\\\n function name() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the token collection symbol.\\\\n */\\\\n function symbol() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the Uniform Resource Identifier (URI) for \`tokenId\` token.\\\\n */\\\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Metadata is IERC721 {\\\\n /**\\\\n * @dev Returns the token collection name.\\\\n */\\\\n function name() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the token collection symbol.\\\\n */\\\\n function symbol() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the Uniform Resource Identifier (URI) for \`tokenId\` token.\\\\n */\\\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"../../utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Required interface of an ERC721 compliant contract.\\\\n */\\\\ninterface IERC721 is IERC165 {\\\\n /**\\\\n * @dev Emitted when \`tokenId\` token is transferred from \`from\` to \`to\`.\\\\n */\\\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables \`approved\` to manage the \`tokenId\` token.\\\\n */\\\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables or disables (\`approved\`) \`operator\` to manage all of its assets.\\\\n */\\\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\\\n\\\\n /**\\\\n * @dev Returns the number of tokens in \`\`owner\`\`'s account.\\\\n */\\\\n function balanceOf(address owner) external view returns (uint256 balance);\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Gives permission to \`to\` to transfer \`tokenId\` token to another account.\\\\n * The approval is cleared when the token is transferred.\\\\n *\\\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The caller must own the token or be an approved operator.\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function approve(address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Approve or remove \`operator\` as an operator for the caller.\\\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The \`operator\` cannot be the caller.\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) external;\\\\n\\\\n /**\\\\n * @dev Returns the account approved for \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function getApproved(uint256 tokenId) external view returns (address operator);\\\\n\\\\n /**\\\\n * @dev Returns if the \`operator\` is allowed to manage all of the assets of \`owner\`.\\\\n *\\\\n * See {setApprovalForAll}\\\\n */\\\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Required interface of an ERC721 compliant contract.\\\\n */\\\\ninterface IERC721 is IERC165 {\\\\n /**\\\\n * @dev Emitted when \`tokenId\` token is transferred from \`from\` to \`to\`.\\\\n */\\\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables \`approved\` to manage the \`tokenId\` token.\\\\n */\\\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables or disables (\`approved\`) \`operator\` to manage all of its assets.\\\\n */\\\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\\\n\\\\n /**\\\\n * @dev Returns the number of tokens in \`\`owner\`\`'s account.\\\\n */\\\\n function balanceOf(address owner) external view returns (uint256 balance);\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Gives permission to \`to\` to transfer \`tokenId\` token to another account.\\\\n * The approval is cleared when the token is transferred.\\\\n *\\\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The caller must own the token or be an approved operator.\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function approve(address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Approve or remove \`operator\` as an operator for the caller.\\\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The \`operator\` cannot be the caller.\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) external;\\\\n\\\\n /**\\\\n * @dev Returns the account approved for \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function getApproved(uint256 tokenId) external view returns (address operator);\\\\n\\\\n /**\\\\n * @dev Returns if the \`operator\` is allowed to manage all of the assets of \`owner\`.\\\\n *\\\\n * See {setApprovalForAll}\\\\n */\\\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @title ERC721 token receiver interface\\\\n * @dev Interface for any contract that wants to support safeTransfers\\\\n * from ERC721 asset contracts.\\\\n */\\\\ninterface IERC721Receiver {\\\\n /**\\\\n * @dev Whenever an {IERC721} \`tokenId\` token is transferred to this contract via {IERC721-safeTransferFrom}\\\\n * by \`operator\` from \`from\`, this function is called.\\\\n *\\\\n * It must return its Solidity selector to confirm the token transfer.\\\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\\\\n *\\\\n * The selector can be obtained in Solidity with \`IERC721Receiver.onERC721Received.selector\`.\\\\n */\\\\n function onERC721Received(\\\\n address operator,\\\\n address from,\\\\n uint256 tokenId,\\\\n bytes calldata data\\\\n ) external returns (bytes4);\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @title ERC721 token receiver interface\\\\n * @dev Interface for any contract that wants to support safeTransfers\\\\n * from ERC721 asset contracts.\\\\n */\\\\ninterface IERC721Receiver {\\\\n /**\\\\n * @dev Whenever an {IERC721} \`tokenId\` token is transferred to this contract via {IERC721-safeTransferFrom}\\\\n * by \`operator\` from \`from\`, this function is called.\\\\n *\\\\n * It must return its Solidity selector to confirm the token transfer.\\\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\\\\n *\\\\n * The selector can be obtained in Solidity with \`IERC721Receiver.onERC721Received.selector\`.\\\\n */\\\\n function onERC721Received(\\\\n address operator,\\\\n address from,\\\\n uint256 tokenId,\\\\n bytes calldata data\\\\n ) external returns (bytes4);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"../ERC721.sol\\\\\\";\\\\nimport \\\\\\"./IERC721Enumerable.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev This implements an optional extension of {ERC721} defined in the EIP that adds\\\\n * enumerability of all the token ids in the contract as well as all token ids owned by each\\\\n * account.\\\\n */\\\\nabstract contract ERC721Enumerable is ERC721, IERC721Enumerable {\\\\n // Mapping from owner to list of owned token IDs\\\\n mapping(address => mapping(uint256 => uint256)) private _ownedTokens;\\\\n\\\\n // Mapping from token ID to index of the owner tokens list\\\\n mapping(uint256 => uint256) private _ownedTokensIndex;\\\\n\\\\n // Array with all token ids, used for enumeration\\\\n uint256[] private _allTokens;\\\\n\\\\n // Mapping from token id to position in the allTokens array\\\\n mapping(uint256 => uint256) private _allTokensIndex;\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {\\\\n return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721.balanceOf(owner), \\\\\\"ERC721Enumerable: owner index out of bounds\\\\\\");\\\\n return _ownedTokens[owner][index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-totalSupply}.\\\\n */\\\\n function totalSupply() public view virtual override returns (uint256) {\\\\n return _allTokens.length;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenByIndex}.\\\\n */\\\\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721Enumerable.totalSupply(), \\\\\\"ERC721Enumerable: global index out of bounds\\\\\\");\\\\n return _allTokens[index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {ERC721-_beforeTokenTransfer}.\\\\n */\\\\n function _beforeTokenTransfer(\\\\n address from,\\\\n address to,\\\\n uint256 firstTokenId,\\\\n uint256 batchSize\\\\n ) internal virtual override {\\\\n super._beforeTokenTransfer(from, to, firstTokenId, batchSize);\\\\n\\\\n if (batchSize > 1) {\\\\n // Will only trigger during construction. Batch transferring (minting) is not available afterwards.\\\\n revert(\\\\\\"ERC721Enumerable: consecutive transfers not supported\\\\\\");\\\\n }\\\\n\\\\n uint256 tokenId = firstTokenId;\\\\n\\\\n if (from == address(0)) {\\\\n _addTokenToAllTokensEnumeration(tokenId);\\\\n } else if (from != to) {\\\\n _removeTokenFromOwnerEnumeration(from, tokenId);\\\\n }\\\\n if (to == address(0)) {\\\\n _removeTokenFromAllTokensEnumeration(tokenId);\\\\n } else if (to != from) {\\\\n _addTokenToOwnerEnumeration(to, tokenId);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\\\\n * @param to address representing the new owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\\\\n */\\\\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\\\\n uint256 length = ERC721.balanceOf(to);\\\\n _ownedTokens[to][length] = tokenId;\\\\n _ownedTokensIndex[tokenId] = length;\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's token tracking data structures.\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list\\\\n */\\\\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\\\\n _allTokensIndex[tokenId] = _allTokens.length;\\\\n _allTokens.push(tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\\\\n * while the token is not assigned a new owner, the \`_ownedTokensIndex\` mapping is _not_ updated: this allows for\\\\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\\\\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\\\\n */\\\\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\\\\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;\\\\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary\\\\n if (tokenIndex != lastTokenIndex) {\\\\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\\\\n\\\\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n }\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _ownedTokensIndex[tokenId];\\\\n delete _ownedTokens[from][lastTokenIndex];\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's token tracking data structures.\\\\n * This has O(1) time complexity, but alters the order of the _allTokens array.\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list\\\\n */\\\\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\\\\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = _allTokens.length - 1;\\\\n uint256 tokenIndex = _allTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\\\\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\\\\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\\\\n uint256 lastTokenId = _allTokens[lastTokenIndex];\\\\n\\\\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _allTokensIndex[tokenId];\\\\n _allTokens.pop();\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev This implements an optional extension of {ERC721} defined in the EIP that adds\\\\n * enumerability of all the token ids in the contract as well as all token ids owned by each\\\\n * account.\\\\n */\\\\nabstract contract ERC721Enumerable is ERC721, IERC721Enumerable {\\\\n // Mapping from owner to list of owned token IDs\\\\n mapping(address => mapping(uint256 => uint256)) private _ownedTokens;\\\\n\\\\n // Mapping from token ID to index of the owner tokens list\\\\n mapping(uint256 => uint256) private _ownedTokensIndex;\\\\n\\\\n // Array with all token ids, used for enumeration\\\\n uint256[] private _allTokens;\\\\n\\\\n // Mapping from token id to position in the allTokens array\\\\n mapping(uint256 => uint256) private _allTokensIndex;\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {\\\\n return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721.balanceOf(owner), \\\\\\"ERC721Enumerable: owner index out of bounds\\\\\\");\\\\n return _ownedTokens[owner][index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-totalSupply}.\\\\n */\\\\n function totalSupply() public view virtual override returns (uint256) {\\\\n return _allTokens.length;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenByIndex}.\\\\n */\\\\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721Enumerable.totalSupply(), \\\\\\"ERC721Enumerable: global index out of bounds\\\\\\");\\\\n return _allTokens[index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {ERC721-_beforeTokenTransfer}.\\\\n */\\\\n function _beforeTokenTransfer(\\\\n address from,\\\\n address to,\\\\n uint256 firstTokenId,\\\\n uint256 batchSize\\\\n ) internal virtual override {\\\\n super._beforeTokenTransfer(from, to, firstTokenId, batchSize);\\\\n\\\\n if (batchSize > 1) {\\\\n // Will only trigger during construction. Batch transferring (minting) is not available afterwards.\\\\n revert(\\\\\\"ERC721Enumerable: consecutive transfers not supported\\\\\\");\\\\n }\\\\n\\\\n uint256 tokenId = firstTokenId;\\\\n\\\\n if (from == address(0)) {\\\\n _addTokenToAllTokensEnumeration(tokenId);\\\\n } else if (from != to) {\\\\n _removeTokenFromOwnerEnumeration(from, tokenId);\\\\n }\\\\n if (to == address(0)) {\\\\n _removeTokenFromAllTokensEnumeration(tokenId);\\\\n } else if (to != from) {\\\\n _addTokenToOwnerEnumeration(to, tokenId);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\\\\n * @param to address representing the new owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\\\\n */\\\\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\\\\n uint256 length = ERC721.balanceOf(to);\\\\n _ownedTokens[to][length] = tokenId;\\\\n _ownedTokensIndex[tokenId] = length;\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's token tracking data structures.\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list\\\\n */\\\\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\\\\n _allTokensIndex[tokenId] = _allTokens.length;\\\\n _allTokens.push(tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\\\\n * while the token is not assigned a new owner, the \`_ownedTokensIndex\` mapping is _not_ updated: this allows for\\\\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\\\\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\\\\n */\\\\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\\\\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;\\\\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary\\\\n if (tokenIndex != lastTokenIndex) {\\\\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\\\\n\\\\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n }\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _ownedTokensIndex[tokenId];\\\\n delete _ownedTokens[from][lastTokenIndex];\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's token tracking data structures.\\\\n * This has O(1) time complexity, but alters the order of the _allTokens array.\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list\\\\n */\\\\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\\\\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = _allTokens.length - 1;\\\\n uint256 tokenIndex = _allTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\\\\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\\\\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\\\\n uint256 lastTokenId = _allTokens[lastTokenIndex];\\\\n\\\\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _allTokensIndex[tokenId];\\\\n _allTokens.pop();\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"../IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Enumerable is IERC721 {\\\\n /**\\\\n * @dev Returns the total amount of tokens stored by the contract.\\\\n */\\\\n function totalSupply() external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID owned by \`owner\` at a given \`index\` of its token list.\\\\n * Use along with {balanceOf} to enumerate all of \`\`owner\`\`'s tokens.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID at a given \`index\` of all the tokens stored by the contract.\\\\n * Use along with {totalSupply} to enumerate all tokens.\\\\n */\\\\n function tokenByIndex(uint256 index) external view returns (uint256);\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Enumerable is IERC721 {\\\\n /**\\\\n * @dev Returns the total amount of tokens stored by the contract.\\\\n */\\\\n function totalSupply() external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID owned by \`owner\` at a given \`index\` of its token list.\\\\n * Use along with {balanceOf} to enumerate all of \`\`owner\`\`'s tokens.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID at a given \`index\` of all the tokens stored by the contract.\\\\n * Use along with {totalSupply} to enumerate all tokens.\\\\n */\\\\n function tokenByIndex(uint256 index) external view returns (uint256);\\\\n}\\\\n\\" + } + }, + \\"solcInput\\": { + \\"language\\": \\"Solidity\\", + \\"sources\\": { + \\"./Contract.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Base64.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides a set of functions to operate with Base64 strings.\\\\n *\\\\n * _Available since v4.5._\\\\n */\\\\nlibrary Base64 {\\\\n /**\\\\n * @dev Base64 Encoding/Decoding Table\\\\n */\\\\n string internal constant _TABLE = \\\\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\\\\";\\\\n\\\\n /**\\\\n * @dev Converts a \`bytes\` to its Bytes64 \`string\` representation.\\\\n */\\\\n function encode(bytes memory data) internal pure returns (string memory) {\\\\n /**\\\\n * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\\\\n * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\\\\n */\\\\n if (data.length == 0) return \\\\\\"\\\\\\";\\\\n\\\\n // Loads the table into memory\\\\n string memory table = _TABLE;\\\\n\\\\n // Encoding takes 3 bytes chunks of binary data from \`bytes\` data parameter\\\\n // and split into 4 numbers of 6 bits.\\\\n // The final Base64 length should be \`bytes\` data length multiplied by 4/3 rounded up\\\\n // - \`data.length + 2\` -> Round up\\\\n // - \`/ 3\` -> Number of 3-bytes chunks\\\\n // - \`4 *\` -> 4 characters for each chunk\\\\n string memory result = new string(4 * ((data.length + 2) / 3));\\\\n\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n // Prepare the lookup table (skip the first \\\\\\"length\\\\\\" byte)\\\\n let tablePtr := add(table, 1)\\\\n\\\\n // Prepare result pointer, jump over length\\\\n let resultPtr := add(result, 32)\\\\n\\\\n // Run over the input, 3 bytes at a time\\\\n for {\\\\n let dataPtr := data\\\\n let endPtr := add(data, mload(data))\\\\n } lt(dataPtr, endPtr) {\\\\n\\\\n } {\\\\n // Advance 3 bytes\\\\n dataPtr := add(dataPtr, 3)\\\\n let input := mload(dataPtr)\\\\n\\\\n // To write each character, shift the 3 bytes (18 bits) chunk\\\\n // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\\\\n // and apply logical AND with 0x3F which is the number of\\\\n // the previous character in the ASCII table prior to the Base64 Table\\\\n // The result is then added to the table to get the character to write,\\\\n // and finally write it in the result pointer but with a left shift\\\\n // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n }\\\\n\\\\n // When data \`bytes\` is not exactly 3 bytes long\\\\n // it is padded with \`=\` characters at the end\\\\n switch mod(mload(data), 3)\\\\n case 1 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n mstore8(sub(resultPtr, 2), 0x3d)\\\\n }\\\\n case 2 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n }\\\\n }\\\\n\\\\n return result;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\\\n * {ERC721Enumerable}.\\\\n */\\\\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\\\\n using Address for address;\\\\n using Strings for uint256;\\\\n\\\\n // Token name\\\\n string private _name;\\\\n\\\\n // Token symbol\\\\n string private _symbol;\\\\n\\\\n // Mapping from token ID to owner address\\\\n mapping(uint256 => address) private _owners;\\\\n\\\\n // Mapping owner address to token count\\\\n mapping(address => uint256) private _balances;\\\\n\\\\n // Mapping from token ID to approved address\\\\n mapping(uint256 => address) private _tokenApprovals;\\\\n\\\\n // Mapping from owner to operator approvals\\\\n mapping(address => mapping(address => bool)) private _operatorApprovals;\\\\n\\\\n /**\\\\n * @dev Initializes the contract by setting a \`name\` and a \`symbol\` to the token collection.\\\\n */\\\\n constructor(string memory name_, string memory symbol_) {\\\\n _name = name_;\\\\n _symbol = symbol_;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\\\n return\\\\n interfaceId == type(IERC721).interfaceId ||\\\\n interfaceId == type(IERC721Metadata).interfaceId ||\\\\n super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-balanceOf}.\\\\n */\\\\n function balanceOf(address owner) public view virtual override returns (uint256) {\\\\n require(owner != address(0), \\\\\\"ERC721: address zero is not a valid owner\\\\\\");\\\\n return _balances[owner];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-ownerOf}.\\\\n */\\\\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\\\\n address owner = _ownerOf(tokenId);\\\\n require(owner != address(0), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n return owner;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-name}.\\\\n */\\\\n function name() public view virtual override returns (string memory) {\\\\n return _name;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-symbol}.\\\\n */\\\\n function symbol() public view virtual override returns (string memory) {\\\\n return _symbol;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-tokenURI}.\\\\n */\\\\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\\\\n _requireMinted(tokenId);\\\\n\\\\n string memory baseURI = _baseURI();\\\\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\\\n * token will be the concatenation of the \`baseURI\` and the \`tokenId\`. Empty\\\\n * by default, can be overridden in child contracts.\\\\n */\\\\n function _baseURI() internal view virtual returns (string memory) {\\\\n return \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-approve}.\\\\n */\\\\n function approve(address to, uint256 tokenId) public virtual override {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n require(to != owner, \\\\\\"ERC721: approval to current owner\\\\\\");\\\\n\\\\n require(\\\\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\\\\n \\\\\\"ERC721: approve caller is not token owner or approved for all\\\\\\"\\\\n );\\\\n\\\\n _approve(to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-getApproved}.\\\\n */\\\\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\\\\n _requireMinted(tokenId);\\\\n\\\\n return _tokenApprovals[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-setApprovalForAll}.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) public virtual override {\\\\n _setApprovalForAll(_msgSender(), operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-isApprovedForAll}.\\\\n */\\\\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\\\\n return _operatorApprovals[owner][operator];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-transferFrom}.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n //solhint-disable-next-line max-line-length\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n\\\\n _transfer(from, to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n safeTransferFrom(from, to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override {\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n _safeTransfer(from, to, tokenId, data);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * \`data\` is additional data, it has no specified format and it is sent in call to \`to\`.\\\\n *\\\\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\\\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _transfer(from, to, tokenId);\\\\n require(_checkOnERC721Received(from, to, tokenId, data), \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\`. Does NOT revert if token doesn't exist\\\\n */\\\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\\\n return _owners[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`tokenId\` exists.\\\\n *\\\\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\\\\n *\\\\n * Tokens start existing when they are minted (\`_mint\`),\\\\n * and stop existing when they are burned (\`_burn\`).\\\\n */\\\\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\\\\n return _ownerOf(tokenId) != address(0);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`spender\` is allowed to manage \`tokenId\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId) internal virtual {\\\\n _safeMint(to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[\`_safeMint\`], with an additional \`data\` parameter which is\\\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _mint(to, tokenId);\\\\n require(\\\\n _checkOnERC721Received(address(0), to, tokenId, data),\\\\n \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\"\\\\n );\\\\n }\\\\n\\\\n /**\\\\n * @dev Mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - \`to\` cannot be the zero address.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _mint(address to, uint256 tokenId) internal virtual {\\\\n require(to != address(0), \\\\\\"ERC721: mint to the zero address\\\\\\");\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n _beforeTokenTransfer(address(0), to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not minted by \`_beforeTokenTransfer\` hook\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n unchecked {\\\\n // Will not overflow unless all 2**256 token ids are minted to the same owner.\\\\n // Given that tokens are minted one by one, it is impossible in practice that\\\\n // this ever happens. Might change if we allow batch minting.\\\\n // The ERC fails to describe this case.\\\\n _balances[to] += 1;\\\\n }\\\\n\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(address(0), to, tokenId);\\\\n\\\\n _afterTokenTransfer(address(0), to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Destroys \`tokenId\`.\\\\n * The approval is cleared when the token is burned.\\\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _burn(uint256 tokenId) internal virtual {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n\\\\n _beforeTokenTransfer(owner, address(0), tokenId, 1);\\\\n\\\\n // Update ownership in case tokenId was transferred by \`_beforeTokenTransfer\` hook\\\\n owner = ERC721.ownerOf(tokenId);\\\\n\\\\n // Clear approvals\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // Cannot overflow, as that would require more tokens to be burned/transferred\\\\n // out than the owner initially received through minting and transferring in.\\\\n _balances[owner] -= 1;\\\\n }\\\\n delete _owners[tokenId];\\\\n\\\\n emit Transfer(owner, address(0), tokenId);\\\\n\\\\n _afterTokenTransfer(owner, address(0), tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` from \`from\` to \`to\`.\\\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n require(to != address(0), \\\\\\"ERC721: transfer to the zero address\\\\\\");\\\\n\\\\n _beforeTokenTransfer(from, to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not transferred by \`_beforeTokenTransfer\` hook\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n\\\\n // Clear approvals from the previous owner\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // \`_balances[from]\` cannot overflow for the same reason as described in \`_burn\`:\\\\n // \`from\`'s balance is the number of token held, which is at least one before the current\\\\n // transfer.\\\\n // \`_balances[to]\` could overflow in the conditions described in \`_mint\`. That would require\\\\n // all 2**256 token ids to be minted, which in practice is impossible.\\\\n _balances[from] -= 1;\\\\n _balances[to] += 1;\\\\n }\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(from, to, tokenId);\\\\n\\\\n _afterTokenTransfer(from, to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`to\` to operate on \`tokenId\`\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function _approve(address to, uint256 tokenId) internal virtual {\\\\n _tokenApprovals[tokenId] = to;\\\\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`operator\` to operate on all of \`owner\` tokens\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\\\n require(owner != operator, \\\\\\"ERC721: approve to caller\\\\\\");\\\\n _operatorApprovals[owner][operator] = approved;\\\\n emit ApprovalForAll(owner, operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev Reverts if the \`tokenId\` has not been minted yet.\\\\n */\\\\n function _requireMinted(uint256 tokenId) internal view virtual {\\\\n require(_exists(tokenId), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\\\\n * The call is not executed if the target address is not a contract.\\\\n *\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param to target address that will receive the tokens\\\\n * @param tokenId uint256 ID of the token to be transferred\\\\n * @param data bytes optional data to send along with the call\\\\n * @return bool whether the call correctly returned the expected magic value\\\\n */\\\\n function _checkOnERC721Received(\\\\n address from,\\\\n address to,\\\\n uint256 tokenId,\\\\n bytes memory data\\\\n ) private returns (bool) {\\\\n if (to.isContract()) {\\\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\\\n return retval == IERC721Receiver.onERC721Received.selector;\\\\n } catch (bytes memory reason) {\\\\n if (reason.length == 0) {\\\\n revert(\\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n } else {\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n revert(add(32, reason), mload(reason))\\\\n }\\\\n }\\\\n }\\\\n } else {\\\\n return true;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens will be transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens will be minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens will be burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens were transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens were minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens were burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _afterTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Unsafe write access to the balances, used by extensions that \\\\\\"mint\\\\\\" tokens using an {ownerOf} override.\\\\n *\\\\n * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\\\\n * being that for any address \`a\` the value returned by \`balanceOf(a)\` must be equal to the number of tokens such\\\\n * that \`ownerOf(tokenId)\` is \`a\`.\\\\n */\\\\n // solhint-disable-next-line func-name-mixedcase\\\\n function __unsafe_increaseBalance(address account, uint256 amount) internal {\\\\n _balances[account] += amount;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of the {IERC165} interface.\\\\n *\\\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\\\n * for the additional interface id that will be supported. For example:\\\\n *\\\\n * \`\`\`solidity\\\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\\\n * }\\\\n * \`\`\`\\\\n *\\\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\\\n */\\\\nabstract contract ERC165 is IERC165 {\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n return interfaceId == type(IERC165).interfaceId;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Interface of the ERC165 standard, as defined in the\\\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\\\n *\\\\n * Implementers can declare support of contract interfaces, which can then be\\\\n * queried by others ({ERC165Checker}).\\\\n *\\\\n * For an implementation, see {ERC165}.\\\\n */\\\\ninterface IERC165 {\\\\n /**\\\\n * @dev Returns true if this contract implements the interface defined by\\\\n * \`interfaceId\`. See the corresponding\\\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\\\n * to learn more about how these ids are created.\\\\n *\\\\n * This function call must use less than 30 000 gas.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev String operations.\\\\n */\\\\nlibrary Strings {\\\\n bytes16 private constant _SYMBOLS = \\\\\\"0123456789abcdef\\\\\\";\\\\n uint8 private constant _ADDRESS_LENGTH = 20;\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n uint256 length = Math.log10(value) + 1;\\\\n string memory buffer = new string(length);\\\\n uint256 ptr;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n ptr := add(buffer, add(32, length))\\\\n }\\\\n while (true) {\\\\n ptr--;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\\\n }\\\\n value /= 10;\\\\n if (value == 0) break;\\\\n }\\\\n return buffer;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`int256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(int256 value) internal pure returns (string memory) {\\\\n return string(abi.encodePacked(value < 0 ? \\\\\\"-\\\\\\" : \\\\\\"\\\\\\", toString(SignedMath.abs(value))));\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n return toHexString(value, Math.log256(value) + 1);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation with fixed length.\\\\n */\\\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\\\n bytes memory buffer = new bytes(2 * length + 2);\\\\n buffer[0] = \\\\\\"0\\\\\\";\\\\n buffer[1] = \\\\\\"x\\\\\\";\\\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\\\n buffer[i] = _SYMBOLS[value & 0xf];\\\\n value >>= 4;\\\\n }\\\\n require(value == 0, \\\\\\"Strings: hex length insufficient\\\\\\");\\\\n return string(buffer);\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts an \`address\` with fixed length of 20 bytes to its not checksummed ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(address addr) internal pure returns (string memory) {\\\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns true if the two strings are equal.\\\\n */\\\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\\\n return keccak256(bytes(a)) == keccak256(bytes(b));\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard signed math utilities missing in the Solidity language.\\\\n */\\\\nlibrary SignedMath {\\\\n /**\\\\n * @dev Returns the largest of two signed numbers.\\\\n */\\\\n function max(int256 a, int256 b) internal pure returns (int256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two signed numbers.\\\\n */\\\\n function min(int256 a, int256 b) internal pure returns (int256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two signed numbers without overflow.\\\\n * The result is rounded towards zero.\\\\n */\\\\n function average(int256 a, int256 b) internal pure returns (int256) {\\\\n // Formula from the book \\\\\\"Hacker's Delight\\\\\\"\\\\n int256 x = (a & b) + ((a ^ b) >> 1);\\\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the absolute unsigned value of a signed value.\\\\n */\\\\n function abs(int256 n) internal pure returns (uint256) {\\\\n unchecked {\\\\n // must be unchecked in order to support \`n = type(int256).min\`\\\\n return uint256(n >= 0 ? n : -n);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard math utilities missing in the Solidity language.\\\\n */\\\\nlibrary Math {\\\\n enum Rounding {\\\\n Down, // Toward negative infinity\\\\n Up, // Toward infinity\\\\n Zero // Toward zero\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the largest of two numbers.\\\\n */\\\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two numbers.\\\\n */\\\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two numbers. The result is rounded towards\\\\n * zero.\\\\n */\\\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b) / 2 can overflow.\\\\n return (a & b) + (a ^ b) / 2;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the ceiling of the division of two numbers.\\\\n *\\\\n * This differs from standard division with \`/\` in that it rounds up instead\\\\n * of rounding down.\\\\n */\\\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\\\n return a == 0 ? 0 : (a - 1) / b + 1;\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\\\n * with further edits by Uniswap Labs also under MIT license.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\\\n unchecked {\\\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\\\n // variables such that product = prod1 * 2^256 + prod0.\\\\n uint256 prod0; // Least significant 256 bits of the product\\\\n uint256 prod1; // Most significant 256 bits of the product\\\\n assembly {\\\\n let mm := mulmod(x, y, not(0))\\\\n prod0 := mul(x, y)\\\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\\\n }\\\\n\\\\n // Handle non-overflow cases, 256 by 256 division.\\\\n if (prod1 == 0) {\\\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\\\n // The surrounding unchecked block does not change this fact.\\\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\\\n return prod0 / denominator;\\\\n }\\\\n\\\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\\\n require(denominator > prod1, \\\\\\"Math: mulDiv overflow\\\\\\");\\\\n\\\\n ///////////////////////////////////////////////\\\\n // 512 by 256 division.\\\\n ///////////////////////////////////////////////\\\\n\\\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\\\n uint256 remainder;\\\\n assembly {\\\\n // Compute remainder using mulmod.\\\\n remainder := mulmod(x, y, denominator)\\\\n\\\\n // Subtract 256 bit number from 512 bit number.\\\\n prod1 := sub(prod1, gt(remainder, prod0))\\\\n prod0 := sub(prod0, remainder)\\\\n }\\\\n\\\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\\\n // See https://cs.stackexchange.com/q/138556/92363.\\\\n\\\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\\\n uint256 twos = denominator & (~denominator + 1);\\\\n assembly {\\\\n // Divide denominator by twos.\\\\n denominator := div(denominator, twos)\\\\n\\\\n // Divide [prod1 prod0] by twos.\\\\n prod0 := div(prod0, twos)\\\\n\\\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\\\n twos := add(div(sub(0, twos), twos), 1)\\\\n }\\\\n\\\\n // Shift in bits from prod1 into prod0.\\\\n prod0 |= prod1 * twos;\\\\n\\\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\\\n uint256 inverse = (3 * denominator) ^ 2;\\\\n\\\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\\\n // in modular arithmetic, doubling the correct bits in each step.\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\\\n\\\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\\\n // is no longer required.\\\\n result = prod0 * inverse;\\\\n return result;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\\\n uint256 result = mulDiv(x, y, denominator);\\\\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\\\n result += 1;\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\\\n *\\\\n * Inspired by Henry S. Warren, Jr.'s \\\\\\"Hacker's Delight\\\\\\" (Chapter 11).\\\\n */\\\\n function sqrt(uint256 a) internal pure returns (uint256) {\\\\n if (a == 0) {\\\\n return 0;\\\\n }\\\\n\\\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\\\n //\\\\n // We know that the \\\\\\"msb\\\\\\" (most significant bit) of our target number \`a\` is a power of 2 such that we have\\\\n // \`msb(a) <= a < 2*msb(a)\`. This value can be written \`msb(a)=2**k\` with \`k=log2(a)\`.\\\\n //\\\\n // This can be rewritten \`2**log2(a) <= a < 2**(log2(a) + 1)\`\\\\n // → \`sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))\`\\\\n // → \`2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)\`\\\\n //\\\\n // Consequently, \`2**(log2(a) / 2)\` is a good first approximation of \`sqrt(a)\` with at least 1 correct bit.\\\\n uint256 result = 1 << (log2(a) >> 1);\\\\n\\\\n // At this point \`result\` is an estimation with one bit of precision. We know the true value is a uint128,\\\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\\\n // into the expected uint128 result.\\\\n unchecked {\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n return min(result, a / result);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\\\n */\\\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = sqrt(a);\\\\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 128;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 64;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 32;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 16;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n value >>= 8;\\\\n result += 8;\\\\n }\\\\n if (value >> 4 > 0) {\\\\n value >>= 4;\\\\n result += 4;\\\\n }\\\\n if (value >> 2 > 0) {\\\\n value >>= 2;\\\\n result += 2;\\\\n }\\\\n if (value >> 1 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log2(value);\\\\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >= 10 ** 64) {\\\\n value /= 10 ** 64;\\\\n result += 64;\\\\n }\\\\n if (value >= 10 ** 32) {\\\\n value /= 10 ** 32;\\\\n result += 32;\\\\n }\\\\n if (value >= 10 ** 16) {\\\\n value /= 10 ** 16;\\\\n result += 16;\\\\n }\\\\n if (value >= 10 ** 8) {\\\\n value /= 10 ** 8;\\\\n result += 8;\\\\n }\\\\n if (value >= 10 ** 4) {\\\\n value /= 10 ** 4;\\\\n result += 4;\\\\n }\\\\n if (value >= 10 ** 2) {\\\\n value /= 10 ** 2;\\\\n result += 2;\\\\n }\\\\n if (value >= 10 ** 1) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log10(value);\\\\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n *\\\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent \`value\` as a hex string.\\\\n */\\\\n function log256(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 16;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 8;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 4;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 2;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log256(value);\\\\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides information about the current execution context, including the\\\\n * sender of the transaction and its data. While these are generally available\\\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\\\n * manner, since when dealing with meta-transactions the account sending and\\\\n * paying for execution may not be the actual sender (as far as an application\\\\n * is concerned).\\\\n *\\\\n * This contract is only required for intermediate, library-like contracts.\\\\n */\\\\nabstract contract Context {\\\\n function _msgSender() internal view virtual returns (address) {\\\\n return msg.sender;\\\\n }\\\\n\\\\n function _msgData() internal view virtual returns (bytes calldata) {\\\\n return msg.data;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\\\n\\\\npragma solidity ^0.8.1;\\\\n\\\\n/**\\\\n * @dev Collection of functions related to the address type\\\\n */\\\\nlibrary Address {\\\\n /**\\\\n * @dev Returns true if \`account\` is a contract.\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * It is unsafe to assume that an address for which this function returns\\\\n * false is an externally-owned account (EOA) and not a contract.\\\\n *\\\\n * Among others, \`isContract\` will return false for the following\\\\n * types of addresses:\\\\n *\\\\n * - an externally-owned account\\\\n * - a contract in construction\\\\n * - an address where a contract will be created\\\\n * - an address where a contract lived, but was destroyed\\\\n *\\\\n * Furthermore, \`isContract\` will also return true if the target contract within\\\\n * the same transaction is already scheduled for destruction by \`SELFDESTRUCT\`,\\\\n * which only has an effect at the end of a transaction.\\\\n * ====\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * You shouldn't rely on \`isContract\` to protect against flash loan attacks!\\\\n *\\\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\\\n * constructor.\\\\n * ====\\\\n */\\\\n function isContract(address account) internal view returns (bool) {\\\\n // This method relies on extcodesize/address.code.length, which returns 0\\\\n // for contracts in construction, since the code is only stored at the end\\\\n // of the constructor execution.\\\\n\\\\n return account.code.length > 0;\\\\n }\\\\n\\\\n /**\\\\n * @dev Replacement for Solidity's \`transfer\`: sends \`amount\` wei to\\\\n * \`recipient\`, forwarding all available gas and reverting on errors.\\\\n *\\\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\\\n * imposed by \`transfer\`, making them unable to receive funds via\\\\n * \`transfer\`. {sendValue} removes this limitation.\\\\n *\\\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\\\n *\\\\n * IMPORTANT: because control is transferred to \`recipient\`, care must be\\\\n * taken to not create reentrancy vulnerabilities. Consider using\\\\n * {ReentrancyGuard} or the\\\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\\\n */\\\\n function sendValue(address payable recipient, uint256 amount) internal {\\\\n require(address(this).balance >= amount, \\\\\\"Address: insufficient balance\\\\\\");\\\\n\\\\n (bool success, ) = recipient.call{value: amount}(\\\\\\"\\\\\\");\\\\n require(success, \\\\\\"Address: unable to send value, recipient may have reverted\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Performs a Solidity function call using a low level \`call\`. A\\\\n * plain \`call\` is an unsafe replacement for a function call: use this\\\\n * function instead.\\\\n *\\\\n * If \`target\` reverts with a revert reason, it is bubbled up by this\\\\n * function (like regular Solidity function calls).\\\\n *\\\\n * Returns the raw returned data. To convert to the expected return value,\\\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[\`abi.decode\`].\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`target\` must be a contract.\\\\n * - calling \`target\` with \`data\` must not revert.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, \\\\\\"Address: low-level call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`], but with\\\\n * \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but also transferring \`value\` wei to \`target\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - the calling contract must have an ETH balance of at least \`value\`.\\\\n * - the called Solidity function must be \`payable\`.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, value, \\\\\\"Address: low-level call with value failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[\`functionCallWithValue\`], but\\\\n * with \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(\\\\n address target,\\\\n bytes memory data,\\\\n uint256 value,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n require(address(this).balance >= value, \\\\\\"Address: insufficient balance for call\\\\\\");\\\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\\\n return functionStaticCall(target, data, \\\\\\"Address: low-level static call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.staticcall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionDelegateCall(target, data, \\\\\\"Address: low-level delegate call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\\\n *\\\\n * _Available since v4.8._\\\\n */\\\\n function verifyCallResultFromTarget(\\\\n address target,\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n if (success) {\\\\n if (returndata.length == 0) {\\\\n // only check isContract if the call was successful and the return data is empty\\\\n // otherwise we already know that it was a contract\\\\n require(isContract(target), \\\\\\"Address: call to non-contract\\\\\\");\\\\n }\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\\\n * revert reason or using the provided one.\\\\n *\\\\n * _Available since v4.3._\\\\n */\\\\n function verifyCallResult(\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal pure returns (bytes memory) {\\\\n if (success) {\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\\\n // Look for revert reason and bubble it up if present\\\\n if (returndata.length > 0) {\\\\n // The easiest way to bubble the revert reason is using memory via assembly\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n let returndata_size := mload(returndata)\\\\n revert(add(32, returndata), returndata_size)\\\\n }\\\\n } else {\\\\n revert(errorMessage);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Metadata is IERC721 {\\\\n /**\\\\n * @dev Returns the token collection name.\\\\n */\\\\n function name() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the token collection symbol.\\\\n */\\\\n function symbol() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the Uniform Resource Identifier (URI) for \`tokenId\` token.\\\\n */\\\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Required interface of an ERC721 compliant contract.\\\\n */\\\\ninterface IERC721 is IERC165 {\\\\n /**\\\\n * @dev Emitted when \`tokenId\` token is transferred from \`from\` to \`to\`.\\\\n */\\\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables \`approved\` to manage the \`tokenId\` token.\\\\n */\\\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables or disables (\`approved\`) \`operator\` to manage all of its assets.\\\\n */\\\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\\\n\\\\n /**\\\\n * @dev Returns the number of tokens in \`\`owner\`\`'s account.\\\\n */\\\\n function balanceOf(address owner) external view returns (uint256 balance);\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Gives permission to \`to\` to transfer \`tokenId\` token to another account.\\\\n * The approval is cleared when the token is transferred.\\\\n *\\\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The caller must own the token or be an approved operator.\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function approve(address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Approve or remove \`operator\` as an operator for the caller.\\\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The \`operator\` cannot be the caller.\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) external;\\\\n\\\\n /**\\\\n * @dev Returns the account approved for \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function getApproved(uint256 tokenId) external view returns (address operator);\\\\n\\\\n /**\\\\n * @dev Returns if the \`operator\` is allowed to manage all of the assets of \`owner\`.\\\\n *\\\\n * See {setApprovalForAll}\\\\n */\\\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @title ERC721 token receiver interface\\\\n * @dev Interface for any contract that wants to support safeTransfers\\\\n * from ERC721 asset contracts.\\\\n */\\\\ninterface IERC721Receiver {\\\\n /**\\\\n * @dev Whenever an {IERC721} \`tokenId\` token is transferred to this contract via {IERC721-safeTransferFrom}\\\\n * by \`operator\` from \`from\`, this function is called.\\\\n *\\\\n * It must return its Solidity selector to confirm the token transfer.\\\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\\\\n *\\\\n * The selector can be obtained in Solidity with \`IERC721Receiver.onERC721Received.selector\`.\\\\n */\\\\n function onERC721Received(\\\\n address operator,\\\\n address from,\\\\n uint256 tokenId,\\\\n bytes calldata data\\\\n ) external returns (bytes4);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev This implements an optional extension of {ERC721} defined in the EIP that adds\\\\n * enumerability of all the token ids in the contract as well as all token ids owned by each\\\\n * account.\\\\n */\\\\nabstract contract ERC721Enumerable is ERC721, IERC721Enumerable {\\\\n // Mapping from owner to list of owned token IDs\\\\n mapping(address => mapping(uint256 => uint256)) private _ownedTokens;\\\\n\\\\n // Mapping from token ID to index of the owner tokens list\\\\n mapping(uint256 => uint256) private _ownedTokensIndex;\\\\n\\\\n // Array with all token ids, used for enumeration\\\\n uint256[] private _allTokens;\\\\n\\\\n // Mapping from token id to position in the allTokens array\\\\n mapping(uint256 => uint256) private _allTokensIndex;\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {\\\\n return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721.balanceOf(owner), \\\\\\"ERC721Enumerable: owner index out of bounds\\\\\\");\\\\n return _ownedTokens[owner][index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-totalSupply}.\\\\n */\\\\n function totalSupply() public view virtual override returns (uint256) {\\\\n return _allTokens.length;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenByIndex}.\\\\n */\\\\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721Enumerable.totalSupply(), \\\\\\"ERC721Enumerable: global index out of bounds\\\\\\");\\\\n return _allTokens[index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {ERC721-_beforeTokenTransfer}.\\\\n */\\\\n function _beforeTokenTransfer(\\\\n address from,\\\\n address to,\\\\n uint256 firstTokenId,\\\\n uint256 batchSize\\\\n ) internal virtual override {\\\\n super._beforeTokenTransfer(from, to, firstTokenId, batchSize);\\\\n\\\\n if (batchSize > 1) {\\\\n // Will only trigger during construction. Batch transferring (minting) is not available afterwards.\\\\n revert(\\\\\\"ERC721Enumerable: consecutive transfers not supported\\\\\\");\\\\n }\\\\n\\\\n uint256 tokenId = firstTokenId;\\\\n\\\\n if (from == address(0)) {\\\\n _addTokenToAllTokensEnumeration(tokenId);\\\\n } else if (from != to) {\\\\n _removeTokenFromOwnerEnumeration(from, tokenId);\\\\n }\\\\n if (to == address(0)) {\\\\n _removeTokenFromAllTokensEnumeration(tokenId);\\\\n } else if (to != from) {\\\\n _addTokenToOwnerEnumeration(to, tokenId);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\\\\n * @param to address representing the new owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\\\\n */\\\\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\\\\n uint256 length = ERC721.balanceOf(to);\\\\n _ownedTokens[to][length] = tokenId;\\\\n _ownedTokensIndex[tokenId] = length;\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's token tracking data structures.\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list\\\\n */\\\\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\\\\n _allTokensIndex[tokenId] = _allTokens.length;\\\\n _allTokens.push(tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\\\\n * while the token is not assigned a new owner, the \`_ownedTokensIndex\` mapping is _not_ updated: this allows for\\\\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\\\\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\\\\n */\\\\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\\\\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;\\\\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary\\\\n if (tokenIndex != lastTokenIndex) {\\\\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\\\\n\\\\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n }\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _ownedTokensIndex[tokenId];\\\\n delete _ownedTokens[from][lastTokenIndex];\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's token tracking data structures.\\\\n * This has O(1) time complexity, but alters the order of the _allTokens array.\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list\\\\n */\\\\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\\\\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = _allTokens.length - 1;\\\\n uint256 tokenIndex = _allTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\\\\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\\\\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\\\\n uint256 lastTokenId = _allTokens[lastTokenIndex];\\\\n\\\\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _allTokensIndex[tokenId];\\\\n _allTokens.pop();\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Enumerable is IERC721 {\\\\n /**\\\\n * @dev Returns the total amount of tokens stored by the contract.\\\\n */\\\\n function totalSupply() external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID owned by \`owner\` at a given \`index\` of its token list.\\\\n * Use along with {balanceOf} to enumerate all of \`\`owner\`\`'s tokens.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID at a given \`index\` of all the tokens stored by the contract.\\\\n * Use along with {totalSupply} to enumerate all tokens.\\\\n */\\\\n function tokenByIndex(uint256 index) external view returns (uint256);\\\\n}\\\\n\\" + } + }, + \\"settings\\": { + \\"outputSelection\\": { + \\"*\\": { + \\"*\\": [ + \\"abi\\", + \\"userdoc\\" + ] + } + } + } + }, + \\"solcOutput\\": { + \\"contracts\\": { + \\"./Contract.sol\\": { + \\"WagmiMintExample\\": { + \\"abi\\": [ + { + \\"inputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"constructor\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"mint\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"mint\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"pure\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"totalSupply\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": { + \\"mint()\\": { + \\"notice\\": \\"Allows an address to mint\\" + }, + \\"mint(uint256)\\": { + \\"notice\\": \\"Returns the token URI for a given token by ID\\" + }, + \\"tokenURI(uint256)\\": { + \\"notice\\": \\"Returns the token URI for a given token by ID\\" + } + }, + \\"notice\\": \\"An example token original from the wagmi template\\", + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\": { + \\"ERC721\\": { + \\"abi\\": [ + { + \\"inputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"name_\\", + \\"type\\": \\"string\\" + }, + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"symbol_\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"constructor\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\": { + \\"IERC721\\": { + \\"abi\\": [ + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"balance\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\": { + \\"IERC721Receiver\\": { + \\"abi\\": [ + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"onERC721Received\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\": { + \\"ERC721Enumerable\\": { + \\"abi\\": [ + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"index\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenByIndex\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"index\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenOfOwnerByIndex\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"totalSupply\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\": { + \\"IERC721Enumerable\\": { + \\"abi\\": [ + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"balance\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"index\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenByIndex\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"index\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenOfOwnerByIndex\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"totalSupply\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\": { + \\"IERC721Metadata\\": { + \\"abi\\": [ + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"balance\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\": { + \\"Address\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\": { + \\"Base64\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\": { + \\"Context\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\": { + \\"Strings\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\": { + \\"ERC165\\": { + \\"abi\\": [ + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\": { + \\"IERC165\\": { + \\"abi\\": [ + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\": { + \\"Math\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\": { + \\"SignedMath\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + } + }, + \\"sources\\": { + \\"./Contract.sol\\": { + \\"id\\": 0 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\": { + \\"id\\": 1 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\": { + \\"id\\": 2 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\": { + \\"id\\": 3 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\": { + \\"id\\": 4 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\": { + \\"id\\": 5 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\": { + \\"id\\": 6 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\": { + \\"id\\": 7 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\": { + \\"id\\": 8 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\": { + \\"id\\": 9 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\": { + \\"id\\": 10 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\": { + \\"id\\": 11 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\": { + \\"id\\": 12 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\": { + \\"id\\": 13 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\": { + \\"id\\": 14 + } + } + } +}" +`; diff --git a/solc/src/compiler/__snapshots__/compileContractsSync.spec.ts.snap b/solc/src/compiler/__snapshots__/compileContractsSync.spec.ts.snap new file mode 100644 index 0000000000..bd855ae858 --- /dev/null +++ b/solc/src/compiler/__snapshots__/compileContractsSync.spec.ts.snap @@ -0,0 +1,2923 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`compileContractSync > should successfully compile a contract without errors 1`] = ` +"{ + \\"artifacts\\": { + \\"WagmiMintExample\\": { + \\"abi\\": [ + { + \\"inputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"constructor\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"mint\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"mint\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"pure\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"totalSupply\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": { + \\"mint()\\": { + \\"notice\\": \\"Allows an address to mint\\" + }, + \\"mint(uint256)\\": { + \\"notice\\": \\"Returns the token URI for a given token by ID\\" + }, + \\"tokenURI(uint256)\\": { + \\"notice\\": \\"Returns the token URI for a given token by ID\\" + } + }, + \\"notice\\": \\"An example token original from the wagmi template\\", + \\"version\\": 1 + } + } + }, + \\"modules\\": { + \\"./Contract.sol\\": { + \\"id\\": \\"./Contract.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Base64.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides a set of functions to operate with Base64 strings.\\\\n *\\\\n * _Available since v4.5._\\\\n */\\\\nlibrary Base64 {\\\\n /**\\\\n * @dev Base64 Encoding/Decoding Table\\\\n */\\\\n string internal constant _TABLE = \\\\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\\\\";\\\\n\\\\n /**\\\\n * @dev Converts a \`bytes\` to its Bytes64 \`string\` representation.\\\\n */\\\\n function encode(bytes memory data) internal pure returns (string memory) {\\\\n /**\\\\n * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\\\\n * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\\\\n */\\\\n if (data.length == 0) return \\\\\\"\\\\\\";\\\\n\\\\n // Loads the table into memory\\\\n string memory table = _TABLE;\\\\n\\\\n // Encoding takes 3 bytes chunks of binary data from \`bytes\` data parameter\\\\n // and split into 4 numbers of 6 bits.\\\\n // The final Base64 length should be \`bytes\` data length multiplied by 4/3 rounded up\\\\n // - \`data.length + 2\` -> Round up\\\\n // - \`/ 3\` -> Number of 3-bytes chunks\\\\n // - \`4 *\` -> 4 characters for each chunk\\\\n string memory result = new string(4 * ((data.length + 2) / 3));\\\\n\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n // Prepare the lookup table (skip the first \\\\\\"length\\\\\\" byte)\\\\n let tablePtr := add(table, 1)\\\\n\\\\n // Prepare result pointer, jump over length\\\\n let resultPtr := add(result, 32)\\\\n\\\\n // Run over the input, 3 bytes at a time\\\\n for {\\\\n let dataPtr := data\\\\n let endPtr := add(data, mload(data))\\\\n } lt(dataPtr, endPtr) {\\\\n\\\\n } {\\\\n // Advance 3 bytes\\\\n dataPtr := add(dataPtr, 3)\\\\n let input := mload(dataPtr)\\\\n\\\\n // To write each character, shift the 3 bytes (18 bits) chunk\\\\n // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\\\\n // and apply logical AND with 0x3F which is the number of\\\\n // the previous character in the ASCII table prior to the Base64 Table\\\\n // The result is then added to the table to get the character to write,\\\\n // and finally write it in the result pointer but with a left shift\\\\n // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n }\\\\n\\\\n // When data \`bytes\` is not exactly 3 bytes long\\\\n // it is padded with \`=\` characters at the end\\\\n switch mod(mload(data), 3)\\\\n case 1 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n mstore8(sub(resultPtr, 2), 0x3d)\\\\n }\\\\n case 2 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n }\\\\n }\\\\n\\\\n return result;\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Base64.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides a set of functions to operate with Base64 strings.\\\\n *\\\\n * _Available since v4.5._\\\\n */\\\\nlibrary Base64 {\\\\n /**\\\\n * @dev Base64 Encoding/Decoding Table\\\\n */\\\\n string internal constant _TABLE = \\\\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\\\\";\\\\n\\\\n /**\\\\n * @dev Converts a \`bytes\` to its Bytes64 \`string\` representation.\\\\n */\\\\n function encode(bytes memory data) internal pure returns (string memory) {\\\\n /**\\\\n * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\\\\n * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\\\\n */\\\\n if (data.length == 0) return \\\\\\"\\\\\\";\\\\n\\\\n // Loads the table into memory\\\\n string memory table = _TABLE;\\\\n\\\\n // Encoding takes 3 bytes chunks of binary data from \`bytes\` data parameter\\\\n // and split into 4 numbers of 6 bits.\\\\n // The final Base64 length should be \`bytes\` data length multiplied by 4/3 rounded up\\\\n // - \`data.length + 2\` -> Round up\\\\n // - \`/ 3\` -> Number of 3-bytes chunks\\\\n // - \`4 *\` -> 4 characters for each chunk\\\\n string memory result = new string(4 * ((data.length + 2) / 3));\\\\n\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n // Prepare the lookup table (skip the first \\\\\\"length\\\\\\" byte)\\\\n let tablePtr := add(table, 1)\\\\n\\\\n // Prepare result pointer, jump over length\\\\n let resultPtr := add(result, 32)\\\\n\\\\n // Run over the input, 3 bytes at a time\\\\n for {\\\\n let dataPtr := data\\\\n let endPtr := add(data, mload(data))\\\\n } lt(dataPtr, endPtr) {\\\\n\\\\n } {\\\\n // Advance 3 bytes\\\\n dataPtr := add(dataPtr, 3)\\\\n let input := mload(dataPtr)\\\\n\\\\n // To write each character, shift the 3 bytes (18 bits) chunk\\\\n // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\\\\n // and apply logical AND with 0x3F which is the number of\\\\n // the previous character in the ASCII table prior to the Base64 Table\\\\n // The result is then added to the table to get the character to write,\\\\n // and finally write it in the result pointer but with a left shift\\\\n // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n }\\\\n\\\\n // When data \`bytes\` is not exactly 3 bytes long\\\\n // it is padded with \`=\` characters at the end\\\\n switch mod(mload(data), 3)\\\\n case 1 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n mstore8(sub(resultPtr, 2), 0x3d)\\\\n }\\\\n case 2 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n }\\\\n }\\\\n\\\\n return result;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"./IERC721.sol\\\\\\";\\\\nimport \\\\\\"./IERC721Receiver.sol\\\\\\";\\\\nimport \\\\\\"./extensions/IERC721Metadata.sol\\\\\\";\\\\nimport \\\\\\"../../utils/Address.sol\\\\\\";\\\\nimport \\\\\\"../../utils/Context.sol\\\\\\";\\\\nimport \\\\\\"../../utils/Strings.sol\\\\\\";\\\\nimport \\\\\\"../../utils/introspection/ERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\\\n * {ERC721Enumerable}.\\\\n */\\\\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\\\\n using Address for address;\\\\n using Strings for uint256;\\\\n\\\\n // Token name\\\\n string private _name;\\\\n\\\\n // Token symbol\\\\n string private _symbol;\\\\n\\\\n // Mapping from token ID to owner address\\\\n mapping(uint256 => address) private _owners;\\\\n\\\\n // Mapping owner address to token count\\\\n mapping(address => uint256) private _balances;\\\\n\\\\n // Mapping from token ID to approved address\\\\n mapping(uint256 => address) private _tokenApprovals;\\\\n\\\\n // Mapping from owner to operator approvals\\\\n mapping(address => mapping(address => bool)) private _operatorApprovals;\\\\n\\\\n /**\\\\n * @dev Initializes the contract by setting a \`name\` and a \`symbol\` to the token collection.\\\\n */\\\\n constructor(string memory name_, string memory symbol_) {\\\\n _name = name_;\\\\n _symbol = symbol_;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\\\n return\\\\n interfaceId == type(IERC721).interfaceId ||\\\\n interfaceId == type(IERC721Metadata).interfaceId ||\\\\n super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-balanceOf}.\\\\n */\\\\n function balanceOf(address owner) public view virtual override returns (uint256) {\\\\n require(owner != address(0), \\\\\\"ERC721: address zero is not a valid owner\\\\\\");\\\\n return _balances[owner];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-ownerOf}.\\\\n */\\\\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\\\\n address owner = _ownerOf(tokenId);\\\\n require(owner != address(0), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n return owner;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-name}.\\\\n */\\\\n function name() public view virtual override returns (string memory) {\\\\n return _name;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-symbol}.\\\\n */\\\\n function symbol() public view virtual override returns (string memory) {\\\\n return _symbol;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-tokenURI}.\\\\n */\\\\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\\\\n _requireMinted(tokenId);\\\\n\\\\n string memory baseURI = _baseURI();\\\\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\\\n * token will be the concatenation of the \`baseURI\` and the \`tokenId\`. Empty\\\\n * by default, can be overridden in child contracts.\\\\n */\\\\n function _baseURI() internal view virtual returns (string memory) {\\\\n return \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-approve}.\\\\n */\\\\n function approve(address to, uint256 tokenId) public virtual override {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n require(to != owner, \\\\\\"ERC721: approval to current owner\\\\\\");\\\\n\\\\n require(\\\\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\\\\n \\\\\\"ERC721: approve caller is not token owner or approved for all\\\\\\"\\\\n );\\\\n\\\\n _approve(to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-getApproved}.\\\\n */\\\\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\\\\n _requireMinted(tokenId);\\\\n\\\\n return _tokenApprovals[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-setApprovalForAll}.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) public virtual override {\\\\n _setApprovalForAll(_msgSender(), operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-isApprovedForAll}.\\\\n */\\\\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\\\\n return _operatorApprovals[owner][operator];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-transferFrom}.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n //solhint-disable-next-line max-line-length\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n\\\\n _transfer(from, to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n safeTransferFrom(from, to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override {\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n _safeTransfer(from, to, tokenId, data);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * \`data\` is additional data, it has no specified format and it is sent in call to \`to\`.\\\\n *\\\\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\\\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _transfer(from, to, tokenId);\\\\n require(_checkOnERC721Received(from, to, tokenId, data), \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\`. Does NOT revert if token doesn't exist\\\\n */\\\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\\\n return _owners[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`tokenId\` exists.\\\\n *\\\\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\\\\n *\\\\n * Tokens start existing when they are minted (\`_mint\`),\\\\n * and stop existing when they are burned (\`_burn\`).\\\\n */\\\\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\\\\n return _ownerOf(tokenId) != address(0);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`spender\` is allowed to manage \`tokenId\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId) internal virtual {\\\\n _safeMint(to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[\`_safeMint\`], with an additional \`data\` parameter which is\\\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _mint(to, tokenId);\\\\n require(\\\\n _checkOnERC721Received(address(0), to, tokenId, data),\\\\n \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\"\\\\n );\\\\n }\\\\n\\\\n /**\\\\n * @dev Mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - \`to\` cannot be the zero address.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _mint(address to, uint256 tokenId) internal virtual {\\\\n require(to != address(0), \\\\\\"ERC721: mint to the zero address\\\\\\");\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n _beforeTokenTransfer(address(0), to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not minted by \`_beforeTokenTransfer\` hook\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n unchecked {\\\\n // Will not overflow unless all 2**256 token ids are minted to the same owner.\\\\n // Given that tokens are minted one by one, it is impossible in practice that\\\\n // this ever happens. Might change if we allow batch minting.\\\\n // The ERC fails to describe this case.\\\\n _balances[to] += 1;\\\\n }\\\\n\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(address(0), to, tokenId);\\\\n\\\\n _afterTokenTransfer(address(0), to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Destroys \`tokenId\`.\\\\n * The approval is cleared when the token is burned.\\\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _burn(uint256 tokenId) internal virtual {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n\\\\n _beforeTokenTransfer(owner, address(0), tokenId, 1);\\\\n\\\\n // Update ownership in case tokenId was transferred by \`_beforeTokenTransfer\` hook\\\\n owner = ERC721.ownerOf(tokenId);\\\\n\\\\n // Clear approvals\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // Cannot overflow, as that would require more tokens to be burned/transferred\\\\n // out than the owner initially received through minting and transferring in.\\\\n _balances[owner] -= 1;\\\\n }\\\\n delete _owners[tokenId];\\\\n\\\\n emit Transfer(owner, address(0), tokenId);\\\\n\\\\n _afterTokenTransfer(owner, address(0), tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` from \`from\` to \`to\`.\\\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n require(to != address(0), \\\\\\"ERC721: transfer to the zero address\\\\\\");\\\\n\\\\n _beforeTokenTransfer(from, to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not transferred by \`_beforeTokenTransfer\` hook\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n\\\\n // Clear approvals from the previous owner\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // \`_balances[from]\` cannot overflow for the same reason as described in \`_burn\`:\\\\n // \`from\`'s balance is the number of token held, which is at least one before the current\\\\n // transfer.\\\\n // \`_balances[to]\` could overflow in the conditions described in \`_mint\`. That would require\\\\n // all 2**256 token ids to be minted, which in practice is impossible.\\\\n _balances[from] -= 1;\\\\n _balances[to] += 1;\\\\n }\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(from, to, tokenId);\\\\n\\\\n _afterTokenTransfer(from, to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`to\` to operate on \`tokenId\`\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function _approve(address to, uint256 tokenId) internal virtual {\\\\n _tokenApprovals[tokenId] = to;\\\\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`operator\` to operate on all of \`owner\` tokens\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\\\n require(owner != operator, \\\\\\"ERC721: approve to caller\\\\\\");\\\\n _operatorApprovals[owner][operator] = approved;\\\\n emit ApprovalForAll(owner, operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev Reverts if the \`tokenId\` has not been minted yet.\\\\n */\\\\n function _requireMinted(uint256 tokenId) internal view virtual {\\\\n require(_exists(tokenId), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\\\\n * The call is not executed if the target address is not a contract.\\\\n *\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param to target address that will receive the tokens\\\\n * @param tokenId uint256 ID of the token to be transferred\\\\n * @param data bytes optional data to send along with the call\\\\n * @return bool whether the call correctly returned the expected magic value\\\\n */\\\\n function _checkOnERC721Received(\\\\n address from,\\\\n address to,\\\\n uint256 tokenId,\\\\n bytes memory data\\\\n ) private returns (bool) {\\\\n if (to.isContract()) {\\\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\\\n return retval == IERC721Receiver.onERC721Received.selector;\\\\n } catch (bytes memory reason) {\\\\n if (reason.length == 0) {\\\\n revert(\\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n } else {\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n revert(add(32, reason), mload(reason))\\\\n }\\\\n }\\\\n }\\\\n } else {\\\\n return true;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens will be transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens will be minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens will be burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens were transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens were minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens were burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _afterTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Unsafe write access to the balances, used by extensions that \\\\\\"mint\\\\\\" tokens using an {ownerOf} override.\\\\n *\\\\n * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\\\\n * being that for any address \`a\` the value returned by \`balanceOf(a)\` must be equal to the number of tokens such\\\\n * that \`ownerOf(tokenId)\` is \`a\`.\\\\n */\\\\n // solhint-disable-next-line func-name-mixedcase\\\\n function __unsafe_increaseBalance(address account, uint256 amount) internal {\\\\n _balances[account] += amount;\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\\\n * {ERC721Enumerable}.\\\\n */\\\\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\\\\n using Address for address;\\\\n using Strings for uint256;\\\\n\\\\n // Token name\\\\n string private _name;\\\\n\\\\n // Token symbol\\\\n string private _symbol;\\\\n\\\\n // Mapping from token ID to owner address\\\\n mapping(uint256 => address) private _owners;\\\\n\\\\n // Mapping owner address to token count\\\\n mapping(address => uint256) private _balances;\\\\n\\\\n // Mapping from token ID to approved address\\\\n mapping(uint256 => address) private _tokenApprovals;\\\\n\\\\n // Mapping from owner to operator approvals\\\\n mapping(address => mapping(address => bool)) private _operatorApprovals;\\\\n\\\\n /**\\\\n * @dev Initializes the contract by setting a \`name\` and a \`symbol\` to the token collection.\\\\n */\\\\n constructor(string memory name_, string memory symbol_) {\\\\n _name = name_;\\\\n _symbol = symbol_;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\\\n return\\\\n interfaceId == type(IERC721).interfaceId ||\\\\n interfaceId == type(IERC721Metadata).interfaceId ||\\\\n super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-balanceOf}.\\\\n */\\\\n function balanceOf(address owner) public view virtual override returns (uint256) {\\\\n require(owner != address(0), \\\\\\"ERC721: address zero is not a valid owner\\\\\\");\\\\n return _balances[owner];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-ownerOf}.\\\\n */\\\\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\\\\n address owner = _ownerOf(tokenId);\\\\n require(owner != address(0), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n return owner;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-name}.\\\\n */\\\\n function name() public view virtual override returns (string memory) {\\\\n return _name;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-symbol}.\\\\n */\\\\n function symbol() public view virtual override returns (string memory) {\\\\n return _symbol;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-tokenURI}.\\\\n */\\\\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\\\\n _requireMinted(tokenId);\\\\n\\\\n string memory baseURI = _baseURI();\\\\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\\\n * token will be the concatenation of the \`baseURI\` and the \`tokenId\`. Empty\\\\n * by default, can be overridden in child contracts.\\\\n */\\\\n function _baseURI() internal view virtual returns (string memory) {\\\\n return \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-approve}.\\\\n */\\\\n function approve(address to, uint256 tokenId) public virtual override {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n require(to != owner, \\\\\\"ERC721: approval to current owner\\\\\\");\\\\n\\\\n require(\\\\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\\\\n \\\\\\"ERC721: approve caller is not token owner or approved for all\\\\\\"\\\\n );\\\\n\\\\n _approve(to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-getApproved}.\\\\n */\\\\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\\\\n _requireMinted(tokenId);\\\\n\\\\n return _tokenApprovals[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-setApprovalForAll}.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) public virtual override {\\\\n _setApprovalForAll(_msgSender(), operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-isApprovedForAll}.\\\\n */\\\\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\\\\n return _operatorApprovals[owner][operator];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-transferFrom}.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n //solhint-disable-next-line max-line-length\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n\\\\n _transfer(from, to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n safeTransferFrom(from, to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override {\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n _safeTransfer(from, to, tokenId, data);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * \`data\` is additional data, it has no specified format and it is sent in call to \`to\`.\\\\n *\\\\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\\\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _transfer(from, to, tokenId);\\\\n require(_checkOnERC721Received(from, to, tokenId, data), \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\`. Does NOT revert if token doesn't exist\\\\n */\\\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\\\n return _owners[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`tokenId\` exists.\\\\n *\\\\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\\\\n *\\\\n * Tokens start existing when they are minted (\`_mint\`),\\\\n * and stop existing when they are burned (\`_burn\`).\\\\n */\\\\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\\\\n return _ownerOf(tokenId) != address(0);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`spender\` is allowed to manage \`tokenId\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId) internal virtual {\\\\n _safeMint(to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[\`_safeMint\`], with an additional \`data\` parameter which is\\\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _mint(to, tokenId);\\\\n require(\\\\n _checkOnERC721Received(address(0), to, tokenId, data),\\\\n \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\"\\\\n );\\\\n }\\\\n\\\\n /**\\\\n * @dev Mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - \`to\` cannot be the zero address.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _mint(address to, uint256 tokenId) internal virtual {\\\\n require(to != address(0), \\\\\\"ERC721: mint to the zero address\\\\\\");\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n _beforeTokenTransfer(address(0), to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not minted by \`_beforeTokenTransfer\` hook\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n unchecked {\\\\n // Will not overflow unless all 2**256 token ids are minted to the same owner.\\\\n // Given that tokens are minted one by one, it is impossible in practice that\\\\n // this ever happens. Might change if we allow batch minting.\\\\n // The ERC fails to describe this case.\\\\n _balances[to] += 1;\\\\n }\\\\n\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(address(0), to, tokenId);\\\\n\\\\n _afterTokenTransfer(address(0), to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Destroys \`tokenId\`.\\\\n * The approval is cleared when the token is burned.\\\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _burn(uint256 tokenId) internal virtual {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n\\\\n _beforeTokenTransfer(owner, address(0), tokenId, 1);\\\\n\\\\n // Update ownership in case tokenId was transferred by \`_beforeTokenTransfer\` hook\\\\n owner = ERC721.ownerOf(tokenId);\\\\n\\\\n // Clear approvals\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // Cannot overflow, as that would require more tokens to be burned/transferred\\\\n // out than the owner initially received through minting and transferring in.\\\\n _balances[owner] -= 1;\\\\n }\\\\n delete _owners[tokenId];\\\\n\\\\n emit Transfer(owner, address(0), tokenId);\\\\n\\\\n _afterTokenTransfer(owner, address(0), tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` from \`from\` to \`to\`.\\\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n require(to != address(0), \\\\\\"ERC721: transfer to the zero address\\\\\\");\\\\n\\\\n _beforeTokenTransfer(from, to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not transferred by \`_beforeTokenTransfer\` hook\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n\\\\n // Clear approvals from the previous owner\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // \`_balances[from]\` cannot overflow for the same reason as described in \`_burn\`:\\\\n // \`from\`'s balance is the number of token held, which is at least one before the current\\\\n // transfer.\\\\n // \`_balances[to]\` could overflow in the conditions described in \`_mint\`. That would require\\\\n // all 2**256 token ids to be minted, which in practice is impossible.\\\\n _balances[from] -= 1;\\\\n _balances[to] += 1;\\\\n }\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(from, to, tokenId);\\\\n\\\\n _afterTokenTransfer(from, to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`to\` to operate on \`tokenId\`\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function _approve(address to, uint256 tokenId) internal virtual {\\\\n _tokenApprovals[tokenId] = to;\\\\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`operator\` to operate on all of \`owner\` tokens\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\\\n require(owner != operator, \\\\\\"ERC721: approve to caller\\\\\\");\\\\n _operatorApprovals[owner][operator] = approved;\\\\n emit ApprovalForAll(owner, operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev Reverts if the \`tokenId\` has not been minted yet.\\\\n */\\\\n function _requireMinted(uint256 tokenId) internal view virtual {\\\\n require(_exists(tokenId), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\\\\n * The call is not executed if the target address is not a contract.\\\\n *\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param to target address that will receive the tokens\\\\n * @param tokenId uint256 ID of the token to be transferred\\\\n * @param data bytes optional data to send along with the call\\\\n * @return bool whether the call correctly returned the expected magic value\\\\n */\\\\n function _checkOnERC721Received(\\\\n address from,\\\\n address to,\\\\n uint256 tokenId,\\\\n bytes memory data\\\\n ) private returns (bool) {\\\\n if (to.isContract()) {\\\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\\\n return retval == IERC721Receiver.onERC721Received.selector;\\\\n } catch (bytes memory reason) {\\\\n if (reason.length == 0) {\\\\n revert(\\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n } else {\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n revert(add(32, reason), mload(reason))\\\\n }\\\\n }\\\\n }\\\\n } else {\\\\n return true;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens will be transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens will be minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens will be burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens were transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens were minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens were burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _afterTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Unsafe write access to the balances, used by extensions that \\\\\\"mint\\\\\\" tokens using an {ownerOf} override.\\\\n *\\\\n * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\\\\n * being that for any address \`a\` the value returned by \`balanceOf(a)\` must be equal to the number of tokens such\\\\n * that \`ownerOf(tokenId)\` is \`a\`.\\\\n */\\\\n // solhint-disable-next-line func-name-mixedcase\\\\n function __unsafe_increaseBalance(address account, uint256 amount) internal {\\\\n _balances[account] += amount;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"./IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of the {IERC165} interface.\\\\n *\\\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\\\n * for the additional interface id that will be supported. For example:\\\\n *\\\\n * \`\`\`solidity\\\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\\\n * }\\\\n * \`\`\`\\\\n *\\\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\\\n */\\\\nabstract contract ERC165 is IERC165 {\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n return interfaceId == type(IERC165).interfaceId;\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of the {IERC165} interface.\\\\n *\\\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\\\n * for the additional interface id that will be supported. For example:\\\\n *\\\\n * \`\`\`solidity\\\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\\\n * }\\\\n * \`\`\`\\\\n *\\\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\\\n */\\\\nabstract contract ERC165 is IERC165 {\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n return interfaceId == type(IERC165).interfaceId;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Interface of the ERC165 standard, as defined in the\\\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\\\n *\\\\n * Implementers can declare support of contract interfaces, which can then be\\\\n * queried by others ({ERC165Checker}).\\\\n *\\\\n * For an implementation, see {ERC165}.\\\\n */\\\\ninterface IERC165 {\\\\n /**\\\\n * @dev Returns true if this contract implements the interface defined by\\\\n * \`interfaceId\`. See the corresponding\\\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\\\n * to learn more about how these ids are created.\\\\n *\\\\n * This function call must use less than 30 000 gas.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Interface of the ERC165 standard, as defined in the\\\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\\\n *\\\\n * Implementers can declare support of contract interfaces, which can then be\\\\n * queried by others ({ERC165Checker}).\\\\n *\\\\n * For an implementation, see {ERC165}.\\\\n */\\\\ninterface IERC165 {\\\\n /**\\\\n * @dev Returns true if this contract implements the interface defined by\\\\n * \`interfaceId\`. See the corresponding\\\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\\\n * to learn more about how these ids are created.\\\\n *\\\\n * This function call must use less than 30 000 gas.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"./math/Math.sol\\\\\\";\\\\nimport \\\\\\"./math/SignedMath.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev String operations.\\\\n */\\\\nlibrary Strings {\\\\n bytes16 private constant _SYMBOLS = \\\\\\"0123456789abcdef\\\\\\";\\\\n uint8 private constant _ADDRESS_LENGTH = 20;\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n uint256 length = Math.log10(value) + 1;\\\\n string memory buffer = new string(length);\\\\n uint256 ptr;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n ptr := add(buffer, add(32, length))\\\\n }\\\\n while (true) {\\\\n ptr--;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\\\n }\\\\n value /= 10;\\\\n if (value == 0) break;\\\\n }\\\\n return buffer;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`int256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(int256 value) internal pure returns (string memory) {\\\\n return string(abi.encodePacked(value < 0 ? \\\\\\"-\\\\\\" : \\\\\\"\\\\\\", toString(SignedMath.abs(value))));\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n return toHexString(value, Math.log256(value) + 1);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation with fixed length.\\\\n */\\\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\\\n bytes memory buffer = new bytes(2 * length + 2);\\\\n buffer[0] = \\\\\\"0\\\\\\";\\\\n buffer[1] = \\\\\\"x\\\\\\";\\\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\\\n buffer[i] = _SYMBOLS[value & 0xf];\\\\n value >>= 4;\\\\n }\\\\n require(value == 0, \\\\\\"Strings: hex length insufficient\\\\\\");\\\\n return string(buffer);\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts an \`address\` with fixed length of 20 bytes to its not checksummed ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(address addr) internal pure returns (string memory) {\\\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns true if the two strings are equal.\\\\n */\\\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\\\n return keccak256(bytes(a)) == keccak256(bytes(b));\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev String operations.\\\\n */\\\\nlibrary Strings {\\\\n bytes16 private constant _SYMBOLS = \\\\\\"0123456789abcdef\\\\\\";\\\\n uint8 private constant _ADDRESS_LENGTH = 20;\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n uint256 length = Math.log10(value) + 1;\\\\n string memory buffer = new string(length);\\\\n uint256 ptr;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n ptr := add(buffer, add(32, length))\\\\n }\\\\n while (true) {\\\\n ptr--;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\\\n }\\\\n value /= 10;\\\\n if (value == 0) break;\\\\n }\\\\n return buffer;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`int256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(int256 value) internal pure returns (string memory) {\\\\n return string(abi.encodePacked(value < 0 ? \\\\\\"-\\\\\\" : \\\\\\"\\\\\\", toString(SignedMath.abs(value))));\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n return toHexString(value, Math.log256(value) + 1);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation with fixed length.\\\\n */\\\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\\\n bytes memory buffer = new bytes(2 * length + 2);\\\\n buffer[0] = \\\\\\"0\\\\\\";\\\\n buffer[1] = \\\\\\"x\\\\\\";\\\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\\\n buffer[i] = _SYMBOLS[value & 0xf];\\\\n value >>= 4;\\\\n }\\\\n require(value == 0, \\\\\\"Strings: hex length insufficient\\\\\\");\\\\n return string(buffer);\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts an \`address\` with fixed length of 20 bytes to its not checksummed ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(address addr) internal pure returns (string memory) {\\\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns true if the two strings are equal.\\\\n */\\\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\\\n return keccak256(bytes(a)) == keccak256(bytes(b));\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard signed math utilities missing in the Solidity language.\\\\n */\\\\nlibrary SignedMath {\\\\n /**\\\\n * @dev Returns the largest of two signed numbers.\\\\n */\\\\n function max(int256 a, int256 b) internal pure returns (int256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two signed numbers.\\\\n */\\\\n function min(int256 a, int256 b) internal pure returns (int256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two signed numbers without overflow.\\\\n * The result is rounded towards zero.\\\\n */\\\\n function average(int256 a, int256 b) internal pure returns (int256) {\\\\n // Formula from the book \\\\\\"Hacker's Delight\\\\\\"\\\\n int256 x = (a & b) + ((a ^ b) >> 1);\\\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the absolute unsigned value of a signed value.\\\\n */\\\\n function abs(int256 n) internal pure returns (uint256) {\\\\n unchecked {\\\\n // must be unchecked in order to support \`n = type(int256).min\`\\\\n return uint256(n >= 0 ? n : -n);\\\\n }\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard signed math utilities missing in the Solidity language.\\\\n */\\\\nlibrary SignedMath {\\\\n /**\\\\n * @dev Returns the largest of two signed numbers.\\\\n */\\\\n function max(int256 a, int256 b) internal pure returns (int256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two signed numbers.\\\\n */\\\\n function min(int256 a, int256 b) internal pure returns (int256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two signed numbers without overflow.\\\\n * The result is rounded towards zero.\\\\n */\\\\n function average(int256 a, int256 b) internal pure returns (int256) {\\\\n // Formula from the book \\\\\\"Hacker's Delight\\\\\\"\\\\n int256 x = (a & b) + ((a ^ b) >> 1);\\\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the absolute unsigned value of a signed value.\\\\n */\\\\n function abs(int256 n) internal pure returns (uint256) {\\\\n unchecked {\\\\n // must be unchecked in order to support \`n = type(int256).min\`\\\\n return uint256(n >= 0 ? n : -n);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard math utilities missing in the Solidity language.\\\\n */\\\\nlibrary Math {\\\\n enum Rounding {\\\\n Down, // Toward negative infinity\\\\n Up, // Toward infinity\\\\n Zero // Toward zero\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the largest of two numbers.\\\\n */\\\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two numbers.\\\\n */\\\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two numbers. The result is rounded towards\\\\n * zero.\\\\n */\\\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b) / 2 can overflow.\\\\n return (a & b) + (a ^ b) / 2;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the ceiling of the division of two numbers.\\\\n *\\\\n * This differs from standard division with \`/\` in that it rounds up instead\\\\n * of rounding down.\\\\n */\\\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\\\n return a == 0 ? 0 : (a - 1) / b + 1;\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\\\n * with further edits by Uniswap Labs also under MIT license.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\\\n unchecked {\\\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\\\n // variables such that product = prod1 * 2^256 + prod0.\\\\n uint256 prod0; // Least significant 256 bits of the product\\\\n uint256 prod1; // Most significant 256 bits of the product\\\\n assembly {\\\\n let mm := mulmod(x, y, not(0))\\\\n prod0 := mul(x, y)\\\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\\\n }\\\\n\\\\n // Handle non-overflow cases, 256 by 256 division.\\\\n if (prod1 == 0) {\\\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\\\n // The surrounding unchecked block does not change this fact.\\\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\\\n return prod0 / denominator;\\\\n }\\\\n\\\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\\\n require(denominator > prod1, \\\\\\"Math: mulDiv overflow\\\\\\");\\\\n\\\\n ///////////////////////////////////////////////\\\\n // 512 by 256 division.\\\\n ///////////////////////////////////////////////\\\\n\\\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\\\n uint256 remainder;\\\\n assembly {\\\\n // Compute remainder using mulmod.\\\\n remainder := mulmod(x, y, denominator)\\\\n\\\\n // Subtract 256 bit number from 512 bit number.\\\\n prod1 := sub(prod1, gt(remainder, prod0))\\\\n prod0 := sub(prod0, remainder)\\\\n }\\\\n\\\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\\\n // See https://cs.stackexchange.com/q/138556/92363.\\\\n\\\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\\\n uint256 twos = denominator & (~denominator + 1);\\\\n assembly {\\\\n // Divide denominator by twos.\\\\n denominator := div(denominator, twos)\\\\n\\\\n // Divide [prod1 prod0] by twos.\\\\n prod0 := div(prod0, twos)\\\\n\\\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\\\n twos := add(div(sub(0, twos), twos), 1)\\\\n }\\\\n\\\\n // Shift in bits from prod1 into prod0.\\\\n prod0 |= prod1 * twos;\\\\n\\\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\\\n uint256 inverse = (3 * denominator) ^ 2;\\\\n\\\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\\\n // in modular arithmetic, doubling the correct bits in each step.\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\\\n\\\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\\\n // is no longer required.\\\\n result = prod0 * inverse;\\\\n return result;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\\\n uint256 result = mulDiv(x, y, denominator);\\\\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\\\n result += 1;\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\\\n *\\\\n * Inspired by Henry S. Warren, Jr.'s \\\\\\"Hacker's Delight\\\\\\" (Chapter 11).\\\\n */\\\\n function sqrt(uint256 a) internal pure returns (uint256) {\\\\n if (a == 0) {\\\\n return 0;\\\\n }\\\\n\\\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\\\n //\\\\n // We know that the \\\\\\"msb\\\\\\" (most significant bit) of our target number \`a\` is a power of 2 such that we have\\\\n // \`msb(a) <= a < 2*msb(a)\`. This value can be written \`msb(a)=2**k\` with \`k=log2(a)\`.\\\\n //\\\\n // This can be rewritten \`2**log2(a) <= a < 2**(log2(a) + 1)\`\\\\n // → \`sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))\`\\\\n // → \`2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)\`\\\\n //\\\\n // Consequently, \`2**(log2(a) / 2)\` is a good first approximation of \`sqrt(a)\` with at least 1 correct bit.\\\\n uint256 result = 1 << (log2(a) >> 1);\\\\n\\\\n // At this point \`result\` is an estimation with one bit of precision. We know the true value is a uint128,\\\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\\\n // into the expected uint128 result.\\\\n unchecked {\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n return min(result, a / result);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\\\n */\\\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = sqrt(a);\\\\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 128;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 64;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 32;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 16;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n value >>= 8;\\\\n result += 8;\\\\n }\\\\n if (value >> 4 > 0) {\\\\n value >>= 4;\\\\n result += 4;\\\\n }\\\\n if (value >> 2 > 0) {\\\\n value >>= 2;\\\\n result += 2;\\\\n }\\\\n if (value >> 1 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log2(value);\\\\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >= 10 ** 64) {\\\\n value /= 10 ** 64;\\\\n result += 64;\\\\n }\\\\n if (value >= 10 ** 32) {\\\\n value /= 10 ** 32;\\\\n result += 32;\\\\n }\\\\n if (value >= 10 ** 16) {\\\\n value /= 10 ** 16;\\\\n result += 16;\\\\n }\\\\n if (value >= 10 ** 8) {\\\\n value /= 10 ** 8;\\\\n result += 8;\\\\n }\\\\n if (value >= 10 ** 4) {\\\\n value /= 10 ** 4;\\\\n result += 4;\\\\n }\\\\n if (value >= 10 ** 2) {\\\\n value /= 10 ** 2;\\\\n result += 2;\\\\n }\\\\n if (value >= 10 ** 1) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log10(value);\\\\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n *\\\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent \`value\` as a hex string.\\\\n */\\\\n function log256(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 16;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 8;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 4;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 2;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log256(value);\\\\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\\\n }\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard math utilities missing in the Solidity language.\\\\n */\\\\nlibrary Math {\\\\n enum Rounding {\\\\n Down, // Toward negative infinity\\\\n Up, // Toward infinity\\\\n Zero // Toward zero\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the largest of two numbers.\\\\n */\\\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two numbers.\\\\n */\\\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two numbers. The result is rounded towards\\\\n * zero.\\\\n */\\\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b) / 2 can overflow.\\\\n return (a & b) + (a ^ b) / 2;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the ceiling of the division of two numbers.\\\\n *\\\\n * This differs from standard division with \`/\` in that it rounds up instead\\\\n * of rounding down.\\\\n */\\\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\\\n return a == 0 ? 0 : (a - 1) / b + 1;\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\\\n * with further edits by Uniswap Labs also under MIT license.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\\\n unchecked {\\\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\\\n // variables such that product = prod1 * 2^256 + prod0.\\\\n uint256 prod0; // Least significant 256 bits of the product\\\\n uint256 prod1; // Most significant 256 bits of the product\\\\n assembly {\\\\n let mm := mulmod(x, y, not(0))\\\\n prod0 := mul(x, y)\\\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\\\n }\\\\n\\\\n // Handle non-overflow cases, 256 by 256 division.\\\\n if (prod1 == 0) {\\\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\\\n // The surrounding unchecked block does not change this fact.\\\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\\\n return prod0 / denominator;\\\\n }\\\\n\\\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\\\n require(denominator > prod1, \\\\\\"Math: mulDiv overflow\\\\\\");\\\\n\\\\n ///////////////////////////////////////////////\\\\n // 512 by 256 division.\\\\n ///////////////////////////////////////////////\\\\n\\\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\\\n uint256 remainder;\\\\n assembly {\\\\n // Compute remainder using mulmod.\\\\n remainder := mulmod(x, y, denominator)\\\\n\\\\n // Subtract 256 bit number from 512 bit number.\\\\n prod1 := sub(prod1, gt(remainder, prod0))\\\\n prod0 := sub(prod0, remainder)\\\\n }\\\\n\\\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\\\n // See https://cs.stackexchange.com/q/138556/92363.\\\\n\\\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\\\n uint256 twos = denominator & (~denominator + 1);\\\\n assembly {\\\\n // Divide denominator by twos.\\\\n denominator := div(denominator, twos)\\\\n\\\\n // Divide [prod1 prod0] by twos.\\\\n prod0 := div(prod0, twos)\\\\n\\\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\\\n twos := add(div(sub(0, twos), twos), 1)\\\\n }\\\\n\\\\n // Shift in bits from prod1 into prod0.\\\\n prod0 |= prod1 * twos;\\\\n\\\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\\\n uint256 inverse = (3 * denominator) ^ 2;\\\\n\\\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\\\n // in modular arithmetic, doubling the correct bits in each step.\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\\\n\\\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\\\n // is no longer required.\\\\n result = prod0 * inverse;\\\\n return result;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\\\n uint256 result = mulDiv(x, y, denominator);\\\\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\\\n result += 1;\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\\\n *\\\\n * Inspired by Henry S. Warren, Jr.'s \\\\\\"Hacker's Delight\\\\\\" (Chapter 11).\\\\n */\\\\n function sqrt(uint256 a) internal pure returns (uint256) {\\\\n if (a == 0) {\\\\n return 0;\\\\n }\\\\n\\\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\\\n //\\\\n // We know that the \\\\\\"msb\\\\\\" (most significant bit) of our target number \`a\` is a power of 2 such that we have\\\\n // \`msb(a) <= a < 2*msb(a)\`. This value can be written \`msb(a)=2**k\` with \`k=log2(a)\`.\\\\n //\\\\n // This can be rewritten \`2**log2(a) <= a < 2**(log2(a) + 1)\`\\\\n // → \`sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))\`\\\\n // → \`2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)\`\\\\n //\\\\n // Consequently, \`2**(log2(a) / 2)\` is a good first approximation of \`sqrt(a)\` with at least 1 correct bit.\\\\n uint256 result = 1 << (log2(a) >> 1);\\\\n\\\\n // At this point \`result\` is an estimation with one bit of precision. We know the true value is a uint128,\\\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\\\n // into the expected uint128 result.\\\\n unchecked {\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n return min(result, a / result);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\\\n */\\\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = sqrt(a);\\\\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 128;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 64;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 32;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 16;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n value >>= 8;\\\\n result += 8;\\\\n }\\\\n if (value >> 4 > 0) {\\\\n value >>= 4;\\\\n result += 4;\\\\n }\\\\n if (value >> 2 > 0) {\\\\n value >>= 2;\\\\n result += 2;\\\\n }\\\\n if (value >> 1 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log2(value);\\\\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >= 10 ** 64) {\\\\n value /= 10 ** 64;\\\\n result += 64;\\\\n }\\\\n if (value >= 10 ** 32) {\\\\n value /= 10 ** 32;\\\\n result += 32;\\\\n }\\\\n if (value >= 10 ** 16) {\\\\n value /= 10 ** 16;\\\\n result += 16;\\\\n }\\\\n if (value >= 10 ** 8) {\\\\n value /= 10 ** 8;\\\\n result += 8;\\\\n }\\\\n if (value >= 10 ** 4) {\\\\n value /= 10 ** 4;\\\\n result += 4;\\\\n }\\\\n if (value >= 10 ** 2) {\\\\n value /= 10 ** 2;\\\\n result += 2;\\\\n }\\\\n if (value >= 10 ** 1) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log10(value);\\\\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n *\\\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent \`value\` as a hex string.\\\\n */\\\\n function log256(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 16;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 8;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 4;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 2;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log256(value);\\\\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides information about the current execution context, including the\\\\n * sender of the transaction and its data. While these are generally available\\\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\\\n * manner, since when dealing with meta-transactions the account sending and\\\\n * paying for execution may not be the actual sender (as far as an application\\\\n * is concerned).\\\\n *\\\\n * This contract is only required for intermediate, library-like contracts.\\\\n */\\\\nabstract contract Context {\\\\n function _msgSender() internal view virtual returns (address) {\\\\n return msg.sender;\\\\n }\\\\n\\\\n function _msgData() internal view virtual returns (bytes calldata) {\\\\n return msg.data;\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides information about the current execution context, including the\\\\n * sender of the transaction and its data. While these are generally available\\\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\\\n * manner, since when dealing with meta-transactions the account sending and\\\\n * paying for execution may not be the actual sender (as far as an application\\\\n * is concerned).\\\\n *\\\\n * This contract is only required for intermediate, library-like contracts.\\\\n */\\\\nabstract contract Context {\\\\n function _msgSender() internal view virtual returns (address) {\\\\n return msg.sender;\\\\n }\\\\n\\\\n function _msgData() internal view virtual returns (bytes calldata) {\\\\n return msg.data;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\\\n\\\\npragma solidity ^0.8.1;\\\\n\\\\n/**\\\\n * @dev Collection of functions related to the address type\\\\n */\\\\nlibrary Address {\\\\n /**\\\\n * @dev Returns true if \`account\` is a contract.\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * It is unsafe to assume that an address for which this function returns\\\\n * false is an externally-owned account (EOA) and not a contract.\\\\n *\\\\n * Among others, \`isContract\` will return false for the following\\\\n * types of addresses:\\\\n *\\\\n * - an externally-owned account\\\\n * - a contract in construction\\\\n * - an address where a contract will be created\\\\n * - an address where a contract lived, but was destroyed\\\\n *\\\\n * Furthermore, \`isContract\` will also return true if the target contract within\\\\n * the same transaction is already scheduled for destruction by \`SELFDESTRUCT\`,\\\\n * which only has an effect at the end of a transaction.\\\\n * ====\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * You shouldn't rely on \`isContract\` to protect against flash loan attacks!\\\\n *\\\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\\\n * constructor.\\\\n * ====\\\\n */\\\\n function isContract(address account) internal view returns (bool) {\\\\n // This method relies on extcodesize/address.code.length, which returns 0\\\\n // for contracts in construction, since the code is only stored at the end\\\\n // of the constructor execution.\\\\n\\\\n return account.code.length > 0;\\\\n }\\\\n\\\\n /**\\\\n * @dev Replacement for Solidity's \`transfer\`: sends \`amount\` wei to\\\\n * \`recipient\`, forwarding all available gas and reverting on errors.\\\\n *\\\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\\\n * imposed by \`transfer\`, making them unable to receive funds via\\\\n * \`transfer\`. {sendValue} removes this limitation.\\\\n *\\\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\\\n *\\\\n * IMPORTANT: because control is transferred to \`recipient\`, care must be\\\\n * taken to not create reentrancy vulnerabilities. Consider using\\\\n * {ReentrancyGuard} or the\\\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\\\n */\\\\n function sendValue(address payable recipient, uint256 amount) internal {\\\\n require(address(this).balance >= amount, \\\\\\"Address: insufficient balance\\\\\\");\\\\n\\\\n (bool success, ) = recipient.call{value: amount}(\\\\\\"\\\\\\");\\\\n require(success, \\\\\\"Address: unable to send value, recipient may have reverted\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Performs a Solidity function call using a low level \`call\`. A\\\\n * plain \`call\` is an unsafe replacement for a function call: use this\\\\n * function instead.\\\\n *\\\\n * If \`target\` reverts with a revert reason, it is bubbled up by this\\\\n * function (like regular Solidity function calls).\\\\n *\\\\n * Returns the raw returned data. To convert to the expected return value,\\\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[\`abi.decode\`].\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`target\` must be a contract.\\\\n * - calling \`target\` with \`data\` must not revert.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, \\\\\\"Address: low-level call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`], but with\\\\n * \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but also transferring \`value\` wei to \`target\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - the calling contract must have an ETH balance of at least \`value\`.\\\\n * - the called Solidity function must be \`payable\`.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, value, \\\\\\"Address: low-level call with value failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[\`functionCallWithValue\`], but\\\\n * with \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(\\\\n address target,\\\\n bytes memory data,\\\\n uint256 value,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n require(address(this).balance >= value, \\\\\\"Address: insufficient balance for call\\\\\\");\\\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\\\n return functionStaticCall(target, data, \\\\\\"Address: low-level static call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.staticcall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionDelegateCall(target, data, \\\\\\"Address: low-level delegate call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\\\n *\\\\n * _Available since v4.8._\\\\n */\\\\n function verifyCallResultFromTarget(\\\\n address target,\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n if (success) {\\\\n if (returndata.length == 0) {\\\\n // only check isContract if the call was successful and the return data is empty\\\\n // otherwise we already know that it was a contract\\\\n require(isContract(target), \\\\\\"Address: call to non-contract\\\\\\");\\\\n }\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\\\n * revert reason or using the provided one.\\\\n *\\\\n * _Available since v4.3._\\\\n */\\\\n function verifyCallResult(\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal pure returns (bytes memory) {\\\\n if (success) {\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\\\n // Look for revert reason and bubble it up if present\\\\n if (returndata.length > 0) {\\\\n // The easiest way to bubble the revert reason is using memory via assembly\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n let returndata_size := mload(returndata)\\\\n revert(add(32, returndata), returndata_size)\\\\n }\\\\n } else {\\\\n revert(errorMessage);\\\\n }\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\\\n\\\\npragma solidity ^0.8.1;\\\\n\\\\n/**\\\\n * @dev Collection of functions related to the address type\\\\n */\\\\nlibrary Address {\\\\n /**\\\\n * @dev Returns true if \`account\` is a contract.\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * It is unsafe to assume that an address for which this function returns\\\\n * false is an externally-owned account (EOA) and not a contract.\\\\n *\\\\n * Among others, \`isContract\` will return false for the following\\\\n * types of addresses:\\\\n *\\\\n * - an externally-owned account\\\\n * - a contract in construction\\\\n * - an address where a contract will be created\\\\n * - an address where a contract lived, but was destroyed\\\\n *\\\\n * Furthermore, \`isContract\` will also return true if the target contract within\\\\n * the same transaction is already scheduled for destruction by \`SELFDESTRUCT\`,\\\\n * which only has an effect at the end of a transaction.\\\\n * ====\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * You shouldn't rely on \`isContract\` to protect against flash loan attacks!\\\\n *\\\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\\\n * constructor.\\\\n * ====\\\\n */\\\\n function isContract(address account) internal view returns (bool) {\\\\n // This method relies on extcodesize/address.code.length, which returns 0\\\\n // for contracts in construction, since the code is only stored at the end\\\\n // of the constructor execution.\\\\n\\\\n return account.code.length > 0;\\\\n }\\\\n\\\\n /**\\\\n * @dev Replacement for Solidity's \`transfer\`: sends \`amount\` wei to\\\\n * \`recipient\`, forwarding all available gas and reverting on errors.\\\\n *\\\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\\\n * imposed by \`transfer\`, making them unable to receive funds via\\\\n * \`transfer\`. {sendValue} removes this limitation.\\\\n *\\\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\\\n *\\\\n * IMPORTANT: because control is transferred to \`recipient\`, care must be\\\\n * taken to not create reentrancy vulnerabilities. Consider using\\\\n * {ReentrancyGuard} or the\\\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\\\n */\\\\n function sendValue(address payable recipient, uint256 amount) internal {\\\\n require(address(this).balance >= amount, \\\\\\"Address: insufficient balance\\\\\\");\\\\n\\\\n (bool success, ) = recipient.call{value: amount}(\\\\\\"\\\\\\");\\\\n require(success, \\\\\\"Address: unable to send value, recipient may have reverted\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Performs a Solidity function call using a low level \`call\`. A\\\\n * plain \`call\` is an unsafe replacement for a function call: use this\\\\n * function instead.\\\\n *\\\\n * If \`target\` reverts with a revert reason, it is bubbled up by this\\\\n * function (like regular Solidity function calls).\\\\n *\\\\n * Returns the raw returned data. To convert to the expected return value,\\\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[\`abi.decode\`].\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`target\` must be a contract.\\\\n * - calling \`target\` with \`data\` must not revert.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, \\\\\\"Address: low-level call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`], but with\\\\n * \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but also transferring \`value\` wei to \`target\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - the calling contract must have an ETH balance of at least \`value\`.\\\\n * - the called Solidity function must be \`payable\`.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, value, \\\\\\"Address: low-level call with value failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[\`functionCallWithValue\`], but\\\\n * with \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(\\\\n address target,\\\\n bytes memory data,\\\\n uint256 value,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n require(address(this).balance >= value, \\\\\\"Address: insufficient balance for call\\\\\\");\\\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\\\n return functionStaticCall(target, data, \\\\\\"Address: low-level static call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.staticcall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionDelegateCall(target, data, \\\\\\"Address: low-level delegate call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\\\n *\\\\n * _Available since v4.8._\\\\n */\\\\n function verifyCallResultFromTarget(\\\\n address target,\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n if (success) {\\\\n if (returndata.length == 0) {\\\\n // only check isContract if the call was successful and the return data is empty\\\\n // otherwise we already know that it was a contract\\\\n require(isContract(target), \\\\\\"Address: call to non-contract\\\\\\");\\\\n }\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\\\n * revert reason or using the provided one.\\\\n *\\\\n * _Available since v4.3._\\\\n */\\\\n function verifyCallResult(\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal pure returns (bytes memory) {\\\\n if (success) {\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\\\n // Look for revert reason and bubble it up if present\\\\n if (returndata.length > 0) {\\\\n // The easiest way to bubble the revert reason is using memory via assembly\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n let returndata_size := mload(returndata)\\\\n revert(add(32, returndata), returndata_size)\\\\n }\\\\n } else {\\\\n revert(errorMessage);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"../IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Metadata is IERC721 {\\\\n /**\\\\n * @dev Returns the token collection name.\\\\n */\\\\n function name() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the token collection symbol.\\\\n */\\\\n function symbol() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the Uniform Resource Identifier (URI) for \`tokenId\` token.\\\\n */\\\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Metadata is IERC721 {\\\\n /**\\\\n * @dev Returns the token collection name.\\\\n */\\\\n function name() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the token collection symbol.\\\\n */\\\\n function symbol() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the Uniform Resource Identifier (URI) for \`tokenId\` token.\\\\n */\\\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"../../utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Required interface of an ERC721 compliant contract.\\\\n */\\\\ninterface IERC721 is IERC165 {\\\\n /**\\\\n * @dev Emitted when \`tokenId\` token is transferred from \`from\` to \`to\`.\\\\n */\\\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables \`approved\` to manage the \`tokenId\` token.\\\\n */\\\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables or disables (\`approved\`) \`operator\` to manage all of its assets.\\\\n */\\\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\\\n\\\\n /**\\\\n * @dev Returns the number of tokens in \`\`owner\`\`'s account.\\\\n */\\\\n function balanceOf(address owner) external view returns (uint256 balance);\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Gives permission to \`to\` to transfer \`tokenId\` token to another account.\\\\n * The approval is cleared when the token is transferred.\\\\n *\\\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The caller must own the token or be an approved operator.\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function approve(address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Approve or remove \`operator\` as an operator for the caller.\\\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The \`operator\` cannot be the caller.\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) external;\\\\n\\\\n /**\\\\n * @dev Returns the account approved for \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function getApproved(uint256 tokenId) external view returns (address operator);\\\\n\\\\n /**\\\\n * @dev Returns if the \`operator\` is allowed to manage all of the assets of \`owner\`.\\\\n *\\\\n * See {setApprovalForAll}\\\\n */\\\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Required interface of an ERC721 compliant contract.\\\\n */\\\\ninterface IERC721 is IERC165 {\\\\n /**\\\\n * @dev Emitted when \`tokenId\` token is transferred from \`from\` to \`to\`.\\\\n */\\\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables \`approved\` to manage the \`tokenId\` token.\\\\n */\\\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables or disables (\`approved\`) \`operator\` to manage all of its assets.\\\\n */\\\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\\\n\\\\n /**\\\\n * @dev Returns the number of tokens in \`\`owner\`\`'s account.\\\\n */\\\\n function balanceOf(address owner) external view returns (uint256 balance);\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Gives permission to \`to\` to transfer \`tokenId\` token to another account.\\\\n * The approval is cleared when the token is transferred.\\\\n *\\\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The caller must own the token or be an approved operator.\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function approve(address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Approve or remove \`operator\` as an operator for the caller.\\\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The \`operator\` cannot be the caller.\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) external;\\\\n\\\\n /**\\\\n * @dev Returns the account approved for \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function getApproved(uint256 tokenId) external view returns (address operator);\\\\n\\\\n /**\\\\n * @dev Returns if the \`operator\` is allowed to manage all of the assets of \`owner\`.\\\\n *\\\\n * See {setApprovalForAll}\\\\n */\\\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @title ERC721 token receiver interface\\\\n * @dev Interface for any contract that wants to support safeTransfers\\\\n * from ERC721 asset contracts.\\\\n */\\\\ninterface IERC721Receiver {\\\\n /**\\\\n * @dev Whenever an {IERC721} \`tokenId\` token is transferred to this contract via {IERC721-safeTransferFrom}\\\\n * by \`operator\` from \`from\`, this function is called.\\\\n *\\\\n * It must return its Solidity selector to confirm the token transfer.\\\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\\\\n *\\\\n * The selector can be obtained in Solidity with \`IERC721Receiver.onERC721Received.selector\`.\\\\n */\\\\n function onERC721Received(\\\\n address operator,\\\\n address from,\\\\n uint256 tokenId,\\\\n bytes calldata data\\\\n ) external returns (bytes4);\\\\n}\\\\n\\", + \\"importedIds\\": [], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @title ERC721 token receiver interface\\\\n * @dev Interface for any contract that wants to support safeTransfers\\\\n * from ERC721 asset contracts.\\\\n */\\\\ninterface IERC721Receiver {\\\\n /**\\\\n * @dev Whenever an {IERC721} \`tokenId\` token is transferred to this contract via {IERC721-safeTransferFrom}\\\\n * by \`operator\` from \`from\`, this function is called.\\\\n *\\\\n * It must return its Solidity selector to confirm the token transfer.\\\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\\\\n *\\\\n * The selector can be obtained in Solidity with \`IERC721Receiver.onERC721Received.selector\`.\\\\n */\\\\n function onERC721Received(\\\\n address operator,\\\\n address from,\\\\n uint256 tokenId,\\\\n bytes calldata data\\\\n ) external returns (bytes4);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"../ERC721.sol\\\\\\";\\\\nimport \\\\\\"./IERC721Enumerable.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev This implements an optional extension of {ERC721} defined in the EIP that adds\\\\n * enumerability of all the token ids in the contract as well as all token ids owned by each\\\\n * account.\\\\n */\\\\nabstract contract ERC721Enumerable is ERC721, IERC721Enumerable {\\\\n // Mapping from owner to list of owned token IDs\\\\n mapping(address => mapping(uint256 => uint256)) private _ownedTokens;\\\\n\\\\n // Mapping from token ID to index of the owner tokens list\\\\n mapping(uint256 => uint256) private _ownedTokensIndex;\\\\n\\\\n // Array with all token ids, used for enumeration\\\\n uint256[] private _allTokens;\\\\n\\\\n // Mapping from token id to position in the allTokens array\\\\n mapping(uint256 => uint256) private _allTokensIndex;\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {\\\\n return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721.balanceOf(owner), \\\\\\"ERC721Enumerable: owner index out of bounds\\\\\\");\\\\n return _ownedTokens[owner][index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-totalSupply}.\\\\n */\\\\n function totalSupply() public view virtual override returns (uint256) {\\\\n return _allTokens.length;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenByIndex}.\\\\n */\\\\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721Enumerable.totalSupply(), \\\\\\"ERC721Enumerable: global index out of bounds\\\\\\");\\\\n return _allTokens[index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {ERC721-_beforeTokenTransfer}.\\\\n */\\\\n function _beforeTokenTransfer(\\\\n address from,\\\\n address to,\\\\n uint256 firstTokenId,\\\\n uint256 batchSize\\\\n ) internal virtual override {\\\\n super._beforeTokenTransfer(from, to, firstTokenId, batchSize);\\\\n\\\\n if (batchSize > 1) {\\\\n // Will only trigger during construction. Batch transferring (minting) is not available afterwards.\\\\n revert(\\\\\\"ERC721Enumerable: consecutive transfers not supported\\\\\\");\\\\n }\\\\n\\\\n uint256 tokenId = firstTokenId;\\\\n\\\\n if (from == address(0)) {\\\\n _addTokenToAllTokensEnumeration(tokenId);\\\\n } else if (from != to) {\\\\n _removeTokenFromOwnerEnumeration(from, tokenId);\\\\n }\\\\n if (to == address(0)) {\\\\n _removeTokenFromAllTokensEnumeration(tokenId);\\\\n } else if (to != from) {\\\\n _addTokenToOwnerEnumeration(to, tokenId);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\\\\n * @param to address representing the new owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\\\\n */\\\\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\\\\n uint256 length = ERC721.balanceOf(to);\\\\n _ownedTokens[to][length] = tokenId;\\\\n _ownedTokensIndex[tokenId] = length;\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's token tracking data structures.\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list\\\\n */\\\\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\\\\n _allTokensIndex[tokenId] = _allTokens.length;\\\\n _allTokens.push(tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\\\\n * while the token is not assigned a new owner, the \`_ownedTokensIndex\` mapping is _not_ updated: this allows for\\\\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\\\\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\\\\n */\\\\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\\\\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;\\\\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary\\\\n if (tokenIndex != lastTokenIndex) {\\\\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\\\\n\\\\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n }\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _ownedTokensIndex[tokenId];\\\\n delete _ownedTokens[from][lastTokenIndex];\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's token tracking data structures.\\\\n * This has O(1) time complexity, but alters the order of the _allTokens array.\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list\\\\n */\\\\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\\\\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = _allTokens.length - 1;\\\\n uint256 tokenIndex = _allTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\\\\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\\\\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\\\\n uint256 lastTokenId = _allTokens[lastTokenIndex];\\\\n\\\\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _allTokensIndex[tokenId];\\\\n _allTokens.pop();\\\\n }\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\", + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev This implements an optional extension of {ERC721} defined in the EIP that adds\\\\n * enumerability of all the token ids in the contract as well as all token ids owned by each\\\\n * account.\\\\n */\\\\nabstract contract ERC721Enumerable is ERC721, IERC721Enumerable {\\\\n // Mapping from owner to list of owned token IDs\\\\n mapping(address => mapping(uint256 => uint256)) private _ownedTokens;\\\\n\\\\n // Mapping from token ID to index of the owner tokens list\\\\n mapping(uint256 => uint256) private _ownedTokensIndex;\\\\n\\\\n // Array with all token ids, used for enumeration\\\\n uint256[] private _allTokens;\\\\n\\\\n // Mapping from token id to position in the allTokens array\\\\n mapping(uint256 => uint256) private _allTokensIndex;\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {\\\\n return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721.balanceOf(owner), \\\\\\"ERC721Enumerable: owner index out of bounds\\\\\\");\\\\n return _ownedTokens[owner][index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-totalSupply}.\\\\n */\\\\n function totalSupply() public view virtual override returns (uint256) {\\\\n return _allTokens.length;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenByIndex}.\\\\n */\\\\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721Enumerable.totalSupply(), \\\\\\"ERC721Enumerable: global index out of bounds\\\\\\");\\\\n return _allTokens[index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {ERC721-_beforeTokenTransfer}.\\\\n */\\\\n function _beforeTokenTransfer(\\\\n address from,\\\\n address to,\\\\n uint256 firstTokenId,\\\\n uint256 batchSize\\\\n ) internal virtual override {\\\\n super._beforeTokenTransfer(from, to, firstTokenId, batchSize);\\\\n\\\\n if (batchSize > 1) {\\\\n // Will only trigger during construction. Batch transferring (minting) is not available afterwards.\\\\n revert(\\\\\\"ERC721Enumerable: consecutive transfers not supported\\\\\\");\\\\n }\\\\n\\\\n uint256 tokenId = firstTokenId;\\\\n\\\\n if (from == address(0)) {\\\\n _addTokenToAllTokensEnumeration(tokenId);\\\\n } else if (from != to) {\\\\n _removeTokenFromOwnerEnumeration(from, tokenId);\\\\n }\\\\n if (to == address(0)) {\\\\n _removeTokenFromAllTokensEnumeration(tokenId);\\\\n } else if (to != from) {\\\\n _addTokenToOwnerEnumeration(to, tokenId);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\\\\n * @param to address representing the new owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\\\\n */\\\\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\\\\n uint256 length = ERC721.balanceOf(to);\\\\n _ownedTokens[to][length] = tokenId;\\\\n _ownedTokensIndex[tokenId] = length;\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's token tracking data structures.\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list\\\\n */\\\\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\\\\n _allTokensIndex[tokenId] = _allTokens.length;\\\\n _allTokens.push(tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\\\\n * while the token is not assigned a new owner, the \`_ownedTokensIndex\` mapping is _not_ updated: this allows for\\\\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\\\\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\\\\n */\\\\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\\\\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;\\\\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary\\\\n if (tokenIndex != lastTokenIndex) {\\\\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\\\\n\\\\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n }\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _ownedTokensIndex[tokenId];\\\\n delete _ownedTokens[from][lastTokenIndex];\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's token tracking data structures.\\\\n * This has O(1) time complexity, but alters the order of the _allTokens array.\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list\\\\n */\\\\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\\\\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = _allTokens.length - 1;\\\\n uint256 tokenIndex = _allTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\\\\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\\\\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\\\\n uint256 lastTokenId = _allTokens[lastTokenIndex];\\\\n\\\\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _allTokensIndex[tokenId];\\\\n _allTokens.pop();\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\": { + \\"id\\": \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\", + \\"rawCode\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"../IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Enumerable is IERC721 {\\\\n /**\\\\n * @dev Returns the total amount of tokens stored by the contract.\\\\n */\\\\n function totalSupply() external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID owned by \`owner\` at a given \`index\` of its token list.\\\\n * Use along with {balanceOf} to enumerate all of \`\`owner\`\`'s tokens.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID at a given \`index\` of all the tokens stored by the contract.\\\\n * Use along with {totalSupply} to enumerate all tokens.\\\\n */\\\\n function tokenByIndex(uint256 index) external view returns (uint256);\\\\n}\\\\n\\", + \\"importedIds\\": [ + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\" + ], + \\"code\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Enumerable is IERC721 {\\\\n /**\\\\n * @dev Returns the total amount of tokens stored by the contract.\\\\n */\\\\n function totalSupply() external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID owned by \`owner\` at a given \`index\` of its token list.\\\\n * Use along with {balanceOf} to enumerate all of \`\`owner\`\`'s tokens.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID at a given \`index\` of all the tokens stored by the contract.\\\\n * Use along with {totalSupply} to enumerate all tokens.\\\\n */\\\\n function tokenByIndex(uint256 index) external view returns (uint256);\\\\n}\\\\n\\" + } + }, + \\"solcInput\\": { + \\"language\\": \\"Solidity\\", + \\"sources\\": { + \\"./Contract.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\npragma solidity >0.8.16;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n// import \\\\\\"this shouldn't be imorted\\\\\\";\\\\n\\\\n/// @author Wagmi\\\\n/// @author EVMts\\\\n/// @title WagmiMintExample\\\\n/// @notice An example token original from the wagmi template\\\\ncontract WagmiMintExample is ERC721 {\\\\n uint256 public totalSupply;\\\\n\\\\n// import \\\\\\"@openzeppelin/contracts/utils/Base64.sol\\\\\\";\\\\n uint256 private nextTokenId = 0;\\\\n\\\\n constructor() ERC721(\\\\\\"wagmi\\\\\\", \\\\\\"WAGMI\\\\\\") {}\\\\n\\\\n /// @notice Allows an address to mint\\\\n function mint() external {\\\\n uint256 tokenId = nextTokenId;\\\\n while (_exists(tokenId)) {\\\\n unchecked {\\\\n tokenId++;\\\\n }\\\\n }\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n nextTokenId = tokenId + 1;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to mint.\\\\n function mint(uint256 tokenId) external {\\\\n require(!_exists(tokenId), \\\\\\"Token ID is taken\\\\\\");\\\\n _safeMint(msg.sender, tokenId);\\\\n unchecked {\\\\n totalSupply++;\\\\n }\\\\n }\\\\n\\\\n /// @notice Returns the token URI for a given token by ID\\\\n /// @param tokenId Token ID to query.\\\\n /// @return uri_ Token URI for the given token by ID.\\\\n function tokenURI(\\\\n uint256 tokenId\\\\n ) public pure override returns (string memory) {\\\\n uint256 foregroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"foreground\\\\\\", tokenId))\\\\n ) % 360;\\\\n uint256 backgroundHue = uint256(\\\\n keccak256(abi.encodePacked(\\\\\\"background\\\\\\", tokenId))\\\\n ) % 360;\\\\n string memory json = Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n '{\\\\\\"name\\\\\\": \\\\\\"wagmi #',\\\\n toString(tokenId),\\\\n '\\\\\\", \\\\\\"image\\\\\\": \\\\\\"data:image/svg+xml;base64,',\\\\n Base64.encode(\\\\n bytes(\\\\n abi.encodePacked(\\\\n ''\\\\n )\\\\n )\\\\n ),\\\\n '\\\\\\"}'\\\\n )\\\\n )\\\\n );\\\\n string memory output = string(\\\\n abi.encodePacked(\\\\\\"data:application/json;base64,\\\\\\", json)\\\\n );\\\\n return output;\\\\n }\\\\n\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n // Inspired by OraclizeAPI's implementation - MIT licence\\\\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\\\\n\\\\n if (value == 0) {\\\\n return \\\\\\"0\\\\\\";\\\\n }\\\\n uint256 temp = value;\\\\n uint256 digits;\\\\n while (temp != 0) {\\\\n digits++;\\\\n temp /= 10;\\\\n }\\\\n bytes memory buffer = new bytes(digits);\\\\n while (value != 0) {\\\\n digits -= 1;\\\\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\\\\n value /= 10;\\\\n }\\\\n return string(buffer);\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Base64.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides a set of functions to operate with Base64 strings.\\\\n *\\\\n * _Available since v4.5._\\\\n */\\\\nlibrary Base64 {\\\\n /**\\\\n * @dev Base64 Encoding/Decoding Table\\\\n */\\\\n string internal constant _TABLE = \\\\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\\\\";\\\\n\\\\n /**\\\\n * @dev Converts a \`bytes\` to its Bytes64 \`string\` representation.\\\\n */\\\\n function encode(bytes memory data) internal pure returns (string memory) {\\\\n /**\\\\n * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\\\\n * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\\\\n */\\\\n if (data.length == 0) return \\\\\\"\\\\\\";\\\\n\\\\n // Loads the table into memory\\\\n string memory table = _TABLE;\\\\n\\\\n // Encoding takes 3 bytes chunks of binary data from \`bytes\` data parameter\\\\n // and split into 4 numbers of 6 bits.\\\\n // The final Base64 length should be \`bytes\` data length multiplied by 4/3 rounded up\\\\n // - \`data.length + 2\` -> Round up\\\\n // - \`/ 3\` -> Number of 3-bytes chunks\\\\n // - \`4 *\` -> 4 characters for each chunk\\\\n string memory result = new string(4 * ((data.length + 2) / 3));\\\\n\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n // Prepare the lookup table (skip the first \\\\\\"length\\\\\\" byte)\\\\n let tablePtr := add(table, 1)\\\\n\\\\n // Prepare result pointer, jump over length\\\\n let resultPtr := add(result, 32)\\\\n\\\\n // Run over the input, 3 bytes at a time\\\\n for {\\\\n let dataPtr := data\\\\n let endPtr := add(data, mload(data))\\\\n } lt(dataPtr, endPtr) {\\\\n\\\\n } {\\\\n // Advance 3 bytes\\\\n dataPtr := add(dataPtr, 3)\\\\n let input := mload(dataPtr)\\\\n\\\\n // To write each character, shift the 3 bytes (18 bits) chunk\\\\n // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\\\\n // and apply logical AND with 0x3F which is the number of\\\\n // the previous character in the ASCII table prior to the Base64 Table\\\\n // The result is then added to the table to get the character to write,\\\\n // and finally write it in the result pointer but with a left shift\\\\n // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n\\\\n mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\\\\n resultPtr := add(resultPtr, 1) // Advance\\\\n }\\\\n\\\\n // When data \`bytes\` is not exactly 3 bytes long\\\\n // it is padded with \`=\` characters at the end\\\\n switch mod(mload(data), 3)\\\\n case 1 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n mstore8(sub(resultPtr, 2), 0x3d)\\\\n }\\\\n case 2 {\\\\n mstore8(sub(resultPtr, 1), 0x3d)\\\\n }\\\\n }\\\\n\\\\n return result;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\\\\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\\\\n * {ERC721Enumerable}.\\\\n */\\\\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\\\\n using Address for address;\\\\n using Strings for uint256;\\\\n\\\\n // Token name\\\\n string private _name;\\\\n\\\\n // Token symbol\\\\n string private _symbol;\\\\n\\\\n // Mapping from token ID to owner address\\\\n mapping(uint256 => address) private _owners;\\\\n\\\\n // Mapping owner address to token count\\\\n mapping(address => uint256) private _balances;\\\\n\\\\n // Mapping from token ID to approved address\\\\n mapping(uint256 => address) private _tokenApprovals;\\\\n\\\\n // Mapping from owner to operator approvals\\\\n mapping(address => mapping(address => bool)) private _operatorApprovals;\\\\n\\\\n /**\\\\n * @dev Initializes the contract by setting a \`name\` and a \`symbol\` to the token collection.\\\\n */\\\\n constructor(string memory name_, string memory symbol_) {\\\\n _name = name_;\\\\n _symbol = symbol_;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\\\n return\\\\n interfaceId == type(IERC721).interfaceId ||\\\\n interfaceId == type(IERC721Metadata).interfaceId ||\\\\n super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-balanceOf}.\\\\n */\\\\n function balanceOf(address owner) public view virtual override returns (uint256) {\\\\n require(owner != address(0), \\\\\\"ERC721: address zero is not a valid owner\\\\\\");\\\\n return _balances[owner];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-ownerOf}.\\\\n */\\\\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\\\\n address owner = _ownerOf(tokenId);\\\\n require(owner != address(0), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n return owner;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-name}.\\\\n */\\\\n function name() public view virtual override returns (string memory) {\\\\n return _name;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-symbol}.\\\\n */\\\\n function symbol() public view virtual override returns (string memory) {\\\\n return _symbol;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Metadata-tokenURI}.\\\\n */\\\\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\\\\n _requireMinted(tokenId);\\\\n\\\\n string memory baseURI = _baseURI();\\\\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\\\\n * token will be the concatenation of the \`baseURI\` and the \`tokenId\`. Empty\\\\n * by default, can be overridden in child contracts.\\\\n */\\\\n function _baseURI() internal view virtual returns (string memory) {\\\\n return \\\\\\"\\\\\\";\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-approve}.\\\\n */\\\\n function approve(address to, uint256 tokenId) public virtual override {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n require(to != owner, \\\\\\"ERC721: approval to current owner\\\\\\");\\\\n\\\\n require(\\\\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\\\\n \\\\\\"ERC721: approve caller is not token owner or approved for all\\\\\\"\\\\n );\\\\n\\\\n _approve(to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-getApproved}.\\\\n */\\\\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\\\\n _requireMinted(tokenId);\\\\n\\\\n return _tokenApprovals[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-setApprovalForAll}.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) public virtual override {\\\\n _setApprovalForAll(_msgSender(), operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-isApprovedForAll}.\\\\n */\\\\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\\\\n return _operatorApprovals[owner][operator];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-transferFrom}.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n //solhint-disable-next-line max-line-length\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n\\\\n _transfer(from, to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\\\\n safeTransferFrom(from, to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721-safeTransferFrom}.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override {\\\\n require(_isApprovedOrOwner(_msgSender(), tokenId), \\\\\\"ERC721: caller is not token owner or approved\\\\\\");\\\\n _safeTransfer(from, to, tokenId, data);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * \`data\` is additional data, it has no specified format and it is sent in call to \`to\`.\\\\n *\\\\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\\\\n * implement alternative mechanisms to perform token transfer, such as signature-based.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _transfer(from, to, tokenId);\\\\n require(_checkOnERC721Received(from, to, tokenId, data), \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\`. Does NOT revert if token doesn't exist\\\\n */\\\\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\\\\n return _owners[tokenId];\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`tokenId\` exists.\\\\n *\\\\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\\\\n *\\\\n * Tokens start existing when they are minted (\`_mint\`),\\\\n * and stop existing when they are burned (\`_burn\`).\\\\n */\\\\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\\\\n return _ownerOf(tokenId) != address(0);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns whether \`spender\` is allowed to manage \`tokenId\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\\\\n }\\\\n\\\\n /**\\\\n * @dev Safely mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId) internal virtual {\\\\n _safeMint(to, tokenId, \\\\\\"\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[\`_safeMint\`], with an additional \`data\` parameter which is\\\\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\\\\n */\\\\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\\\\n _mint(to, tokenId);\\\\n require(\\\\n _checkOnERC721Received(address(0), to, tokenId, data),\\\\n \\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\"\\\\n );\\\\n }\\\\n\\\\n /**\\\\n * @dev Mints \`tokenId\` and transfers it to \`to\`.\\\\n *\\\\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must not exist.\\\\n * - \`to\` cannot be the zero address.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _mint(address to, uint256 tokenId) internal virtual {\\\\n require(to != address(0), \\\\\\"ERC721: mint to the zero address\\\\\\");\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n _beforeTokenTransfer(address(0), to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not minted by \`_beforeTokenTransfer\` hook\\\\n require(!_exists(tokenId), \\\\\\"ERC721: token already minted\\\\\\");\\\\n\\\\n unchecked {\\\\n // Will not overflow unless all 2**256 token ids are minted to the same owner.\\\\n // Given that tokens are minted one by one, it is impossible in practice that\\\\n // this ever happens. Might change if we allow batch minting.\\\\n // The ERC fails to describe this case.\\\\n _balances[to] += 1;\\\\n }\\\\n\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(address(0), to, tokenId);\\\\n\\\\n _afterTokenTransfer(address(0), to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Destroys \`tokenId\`.\\\\n * The approval is cleared when the token is burned.\\\\n * This is an internal function that does not check if the sender is authorized to operate on the token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _burn(uint256 tokenId) internal virtual {\\\\n address owner = ERC721.ownerOf(tokenId);\\\\n\\\\n _beforeTokenTransfer(owner, address(0), tokenId, 1);\\\\n\\\\n // Update ownership in case tokenId was transferred by \`_beforeTokenTransfer\` hook\\\\n owner = ERC721.ownerOf(tokenId);\\\\n\\\\n // Clear approvals\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // Cannot overflow, as that would require more tokens to be burned/transferred\\\\n // out than the owner initially received through minting and transferring in.\\\\n _balances[owner] -= 1;\\\\n }\\\\n delete _owners[tokenId];\\\\n\\\\n emit Transfer(owner, address(0), tokenId);\\\\n\\\\n _afterTokenTransfer(owner, address(0), tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` from \`from\` to \`to\`.\\\\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n require(to != address(0), \\\\\\"ERC721: transfer to the zero address\\\\\\");\\\\n\\\\n _beforeTokenTransfer(from, to, tokenId, 1);\\\\n\\\\n // Check that tokenId was not transferred by \`_beforeTokenTransfer\` hook\\\\n require(ERC721.ownerOf(tokenId) == from, \\\\\\"ERC721: transfer from incorrect owner\\\\\\");\\\\n\\\\n // Clear approvals from the previous owner\\\\n delete _tokenApprovals[tokenId];\\\\n\\\\n unchecked {\\\\n // \`_balances[from]\` cannot overflow for the same reason as described in \`_burn\`:\\\\n // \`from\`'s balance is the number of token held, which is at least one before the current\\\\n // transfer.\\\\n // \`_balances[to]\` could overflow in the conditions described in \`_mint\`. That would require\\\\n // all 2**256 token ids to be minted, which in practice is impossible.\\\\n _balances[from] -= 1;\\\\n _balances[to] += 1;\\\\n }\\\\n _owners[tokenId] = to;\\\\n\\\\n emit Transfer(from, to, tokenId);\\\\n\\\\n _afterTokenTransfer(from, to, tokenId, 1);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`to\` to operate on \`tokenId\`\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function _approve(address to, uint256 tokenId) internal virtual {\\\\n _tokenApprovals[tokenId] = to;\\\\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Approve \`operator\` to operate on all of \`owner\` tokens\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\\\\n require(owner != operator, \\\\\\"ERC721: approve to caller\\\\\\");\\\\n _operatorApprovals[owner][operator] = approved;\\\\n emit ApprovalForAll(owner, operator, approved);\\\\n }\\\\n\\\\n /**\\\\n * @dev Reverts if the \`tokenId\` has not been minted yet.\\\\n */\\\\n function _requireMinted(uint256 tokenId) internal view virtual {\\\\n require(_exists(tokenId), \\\\\\"ERC721: invalid token ID\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\\\\n * The call is not executed if the target address is not a contract.\\\\n *\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param to target address that will receive the tokens\\\\n * @param tokenId uint256 ID of the token to be transferred\\\\n * @param data bytes optional data to send along with the call\\\\n * @return bool whether the call correctly returned the expected magic value\\\\n */\\\\n function _checkOnERC721Received(\\\\n address from,\\\\n address to,\\\\n uint256 tokenId,\\\\n bytes memory data\\\\n ) private returns (bool) {\\\\n if (to.isContract()) {\\\\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\\\\n return retval == IERC721Receiver.onERC721Received.selector;\\\\n } catch (bytes memory reason) {\\\\n if (reason.length == 0) {\\\\n revert(\\\\\\"ERC721: transfer to non ERC721Receiver implementer\\\\\\");\\\\n } else {\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n revert(add(32, reason), mload(reason))\\\\n }\\\\n }\\\\n }\\\\n } else {\\\\n return true;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens will be transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens will be minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens will be burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\\\\n * used, the hook may be called as part of a consecutive (batch) mint, as indicated by \`batchSize\` greater than 1.\\\\n *\\\\n * Calling conditions:\\\\n *\\\\n * - When \`from\` and \`to\` are both non-zero, \`\`from\`\`'s tokens were transferred to \`to\`.\\\\n * - When \`from\` is zero, the tokens were minted for \`to\`.\\\\n * - When \`to\` is zero, \`\`from\`\`'s tokens were burned.\\\\n * - \`from\` and \`to\` are never both zero.\\\\n * - \`batchSize\` is non-zero.\\\\n *\\\\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\\\n */\\\\n function _afterTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\\\\n\\\\n /**\\\\n * @dev Unsafe write access to the balances, used by extensions that \\\\\\"mint\\\\\\" tokens using an {ownerOf} override.\\\\n *\\\\n * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\\\\n * being that for any address \`a\` the value returned by \`balanceOf(a)\` must be equal to the number of tokens such\\\\n * that \`ownerOf(tokenId)\` is \`a\`.\\\\n */\\\\n // solhint-disable-next-line func-name-mixedcase\\\\n function __unsafe_increaseBalance(address account, uint256 amount) internal {\\\\n _balances[account] += amount;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Implementation of the {IERC165} interface.\\\\n *\\\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\\\n * for the additional interface id that will be supported. For example:\\\\n *\\\\n * \`\`\`solidity\\\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\\\n * }\\\\n * \`\`\`\\\\n *\\\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\\\n */\\\\nabstract contract ERC165 is IERC165 {\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\\\n return interfaceId == type(IERC165).interfaceId;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Interface of the ERC165 standard, as defined in the\\\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\\\n *\\\\n * Implementers can declare support of contract interfaces, which can then be\\\\n * queried by others ({ERC165Checker}).\\\\n *\\\\n * For an implementation, see {ERC165}.\\\\n */\\\\ninterface IERC165 {\\\\n /**\\\\n * @dev Returns true if this contract implements the interface defined by\\\\n * \`interfaceId\`. See the corresponding\\\\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\\\n * to learn more about how these ids are created.\\\\n *\\\\n * This function call must use less than 30 000 gas.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev String operations.\\\\n */\\\\nlibrary Strings {\\\\n bytes16 private constant _SYMBOLS = \\\\\\"0123456789abcdef\\\\\\";\\\\n uint8 private constant _ADDRESS_LENGTH = 20;\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n uint256 length = Math.log10(value) + 1;\\\\n string memory buffer = new string(length);\\\\n uint256 ptr;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n ptr := add(buffer, add(32, length))\\\\n }\\\\n while (true) {\\\\n ptr--;\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\\\n }\\\\n value /= 10;\\\\n if (value == 0) break;\\\\n }\\\\n return buffer;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`int256\` to its ASCII \`string\` decimal representation.\\\\n */\\\\n function toString(int256 value) internal pure returns (string memory) {\\\\n return string(abi.encodePacked(value < 0 ? \\\\\\"-\\\\\\" : \\\\\\"\\\\\\", toString(SignedMath.abs(value))));\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(uint256 value) internal pure returns (string memory) {\\\\n unchecked {\\\\n return toHexString(value, Math.log256(value) + 1);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts a \`uint256\` to its ASCII \`string\` hexadecimal representation with fixed length.\\\\n */\\\\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\\\n bytes memory buffer = new bytes(2 * length + 2);\\\\n buffer[0] = \\\\\\"0\\\\\\";\\\\n buffer[1] = \\\\\\"x\\\\\\";\\\\n for (uint256 i = 2 * length + 1; i > 1; --i) {\\\\n buffer[i] = _SYMBOLS[value & 0xf];\\\\n value >>= 4;\\\\n }\\\\n require(value == 0, \\\\\\"Strings: hex length insufficient\\\\\\");\\\\n return string(buffer);\\\\n }\\\\n\\\\n /**\\\\n * @dev Converts an \`address\` with fixed length of 20 bytes to its not checksummed ASCII \`string\` hexadecimal representation.\\\\n */\\\\n function toHexString(address addr) internal pure returns (string memory) {\\\\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns true if the two strings are equal.\\\\n */\\\\n function equal(string memory a, string memory b) internal pure returns (bool) {\\\\n return keccak256(bytes(a)) == keccak256(bytes(b));\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard signed math utilities missing in the Solidity language.\\\\n */\\\\nlibrary SignedMath {\\\\n /**\\\\n * @dev Returns the largest of two signed numbers.\\\\n */\\\\n function max(int256 a, int256 b) internal pure returns (int256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two signed numbers.\\\\n */\\\\n function min(int256 a, int256 b) internal pure returns (int256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two signed numbers without overflow.\\\\n * The result is rounded towards zero.\\\\n */\\\\n function average(int256 a, int256 b) internal pure returns (int256) {\\\\n // Formula from the book \\\\\\"Hacker's Delight\\\\\\"\\\\n int256 x = (a & b) + ((a ^ b) >> 1);\\\\n return x + (int256(uint256(x) >> 255) & (a ^ b));\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the absolute unsigned value of a signed value.\\\\n */\\\\n function abs(int256 n) internal pure returns (uint256) {\\\\n unchecked {\\\\n // must be unchecked in order to support \`n = type(int256).min\`\\\\n return uint256(n >= 0 ? n : -n);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Standard math utilities missing in the Solidity language.\\\\n */\\\\nlibrary Math {\\\\n enum Rounding {\\\\n Down, // Toward negative infinity\\\\n Up, // Toward infinity\\\\n Zero // Toward zero\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the largest of two numbers.\\\\n */\\\\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a > b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the smallest of two numbers.\\\\n */\\\\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n return a < b ? a : b;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the average of two numbers. The result is rounded towards\\\\n * zero.\\\\n */\\\\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b) / 2 can overflow.\\\\n return (a & b) + (a ^ b) / 2;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the ceiling of the division of two numbers.\\\\n *\\\\n * This differs from standard division with \`/\` in that it rounds up instead\\\\n * of rounding down.\\\\n */\\\\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\\\n // (a + b - 1) / b can overflow on addition, so we distribute.\\\\n return a == 0 ? 0 : (a - 1) / b + 1;\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\\\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\\\n * with further edits by Uniswap Labs also under MIT license.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\\\n unchecked {\\\\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\\\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\\\n // variables such that product = prod1 * 2^256 + prod0.\\\\n uint256 prod0; // Least significant 256 bits of the product\\\\n uint256 prod1; // Most significant 256 bits of the product\\\\n assembly {\\\\n let mm := mulmod(x, y, not(0))\\\\n prod0 := mul(x, y)\\\\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\\\n }\\\\n\\\\n // Handle non-overflow cases, 256 by 256 division.\\\\n if (prod1 == 0) {\\\\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\\\n // The surrounding unchecked block does not change this fact.\\\\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\\\n return prod0 / denominator;\\\\n }\\\\n\\\\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\\\\n require(denominator > prod1, \\\\\\"Math: mulDiv overflow\\\\\\");\\\\n\\\\n ///////////////////////////////////////////////\\\\n // 512 by 256 division.\\\\n ///////////////////////////////////////////////\\\\n\\\\n // Make division exact by subtracting the remainder from [prod1 prod0].\\\\n uint256 remainder;\\\\n assembly {\\\\n // Compute remainder using mulmod.\\\\n remainder := mulmod(x, y, denominator)\\\\n\\\\n // Subtract 256 bit number from 512 bit number.\\\\n prod1 := sub(prod1, gt(remainder, prod0))\\\\n prod0 := sub(prod0, remainder)\\\\n }\\\\n\\\\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\\\n // See https://cs.stackexchange.com/q/138556/92363.\\\\n\\\\n // Does not overflow because the denominator cannot be zero at this stage in the function.\\\\n uint256 twos = denominator & (~denominator + 1);\\\\n assembly {\\\\n // Divide denominator by twos.\\\\n denominator := div(denominator, twos)\\\\n\\\\n // Divide [prod1 prod0] by twos.\\\\n prod0 := div(prod0, twos)\\\\n\\\\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\\\n twos := add(div(sub(0, twos), twos), 1)\\\\n }\\\\n\\\\n // Shift in bits from prod1 into prod0.\\\\n prod0 |= prod1 * twos;\\\\n\\\\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\\\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\\\n // four bits. That is, denominator * inv = 1 mod 2^4.\\\\n uint256 inverse = (3 * denominator) ^ 2;\\\\n\\\\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\\\n // in modular arithmetic, doubling the correct bits in each step.\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\\\\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\\\\n\\\\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\\\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\\\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\\\n // is no longer required.\\\\n result = prod0 * inverse;\\\\n return result;\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\\\n */\\\\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\\\n uint256 result = mulDiv(x, y, denominator);\\\\n if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\\\n result += 1;\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\\\n *\\\\n * Inspired by Henry S. Warren, Jr.'s \\\\\\"Hacker's Delight\\\\\\" (Chapter 11).\\\\n */\\\\n function sqrt(uint256 a) internal pure returns (uint256) {\\\\n if (a == 0) {\\\\n return 0;\\\\n }\\\\n\\\\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\\\n //\\\\n // We know that the \\\\\\"msb\\\\\\" (most significant bit) of our target number \`a\` is a power of 2 such that we have\\\\n // \`msb(a) <= a < 2*msb(a)\`. This value can be written \`msb(a)=2**k\` with \`k=log2(a)\`.\\\\n //\\\\n // This can be rewritten \`2**log2(a) <= a < 2**(log2(a) + 1)\`\\\\n // → \`sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))\`\\\\n // → \`2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)\`\\\\n //\\\\n // Consequently, \`2**(log2(a) / 2)\` is a good first approximation of \`sqrt(a)\` with at least 1 correct bit.\\\\n uint256 result = 1 << (log2(a) >> 1);\\\\n\\\\n // At this point \`result\` is an estimation with one bit of precision. We know the true value is a uint128,\\\\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\\\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\\\n // into the expected uint128 result.\\\\n unchecked {\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n result = (result + a / result) >> 1;\\\\n return min(result, a / result);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @notice Calculates sqrt(a), following the selected rounding direction.\\\\n */\\\\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = sqrt(a);\\\\n return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 128;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 64;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 32;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 16;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n value >>= 8;\\\\n result += 8;\\\\n }\\\\n if (value >> 4 > 0) {\\\\n value >>= 4;\\\\n result += 4;\\\\n }\\\\n if (value >> 2 > 0) {\\\\n value >>= 2;\\\\n result += 2;\\\\n }\\\\n if (value >> 1 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log2(value);\\\\n return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >= 10 ** 64) {\\\\n value /= 10 ** 64;\\\\n result += 64;\\\\n }\\\\n if (value >= 10 ** 32) {\\\\n value /= 10 ** 32;\\\\n result += 32;\\\\n }\\\\n if (value >= 10 ** 16) {\\\\n value /= 10 ** 16;\\\\n result += 16;\\\\n }\\\\n if (value >= 10 ** 8) {\\\\n value /= 10 ** 8;\\\\n result += 8;\\\\n }\\\\n if (value >= 10 ** 4) {\\\\n value /= 10 ** 4;\\\\n result += 4;\\\\n }\\\\n if (value >= 10 ** 2) {\\\\n value /= 10 ** 2;\\\\n result += 2;\\\\n }\\\\n if (value >= 10 ** 1) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log10(value);\\\\n return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, rounded down, of a positive value.\\\\n * Returns 0 if given 0.\\\\n *\\\\n * Adding one to the result gives the number of pairs of hex symbols needed to represent \`value\` as a hex string.\\\\n */\\\\n function log256(uint256 value) internal pure returns (uint256) {\\\\n uint256 result = 0;\\\\n unchecked {\\\\n if (value >> 128 > 0) {\\\\n value >>= 128;\\\\n result += 16;\\\\n }\\\\n if (value >> 64 > 0) {\\\\n value >>= 64;\\\\n result += 8;\\\\n }\\\\n if (value >> 32 > 0) {\\\\n value >>= 32;\\\\n result += 4;\\\\n }\\\\n if (value >> 16 > 0) {\\\\n value >>= 16;\\\\n result += 2;\\\\n }\\\\n if (value >> 8 > 0) {\\\\n result += 1;\\\\n }\\\\n }\\\\n return result;\\\\n }\\\\n\\\\n /**\\\\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\\\n * Returns 0 if given 0.\\\\n */\\\\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\\\n unchecked {\\\\n uint256 result = log256(value);\\\\n return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @dev Provides information about the current execution context, including the\\\\n * sender of the transaction and its data. While these are generally available\\\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\\\n * manner, since when dealing with meta-transactions the account sending and\\\\n * paying for execution may not be the actual sender (as far as an application\\\\n * is concerned).\\\\n *\\\\n * This contract is only required for intermediate, library-like contracts.\\\\n */\\\\nabstract contract Context {\\\\n function _msgSender() internal view virtual returns (address) {\\\\n return msg.sender;\\\\n }\\\\n\\\\n function _msgData() internal view virtual returns (bytes calldata) {\\\\n return msg.data;\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\\\n\\\\npragma solidity ^0.8.1;\\\\n\\\\n/**\\\\n * @dev Collection of functions related to the address type\\\\n */\\\\nlibrary Address {\\\\n /**\\\\n * @dev Returns true if \`account\` is a contract.\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * It is unsafe to assume that an address for which this function returns\\\\n * false is an externally-owned account (EOA) and not a contract.\\\\n *\\\\n * Among others, \`isContract\` will return false for the following\\\\n * types of addresses:\\\\n *\\\\n * - an externally-owned account\\\\n * - a contract in construction\\\\n * - an address where a contract will be created\\\\n * - an address where a contract lived, but was destroyed\\\\n *\\\\n * Furthermore, \`isContract\` will also return true if the target contract within\\\\n * the same transaction is already scheduled for destruction by \`SELFDESTRUCT\`,\\\\n * which only has an effect at the end of a transaction.\\\\n * ====\\\\n *\\\\n * [IMPORTANT]\\\\n * ====\\\\n * You shouldn't rely on \`isContract\` to protect against flash loan attacks!\\\\n *\\\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\\\n * constructor.\\\\n * ====\\\\n */\\\\n function isContract(address account) internal view returns (bool) {\\\\n // This method relies on extcodesize/address.code.length, which returns 0\\\\n // for contracts in construction, since the code is only stored at the end\\\\n // of the constructor execution.\\\\n\\\\n return account.code.length > 0;\\\\n }\\\\n\\\\n /**\\\\n * @dev Replacement for Solidity's \`transfer\`: sends \`amount\` wei to\\\\n * \`recipient\`, forwarding all available gas and reverting on errors.\\\\n *\\\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\\\n * imposed by \`transfer\`, making them unable to receive funds via\\\\n * \`transfer\`. {sendValue} removes this limitation.\\\\n *\\\\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\\\n *\\\\n * IMPORTANT: because control is transferred to \`recipient\`, care must be\\\\n * taken to not create reentrancy vulnerabilities. Consider using\\\\n * {ReentrancyGuard} or the\\\\n * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\\\n */\\\\n function sendValue(address payable recipient, uint256 amount) internal {\\\\n require(address(this).balance >= amount, \\\\\\"Address: insufficient balance\\\\\\");\\\\n\\\\n (bool success, ) = recipient.call{value: amount}(\\\\\\"\\\\\\");\\\\n require(success, \\\\\\"Address: unable to send value, recipient may have reverted\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Performs a Solidity function call using a low level \`call\`. A\\\\n * plain \`call\` is an unsafe replacement for a function call: use this\\\\n * function instead.\\\\n *\\\\n * If \`target\` reverts with a revert reason, it is bubbled up by this\\\\n * function (like regular Solidity function calls).\\\\n *\\\\n * Returns the raw returned data. To convert to the expected return value,\\\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[\`abi.decode\`].\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`target\` must be a contract.\\\\n * - calling \`target\` with \`data\` must not revert.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, \\\\\\"Address: low-level call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`], but with\\\\n * \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, 0, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but also transferring \`value\` wei to \`target\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - the calling contract must have an ETH balance of at least \`value\`.\\\\n * - the called Solidity function must be \`payable\`.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\\\n return functionCallWithValue(target, data, value, \\\\\\"Address: low-level call with value failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[\`functionCallWithValue\`], but\\\\n * with \`errorMessage\` as a fallback revert reason when \`target\` reverts.\\\\n *\\\\n * _Available since v3.1._\\\\n */\\\\n function functionCallWithValue(\\\\n address target,\\\\n bytes memory data,\\\\n uint256 value,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n require(address(this).balance >= value, \\\\\\"Address: insufficient balance for call\\\\\\");\\\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\\\n return functionStaticCall(target, data, \\\\\\"Address: low-level static call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a static call.\\\\n *\\\\n * _Available since v3.3._\\\\n */\\\\n function functionStaticCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.staticcall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\\\n return functionDelegateCall(target, data, \\\\\\"Address: low-level delegate call failed\\\\\\");\\\\n }\\\\n\\\\n /**\\\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[\`functionCall\`],\\\\n * but performing a delegate call.\\\\n *\\\\n * _Available since v3.4._\\\\n */\\\\n function functionDelegateCall(\\\\n address target,\\\\n bytes memory data,\\\\n string memory errorMessage\\\\n ) internal returns (bytes memory) {\\\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\\\n return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\\\n * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\\\n *\\\\n * _Available since v4.8._\\\\n */\\\\n function verifyCallResultFromTarget(\\\\n address target,\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal view returns (bytes memory) {\\\\n if (success) {\\\\n if (returndata.length == 0) {\\\\n // only check isContract if the call was successful and the return data is empty\\\\n // otherwise we already know that it was a contract\\\\n require(isContract(target), \\\\\\"Address: call to non-contract\\\\\\");\\\\n }\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\\\n * revert reason or using the provided one.\\\\n *\\\\n * _Available since v4.3._\\\\n */\\\\n function verifyCallResult(\\\\n bool success,\\\\n bytes memory returndata,\\\\n string memory errorMessage\\\\n ) internal pure returns (bytes memory) {\\\\n if (success) {\\\\n return returndata;\\\\n } else {\\\\n _revert(returndata, errorMessage);\\\\n }\\\\n }\\\\n\\\\n function _revert(bytes memory returndata, string memory errorMessage) private pure {\\\\n // Look for revert reason and bubble it up if present\\\\n if (returndata.length > 0) {\\\\n // The easiest way to bubble the revert reason is using memory via assembly\\\\n /// @solidity memory-safe-assembly\\\\n assembly {\\\\n let returndata_size := mload(returndata)\\\\n revert(add(32, returndata), returndata_size)\\\\n }\\\\n } else {\\\\n revert(errorMessage);\\\\n }\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Metadata is IERC721 {\\\\n /**\\\\n * @dev Returns the token collection name.\\\\n */\\\\n function name() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the token collection symbol.\\\\n */\\\\n function symbol() external view returns (string memory);\\\\n\\\\n /**\\\\n * @dev Returns the Uniform Resource Identifier (URI) for \`tokenId\` token.\\\\n */\\\\n function tokenURI(uint256 tokenId) external view returns (string memory);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev Required interface of an ERC721 compliant contract.\\\\n */\\\\ninterface IERC721 is IERC165 {\\\\n /**\\\\n * @dev Emitted when \`tokenId\` token is transferred from \`from\` to \`to\`.\\\\n */\\\\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables \`approved\` to manage the \`tokenId\` token.\\\\n */\\\\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\\\\n\\\\n /**\\\\n * @dev Emitted when \`owner\` enables or disables (\`approved\`) \`operator\` to manage all of its assets.\\\\n */\\\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\\\n\\\\n /**\\\\n * @dev Returns the number of tokens in \`\`owner\`\`'s account.\\\\n */\\\\n function balanceOf(address owner) external view returns (uint256 balance);\\\\n\\\\n /**\\\\n * @dev Returns the owner of the \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function ownerOf(uint256 tokenId) external view returns (address owner);\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\\\\n\\\\n /**\\\\n * @dev Safely transfers \`tokenId\` token from \`from\` to \`to\`, checking first that contract recipients\\\\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must exist and be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\\\\n * - If \`to\` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Transfers \`tokenId\` token from \`from\` to \`to\`.\\\\n *\\\\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\\\\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\\\\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`from\` cannot be the zero address.\\\\n * - \`to\` cannot be the zero address.\\\\n * - \`tokenId\` token must be owned by \`from\`.\\\\n * - If the caller is not \`from\`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\\\\n *\\\\n * Emits a {Transfer} event.\\\\n */\\\\n function transferFrom(address from, address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Gives permission to \`to\` to transfer \`tokenId\` token to another account.\\\\n * The approval is cleared when the token is transferred.\\\\n *\\\\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The caller must own the token or be an approved operator.\\\\n * - \`tokenId\` must exist.\\\\n *\\\\n * Emits an {Approval} event.\\\\n */\\\\n function approve(address to, uint256 tokenId) external;\\\\n\\\\n /**\\\\n * @dev Approve or remove \`operator\` as an operator for the caller.\\\\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - The \`operator\` cannot be the caller.\\\\n *\\\\n * Emits an {ApprovalForAll} event.\\\\n */\\\\n function setApprovalForAll(address operator, bool approved) external;\\\\n\\\\n /**\\\\n * @dev Returns the account approved for \`tokenId\` token.\\\\n *\\\\n * Requirements:\\\\n *\\\\n * - \`tokenId\` must exist.\\\\n */\\\\n function getApproved(uint256 tokenId) external view returns (address operator);\\\\n\\\\n /**\\\\n * @dev Returns if the \`operator\` is allowed to manage all of the assets of \`owner\`.\\\\n *\\\\n * See {setApprovalForAll}\\\\n */\\\\n function isApprovedForAll(address owner, address operator) external view returns (bool);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\n/**\\\\n * @title ERC721 token receiver interface\\\\n * @dev Interface for any contract that wants to support safeTransfers\\\\n * from ERC721 asset contracts.\\\\n */\\\\ninterface IERC721Receiver {\\\\n /**\\\\n * @dev Whenever an {IERC721} \`tokenId\` token is transferred to this contract via {IERC721-safeTransferFrom}\\\\n * by \`operator\` from \`from\`, this function is called.\\\\n *\\\\n * It must return its Solidity selector to confirm the token transfer.\\\\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\\\\n *\\\\n * The selector can be obtained in Solidity with \`IERC721Receiver.onERC721Received.selector\`.\\\\n */\\\\n function onERC721Received(\\\\n address operator,\\\\n address from,\\\\n uint256 tokenId,\\\\n bytes calldata data\\\\n ) external returns (bytes4);\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\\\\\";\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\\\\\";\\\\n\\\\n/**\\\\n * @dev This implements an optional extension of {ERC721} defined in the EIP that adds\\\\n * enumerability of all the token ids in the contract as well as all token ids owned by each\\\\n * account.\\\\n */\\\\nabstract contract ERC721Enumerable is ERC721, IERC721Enumerable {\\\\n // Mapping from owner to list of owned token IDs\\\\n mapping(address => mapping(uint256 => uint256)) private _ownedTokens;\\\\n\\\\n // Mapping from token ID to index of the owner tokens list\\\\n mapping(uint256 => uint256) private _ownedTokensIndex;\\\\n\\\\n // Array with all token ids, used for enumeration\\\\n uint256[] private _allTokens;\\\\n\\\\n // Mapping from token id to position in the allTokens array\\\\n mapping(uint256 => uint256) private _allTokensIndex;\\\\n\\\\n /**\\\\n * @dev See {IERC165-supportsInterface}.\\\\n */\\\\n function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {\\\\n return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721.balanceOf(owner), \\\\\\"ERC721Enumerable: owner index out of bounds\\\\\\");\\\\n return _ownedTokens[owner][index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-totalSupply}.\\\\n */\\\\n function totalSupply() public view virtual override returns (uint256) {\\\\n return _allTokens.length;\\\\n }\\\\n\\\\n /**\\\\n * @dev See {IERC721Enumerable-tokenByIndex}.\\\\n */\\\\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\\\\n require(index < ERC721Enumerable.totalSupply(), \\\\\\"ERC721Enumerable: global index out of bounds\\\\\\");\\\\n return _allTokens[index];\\\\n }\\\\n\\\\n /**\\\\n * @dev See {ERC721-_beforeTokenTransfer}.\\\\n */\\\\n function _beforeTokenTransfer(\\\\n address from,\\\\n address to,\\\\n uint256 firstTokenId,\\\\n uint256 batchSize\\\\n ) internal virtual override {\\\\n super._beforeTokenTransfer(from, to, firstTokenId, batchSize);\\\\n\\\\n if (batchSize > 1) {\\\\n // Will only trigger during construction. Batch transferring (minting) is not available afterwards.\\\\n revert(\\\\\\"ERC721Enumerable: consecutive transfers not supported\\\\\\");\\\\n }\\\\n\\\\n uint256 tokenId = firstTokenId;\\\\n\\\\n if (from == address(0)) {\\\\n _addTokenToAllTokensEnumeration(tokenId);\\\\n } else if (from != to) {\\\\n _removeTokenFromOwnerEnumeration(from, tokenId);\\\\n }\\\\n if (to == address(0)) {\\\\n _removeTokenFromAllTokensEnumeration(tokenId);\\\\n } else if (to != from) {\\\\n _addTokenToOwnerEnumeration(to, tokenId);\\\\n }\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\\\\n * @param to address representing the new owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\\\\n */\\\\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\\\\n uint256 length = ERC721.balanceOf(to);\\\\n _ownedTokens[to][length] = tokenId;\\\\n _ownedTokensIndex[tokenId] = length;\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to add a token to this extension's token tracking data structures.\\\\n * @param tokenId uint256 ID of the token to be added to the tokens list\\\\n */\\\\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\\\\n _allTokensIndex[tokenId] = _allTokens.length;\\\\n _allTokens.push(tokenId);\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\\\\n * while the token is not assigned a new owner, the \`_ownedTokensIndex\` mapping is _not_ updated: this allows for\\\\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\\\\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\\\\n * @param from address representing the previous owner of the given token ID\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\\\\n */\\\\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\\\\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;\\\\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary\\\\n if (tokenIndex != lastTokenIndex) {\\\\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\\\\n\\\\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n }\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _ownedTokensIndex[tokenId];\\\\n delete _ownedTokens[from][lastTokenIndex];\\\\n }\\\\n\\\\n /**\\\\n * @dev Private function to remove a token from this extension's token tracking data structures.\\\\n * This has O(1) time complexity, but alters the order of the _allTokens array.\\\\n * @param tokenId uint256 ID of the token to be removed from the tokens list\\\\n */\\\\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\\\\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\\\\n // then delete the last slot (swap and pop).\\\\n\\\\n uint256 lastTokenIndex = _allTokens.length - 1;\\\\n uint256 tokenIndex = _allTokensIndex[tokenId];\\\\n\\\\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\\\\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\\\\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\\\\n uint256 lastTokenId = _allTokens[lastTokenIndex];\\\\n\\\\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\\\\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\\\\n\\\\n // This also deletes the contents at the last position of the array\\\\n delete _allTokensIndex[tokenId];\\\\n _allTokens.pop();\\\\n }\\\\n}\\\\n\\" + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\": { + \\"content\\": \\"// SPDX-License-Identifier: MIT\\\\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)\\\\n\\\\npragma solidity ^0.8.0;\\\\n\\\\nimport \\\\\\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\\\\\";\\\\n\\\\n/**\\\\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\\\\n * @dev See https://eips.ethereum.org/EIPS/eip-721\\\\n */\\\\ninterface IERC721Enumerable is IERC721 {\\\\n /**\\\\n * @dev Returns the total amount of tokens stored by the contract.\\\\n */\\\\n function totalSupply() external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID owned by \`owner\` at a given \`index\` of its token list.\\\\n * Use along with {balanceOf} to enumerate all of \`\`owner\`\`'s tokens.\\\\n */\\\\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\\\\n\\\\n /**\\\\n * @dev Returns a token ID at a given \`index\` of all the tokens stored by the contract.\\\\n * Use along with {totalSupply} to enumerate all tokens.\\\\n */\\\\n function tokenByIndex(uint256 index) external view returns (uint256);\\\\n}\\\\n\\" + } + }, + \\"settings\\": { + \\"outputSelection\\": { + \\"*\\": { + \\"*\\": [ + \\"abi\\", + \\"userdoc\\" + ] + } + } + } + }, + \\"solcOutput\\": { + \\"contracts\\": { + \\"./Contract.sol\\": { + \\"WagmiMintExample\\": { + \\"abi\\": [ + { + \\"inputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"constructor\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"mint\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"mint\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"pure\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"totalSupply\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": { + \\"mint()\\": { + \\"notice\\": \\"Allows an address to mint\\" + }, + \\"mint(uint256)\\": { + \\"notice\\": \\"Returns the token URI for a given token by ID\\" + }, + \\"tokenURI(uint256)\\": { + \\"notice\\": \\"Returns the token URI for a given token by ID\\" + } + }, + \\"notice\\": \\"An example token original from the wagmi template\\", + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\": { + \\"ERC721\\": { + \\"abi\\": [ + { + \\"inputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"name_\\", + \\"type\\": \\"string\\" + }, + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"symbol_\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"constructor\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\": { + \\"IERC721\\": { + \\"abi\\": [ + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"balance\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\": { + \\"IERC721Receiver\\": { + \\"abi\\": [ + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"onERC721Received\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\": { + \\"ERC721Enumerable\\": { + \\"abi\\": [ + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"index\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenByIndex\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"index\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenOfOwnerByIndex\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"totalSupply\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\": { + \\"IERC721Enumerable\\": { + \\"abi\\": [ + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"balance\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"index\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenByIndex\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"index\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenOfOwnerByIndex\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"totalSupply\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\": { + \\"IERC721Metadata\\": { + \\"abi\\": [ + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Approval\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": false, + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"ApprovalForAll\\", + \\"type\\": \\"event\\" + }, + { + \\"anonymous\\": false, + \\"inputs\\": [ + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"indexed\\": true, + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"Transfer\\", + \\"type\\": \\"event\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"approve\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"balanceOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"balance\\", + \\"type\\": \\"uint256\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"getApproved\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + } + ], + \\"name\\": \\"isApprovedForAll\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"name\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"ownerOf\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"owner\\", + \\"type\\": \\"address\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + }, + { + \\"internalType\\": \\"bytes\\", + \\"name\\": \\"data\\", + \\"type\\": \\"bytes\\" + } + ], + \\"name\\": \\"safeTransferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"operator\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"approved\\", + \\"type\\": \\"bool\\" + } + ], + \\"name\\": \\"setApprovalForAll\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [], + \\"name\\": \\"symbol\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"tokenURI\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"string\\", + \\"name\\": \\"\\", + \\"type\\": \\"string\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + }, + { + \\"inputs\\": [ + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"from\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"address\\", + \\"name\\": \\"to\\", + \\"type\\": \\"address\\" + }, + { + \\"internalType\\": \\"uint256\\", + \\"name\\": \\"tokenId\\", + \\"type\\": \\"uint256\\" + } + ], + \\"name\\": \\"transferFrom\\", + \\"outputs\\": [], + \\"stateMutability\\": \\"nonpayable\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\": { + \\"Address\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\": { + \\"Base64\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\": { + \\"Context\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\": { + \\"Strings\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\": { + \\"ERC165\\": { + \\"abi\\": [ + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\": { + \\"IERC165\\": { + \\"abi\\": [ + { + \\"inputs\\": [ + { + \\"internalType\\": \\"bytes4\\", + \\"name\\": \\"interfaceId\\", + \\"type\\": \\"bytes4\\" + } + ], + \\"name\\": \\"supportsInterface\\", + \\"outputs\\": [ + { + \\"internalType\\": \\"bool\\", + \\"name\\": \\"\\", + \\"type\\": \\"bool\\" + } + ], + \\"stateMutability\\": \\"view\\", + \\"type\\": \\"function\\" + } + ], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\": { + \\"Math\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\": { + \\"SignedMath\\": { + \\"abi\\": [], + \\"userdoc\\": { + \\"kind\\": \\"user\\", + \\"methods\\": {}, + \\"version\\": 1 + } + } + } + }, + \\"sources\\": { + \\"./Contract.sol\\": { + \\"id\\": 0 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\\": { + \\"id\\": 1 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\\": { + \\"id\\": 2 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\\": { + \\"id\\": 3 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\\": { + \\"id\\": 4 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\": { + \\"id\\": 5 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\\": { + \\"id\\": 6 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Address.sol\\": { + \\"id\\": 7 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Base64.sol\\": { + \\"id\\": 8 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Context.sol\\": { + \\"id\\": 9 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/Strings.sol\\": { + \\"id\\": 10 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\\": { + \\"id\\": 11 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\\": { + \\"id\\": 12 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/Math.sol\\": { + \\"id\\": 13 + }, + \\"/evmts-monorepo/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\\": { + \\"id\\": 14 + } + } + } +}" +`; diff --git a/solc/src/compiler/compileContracts.js b/solc/src/compiler/compileContracts.js index 0d3ee1e123..874b92f440 100644 --- a/solc/src/compiler/compileContracts.js +++ b/solc/src/compiler/compileContracts.js @@ -2,6 +2,7 @@ import { solcCompile } from '../solc.js' import { invariant, resolveEffect } from '../utils/index.js' import { moduleFactory } from '@evmts/resolutions' import { Effect } from 'effect' +import { runPromise } from 'effect/Effect' /** * Compile the Solidity contract and return its ABI. @@ -32,20 +33,27 @@ export const compileContract = async ( fao, logger, ) => { - const entryModule = await moduleFactory( - filePath, - await fao - .readFile( - await Effect.runPromise(resolveEffect(filePath, basedir, fao, logger)), - 'utf8', - ) - .then((code) => { - return code - }), - config.remappings, - config.libs, - fao, + const moduleMap = await runPromise( + moduleFactory( + filePath, + await fao + .readFile( + await Effect.runPromise( + resolveEffect(filePath, basedir, fao, logger), + ), + 'utf8', + ) + .then((code) => { + return code + }), + config.remappings, + config.libs, + fao, + false, + ), ) + const entryModule = moduleMap.get(filePath) + invariant(entryModule, 'Entry module should exist') /** * @type {Object.} @@ -60,7 +68,11 @@ export const compileContract = async ( continue } modules[m.id] = m - for (const dep of m.resolutions) { + const resolutions = m.importedIds.map( + (id) => + /** @type {import("../types.js").ModuleInfo}*/ (moduleMap.get(id)), + ) + for (const dep of resolutions) { stack.push(dep) } } diff --git a/solc/src/compiler/compileContracts.spec.ts b/solc/src/compiler/compileContracts.spec.ts index 9361ef88ec..5c1205d4f5 100644 --- a/solc/src/compiler/compileContracts.spec.ts +++ b/solc/src/compiler/compileContracts.spec.ts @@ -1,23 +1,14 @@ -import { solcCompile } from '../solc.js' -import type { ModuleInfo } from '../types.js' +import type { FileAccessObject } from '../types.js' import { compileContract } from './compileContracts.js' -import resolve from 'resolve' -import { type Mock, beforeEach, describe, expect, it, vi } from 'vitest' +import type { ResolvedCompilerConfig } from '@evmts/config' +import { existsSync, readFileSync } from 'fs' +import { readFile } from 'fs/promises' +import { join } from 'path' +import { describe, expect, it, vi } from 'vitest' -vi.mock('resolve') -vi.mock('../solc.js') +const absolutePathContext = join(__dirname, '..', '..', '..', '..') describe('compileContract', () => { - const mockFilePath = 'mockFilePath' - const mockBaseDir = 'mockBaseDir' - const mockConfig = { - remappings: {}, - libs: [], - } - const mockFao = { - readFile: vi.fn(), - existsSync: vi.fn(), - } const mockLogger = { error: vi.fn(), warn: vi.fn(), @@ -25,334 +16,31 @@ describe('compileContract', () => { log: vi.fn(), } - beforeEach(() => { - vi.clearAllMocks() - }) + const fao: FileAccessObject = { + existsSync, + readFile, + readFileSync, + } - const mockResolve = resolve as any as Mock - const mockSolcCompile = solcCompile as any as Mock it('should successfully compile a contract without errors', async () => { - mockResolve.mockImplementation((_, __, callback) => { - callback(null, mockFilePath) - }) - - mockFao.readFile.mockResolvedValue('mockCode') - - const mockSolcOutput = { - contracts: { - [mockFilePath]: { mockContract: {} }, - }, - sources: { - [mockFilePath]: { - ast: { mockAst: {} }, - }, - }, - errors: [], - } - mockSolcCompile.mockReturnValue(mockSolcOutput) - - const result = await compileContract( - mockFilePath, - mockBaseDir, - mockConfig as any, - true, - mockFao as any, - mockLogger, - ) - - expect(result.artifacts).toEqual(mockSolcOutput.contracts[mockFilePath]) - expect(result.asts).toEqual({ - [mockFilePath]: mockSolcOutput.sources[mockFilePath].ast, - }) - expect(result.solcOutput).toEqual(mockSolcOutput) - - expect(mockLogger.error).not.toHaveBeenCalled() - expect(mockLogger.warn).not.toHaveBeenCalled() - }) - - it('should throw an error when there are compilation errors', async () => { - mockResolve.mockImplementation((_, __, callback) => { - callback(null, mockFilePath) - }) - - mockFao.readFile.mockResolvedValue('mockCode') - mockSolcCompile.mockReturnValue({ - contracts: {}, - sources: {}, - errors: [{ type: 'Error' }], - }) - - await expect( - compileContract( - mockFilePath, - mockBaseDir, - mockConfig as any, - false, - mockFao as any, - mockLogger, - ), - ).rejects.toThrow('Compilation failed') - - expect(mockLogger.error).toHaveBeenCalledTimes(2) - }) - - it('should log warnings if there are any', async () => { - mockResolve.mockImplementation((_, __, callback) => { - callback(null, mockFilePath) - }) - - mockFao.readFile.mockResolvedValue('mockCode') - - const mockWarnings = [{ type: 'Warning', message: 'Sample warning' }] - mockSolcCompile.mockReturnValue({ - contracts: {}, - sources: {}, - errors: mockWarnings, - }) - - await compileContract( - mockFilePath, - mockBaseDir, - mockConfig as any, - false, - mockFao as any, - mockLogger, - ) - expect(mockLogger.warn).toHaveBeenCalledTimes(2) - }) - - it('should throw an error when the contract file is missing', async () => { - mockResolve.mockImplementation((_, __, callback) => { - callback(new Error('File not found'), null) - }) - - await expect( - compileContract( - mockFilePath, - mockBaseDir, - mockConfig as any, - false, - mockFao as any, - mockLogger, - ), - ).rejects.toThrowErrorMatchingInlineSnapshot('"File not found"') - expect(mockLogger.error).toHaveBeenCalledTimes(2) - }) - - it('should log an error when file resolution fails', async () => { - const mockError = new Error('Resolution Error') - mockResolve.mockImplementation((_, __, callback) => { - callback(mockError, null) - }) - - await expect( - compileContract( - mockFilePath, - mockBaseDir, - mockConfig as any, - false, - mockFao as any, - mockLogger, - ), - ).rejects.toThrow('Resolution Error') - - expect(mockLogger.error).toHaveBeenCalledWith( - `There was an error resolving ${mockFilePath}`, - ) - }) - - it('should log warnings without errors during compilation', async () => { - mockResolve.mockImplementation((_, __, callback) => { - callback(null, mockFilePath) - }) - - mockFao.readFile.mockResolvedValue('mockCode') - - const mockWarnings = [{ type: 'Warning', message: 'Sample warning' }] - mockSolcCompile.mockReturnValue({ - contracts: {}, - sources: {}, - errors: mockWarnings, - }) - - await compileContract( - mockFilePath, - mockBaseDir, - mockConfig as any, - false, - mockFao as any, - mockLogger, - ) - - expect(mockLogger.warn).toHaveBeenCalledWith(mockWarnings as any) - expect(mockLogger.warn).toHaveBeenCalledWith('Compilation warnings:') - }) - - it('should not return ASTs when includeAst is false', async () => { - mockResolve.mockImplementation((_, __, callback) => { - callback(null, mockFilePath) - }) - - mockFao.readFile.mockResolvedValue('mockCode') - - const mockSolcOutput = { - contracts: { - [mockFilePath]: { mockContract: {} }, - }, - sources: { - [mockFilePath]: { - ast: { mockAst: {} }, - }, - }, - errors: [], - } - mockSolcCompile.mockReturnValue(mockSolcOutput) - - const result = await compileContract( - mockFilePath, - mockBaseDir, - mockConfig as any, - false, - mockFao as any, - mockLogger, - ) - - expect(result.asts).toBeUndefined() - expect(result.artifacts).toEqual(mockSolcOutput.contracts[mockFilePath]) - expect(result.solcOutput).toEqual(mockSolcOutput) - - expect(mockLogger.error).not.toHaveBeenCalled() - expect(mockLogger.warn).not.toHaveBeenCalled() - }) - - it('should return ASTs when includeAst is true', async () => { - mockResolve.mockImplementation((_, __, callback) => { - callback(null, mockFilePath) - }) - - mockFao.readFile.mockResolvedValue('mockCode') - - const mockSolcOutput = { - contracts: { - [mockFilePath]: { mockContract: {} }, - }, - sources: { - [mockFilePath]: { - ast: { mockAst: {} }, - }, - }, - errors: [], - } - mockSolcCompile.mockReturnValue(mockSolcOutput) - - const result = await compileContract( - mockFilePath, - mockBaseDir, - mockConfig as any, - true, - mockFao as any, - mockLogger, - ) - - expect(result.asts).toEqual({ - [mockFilePath]: mockSolcOutput.sources[mockFilePath].ast, - }) - expect(result.artifacts).toEqual(mockSolcOutput.contracts[mockFilePath]) - expect(result.solcOutput).toEqual(mockSolcOutput) - - expect(mockLogger.error).not.toHaveBeenCalled() - expect(mockLogger.warn).not.toHaveBeenCalled() - }) - - it('should work when contracts share resolutions', async () => { - const mockModuleC: ModuleInfo = { - id: 'test/path/moduleC.sol', - code: 'contract C {}', - importedIds: [], - resolutions: [], - rawCode: 'contract C {}', - } - - const mockModuleA: ModuleInfo = { - id: 'test/path/moduleA.sol', - code: 'import "test/path/moduleC.sol"\ncontract A {}', - importedIds: ['test/path/moduleC.sol'], - resolutions: [mockModuleC], - rawCode: 'import "./moduleC.sol"\ncontract A {}', + const config: ResolvedCompilerConfig = { + foundryProject: false, + libs: [], + remappings: {}, } - - const mockModuleB: ModuleInfo = { - id: 'test/path/moduleB.sol', - code: 'import "test/path/moduleC.sol"\ncontract B {}', - importedIds: ['test/path/moduleC.sol'], - resolutions: [mockModuleC], - rawCode: 'import "./moduleC.sol"\ncontract B {}', - } - - mockModuleA.resolutions.push(mockModuleB) expect( - await compileContract( - 'test/path/moduleA.sol', - 'test/path', - mockConfig as any, - true, - mockFao as any, - mockLogger, - ), - ).toMatchInlineSnapshot(` - { - "artifacts": undefined, - "asts": { - "mockFilePath": { - "mockAst": {}, - }, - }, - "modules": { - "test/path/moduleA.sol": { - "code": "mockCode", - "id": "test/path/moduleA.sol", - "importedIds": [], - "rawCode": "mockCode", - "resolutions": [], - }, - }, - "solcInput": { - "language": "Solidity", - "settings": { - "outputSelection": { - "*": { - "": [ - "ast", - ], - "*": [ - "abi", - "userdoc", - ], - }, - }, - }, - "sources": { - "test/path/moduleA.sol": { - "content": "mockCode", - }, - }, - }, - "solcOutput": { - "contracts": { - "mockFilePath": { - "mockContract": {}, - }, - }, - "errors": [], - "sources": { - "mockFilePath": { - "ast": { - "mockAst": {}, - }, - }, - }, - }, - } - `) + JSON.stringify( + await compileContract( + './Contract.sol', + join(__dirname, '..', 'fixtures', 'basic'), + config, + false, + fao, + mockLogger, + ), + null, + 2, + ).replaceAll(absolutePathContext, ''), + ).toMatchSnapshot() }) }) diff --git a/solc/src/compiler/compileContractsSync.js b/solc/src/compiler/compileContractsSync.js index 8e750cb2fd..320daad904 100644 --- a/solc/src/compiler/compileContractsSync.js +++ b/solc/src/compiler/compileContractsSync.js @@ -1,6 +1,7 @@ import * as solc from '../solc.js' import { invariant } from '../utils/invariant.js' -import { moduleFactorySync } from '@evmts/resolutions' +import { moduleFactory } from '@evmts/resolutions' +import { runSync } from 'effect/Effect' import resolve from 'resolve' /** @@ -32,20 +33,25 @@ export function compileContractSync( fao, logger, ) { - const entryModule = moduleFactorySync( - filePath, - fao.readFileSync( - resolve.sync(filePath, { - basedir, - readFileSync: (file) => fao.readFileSync(file, 'utf8'), - isFile: fao.existsSync, - }), - 'utf8', + const moduleMap = runSync( + moduleFactory( + filePath, + fao.readFileSync( + resolve.sync(filePath, { + basedir, + readFileSync: (file) => fao.readFileSync(file, 'utf8'), + isFile: fao.existsSync, + }), + 'utf8', + ), + config.remappings, + config.libs, + fao, + true, ), - config.remappings, - config.libs, - fao, ) + const entryModule = moduleMap.get(filePath) + invariant(entryModule, 'Entry module should exist') /** @type {Record} */ const modules = {} @@ -58,8 +64,10 @@ export function compileContractSync( continue } modules[m.id] = m - for (const dep of m.resolutions) { - stack.push(dep) + for (const dep of m.importedIds) { + stack.push( + /** @type {import("../types.js").ModuleInfo} */ (moduleMap.get(dep)), + ) } } diff --git a/solc/src/compiler/compileContractsSync.spec.ts b/solc/src/compiler/compileContractsSync.spec.ts index 0cce24ed71..5428e7895d 100644 --- a/solc/src/compiler/compileContractsSync.spec.ts +++ b/solc/src/compiler/compileContractsSync.spec.ts @@ -1,581 +1,46 @@ -import type { FileAccessObject, ModuleInfo } from '../types.js' +import type { FileAccessObject } from '../types.js' import { compileContractSync } from './compileContractsSync.js' import type { ResolvedCompilerConfig } from '@evmts/config' -import { moduleFactorySync } from '@evmts/resolutions' -import resolve from 'resolve' -// @ts-ignore -import solc from 'solc' -import { - type Mock, - type MockedFunction, - afterEach, - beforeEach, - describe, - expect, - it, - vi, -} from 'vitest' +import { existsSync, readFileSync } from 'fs' +import { readFile } from 'fs/promises' +import { join } from 'path' +import { describe, expect, it, vi } from 'vitest' -// Mock the necessary functions and modules -vi.mock('resolve', () => ({ default: { sync: vi.fn() } })) -vi.mock('solc', () => { - const defaultExport = { compile: vi.fn() } - return { default: defaultExport, ...defaultExport } -}) -vi.mock('@evmts/resolutions', () => ({ - moduleFactorySync: vi.fn(), -})) -const ConsoleMock = { - log: vi.fn(), - error: vi.fn(), - warn: vi.fn(), - info: vi.fn(), - debug: vi.fn(), -} - -vi.stubGlobal('console', ConsoleMock) - -const fao: FileAccessObject = { - readFileSync: vi.fn() as any, - existsSync: vi.fn() as any, - readFile: vi.fn() as any, -} +const absolutePathContext = join(__dirname, '..', '..', '..', '..') describe('compileContractSync', () => { - const filePath = 'test/path' - const basedir = 'base/dir' - const config: ResolvedCompilerConfig = { - foundryProject: 'forge', - remappings: { 'key1/': '/path/to/key1', 'key2/': '/path/to/key2' }, - libs: ['lib1', 'lib2'], - } - const mockSource = ['import ./resolutionFile.sol', 'contract Test {}'].join( - '\n', - ) - const mockResolution: ModuleInfo = { - id: 'test/path/resolutionFile.sol', - code: 'contract Resolution {}', - importedIds: [], - resolutions: [], - rawCode: 'contract Resolution {}', - } - const mockModule: ModuleInfo = { - rawCode: mockSource, - id: filePath, - code: mockSource.replace( - './resolutionFile.sol', - 'test/path/resolutionFile.sol', - ), - importedIds: ['./importedId'], - resolutions: [mockResolution], + const mockLogger = { + error: vi.fn(), + warn: vi.fn(), + info: vi.fn(), + log: vi.fn(), } - const mockCompiledContract = { - Test: { abi: [], evm: { bytecode: { object: '0x123' } } }, - } - - const mockReadFileSync = fao.readFileSync as Mock - const mockResolveSync = resolve.sync as Mock - const mockModuleFactory = moduleFactorySync as Mock - const mockSolcCompile = solc.compile as Mock - beforeEach(() => { - mockReadFileSync.mockReturnValue(mockSource) - mockResolveSync.mockReturnValue(filePath) - mockModuleFactory.mockReturnValue(mockModule) - mockSolcCompile.mockReturnValue( - JSON.stringify({ - contracts: { [filePath]: mockCompiledContract }, - sources: { - [filePath]: { ast: 'ast' }, - }, - }), - ) - }) - - it('should compile a contract correctly with ast', () => { - const compiledContract = compileContractSync( - filePath, - basedir, - config, - true, - fao, - console, - ) - - expect(compiledContract).toMatchInlineSnapshot(` - { - "artifacts": { - "Test": { - "abi": [], - "evm": { - "bytecode": { - "object": "0x123", - }, - }, - }, - }, - "asts": { - "test/path": "ast", - }, - "modules": { - "test/path": { - "code": "import test/path/resolutionFile.sol - contract Test {}", - "id": "test/path", - "importedIds": [ - "./importedId", - ], - "rawCode": "import ./resolutionFile.sol - contract Test {}", - "resolutions": [ - { - "code": "contract Resolution {}", - "id": "test/path/resolutionFile.sol", - "importedIds": [], - "rawCode": "contract Resolution {}", - "resolutions": [], - }, - ], - }, - "test/path/resolutionFile.sol": { - "code": "contract Resolution {}", - "id": "test/path/resolutionFile.sol", - "importedIds": [], - "rawCode": "contract Resolution {}", - "resolutions": [], - }, - }, - "solcInput": { - "language": "Solidity", - "settings": { - "outputSelection": { - "*": { - "": [ - "ast", - ], - "*": [ - "abi", - "userdoc", - ], - }, - }, - }, - "sources": { - "test/path": { - "content": "import test/path/resolutionFile.sol - contract Test {}", - }, - "test/path/resolutionFile.sol": { - "content": "contract Resolution {}", - }, - }, - }, - "solcOutput": { - "contracts": { - "test/path": { - "Test": { - "abi": [], - "evm": { - "bytecode": { - "object": "0x123", - }, - }, - }, - }, - }, - "sources": { - "test/path": { - "ast": "ast", - }, - }, - }, - } - `) - expect(fao.readFileSync).toBeCalledWith(filePath, 'utf8') - expect( - (resolve.sync as MockedFunction).mock.lastCall, - ).toMatchInlineSnapshot(` - [ - "test/path", - { - "basedir": "base/dir", - "isFile": [MockFunction spy], - "readFileSync": [Function], - }, - ] - `) - expect(moduleFactorySync).toBeCalledWith( - filePath, - mockSource, - config.remappings, - config.libs, - fao, - ) - expect((solc.compile as Mock).mock.lastCall).toMatchInlineSnapshot(` - [ - "{\\"language\\":\\"Solidity\\",\\"sources\\":{\\"test/path\\":{\\"content\\":\\"import test/path/resolutionFile.sol\\\\ncontract Test {}\\"},\\"test/path/resolutionFile.sol\\":{\\"content\\":\\"contract Resolution {}\\"}},\\"settings\\":{\\"outputSelection\\":{\\"*\\":{\\"*\\":[\\"abi\\",\\"userdoc\\"],\\"\\":[\\"ast\\"]}}}}", - ] - `) - }) - - it('should compile a contract correctly', () => { - const compiledContract = compileContractSync( - filePath, - basedir, - config, - false, - fao, - console, - ) - - expect(compiledContract).toMatchInlineSnapshot(` - { - "artifacts": { - "Test": { - "abi": [], - "evm": { - "bytecode": { - "object": "0x123", - }, - }, - }, - }, - "asts": undefined, - "modules": { - "test/path": { - "code": "import test/path/resolutionFile.sol - contract Test {}", - "id": "test/path", - "importedIds": [ - "./importedId", - ], - "rawCode": "import ./resolutionFile.sol - contract Test {}", - "resolutions": [ - { - "code": "contract Resolution {}", - "id": "test/path/resolutionFile.sol", - "importedIds": [], - "rawCode": "contract Resolution {}", - "resolutions": [], - }, - ], - }, - "test/path/resolutionFile.sol": { - "code": "contract Resolution {}", - "id": "test/path/resolutionFile.sol", - "importedIds": [], - "rawCode": "contract Resolution {}", - "resolutions": [], - }, - }, - "solcInput": { - "language": "Solidity", - "settings": { - "outputSelection": { - "*": { - "*": [ - "abi", - "userdoc", - ], - }, - }, - }, - "sources": { - "test/path": { - "content": "import test/path/resolutionFile.sol - contract Test {}", - }, - "test/path/resolutionFile.sol": { - "content": "contract Resolution {}", - }, - }, - }, - "solcOutput": { - "contracts": { - "test/path": { - "Test": { - "abi": [], - "evm": { - "bytecode": { - "object": "0x123", - }, - }, - }, - }, - }, - "sources": { - "test/path": { - "ast": "ast", - }, - }, - }, - } - `) - expect(fao.readFileSync).toBeCalledWith(filePath, 'utf8') - expect( - (resolve.sync as MockedFunction).mock.lastCall, - ).toMatchInlineSnapshot(` - [ - "test/path", - { - "basedir": "base/dir", - "isFile": [MockFunction spy], - "readFileSync": [Function], - }, - ] - `) - expect(moduleFactorySync).toBeCalledWith( - filePath, - mockSource, - config.remappings, - config.libs, - fao, - ) - expect((solc.compile as Mock).mock.lastCall).toMatchInlineSnapshot(` - [ - "{\\"language\\":\\"Solidity\\",\\"sources\\":{\\"test/path\\":{\\"content\\":\\"import test/path/resolutionFile.sol\\\\ncontract Test {}\\"},\\"test/path/resolutionFile.sol\\":{\\"content\\":\\"contract Resolution {}\\"}},\\"settings\\":{\\"outputSelection\\":{\\"*\\":{\\"*\\":[\\"abi\\",\\"userdoc\\"]}}}}", - ] - `) - }) - - it('should not throw an error if only warnings', () => { - mockSolcCompile.mockReturnValue( - JSON.stringify({ - contracts: { [filePath]: null }, - errors: [{ type: 'Warning', message: 'Compilation Warning' }], - }), - ) - const mockLogger = { - warn: vi.fn(), - } - compileContractSync( - filePath, - basedir, - config, - false, - fao, - mockLogger as any, - ) - expect(mockLogger.warn.mock.lastCall).toMatchInlineSnapshot(` - [ - "Compilation warnings:", - [ - { - "message": "Compilation Warning", - "type": "Warning", - }, - ], - ] - `) - }) - it('should throw error if compilation fails', () => { - mockSolcCompile.mockReturnValue( - JSON.stringify({ - contracts: { [filePath]: null }, - errors: [{ type: 'Error', message: 'Compilation Error' }], - }), - ) - expect(() => - compileContractSync(filePath, basedir, config, false, fao, console), - ).toThrowErrorMatchingInlineSnapshot('"Compilation failed"') - expect(console.error).toHaveBeenCalledWith('Compilation errors:', [ - { type: 'Error', message: 'Compilation Error' }, - ]) - }) - - it('should throw error if compilation fails and show the warnings', () => { - mockSolcCompile.mockReturnValue( - JSON.stringify({ - contracts: { [filePath]: null }, - errors: [ - { type: 'Error', message: 'Compilation Error' }, - { type: 'Warning', message: 'Compilation Warning' }, - ], - }), - ) - expect(() => - compileContractSync(filePath, basedir, config, false, fao, console), - ).toThrowErrorMatchingInlineSnapshot('"Compilation failed"') - expect(console.error).toHaveBeenCalledWith('Compilation errors:', [ - { type: 'Error', message: 'Compilation Error' }, - { type: 'Warning', message: 'Compilation Warning' }, - ]) - }) - - it('should log warnings if there are any', () => { - mockSolcCompile.mockReturnValue( - JSON.stringify({ - contracts: { [filePath]: mockCompiledContract }, - errors: [{ type: 'Warning', message: 'Compilation Warning' }], - }), - ) - compileContractSync(filePath, basedir, config, false, fao, console) - expect((console.warn as Mock).mock.lastCall[0]).toMatchInlineSnapshot( - '"Compilation warnings:"', - ) - }) - - it('should not log any warnings when there are no warnings', () => { - mockSolcCompile.mockReturnValue( - JSON.stringify({ - contracts: { [filePath]: mockCompiledContract }, - errors: [], - }), - ) - compileContractSync(filePath, basedir, config, false, fao, console) - expect(console.warn).not.toHaveBeenCalled() - }) - - it('should work when contracts share resolutions', () => { - const mockModuleC: ModuleInfo = { - id: 'test/path/moduleC.sol', - code: 'contract C {}', - importedIds: [], - resolutions: [], - rawCode: 'contract C {}', - } - - const mockModuleA: ModuleInfo = { - id: 'test/path/moduleA.sol', - code: 'import "test/path/moduleC.sol"\ncontract A {}', - importedIds: ['test/path/moduleC.sol'], - resolutions: [mockModuleC], - rawCode: 'import "./moduleC.sol"\ncontract A {}', - } + const fao: FileAccessObject = { + existsSync, + readFile, + readFileSync, + } - const mockModuleB: ModuleInfo = { - id: 'test/path/moduleB.sol', - code: 'import "test/path/moduleC.sol"\ncontract B {}', - importedIds: ['test/path/moduleC.sol'], - resolutions: [mockModuleC], - rawCode: 'import "./moduleC.sol"\ncontract B {}', + it('should successfully compile a contract without errors', async () => { + const config: ResolvedCompilerConfig = { + foundryProject: false, + libs: [], + remappings: {}, } - - mockModuleA.resolutions.push(mockModuleB) - mockModuleFactory.mockReturnValue(mockModuleA) expect( - compileContractSync(filePath, basedir, config, false, fao, console), - ).toMatchInlineSnapshot(` - { - "artifacts": undefined, - "asts": undefined, - "modules": { - "test/path/moduleA.sol": { - "code": "import \\"test/path/moduleC.sol\\" - contract A {}", - "id": "test/path/moduleA.sol", - "importedIds": [ - "test/path/moduleC.sol", - ], - "rawCode": "import \\"./moduleC.sol\\" - contract A {}", - "resolutions": [ - { - "code": "contract C {}", - "id": "test/path/moduleC.sol", - "importedIds": [], - "rawCode": "contract C {}", - "resolutions": [], - }, - { - "code": "import \\"test/path/moduleC.sol\\" - contract B {}", - "id": "test/path/moduleB.sol", - "importedIds": [ - "test/path/moduleC.sol", - ], - "rawCode": "import \\"./moduleC.sol\\" - contract B {}", - "resolutions": [ - { - "code": "contract C {}", - "id": "test/path/moduleC.sol", - "importedIds": [], - "rawCode": "contract C {}", - "resolutions": [], - }, - ], - }, - ], - }, - "test/path/moduleB.sol": { - "code": "import \\"test/path/moduleC.sol\\" - contract B {}", - "id": "test/path/moduleB.sol", - "importedIds": [ - "test/path/moduleC.sol", - ], - "rawCode": "import \\"./moduleC.sol\\" - contract B {}", - "resolutions": [ - { - "code": "contract C {}", - "id": "test/path/moduleC.sol", - "importedIds": [], - "rawCode": "contract C {}", - "resolutions": [], - }, - ], - }, - "test/path/moduleC.sol": { - "code": "contract C {}", - "id": "test/path/moduleC.sol", - "importedIds": [], - "rawCode": "contract C {}", - "resolutions": [], - }, - }, - "solcInput": { - "language": "Solidity", - "settings": { - "outputSelection": { - "*": { - "*": [ - "abi", - "userdoc", - ], - }, - }, - }, - "sources": { - "test/path/moduleA.sol": { - "content": "import \\"test/path/moduleC.sol\\" - contract A {}", - }, - "test/path/moduleB.sol": { - "content": "import \\"test/path/moduleC.sol\\" - contract B {}", - }, - "test/path/moduleC.sol": { - "content": "contract C {}", - }, - }, - }, - "solcOutput": { - "contracts": { - "test/path": { - "Test": { - "abi": [], - "evm": { - "bytecode": { - "object": "0x123", - }, - }, - }, - }, - }, - "sources": { - "test/path": { - "ast": "ast", - }, - }, - }, - } - `) - }) - - afterEach(() => { - vi.clearAllMocks() + JSON.stringify( + compileContractSync( + './Contract.sol', + join(__dirname, '..', 'fixtures', 'basic'), + config, + false, + fao, + mockLogger, + ), + null, + 2, + ).replaceAll(absolutePathContext, ''), + ).toMatchSnapshot() }) }) diff --git a/solc/src/fixtures/basic/Contract.sol b/solc/src/fixtures/basic/Contract.sol new file mode 100644 index 0000000000..c73d9ba3f6 --- /dev/null +++ b/solc/src/fixtures/basic/Contract.sol @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.16; + +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import "@openzeppelin/contracts/utils/Base64.sol"; +// import "this shouldn't be imorted"; + +/// @author Wagmi +/// @author EVMts +/// @title WagmiMintExample +/// @notice An example token original from the wagmi template +contract WagmiMintExample is ERC721 { + uint256 public totalSupply; + +// import "@openzeppelin/contracts/utils/Base64.sol"; + uint256 private nextTokenId = 0; + + constructor() ERC721("wagmi", "WAGMI") {} + + /// @notice Allows an address to mint + function mint() external { + uint256 tokenId = nextTokenId; + while (_exists(tokenId)) { + unchecked { + tokenId++; + } + } + _safeMint(msg.sender, tokenId); + unchecked { + totalSupply++; + nextTokenId = tokenId + 1; + } + } + + /// @notice Returns the token URI for a given token by ID + /// @param tokenId Token ID to mint. + function mint(uint256 tokenId) external { + require(!_exists(tokenId), "Token ID is taken"); + _safeMint(msg.sender, tokenId); + unchecked { + totalSupply++; + } + } + + /// @notice Returns the token URI for a given token by ID + /// @param tokenId Token ID to query. + /// @return uri_ Token URI for the given token by ID. + function tokenURI( + uint256 tokenId + ) public pure override returns (string memory) { + uint256 foregroundHue = uint256( + keccak256(abi.encodePacked("foreground", tokenId)) + ) % 360; + uint256 backgroundHue = uint256( + keccak256(abi.encodePacked("background", tokenId)) + ) % 360; + string memory json = Base64.encode( + bytes( + abi.encodePacked( + '{"name": "wagmi #', + toString(tokenId), + '", "image": "data:image/svg+xml;base64,', + Base64.encode( + bytes( + abi.encodePacked( + '' + ) + ) + ), + '"}' + ) + ) + ); + string memory output = string( + abi.encodePacked("data:application/json;base64,", json) + ); + return output; + } + + function toString(uint256 value) internal pure returns (string memory) { + // Inspired by OraclizeAPI's implementation - MIT licence + // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol + + if (value == 0) { + return "0"; + } + uint256 temp = value; + uint256 digits; + while (temp != 0) { + digits++; + temp /= 10; + } + bytes memory buffer = new bytes(digits); + while (value != 0) { + digits -= 1; + buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); + value /= 10; + } + return string(buffer); + } +} diff --git a/solc/src/fixtures/withlib/Contract.sol b/solc/src/fixtures/withlib/Contract.sol new file mode 100644 index 0000000000..0b98ae6951 --- /dev/null +++ b/solc/src/fixtures/withlib/Contract.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.0; + +import {BaseContract} from "mylib/BaseContract.sol" + +// Derived contract that inherits from BaseContract +contract DerivedContract is BaseContract { + + // This variable is additional to the one in the BaseContract + string public name; + + constructor(uint256 _value, string memory _name) BaseContract(_value) { + name = _name; + } + + function setName(string memory _name) public { + name = _name; + } +} + diff --git a/solc/src/fixtures/withlib/lib/mylib/BaseContract.sol b/solc/src/fixtures/withlib/lib/mylib/BaseContract.sol new file mode 100644 index 0000000000..01c2238bde --- /dev/null +++ b/solc/src/fixtures/withlib/lib/mylib/BaseContract.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.0; + +// Base contract +contract BaseContract { + uint256 public value; + + constructor(uint256 _value) { + value = _value; + } + + function setValue(uint256 _value) public { + value = _value; + } +} diff --git a/solc/src/fixtures/withremappings/Contract.sol b/solc/src/fixtures/withremappings/Contract.sol new file mode 100644 index 0000000000..0b98ae6951 --- /dev/null +++ b/solc/src/fixtures/withremappings/Contract.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.0; + +import {BaseContract} from "mylib/BaseContract.sol" + +// Derived contract that inherits from BaseContract +contract DerivedContract is BaseContract { + + // This variable is additional to the one in the BaseContract + string public name; + + constructor(uint256 _value, string memory _name) BaseContract(_value) { + name = _name; + } + + function setName(string memory _name) public { + name = _name; + } +} + diff --git a/solc/src/fixtures/withremappings/lib/mylib/BaseContract.sol b/solc/src/fixtures/withremappings/lib/mylib/BaseContract.sol new file mode 100644 index 0000000000..01c2238bde --- /dev/null +++ b/solc/src/fixtures/withremappings/lib/mylib/BaseContract.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: MIT +pragma solidity >0.8.0; + +// Base contract +contract BaseContract { + uint256 public value; + + constructor(uint256 _value) { + value = _value; + } + + function setValue(uint256 _value) public { + value = _value; + } +} diff --git a/solc/src/fixtures/withremappings/remappings.json b/solc/src/fixtures/withremappings/remappings.json new file mode 100644 index 0000000000..bba5bb826a --- /dev/null +++ b/solc/src/fixtures/withremappings/remappings.json @@ -0,0 +1,3 @@ +{ + "bylib": "lib/mylib" +} diff --git a/solc/src/resolveArtifactsSync.spec.ts b/solc/src/resolveArtifactsSync.spec.ts index 8741bb2699..c3679c5ea6 100644 --- a/solc/src/resolveArtifactsSync.spec.ts +++ b/solc/src/resolveArtifactsSync.spec.ts @@ -29,15 +29,6 @@ contract TestContract {}`, code: `import { TestContract } from 'module2' contract TestContract {}`, importedIds: ['module2'], - resolutions: [ - { - id: 'id', - rawCode: 'contract TestContract2 {}', - code: 'contract TestContract2 {}', - importedIds: ['module2'], - resolutions: [], - }, - ], }, } @@ -105,17 +96,6 @@ describe('resolveArtifactsSync', () => { ], "rawCode": "import { TestContract } from 'module2' contract TestContract {}", - "resolutions": [ - { - "code": "contract TestContract2 {}", - "id": "id", - "importedIds": [ - "module2", - ], - "rawCode": "contract TestContract2 {}", - "resolutions": [], - }, - ], }, }, "solcInput": undefined, diff --git a/solc/src/types.ts b/solc/src/types.ts index cca5b39a0d..bd80d6e8bb 100644 --- a/solc/src/types.ts +++ b/solc/src/types.ts @@ -3,6 +3,7 @@ import type { SolcInputDescription, SolcOutput, } from './solcTypes.js' +import type { ModuleInfo } from '@evmts/resolutions' import type { Node } from 'solidity-ast/node.js' export type FileAccessObject = { @@ -17,17 +18,8 @@ export type Logger = { warn: (...message: string[]) => void log: (...message: string[]) => void } -/** - * Copied from rollup (kinda) - * @see https://rollupjs.org/plugin-development/#this-getmoduleinfo - */ -export interface ModuleInfo { - id: string // the id of the module, for convenience - rawCode: string | null // the source code of the module, `null` if external or not yet available - code: string | null // the code after transformed to correctly resolve remappings and node_module imports - importedIds: string[] // the module ids statically imported by this module - resolutions: ModuleInfo[] // how statically imported ids were resolved, for use with this.load -} + +export type { ModuleInfo } export type CompiledContracts = { artifacts: SolcOutput['contracts'][string] | undefined diff --git a/solc/vitest.config.ts b/solc/vitest.config.ts index 82d02d5174..de701fdf03 100644 --- a/solc/vitest.config.ts +++ b/solc/vitest.config.ts @@ -7,10 +7,10 @@ export default defineConfig({ environment: 'node', coverage: { reporter: ['text', 'json-summary', 'json'], - lines: 99.13, - functions: 92.85, - branches: 94.59, - statements: 99.13, + lines: 92.16, + functions: 100, + branches: 75, + statements: 92.16, thresholdAutoUpdate: true, }, }, diff --git a/state/coverage/coverage-final.json b/state/coverage/coverage-final.json index 448deaf978..7f5757eac8 100644 --- a/state/coverage/coverage-final.json +++ b/state/coverage/coverage-final.json @@ -1,2 +1,2 @@ -{"/Users/willcory/evmts-monorepo/state/src/BaseState.ts": {"path":"/Users/willcory/evmts-monorepo/state/src/BaseState.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":32}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":54}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":0}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":35}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":55}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":1}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":0}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":41}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":0}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":3}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":56}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":54}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":34}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":3}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":57}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":3}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":56}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":61}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":49}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":2}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":36}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":3}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":47}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":4}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":28}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":4}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":24}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":0}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":4}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":51}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":40}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":3}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":59}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":4}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":18}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":59}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":10}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":0}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":13}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":71}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":4}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":41}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":62}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":68}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":26}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":22}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":42}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":21}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":45}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":12}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":43}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":6}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":5}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":32}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":5}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":4}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":2}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":0}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":4}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":24}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":26}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":4}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":39}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":5}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":73}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":5}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":29}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":47}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":21}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":18}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":20}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":13}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":38}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":20}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":31}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":24}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":65}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":39}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":13}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":4}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":3}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":5}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":88}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":5}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":19}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":39}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":18}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":18}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":31}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":63}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":37}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":3}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":2}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":1}}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":5,"40":5,"41":5,"42":5,"43":5,"44":5,"45":5,"46":21,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":20,"54":21,"55":5,"56":5,"57":5,"58":5,"59":5,"60":5,"61":5,"62":5,"63":5,"64":5,"65":5,"66":5,"67":5,"68":5,"69":5,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":4,"82":4,"83":4,"84":4,"85":4,"86":4,"87":4,"88":4,"89":4,"90":4,"91":4,"92":5,"93":1},"branchMap":{"0":{"type":"branch","line":8,"loc":{"start":{"line":8,"column":19},"end":{"line":8,"column":41}},"locations":[{"start":{"line":8,"column":19},"end":{"line":8,"column":41}}]},"1":{"type":"branch","line":39,"loc":{"start":{"line":39,"column":1},"end":{"line":57,"column":2}},"locations":[{"start":{"line":39,"column":1},"end":{"line":57,"column":2}}]},"2":{"type":"branch","line":46,"loc":{"start":{"line":46,"column":3},"end":{"line":55,"column":5}},"locations":[{"start":{"line":46,"column":3},"end":{"line":55,"column":5}}]},"3":{"type":"branch","line":47,"loc":{"start":{"line":47,"column":41},"end":{"line":53,"column":5}},"locations":[{"start":{"line":47,"column":41},"end":{"line":53,"column":5}}]},"4":{"type":"branch","line":53,"loc":{"start":{"line":53,"column":4},"end":{"line":54,"column":32}},"locations":[{"start":{"line":53,"column":4},"end":{"line":54,"column":32}}]},"5":{"type":"branch","line":57,"loc":{"start":{"line":57,"column":1},"end":{"line":93,"column":2}},"locations":[{"start":{"line":57,"column":1},"end":{"line":93,"column":2}}]},"6":{"type":"branch","line":63,"loc":{"start":{"line":63,"column":15},"end":{"line":93,"column":2}},"locations":[{"start":{"line":63,"column":15},"end":{"line":93,"column":2}}]},"7":{"type":"branch","line":68,"loc":{"start":{"line":68,"column":17},"end":{"line":68,"column":37}},"locations":[{"start":{"line":68,"column":17},"end":{"line":68,"column":37}}]},"8":{"type":"branch","line":70,"loc":{"start":{"line":70,"column":17},"end":{"line":81,"column":3}},"locations":[{"start":{"line":70,"column":17},"end":{"line":81,"column":3}}]},"9":{"type":"branch","line":81,"loc":{"start":{"line":81,"column":2},"end":{"line":92,"column":3}},"locations":[{"start":{"line":81,"column":2},"end":{"line":92,"column":3}}]},"10":{"type":"branch","line":73,"loc":{"start":{"line":73,"column":23},"end":{"line":78,"column":8}},"locations":[{"start":{"line":73,"column":23},"end":{"line":78,"column":8}}]},"11":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":24},"end":{"line":91,"column":6}},"locations":[{"start":{"line":86,"column":24},"end":{"line":91,"column":6}}]}},"b":{"0":[5],"1":[5],"2":[21],"3":[1],"4":[20],"5":[5],"6":[5],"7":[0],"8":[1],"9":[4],"10":[1],"11":[4]},"fnMap":{"0":{"name":"identityFn","decl":{"start":{"line":8,"column":19},"end":{"line":8,"column":41}},"loc":{"start":{"line":8,"column":19},"end":{"line":8,"column":41}},"line":8},"1":{"name":"BaseState","decl":{"start":{"line":39,"column":1},"end":{"line":57,"column":2}},"loc":{"start":{"line":39,"column":1},"end":{"line":57,"column":2}},"line":39},"2":{"name":"get","decl":{"start":{"line":46,"column":3},"end":{"line":55,"column":5}},"loc":{"start":{"line":46,"column":3},"end":{"line":55,"column":5}},"line":46},"3":{"name":"","decl":{"start":{"line":57,"column":1},"end":{"line":93,"column":2}},"loc":{"start":{"line":57,"column":1},"end":{"line":93,"column":2}},"line":57},"4":{"name":"createStore","decl":{"start":{"line":63,"column":15},"end":{"line":93,"column":2}},"loc":{"start":{"line":63,"column":15},"end":{"line":93,"column":2}},"line":63}},"f":{"0":5,"1":5,"2":21,"3":5,"4":5}} +{"/Users/willcory/evmts-monorepo/state/src/BaseState.ts": {"path":"/Users/willcory/evmts-monorepo/state/src/BaseState.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":32}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":54}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":0}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":35}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":55}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":1}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":0}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":41}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":0}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":3}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":56}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":54}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":34}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":3}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":57}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":3}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":56}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":61}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":49}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":2}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":36}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":3}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":47}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":4}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":28}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":4}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":24}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":0}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":4}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":51}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":40}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":3}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":59}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":4}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":18}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":59}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":10}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":0}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":13}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":71}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":4}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":41}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":62}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":68}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":26}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":22}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":42}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":21}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":45}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":12}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":43}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":6}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":5}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":32}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":5}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":4}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":2}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":0}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":4}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":24}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":26}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":4}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":39}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":5}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":73}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":5}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":29}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":47}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":21}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":18}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":20}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":13}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":38}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":20}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":31}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":24}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":65}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":39}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":13}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":4}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":3}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":5}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":88}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":5}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":19}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":39}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":18}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":18}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":31}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":63}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":37}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":3}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":2}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":1}}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":5,"24":5,"25":5,"26":5,"27":5,"28":5,"29":5,"30":5,"31":5,"32":5,"33":5,"34":5,"35":5,"36":5,"37":5,"38":5,"39":5,"40":5,"41":5,"42":5,"43":5,"44":5,"45":5,"46":21,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":20,"54":21,"55":5,"56":5,"57":5,"58":5,"59":5,"60":5,"61":5,"62":5,"63":5,"64":5,"65":5,"66":5,"67":5,"68":5,"69":5,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":4,"82":4,"83":4,"84":4,"85":4,"86":4,"87":4,"88":4,"89":4,"90":4,"91":4,"92":5,"93":5},"branchMap":{"0":{"type":"branch","line":8,"loc":{"start":{"line":8,"column":19},"end":{"line":8,"column":41}},"locations":[{"start":{"line":8,"column":19},"end":{"line":8,"column":41}}]},"1":{"type":"branch","line":23,"loc":{"start":{"line":23,"column":7},"end":{"line":94,"column":1}},"locations":[{"start":{"line":23,"column":7},"end":{"line":94,"column":1}}]},"2":{"type":"branch","line":39,"loc":{"start":{"line":39,"column":1},"end":{"line":57,"column":2}},"locations":[{"start":{"line":39,"column":1},"end":{"line":57,"column":2}}]},"3":{"type":"branch","line":46,"loc":{"start":{"line":46,"column":3},"end":{"line":55,"column":5}},"locations":[{"start":{"line":46,"column":3},"end":{"line":55,"column":5}}]},"4":{"type":"branch","line":47,"loc":{"start":{"line":47,"column":41},"end":{"line":53,"column":5}},"locations":[{"start":{"line":47,"column":41},"end":{"line":53,"column":5}}]},"5":{"type":"branch","line":53,"loc":{"start":{"line":53,"column":4},"end":{"line":54,"column":32}},"locations":[{"start":{"line":53,"column":4},"end":{"line":54,"column":32}}]},"6":{"type":"branch","line":63,"loc":{"start":{"line":63,"column":15},"end":{"line":93,"column":2}},"locations":[{"start":{"line":63,"column":15},"end":{"line":93,"column":2}}]},"7":{"type":"branch","line":68,"loc":{"start":{"line":68,"column":17},"end":{"line":68,"column":37}},"locations":[{"start":{"line":68,"column":17},"end":{"line":68,"column":37}}]},"8":{"type":"branch","line":70,"loc":{"start":{"line":70,"column":17},"end":{"line":81,"column":3}},"locations":[{"start":{"line":70,"column":17},"end":{"line":81,"column":3}}]},"9":{"type":"branch","line":81,"loc":{"start":{"line":81,"column":2},"end":{"line":92,"column":3}},"locations":[{"start":{"line":81,"column":2},"end":{"line":92,"column":3}}]},"10":{"type":"branch","line":73,"loc":{"start":{"line":73,"column":23},"end":{"line":78,"column":8}},"locations":[{"start":{"line":73,"column":23},"end":{"line":78,"column":8}}]},"11":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":24},"end":{"line":91,"column":6}},"locations":[{"start":{"line":86,"column":24},"end":{"line":91,"column":6}}]}},"b":{"0":[5],"1":[5],"2":[5],"3":[21],"4":[1],"5":[20],"6":[5],"7":[0],"8":[1],"9":[4],"10":[1],"11":[4]},"fnMap":{"0":{"name":"identityFn","decl":{"start":{"line":8,"column":19},"end":{"line":8,"column":41}},"loc":{"start":{"line":8,"column":19},"end":{"line":8,"column":41}},"line":8},"1":{"name":"","decl":{"start":{"line":23,"column":7},"end":{"line":94,"column":1}},"loc":{"start":{"line":23,"column":7},"end":{"line":94,"column":1}},"line":23},"2":{"name":"BaseState","decl":{"start":{"line":39,"column":1},"end":{"line":57,"column":2}},"loc":{"start":{"line":39,"column":1},"end":{"line":57,"column":2}},"line":39},"3":{"name":"get","decl":{"start":{"line":46,"column":3},"end":{"line":55,"column":5}},"loc":{"start":{"line":46,"column":3},"end":{"line":55,"column":5}},"line":46},"4":{"name":"createStore","decl":{"start":{"line":63,"column":15},"end":{"line":93,"column":2}},"loc":{"start":{"line":63,"column":15},"end":{"line":93,"column":2}},"line":63}},"f":{"0":5,"1":5,"2":5,"3":21,"4":5}} } diff --git a/state/types/AppState.d.ts b/state/types/AppState.d.ts index 8b9c7b3f4c..febabc1633 100644 --- a/state/types/AppState.d.ts +++ b/state/types/AppState.d.ts @@ -13,3 +13,4 @@ export declare class AppState extends BaseState { */ readonly setCount: (count: number) => void; } +//# sourceMappingURL=AppState.d.ts.map \ No newline at end of file diff --git a/state/types/BaseState.d.ts b/state/types/BaseState.d.ts index 4c4e432f41..14efe8179d 100644 --- a/state/types/BaseState.d.ts +++ b/state/types/BaseState.d.ts @@ -31,3 +31,4 @@ export declare abstract class BaseState { */ createStore: (enableDev?: boolean) => import("zustand").UseBoundStore>; } +//# sourceMappingURL=BaseState.d.ts.map \ No newline at end of file diff --git a/state/types/BaseState.spec.d.ts b/state/types/BaseState.spec.d.ts index cb0ff5c3b5..300617ac7e 100644 --- a/state/types/BaseState.spec.d.ts +++ b/state/types/BaseState.spec.d.ts @@ -1 +1,2 @@ export {}; +//# sourceMappingURL=BaseState.spec.d.ts.map \ No newline at end of file diff --git a/state/types/index.d.ts b/state/types/index.d.ts index 9bd4a61a3b..b284d5b194 100644 --- a/state/types/index.d.ts +++ b/state/types/index.d.ts @@ -1,2 +1,3 @@ export * from "./AppState.js"; export * from "./BaseState.js"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/ts-plugin/package.json b/ts-plugin/package.json index 88184bcab0..19208f687a 100644 --- a/ts-plugin/package.json +++ b/ts-plugin/package.json @@ -57,7 +57,7 @@ }, "dependencies": { "@evmts/bundler": "workspace:^", - "effect": "^2.0.0-next.50", + "effect": "^2.0.0-next.52", "esbuild": "0.19.4", "glob": "^10.3.10", "solidity-ast": "^0.4.52", diff --git a/viem-effect/package.json b/viem-effect/package.json index 790e1ffcb7..cee75b4929 100644 --- a/viem-effect/package.json +++ b/viem-effect/package.json @@ -117,14 +117,14 @@ }, "dependencies": { "@adraffy/ens-normalize": "1.9.4", - "@effect/schema": "^0.45.5", + "@effect/schema": "^0.46.2", "@noble/curves": "1.2.0", "@noble/hashes": "1.3.2", "@scure/bip32": "1.3.2", "@scure/bip39": "1.2.1", "@types/glob": "^8.1.0", "abitype": "0.9.8", - "effect": "2.0.0-next.50", + "effect": "^2.0.0-next.52", "isows": "1.0.3", "ws": "8.13.0" },