From a9c89c9e9c8013b71f89c43aa8c124a766bedb47 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Tue, 7 Apr 2026 16:59:25 +0100 Subject: [PATCH 1/6] update repo structure --- .github/workflows/release.yml | 8 +- .github/workflows/smart-contracts.yml | 13 +- .github/workflows/typescript.yml | 26 +- .gitmodules | 3 - README.md | 15 +- packages/cli/biome.json => biome.json | 0 helper-scripts | 1 - package.json | 15 +- packages/cli/package.json | 2 +- packages/cli/src/index.ts | 2 +- packages/cli/tsconfig.json | 16 +- packages/core/abi/SmartClaws.json | 2 +- packages/core/abi/SmartClawsAgent.json | 2 +- packages/core/abi/SmartClawsChannel.json | 2 +- packages/core/abi/SmartClawsDevice.json | 2 +- packages/core/abi/SmartClawsDeviceGroup.json | 2 +- packages/core/biome.json | 18 - packages/core/package.json | 2 +- packages/core/tsconfig.json | 8 +- packages/dashboard/biome.json | 18 - packages/dashboard/package.json | 2 +- packages/dashboard/tsconfig.json | 6 +- python/pyproject.toml | 2 +- .../scripts/{publish.py => ble_publisher.py} | 0 scripts/anvil.sh | 14 + scripts/version-bump.mjs | 32 + scripts/version-check.mjs | 34 + skills/smartclaws-producer/SKILL.md | 15 +- skills/smartclaws-reader/SKILL.md | 15 +- smart-contracts/hardhat.config.ts | 18 +- smart-contracts/package-lock.json | 5269 ----------------- smart-contracts/package.json | 7 +- smart-contracts/tsconfig.json | 7 +- tsconfig.base.json | 9 + 34 files changed, 195 insertions(+), 5392 deletions(-) delete mode 100644 .gitmodules rename packages/cli/biome.json => biome.json (100%) delete mode 160000 helper-scripts delete mode 100644 packages/core/biome.json delete mode 100644 packages/dashboard/biome.json rename python/scripts/{publish.py => ble_publisher.py} (100%) create mode 100755 scripts/anvil.sh create mode 100644 scripts/version-bump.mjs create mode 100644 scripts/version-check.mjs delete mode 100644 smart-contracts/package-lock.json create mode 100644 tsconfig.base.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6cc333a..2e7a769 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,6 +1,8 @@ name: Release -on: push +on: + push: + branches: [main] permissions: contents: write @@ -22,7 +24,7 @@ jobs: - name: Compute release metadata id: meta run: | - VERSION=$(jq -r .version packages/cli/package.json) + VERSION=$(jq -r .version package.json) BRANCH="${GITHUB_REF_NAME}" # Count previous releases matching this version-branch pattern @@ -51,8 +53,6 @@ jobs: include: - target: bun-darwin-arm64 platform: darwin-arm64 - - target: bun-darwin-x64 - platform: darwin-x86_64 - target: bun-linux-x64 platform: linux-x86_64 - target: bun-linux-arm64 diff --git a/.github/workflows/smart-contracts.yml b/.github/workflows/smart-contracts.yml index 450ca6c..5727451 100644 --- a/.github/workflows/smart-contracts.yml +++ b/.github/workflows/smart-contracts.yml @@ -21,17 +21,16 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 22 + - uses: oven-sh/setup-bun@v2 - - run: npm ci + - name: Install dependencies + run: bun install - name: Compile contracts - run: npx hardhat compile + run: bunx hardhat compile - name: Lint Solidity - run: npx solhint 'contracts/**/*.sol' + run: bunx solhint 'contracts/**/*.sol' - name: Run tests - run: npx hardhat test + run: bunx hardhat test diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index 5342818..fea8f2b 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -19,29 +19,17 @@ jobs: steps: - uses: actions/checkout@v4 - with: - submodules: true - - - uses: actions/setup-node@v4 - with: - node-version: 22 - uses: oven-sh/setup-bun@v2 - - name: Install contract deps - working-directory: smart-contracts - run: npm ci - - - name: Compile contracts - working-directory: smart-contracts - run: npx hardhat compile + - name: Install dependencies + run: bun install - - name: Export ABIs - working-directory: smart-contracts - run: bash scripts/export-abi.sh + - name: Check version sync + run: bun run version:check - - name: Install workspace deps - run: bun install + - name: Compile contracts & export ABIs + run: bun run export-abi - name: Lint working-directory: packages/cli @@ -60,7 +48,7 @@ jobs: run: bun run test:unit - name: Start anvil - run: bash helper-scripts/helper.sh run_anvil + run: bash scripts/anvil.sh - name: Integration tests working-directory: packages/cli diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 09c9a62..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "helper-scripts"] - path = helper-scripts - url = https://github.com/skalenetwork/helper-scripts.git diff --git a/README.md b/README.md index eda9158..959f894 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,20 @@ Publish and read IoT sensor data on the [SKALE](https://skale.space) blockchain. ```bash # Install the CLI -PLATFORM="$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/aarch64/arm64/')" +OS="$(uname -s | tr '[:upper:]' '[:lower:]')" +ARCH="$(uname -m)" + +# On Apple Silicon, Rosetta shells can report x86_64. Prefer real hardware arch. +if [ "$OS" = "darwin" ] && [ "$(sysctl -n hw.optional.arm64 2>/dev/null || echo 0)" = "1" ]; then + ARCH="arm64" +fi + +case "$ARCH" in + aarch64|arm64) ARCH="arm64" ;; + x86_64|amd64) ARCH="x86_64" ;; +esac + +PLATFORM="${OS}-${ARCH}" curl -fL -o /usr/local/bin/smartclaws \ "https://github.com/skalenetwork/smartclaws/releases/latest/download/smartclaws-${PLATFORM}" chmod +x /usr/local/bin/smartclaws diff --git a/packages/cli/biome.json b/biome.json similarity index 100% rename from packages/cli/biome.json rename to biome.json diff --git a/helper-scripts b/helper-scripts deleted file mode 160000 index 13ec345..0000000 --- a/helper-scripts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 13ec34577827d59622fdcc7b160e54a3dbae293c diff --git a/package.json b/package.json index aad9ea8..288b518 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,17 @@ { "private": true, - "workspaces": ["packages/*"] + "version": "0.3.0", + "workspaces": ["packages/*", "smart-contracts"], + "scripts": { + "compile": "cd smart-contracts && bunx hardhat compile", + "export-abi": "cd smart-contracts && bunx hardhat compile && bash scripts/export-abi.sh", + "test:contracts": "cd smart-contracts && bunx hardhat test", + "test:cli": "cd packages/cli && bun test", + "lint": "biome check packages/cli/src/ && biome check packages/dashboard/src/", + "build:cli": "cd packages/cli && bun run build", + "build:dashboard": "cd packages/dashboard && bun run build", + "dev:dashboard": "cd packages/dashboard && bun run dev", + "version:check": "node scripts/version-check.mjs", + "version:bump": "node scripts/version-bump.mjs" + } } diff --git a/packages/cli/package.json b/packages/cli/package.json index 0d017fb..76b14a2 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@smartclaws/cli", - "version": "0.2.0", + "version": "0.3.0", "type": "module", "license": "LGPL-3.0-or-later", "scripts": { diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index ef62f9e..b0f7d5f 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -1,5 +1,5 @@ import { program } from "commander"; -import pkg from "../package.json" with { type: "json" }; +import pkg from "../../../package.json" with { type: "json" }; import { deviceCommand } from "./commands/device.ts"; import { initCommand } from "./commands/init.ts"; import { publishCommand } from "./commands/publish.ts"; diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index d3d9cfa..bdbf4dc 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -1,20 +1,12 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "target": "ES2022", "module": "NodeNext", "moduleResolution": "NodeNext", - "types": [ - "bun" - ], - "strict": true, - "skipLibCheck": true, + "types": ["bun"], "esModuleInterop": true, "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "allowImportingTsExtensions": true, - "noEmit": true + "allowImportingTsExtensions": true }, - "include": [ - "src" - ] + "include": ["src"] } \ No newline at end of file diff --git a/packages/core/abi/SmartClaws.json b/packages/core/abi/SmartClaws.json index dbfcb4a..eeddd76 100644 --- a/packages/core/abi/SmartClaws.json +++ b/packages/core/abi/SmartClaws.json @@ -435,5 +435,5 @@ "type": "function" } ], - "bytecode": "0x6080604052348015600e575f5ffd5b506154698061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c8063abf34d3411610093578063da6b03bc11610063578063da6b03bc146101d8578063e21b38d2146101eb578063e234d141146101fe578063eac3fda414610211575f5ffd5b8063abf34d341461018a578063aca30a2b14610192578063bb510a77146101a5578063c21b8c61146101d0575f5ffd5b8063339adfc1116100ce578063339adfc1146101475780633826b9bc1461015a57806391cab63e1461016d5780639575f6ac14610175575f5ffd5b80630adea754146100f45780630eb8fe7a1461011c578063248cfa0614610132575b5f5ffd5b610107610102366004610c46565b610219565b60405190151581526020015b60405180910390f35b61012461022a565b604051908152602001610113565b610145610140366004610c46565b610239565b005b610107610155366004610c46565b6103b1565b610145610168366004610c46565b6103bd565b6101246105dd565b61017d6105e8565b6040516101139190610c61565b61017d6105f3565b6101456101a0366004610c46565b6105ff565b6101b86101b3366004610cac565b610770565b6040516001600160a01b039091168152602001610113565b610124610812565b6101b86101e6366004610d1b565b61081d565b6101076101f9366004610c46565b61096d565b6101b861020c366004610d8e565b610979565b61017d610a13565b5f6102248183610a1f565b92915050565b5f6102345f610a43565b905090565b610244600282610a1f565b61027157604051633380e54b60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b5f819050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d59190610dfa565b6001600160a01b0316336001600160a01b03161461031757604051638c7aa36d60e01b81526001600160a01b0383166004820152336024820152604401610268565b806001600160a01b03166351b42b006040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561034f575f5ffd5b505af1158015610361573d5f5f3e3d5ffd5b50505050610379826002610a4c90919063ffffffff16565b506040516001600160a01b038316907f12424993dff0cf586ab1b4f4d33eae51852b25c9738d91aa2d625134b874497a905f90a25050565b5f610224600283610a1f565b6103c8600482610a1f565b6103f057604051633f0f01a960e11b81526001600160a01b0382166004820152602401610268565b5f819050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610430573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104549190610dfa565b6001600160a01b0316336001600160a01b03161461049657604051631c31ad3b60e21b81526001600160a01b0383166004820152336024820152604401610268565b806001600160a01b031663d106542b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f69190610dfa565b6001600160a01b0316632a20d66b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561052d575f5ffd5b505af115801561053f573d5f5f3e3d5ffd5b50505050806001600160a01b03166351b42b006040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561057b575f5ffd5b505af115801561058d573d5f5f3e3d5ffd5b505050506105a5826004610a4c90919063ffffffff16565b506040516001600160a01b038316907f3e085cc53b86c19e2e6dba628297af6b8f76c89d1384dbcc599bab2adfd62d08905f90a25050565b5f6102346004610a43565b60606102345f610a60565b60606102346002610a60565b6106095f82610a1f565b610631576040516362c72c2960e01b81526001600160a01b0382166004820152602401610268565b5f819050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610671573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106959190610dfa565b6001600160a01b0316336001600160a01b0316146106d7576040516305bfb0e160e11b81526001600160a01b0383166004820152336024820152604401610268565b806001600160a01b0316632a20d66b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561070f575f5ffd5b505af1158015610721573d5f5f3e3d5ffd5b50505050610738825f610a4c90919063ffffffff16565b506040516001600160a01b038316907f10812805591e289329d04bb0d7d88280e1db08894b6f4a0d9d4458eed9a50e4f905f90a25050565b5f5f83833060405161078190610c08565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff0801580156107ba573d5f5f3e3d5ffd5b5091508190506107ca5f82610a6c565b50836001600160a01b0316826001600160a01b03167f1d61294d5274ecaf47976300afbb3b7c0cc41dc69ec6c8889658e3d34fa6ce2b60405160405180910390a35092915050565b5f6102346002610a43565b5f5f33833060405161082e90610c08565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff080158015610867573d5f5f3e3d5ffd5b5090505f33843060405161087a90610c08565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff0801580156108b3573d5f5f3e3d5ffd5b5090505f338383306040516108c790610c15565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff080158015610908573d5f5f3e3d5ffd5b509350839050610919600482610a6c565b50836001600160a01b03167f37b3aaf4f807403887412a5994aa1832eface4a8c15501a3311bf21d3279ea3f8a8a8a8a6040516109599493929190610e3d565b60405180910390a250505095945050505050565b5f610224600483610a1f565b5f5f33868686863060405161098d90610c22565b61099c96959493929190610e6e565b604051809103905ff0801580156109b5573d5f5f3e3d5ffd5b5091508190506109c6600282610a6c565b50816001600160a01b03167ff74e41ddfe8be4892fd32a44e184fb47198d3396b764801f2e346737c4c2bacd8787604051610a02929190610ec1565b60405180910390a250949350505050565b60606102346004610a60565b6001600160a01b0381165f90815260018301602052604081205415155b9392505050565b5f610224825490565b5f610a3c836001600160a01b038416610a80565b60605f610a3c83610b63565b5f610a3c836001600160a01b038416610bbc565b5f8181526001830160205260408120548015610b5a575f610aa2600183610edc565b85549091505f90610ab590600190610edc565b9050808214610b14575f865f018281548110610ad357610ad3610efb565b905f5260205f200154905080875f018481548110610af357610af3610efb565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610b2557610b25610f0f565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610224565b5f915050610224565b6060815f01805480602002602001604051908101604052809291908181526020018280548015610bb057602002820191905f5260205f20905b815481526020019060010190808311610b9c575b50505050509050919050565b5f818152600183016020526040812054610c0157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610224565b505f610224565b6114d480610f2483390190565b610830806123f883390190565b61280c80612c2883390190565b6001600160a01b0381168114610c43575f5ffd5b50565b5f60208284031215610c56575f5ffd5b8135610a3c81610c2f565b602080825282518282018190525f918401906040840190835b81811015610ca15783516001600160a01b0316835260209384019390920191600101610c7a565b509095945050505050565b5f5f60408385031215610cbd575f5ffd5b8235610cc881610c2f565b946020939093013593505050565b5f5f83601f840112610ce6575f5ffd5b50813567ffffffffffffffff811115610cfd575f5ffd5b602083019150836020828501011115610d14575f5ffd5b9250929050565b5f5f5f5f5f60608688031215610d2f575f5ffd5b853567ffffffffffffffff811115610d45575f5ffd5b610d5188828901610cd6565b909650945050602086013567ffffffffffffffff811115610d70575f5ffd5b610d7c88828901610cd6565b96999598509660400135949350505050565b5f5f5f5f60408587031215610da1575f5ffd5b843567ffffffffffffffff811115610db7575f5ffd5b610dc387828801610cd6565b909550935050602085013567ffffffffffffffff811115610de2575f5ffd5b610dee87828801610cd6565b95989497509550505050565b5f60208284031215610e0a575f5ffd5b8151610a3c81610c2f565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b604081525f610e50604083018688610e15565b8281036020840152610e63818587610e15565b979650505050505050565b6001600160a01b03871681526080602082018190525f90610e929083018789610e15565b8281036040840152610ea5818688610e15565b91505060018060a01b0383166060830152979650505050505050565b602081525f610ed4602083018486610e15565b949350505050565b8181038181111561022457634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfe60c06040526005805460ff1916600117905534801561001c575f5ffd5b506040516114d43803806114d483398101604081905261003b91610155565b826001600160a01b03811661006957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610072816100cf565b506001600160a01b03811661009a57604051634a100d5960e01b815260040160405180910390fd5b815f036100ba576040516302f2d9e160e21b815260040160405180910390fd5b6001600160a01b031660805260a0525061018e565b600180546001600160a01b03191690556100e8816100eb565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610150575f5ffd5b919050565b5f5f5f60608486031215610167575f5ffd5b6101708461013a565b9250602084015191506101856040850161013a565b90509250925092565b60805160a0516113026101d25f395f81816101dd01528181610281015281816107dc01528181610818015261084601525f818161020c015261038501526113025ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637b103999116100bf578063b0b578cd11610079578063b0b578cd146102b8578063ce29e0af146102c0578063cf8ab76b146102d3578063e30c3978146102f4578063e8b348a014610305578063f2fde38b14610318575f5ffd5b80637b103999146102075780638da5cb5b146102465780639ba7da9214610256578063a7d270561461025f578063adc4e1d91461027f578063ae61c5ae146102a5575f5ffd5b80634c7f807d116101105780634c7f807d1461019f5780636c6071aa146101a8578063715018a6146101bd578063763f323d146101c55780637924294e146101d857806379ba5097146101ff575f5ffd5b80632929883d1461014c5780632a20d66b1461016757806331933916146101715780633212dd70146101795780633ef1fc3614610196575b5f5ffd5b61015461032b565b6040519081526020015b60405180910390f35b61016f610365565b005b610154610407565b6005546101869060ff1681565b604051901515815260200161015e565b61015460045481565b61015460025481565b6101b061042d565b60405161015e9190610f0c565b61016f610439565b61016f6101d3366004610f57565b61044a565b6101547f000000000000000000000000000000000000000000000000000000000000000081565b61016f610501565b61022e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015e565b5f546001600160a01b031661022e565b61015460035481565b61027261026d366004610f7d565b610545565b60405161015e9190610fd7565b7f0000000000000000000000000000000000000000000000000000000000000000610154565b61016f6102b3366004610f57565b610662565b610154610714565b61016f6102ce366004610fe9565b610756565b6102e66102e1366004611057565b610966565b60405161015e929190611077565b6001546001600160a01b031661022e565b610186610313366004610f57565b610bb3565b61016f610326366004610f57565b610bdb565b5f6004545f1480610340575060035460045411155b1561035e576040516324f9528560e11b815260040160405180910390fd5b5060035490565b5f546001600160a01b031633148015906103a85750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156103c5576040516282b42960e81b815260040160405180910390fd5b60055460ff1615610405576005805460ff1916905560405130907f9dadce7d1fbc48896c5ad91bd8a16a125e4170bd2a6c7dc06799659b5cc2e99c905f90a25b565b5f6003546004541161041857505f90565b600354600454610428919061112c565b905090565b60606104286008610c4b565b610441610c5e565b6104055f610c8a565b610452610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b03160361048e576040516301f4baf360e11b815260040160405180910390fd5b5f61049a600883610ca3565b9050806104ca57604051632d8c876360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6040516001600160a01b038316907f466d40d3c5afb07f32aa87fa68d587f144c6fee2dfb883b3363937d5427e0442905f90a25050565b60015433906001600160a01b031681146105395760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c1565b61054281610c8a565b50565b60606004545f03610569576040516324f9528560e11b815260040160405180910390fd5b600454821061059657600480546040516377ca6c2160e11b815291820184905260248201526044016104c1565b6003548210156105c757600354604051631f288e2560e31b81526104c1918491600401918252602082015260400190565b5f82815260066020526040902080546105df9061113f565b80601f016020809104026020016040519081016040528092919081815260200182805461060b9061113f565b80156106565780601f1061062d57610100808354040283529160200191610656565b820191905f5260205f20905b81548152906001019060200180831161063957829003601f168201915b50505050509050919050565b61066a610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b0316036106a6576040516301f4baf360e11b815260040160405180910390fd5b5f6106b2600883610cb7565b9050806106dd57604051636a96952f60e01b81526001600160a01b03831660048201526024016104c1565b6040516001600160a01b038316907f215ef528757ca84646fb5c401012a31bcbf1f99487a51e57a57a0c0afa0d3dd2905f90a25050565b5f6004545f1480610729575060035460045411155b15610747576040516324f9528560e11b815260040160405180910390fd5b6001600454610428919061112c565b60055460ff16610779576040516390f5d9a760e01b815260040160405180910390fd5b5f546001600160a01b0316331480159061079b5750610799600833610ccb565b155b156107b8576040516282b42960e81b815260040160405180910390fd5b805f8190036107da57604051630b8fc7cd60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108445760405163116bd21f60e21b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016104c1565b7f0000000000000000000000000000000000000000000000000000000000000000816002546108739190611177565b1180156108835750600454600354105b156108e85760075f60035481526020019081526020015f205460025f8282546108ac919061112c565b90915550506003545f9081526006602052604081206108ca91610ec2565b600380545f9081526007602052604081205580546001019055610844565b6004545f8181526006602052604090206109038486836111ea565b505f81815260076020526040812083905560028054849290610926908490611177565b9091555050600480546001019055604051819030907fa2a2541c43b1972c43c639076a3bef6240e27c11817c7b20a4caab0db3e4f697905f90a350505050565b6060806004545f0361098b576040516324f9528560e11b815260040160405180910390fd5b6003548410156109bc57600354604051631f288e2560e31b81526104c1918691600401918252602082015260400190565b60045484106109e957600480546040516377ca6c2160e11b815291820186905260248201526044016104c1565b5f846004546109f8919061112c565b905080841115610a255760405163bb1cb70b60e01b815260048101859052602481018290526044016104c1565b8367ffffffffffffffff811115610a3e57610a3e61118a565b604051908082528060200260200182016040528015610a7157816020015b6060815260200190600190039081610a5c5790505b5092508367ffffffffffffffff811115610a8d57610a8d61118a565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b5091505f5b84811015610baa575f610ace8288611177565b5f818152600660205260409020805491925090610aea9061113f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b169061113f565b8015610b615780601f10610b3857610100808354040283529160200191610b61565b820191905f5260205f20905b815481529060010190602001808311610b4457829003601f168201915b5050505050858381518110610b7857610b786112a4565b602002602001018190525080848381518110610b9657610b966112a4565b602090810291909101015250600101610abb565b50509250929050565b5f80546001600160a01b0383811691161480610bd55750610bd5600883610ccb565b92915050565b610be3610c5e565b600180546001600160a01b0383166001600160a01b03199091168117909155610c135f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60605f610c5783610cec565b9392505050565b5f546001600160a01b031633146104055760405163118cdaa760e01b81523360048201526024016104c1565b600180546001600160a01b031916905561054281610d44565b5f610c57836001600160a01b038416610d93565b5f610c57836001600160a01b038416610ddf565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561065657602002820191905f5260205f20905b815481526020019060010190808311610d255750505050509050919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818152600183016020526040812054610dd857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610bd5565b505f610bd5565b5f8181526001830160205260408120548015610eb9575f610e0160018361112c565b85549091505f90610e149060019061112c565b9050808214610e73575f865f018281548110610e3257610e326112a4565b905f5260205f200154905080875f018481548110610e5257610e526112a4565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610e8457610e846112b8565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610bd5565b5f915050610bd5565b508054610ece9061113f565b5f825580601f10610edd575050565b601f0160209004905f5260205f209081019061054291905b80821115610f08575f8155600101610ef5565b5090565b602080825282518282018190525f918401906040840190835b81811015610f4c5783516001600160a01b0316835260209384019390920191600101610f25565b509095945050505050565b5f60208284031215610f67575f5ffd5b81356001600160a01b0381168114610c57575f5ffd5b5f60208284031215610f8d575f5ffd5b5035919050565b5f81518084525f5b81811015610fb857602081850181015186830182015201610f9c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610c576020830184610f94565b5f5f60208385031215610ffa575f5ffd5b823567ffffffffffffffff811115611010575f5ffd5b8301601f81018513611020575f5ffd5b803567ffffffffffffffff811115611036575f5ffd5b856020828401011115611047575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611068575f5ffd5b50508035926020909101359150565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b828110156110ce57605f198786030184526110b9858351610f94565b9450602093840193919091019060010161109d565b5050505082810360208401528084518083526020830191506020860192505f5b8181101561110c5783518352602093840193909201916001016110ee565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd557610bd5611118565b600181811c9082168061115357607f821691505b60208210810361117157634e487b7160e01b5f52602260045260245ffd5b50919050565b80820180821115610bd557610bd5611118565b634e487b7160e01b5f52604160045260245ffd5b601f8211156111e557805f5260205f20601f840160051c810160208510156111c35750805b601f840160051c820191505b818110156111e2575f81556001016111cf565b50505b505050565b67ffffffffffffffff8311156112025761120261118a565b61121683611210835461113f565b8361119e565b5f601f841160018114611247575f85156112305750838201355b5f19600387901b1c1916600186901b1783556111e2565b5f83815260208120601f198716915b828110156112765786850135825560209485019460019092019101611256565b5086821015611292575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220529a0aa1554bed0205b03663020c41541f7929176c3ddd5a3f6f7e5954cd007264736f6c634300081c003360e06040526001805460ff60a01b1916600160a01b179055348015610022575f5ffd5b506040516108303803806108308339810160408190526100419161022d565b836001600160a01b03811661007057604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610079816100e7565b506001600160a01b038316158061009757506001600160a01b038216155b806100a957506001600160a01b038116155b156100c957604051631e4fbdf760e01b81525f6004820152602401610067565b6001600160a01b0392831660a05290821660c052166080525061027e565b6100f0816101a7565b60a05160405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b906024015f604051808303815f87803b158015610134575f5ffd5b505af1158015610146573d5f5f3e3d5ffd5b505060c05160405163f2fde38b60e01b81526001600160a01b038581166004830152909116925063f2fde38b91506024015f604051808303815f87803b15801561018e575f5ffd5b505af11580156101a0573d5f5f3e3d5ffd5b5050505050565b600180546001600160a01b03191690556101c0816101c3565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610228575f5ffd5b919050565b5f5f5f5f60808587031215610240575f5ffd5b61024985610212565b935061025760208601610212565b925061026560408601610212565b915061027360608601610212565b905092959194509250565b60805160a05160c0516105666102ca5f395f818160ed01528181610196015261044401525f8181610170015281816101e301526103d001525f818161013c015261021001526105665ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80638da5cb5b1161006e5780638da5cb5b1461015e578063b61db0841461016e578063d106542b14610194578063e30c3978146101ba578063f2fde38b146101cb578063f5bae629146101de575f5ffd5b806302fb0c5e146100b557806351b42b00146100de57806367055564146100e8578063715018a61461012757806379ba50971461012f5780637b10399914610137575b5f5ffd5b6001546100c990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6100e6610205565b005b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d5565b6100e66102b0565b6100e66102c3565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661010f565b7f000000000000000000000000000000000000000000000000000000000000000061010f565b7f000000000000000000000000000000000000000000000000000000000000000061010f565b6001546001600160a01b031661010f565b6100e66101d9366004610503565b61030c565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461024d576040516282b42960e81b815260040160405180910390fd5b600154600160a01b900460ff166102775760405163232990cb60e01b815260040160405180910390fd5b6001805460ff60a01b1916905560405130907fa58c733780f5c1527d6106ff1e731cbf2e9ffc0eb11ad399ca33ea55f057ddf4905f90a2565b6102b861037c565b6102c15f6103a8565b565b60015433906001600160a01b031681146103005760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b610309816103a8565b50565b61031461037c565b600180546001600160a01b0383166001600160a01b031990911681179091556103445f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b031633146102c15760405163118cdaa760e01b81523360048201526024016102f7565b6103b1816104a0565b60405163f2fde38b60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b906024015f604051808303815f87803b158015610411575f5ffd5b505af1158015610423573d5f5f3e3d5ffd5b505060405163f2fde38b60e01b81526001600160a01b0384811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063f2fde38b91506024015f604051808303815f87803b158015610487575f5ffd5b505af1158015610499573d5f5f3e3d5ffd5b5050505050565b600180546001600160a01b0319169055610309815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610513575f5ffd5b81356001600160a01b0381168114610529575f5ffd5b939250505056fea264697066735822122009a66e90c44b94249f2291617a50d405bc7ab9840584bec8b20e1e007744c28364736f6c634300081c003360a06040526004805460ff1916600117905534801561001c575f5ffd5b5060405161280c38038061280c83398101604081905261003b91610204565b836001600160a01b03811661006a57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610073816100cc565b506001600160a01b03811661009d57604051631e4fbdf760e01b81525f6004820152602401610061565b60026100a9848261030e565b5060036100b6838261030e565b506001600160a01b0316608052506103c8915050565b600180546001600160a01b03191690556100e5816100e8565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461014d575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610175575f5ffd5b81516001600160401b0381111561018e5761018e610152565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101bc576101bc610152565b6040528181528382016020018510156101d3575f5ffd5b5f5b828110156101f1576020818601810151838301820152016101d5565b505f918101602001919091529392505050565b5f5f5f5f60808587031215610217575f5ffd5b61022085610137565b60208601519094506001600160401b0381111561023b575f5ffd5b61024787828801610166565b604087015190945090506001600160401b03811115610264575f5ffd5b61027087828801610166565b92505061027f60608601610137565b905092959194509250565b600181811c9082168061029e57607f821691505b6020821081036102bc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561030957805f5260205f20601f840160051c810160208510156102e75750805b601f840160051c820191505b81811015610306575f81556001016102f3565b50505b505050565b81516001600160401b0381111561032757610327610152565b61033b81610335845461028a565b846102c2565b6020601f82116001811461036d575f83156103565750848201515b5f19600385901b1c1916600184901b178455610306565b5f84815260208120601f198516915b8281101561039c578785015182556020948501946001909201910161037c565b50848210156103b957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6080516124176103f55f395f8181610244015281816104c0015281816105fb015261066701526124175ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c8063783cec80116100935780639a06d92e116100635780639a06d92e1461028e578063d611d6c8146102a1578063e30c3978146102b6578063f2fde38b146102c7575f5ffd5b8063783cec801461022f57806379ba5097146102375780637b1039991461023f5780638da5cb5b1461027e575f5ffd5b80633b7fdb73116100ce5780633b7fdb731461013c5780634869fe261461015157806351b42b001461021f578063715018a614610227575f5ffd5b806302fb0c5e146100f4578063220e81621461011657806337a0701a1461012b575b5f5ffd5b6004546101019060ff1681565b60405190151581526020015b60405180910390f35b610129610124366004610a39565b6102da565b005b60065460405190815260200161010d565b610144610429565b60405161010d9190610a59565b6101d961015f366004610a39565b60408051608080820183525f808352602080840182905283850182905260609384018290526001600160a01b039586168252600581529084902084519283018552805460ff811615158452610100900486169183019190915260018101548516938201939093526002909201549092169181019190915290565b60405161010d91908151151581526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b6101296104b5565b61012961053f565b610144610550565b61012961055d565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161010d565b5f546001600160a01b0316610266565b61026661029c366004610aa4565b6105a1565b6102a96108a5565b60405161010d9190610b28565b6001546001600160a01b0316610266565b6101296102d5366004610a39565b610905565b6102e2610975565b6001600160a01b0381165f908152600560205260409020805460ff1661032a576040516282d79d60e41b81526001600160a01b03831660048201526024015b60405180910390fd5b60028101548154604051635730e2d760e11b81526001600160a01b036101009092048216600482015291169063ae61c5ae906024015f604051808303815f87803b158015610376575f5ffd5b505af1158015610388573d5f5f3e3d5ffd5b5050505060018101548154604051635730e2d760e11b81526001600160a01b036101009092048216600482015291169063ae61c5ae906024015f604051808303815f87803b1580156103d8575f5ffd5b505af19250505080156103e9575060015b50805460ff191681556040516001600160a01b038316907f8b5dde107afbe1f827425373a7c474984b5479bf4889612cf11598c00a2ec58a905f90a25050565b6003805461043690610b73565b80601f016020809104026020016040519081016040528092919081815260200182805461046290610b73565b80156104ad5780601f10610484576101008083540402835291602001916104ad565b820191905f5260205f20905b81548152906001019060200180831161049057829003601f168201915b505050505081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104fd576040516282b42960e81b815260040160405180910390fd5b60045460ff161561053d576004805460ff1916905560405130907f1820619d110aba86833e84536b2ba04234f5cb9e87d61baf7846f14398bcfeee905f90a25b565b610547610975565b61053d5f6109a1565b6002805461043690610b73565b60015433906001600160a01b031681146105955760405163118cdaa760e01b81526001600160a01b0382166004820152602401610321565b61059e816109a1565b50565b5f6105aa610975565b60045460ff166105cd5760405163e8431ca760e01b815260040160405180910390fd5b6001600160a01b0383166105f657604051631e4fbdf760e01b81525f6004820152602401610321565b5f30837f000000000000000000000000000000000000000000000000000000000000000060405161062690610a04565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff08015801561065f573d5f5f3e3d5ffd5b5090505f30847f000000000000000000000000000000000000000000000000000000000000000060405161069290610a04565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff0801580156106cb573d5f5f3e3d5ffd5b5060405163763f323d60e01b81526001600160a01b0387811660048301529192509082169063763f323d906024015f604051808303815f87803b158015610710575f5ffd5b505af1158015610722573d5f5f3e3d5ffd5b505050505f8282873060405161073790610a11565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff080158015610778573d5f5f3e3d5ffd5b506040805160808101825260018082526001600160a01b03808b166020808501918252898316858701908152898416606087019081528489165f8181526005909452888420975188549551871661010002610100600160a81b0319911515919091166001600160a81b031990961695909517949094178755905186860180549186166001600160a01b031992831617905590516002909601805496909416958116959095179092556006805493840181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f909101805490921681179091559051919550859250907f40ee62d3a0cf66ef791a7a1f9d6d563ec877b394b8f5c097b6238ac82a68c0e290610892908b908b90610bab565b60405180910390a2505050949350505050565b606060068054806020026020016040519081016040528092919081815260200182805480156108fb57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108dd575b5050505050905090565b61090d610975565b600180546001600160a01b0383166001600160a01b0319909116811790915561093d5f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b0316331461053d5760405163118cdaa760e01b8152336004820152602401610321565b600180546001600160a01b031916905561059e815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6114d480610bda83390190565b610334806120ae83390190565b80356001600160a01b0381168114610a34575f5ffd5b919050565b5f60208284031215610a49575f5ffd5b610a5282610a1e565b9392505050565b602081525f82518060208401525f5b81811015610a855760208186018101516040868401015201610a68565b505f604082850101526040601f19601f83011684010191505092915050565b5f5f5f5f60608587031215610ab7575f5ffd5b843567ffffffffffffffff811115610acd575f5ffd5b8501601f81018713610add575f5ffd5b803567ffffffffffffffff811115610af3575f5ffd5b876020828401011115610b04575f5ffd5b602091820195509350610b18908601610a1e565b9396929550929360400135925050565b602080825282518282018190525f918401906040840190835b81811015610b685783516001600160a01b0316835260209384019390920191600101610b41565b509095945050505050565b600181811c90821680610b8757607f821691505b602082108103610ba557634e487b7160e01b5f52602260045260245ffd5b50919050565b60208152816020820152818360408301375f818301604090810191909152601f909201601f1916010191905056fe60c06040526005805460ff1916600117905534801561001c575f5ffd5b506040516114d43803806114d483398101604081905261003b91610155565b826001600160a01b03811661006957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610072816100cf565b506001600160a01b03811661009a57604051634a100d5960e01b815260040160405180910390fd5b815f036100ba576040516302f2d9e160e21b815260040160405180910390fd5b6001600160a01b031660805260a0525061018e565b600180546001600160a01b03191690556100e8816100eb565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610150575f5ffd5b919050565b5f5f5f60608486031215610167575f5ffd5b6101708461013a565b9250602084015191506101856040850161013a565b90509250925092565b60805160a0516113026101d25f395f81816101dd01528181610281015281816107dc01528181610818015261084601525f818161020c015261038501526113025ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637b103999116100bf578063b0b578cd11610079578063b0b578cd146102b8578063ce29e0af146102c0578063cf8ab76b146102d3578063e30c3978146102f4578063e8b348a014610305578063f2fde38b14610318575f5ffd5b80637b103999146102075780638da5cb5b146102465780639ba7da9214610256578063a7d270561461025f578063adc4e1d91461027f578063ae61c5ae146102a5575f5ffd5b80634c7f807d116101105780634c7f807d1461019f5780636c6071aa146101a8578063715018a6146101bd578063763f323d146101c55780637924294e146101d857806379ba5097146101ff575f5ffd5b80632929883d1461014c5780632a20d66b1461016757806331933916146101715780633212dd70146101795780633ef1fc3614610196575b5f5ffd5b61015461032b565b6040519081526020015b60405180910390f35b61016f610365565b005b610154610407565b6005546101869060ff1681565b604051901515815260200161015e565b61015460045481565b61015460025481565b6101b061042d565b60405161015e9190610f0c565b61016f610439565b61016f6101d3366004610f57565b61044a565b6101547f000000000000000000000000000000000000000000000000000000000000000081565b61016f610501565b61022e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015e565b5f546001600160a01b031661022e565b61015460035481565b61027261026d366004610f7d565b610545565b60405161015e9190610fd7565b7f0000000000000000000000000000000000000000000000000000000000000000610154565b61016f6102b3366004610f57565b610662565b610154610714565b61016f6102ce366004610fe9565b610756565b6102e66102e1366004611057565b610966565b60405161015e929190611077565b6001546001600160a01b031661022e565b610186610313366004610f57565b610bb3565b61016f610326366004610f57565b610bdb565b5f6004545f1480610340575060035460045411155b1561035e576040516324f9528560e11b815260040160405180910390fd5b5060035490565b5f546001600160a01b031633148015906103a85750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156103c5576040516282b42960e81b815260040160405180910390fd5b60055460ff1615610405576005805460ff1916905560405130907f9dadce7d1fbc48896c5ad91bd8a16a125e4170bd2a6c7dc06799659b5cc2e99c905f90a25b565b5f6003546004541161041857505f90565b600354600454610428919061112c565b905090565b60606104286008610c4b565b610441610c5e565b6104055f610c8a565b610452610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b03160361048e576040516301f4baf360e11b815260040160405180910390fd5b5f61049a600883610ca3565b9050806104ca57604051632d8c876360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6040516001600160a01b038316907f466d40d3c5afb07f32aa87fa68d587f144c6fee2dfb883b3363937d5427e0442905f90a25050565b60015433906001600160a01b031681146105395760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c1565b61054281610c8a565b50565b60606004545f03610569576040516324f9528560e11b815260040160405180910390fd5b600454821061059657600480546040516377ca6c2160e11b815291820184905260248201526044016104c1565b6003548210156105c757600354604051631f288e2560e31b81526104c1918491600401918252602082015260400190565b5f82815260066020526040902080546105df9061113f565b80601f016020809104026020016040519081016040528092919081815260200182805461060b9061113f565b80156106565780601f1061062d57610100808354040283529160200191610656565b820191905f5260205f20905b81548152906001019060200180831161063957829003601f168201915b50505050509050919050565b61066a610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b0316036106a6576040516301f4baf360e11b815260040160405180910390fd5b5f6106b2600883610cb7565b9050806106dd57604051636a96952f60e01b81526001600160a01b03831660048201526024016104c1565b6040516001600160a01b038316907f215ef528757ca84646fb5c401012a31bcbf1f99487a51e57a57a0c0afa0d3dd2905f90a25050565b5f6004545f1480610729575060035460045411155b15610747576040516324f9528560e11b815260040160405180910390fd5b6001600454610428919061112c565b60055460ff16610779576040516390f5d9a760e01b815260040160405180910390fd5b5f546001600160a01b0316331480159061079b5750610799600833610ccb565b155b156107b8576040516282b42960e81b815260040160405180910390fd5b805f8190036107da57604051630b8fc7cd60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108445760405163116bd21f60e21b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016104c1565b7f0000000000000000000000000000000000000000000000000000000000000000816002546108739190611177565b1180156108835750600454600354105b156108e85760075f60035481526020019081526020015f205460025f8282546108ac919061112c565b90915550506003545f9081526006602052604081206108ca91610ec2565b600380545f9081526007602052604081205580546001019055610844565b6004545f8181526006602052604090206109038486836111ea565b505f81815260076020526040812083905560028054849290610926908490611177565b9091555050600480546001019055604051819030907fa2a2541c43b1972c43c639076a3bef6240e27c11817c7b20a4caab0db3e4f697905f90a350505050565b6060806004545f0361098b576040516324f9528560e11b815260040160405180910390fd5b6003548410156109bc57600354604051631f288e2560e31b81526104c1918691600401918252602082015260400190565b60045484106109e957600480546040516377ca6c2160e11b815291820186905260248201526044016104c1565b5f846004546109f8919061112c565b905080841115610a255760405163bb1cb70b60e01b815260048101859052602481018290526044016104c1565b8367ffffffffffffffff811115610a3e57610a3e61118a565b604051908082528060200260200182016040528015610a7157816020015b6060815260200190600190039081610a5c5790505b5092508367ffffffffffffffff811115610a8d57610a8d61118a565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b5091505f5b84811015610baa575f610ace8288611177565b5f818152600660205260409020805491925090610aea9061113f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b169061113f565b8015610b615780601f10610b3857610100808354040283529160200191610b61565b820191905f5260205f20905b815481529060010190602001808311610b4457829003601f168201915b5050505050858381518110610b7857610b786112a4565b602002602001018190525080848381518110610b9657610b966112a4565b602090810291909101015250600101610abb565b50509250929050565b5f80546001600160a01b0383811691161480610bd55750610bd5600883610ccb565b92915050565b610be3610c5e565b600180546001600160a01b0383166001600160a01b03199091168117909155610c135f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60605f610c5783610cec565b9392505050565b5f546001600160a01b031633146104055760405163118cdaa760e01b81523360048201526024016104c1565b600180546001600160a01b031916905561054281610d44565b5f610c57836001600160a01b038416610d93565b5f610c57836001600160a01b038416610ddf565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561065657602002820191905f5260205f20905b815481526020019060010190808311610d255750505050509050919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818152600183016020526040812054610dd857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610bd5565b505f610bd5565b5f8181526001830160205260408120548015610eb9575f610e0160018361112c565b85549091505f90610e149060019061112c565b9050808214610e73575f865f018281548110610e3257610e326112a4565b905f5260205f200154905080875f018481548110610e5257610e526112a4565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610e8457610e846112b8565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610bd5565b5f915050610bd5565b508054610ece9061113f565b5f825580601f10610edd575050565b601f0160209004905f5260205f209081019061054291905b80821115610f08575f8155600101610ef5565b5090565b602080825282518282018190525f918401906040840190835b81811015610f4c5783516001600160a01b0316835260209384019390920191600101610f25565b509095945050505050565b5f60208284031215610f67575f5ffd5b81356001600160a01b0381168114610c57575f5ffd5b5f60208284031215610f8d575f5ffd5b5035919050565b5f81518084525f5b81811015610fb857602081850181015186830182015201610f9c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610c576020830184610f94565b5f5f60208385031215610ffa575f5ffd5b823567ffffffffffffffff811115611010575f5ffd5b8301601f81018513611020575f5ffd5b803567ffffffffffffffff811115611036575f5ffd5b856020828401011115611047575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611068575f5ffd5b50508035926020909101359150565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b828110156110ce57605f198786030184526110b9858351610f94565b9450602093840193919091019060010161109d565b5050505082810360208401528084518083526020830191506020860192505f5b8181101561110c5783518352602093840193909201916001016110ee565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd557610bd5611118565b600181811c9082168061115357607f821691505b60208210810361117157634e487b7160e01b5f52602260045260245ffd5b50919050565b80820180821115610bd557610bd5611118565b634e487b7160e01b5f52604160045260245ffd5b601f8211156111e557805f5260205f20601f840160051c810160208510156111c35750805b601f840160051c820191505b818110156111e2575f81556001016111cf565b50505b505050565b67ffffffffffffffff8311156112025761120261118a565b61121683611210835461113f565b8361119e565b5f601f841160018114611247575f85156112305750838201355b5f19600387901b1c1916600186901b1783556111e2565b5f83815260208120601f198716915b828110156112765786850135825560209485019460019092019101611256565b5086821015611292575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220529a0aa1554bed0205b03663020c41541f7929176c3ddd5a3f6f7e5954cd007264736f6c634300081c0033610100604052348015610010575f5ffd5b5060405161033438038061033483398101604081905261002f91610108565b6001600160a01b0384166100565760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03831661007d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166100a45760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0381166100cb5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0393841660805291831660a052821660c0521660e052610159565b80516001600160a01b0381168114610103575f5ffd5b919050565b5f5f5f5f6080858703121561011b575f5ffd5b610124856100ed565b9350610132602086016100ed565b9250610140604086016100ed565b915061014e606086016100ed565b905092959194509250565b60805160a05160c05160e05161019e6101965f395f606901525f60d301525f818160ac015261011d01525f818160f70152610146015261019e5ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806329e7ef2d1461006457806367055564146100a75780638c72c54e146100ce578063b61db084146100f5578063d106542b1461011b578063f5bae62914610141575b5f5ffd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b61008b7f00000000000000000000000000000000000000000000000000000000000000008156fea2646970667358221220ed204b916a188187be4b5f5107f062498136c9b26b5af45732c1999cabb8135b64736f6c634300081c0033a2646970667358221220cc98e4fcb8897f4e0f6164b29b69cb8d56fe98af407c33da2eab0962189f058b64736f6c634300081c0033a2646970667358221220eab686eff07fa636b5f716984ac6858eac99df1a8afdc92ddf3f99f106c2049d64736f6c634300081c0033" + "bytecode": "0x6080604052348015600e575f5ffd5b506154148061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c8063abf34d3411610093578063da6b03bc11610063578063da6b03bc146101d8578063e21b38d2146101eb578063e234d141146101fe578063eac3fda414610211575f5ffd5b8063abf34d341461018a578063aca30a2b14610192578063bb510a77146101a5578063c21b8c61146101d0575f5ffd5b8063339adfc1116100ce578063339adfc1146101475780633826b9bc1461015a57806391cab63e1461016d5780639575f6ac14610175575f5ffd5b80630adea754146100f45780630eb8fe7a1461011c578063248cfa0614610132575b5f5ffd5b610107610102366004610c46565b610219565b60405190151581526020015b60405180910390f35b61012461022a565b604051908152602001610113565b610145610140366004610c46565b610239565b005b610107610155366004610c46565b6103b1565b610145610168366004610c46565b6103bd565b6101246105dd565b61017d6105e8565b6040516101139190610c61565b61017d6105f3565b6101456101a0366004610c46565b6105ff565b6101b86101b3366004610cac565b610770565b6040516001600160a01b039091168152602001610113565b610124610812565b6101b86101e6366004610d1b565b61081d565b6101076101f9366004610c46565b61096d565b6101b861020c366004610d8e565b610979565b61017d610a13565b5f6102248183610a1f565b92915050565b5f6102345f610a43565b905090565b610244600282610a1f565b61027157604051633380e54b60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b5f819050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d59190610dfa565b6001600160a01b0316336001600160a01b03161461031757604051638c7aa36d60e01b81526001600160a01b0383166004820152336024820152604401610268565b806001600160a01b03166351b42b006040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561034f575f5ffd5b505af1158015610361573d5f5f3e3d5ffd5b50505050610379826002610a4c90919063ffffffff16565b506040516001600160a01b038316907f12424993dff0cf586ab1b4f4d33eae51852b25c9738d91aa2d625134b874497a905f90a25050565b5f610224600283610a1f565b6103c8600482610a1f565b6103f057604051633f0f01a960e11b81526001600160a01b0382166004820152602401610268565b5f819050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610430573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104549190610dfa565b6001600160a01b0316336001600160a01b03161461049657604051631c31ad3b60e21b81526001600160a01b0383166004820152336024820152604401610268565b806001600160a01b031663d106542b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f69190610dfa565b6001600160a01b0316632a20d66b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561052d575f5ffd5b505af115801561053f573d5f5f3e3d5ffd5b50505050806001600160a01b03166351b42b006040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561057b575f5ffd5b505af115801561058d573d5f5f3e3d5ffd5b505050506105a5826004610a4c90919063ffffffff16565b506040516001600160a01b038316907f3e085cc53b86c19e2e6dba628297af6b8f76c89d1384dbcc599bab2adfd62d08905f90a25050565b5f6102346004610a43565b60606102345f610a60565b60606102346002610a60565b6106095f82610a1f565b610631576040516362c72c2960e01b81526001600160a01b0382166004820152602401610268565b5f819050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610671573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106959190610dfa565b6001600160a01b0316336001600160a01b0316146106d7576040516305bfb0e160e11b81526001600160a01b0383166004820152336024820152604401610268565b806001600160a01b0316632a20d66b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561070f575f5ffd5b505af1158015610721573d5f5f3e3d5ffd5b50505050610738825f610a4c90919063ffffffff16565b506040516001600160a01b038316907f10812805591e289329d04bb0d7d88280e1db08894b6f4a0d9d4458eed9a50e4f905f90a25050565b5f5f83833060405161078190610c08565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff0801580156107ba573d5f5f3e3d5ffd5b5091508190506107ca5f82610a6c565b50836001600160a01b0316826001600160a01b03167f1d61294d5274ecaf47976300afbb3b7c0cc41dc69ec6c8889658e3d34fa6ce2b60405160405180910390a35092915050565b5f6102346002610a43565b5f5f33833060405161082e90610c08565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff080158015610867573d5f5f3e3d5ffd5b5090505f33843060405161087a90610c08565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff0801580156108b3573d5f5f3e3d5ffd5b5090505f338383306040516108c790610c15565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff080158015610908573d5f5f3e3d5ffd5b509350839050610919600482610a6c565b50836001600160a01b03167f37b3aaf4f807403887412a5994aa1832eface4a8c15501a3311bf21d3279ea3f8a8a8a8a6040516109599493929190610e3d565b60405180910390a250505095945050505050565b5f610224600483610a1f565b5f5f33868686863060405161098d90610c22565b61099c96959493929190610e6e565b604051809103905ff0801580156109b5573d5f5f3e3d5ffd5b5091508190506109c6600282610a6c565b50816001600160a01b03167ff74e41ddfe8be4892fd32a44e184fb47198d3396b764801f2e346737c4c2bacd8787604051610a02929190610ec1565b60405180910390a250949350505050565b60606102346004610a60565b6001600160a01b0381165f90815260018301602052604081205415155b9392505050565b5f610224825490565b5f610a3c836001600160a01b038416610a80565b60605f610a3c83610b63565b5f610a3c836001600160a01b038416610bbc565b5f8181526001830160205260408120548015610b5a575f610aa2600183610edc565b85549091505f90610ab590600190610edc565b9050808214610b14575f865f018281548110610ad357610ad3610efb565b905f5260205f200154905080875f018481548110610af357610af3610efb565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610b2557610b25610f0f565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610224565b5f915050610224565b6060815f01805480602002602001604051908101604052809291908181526020018280548015610bb057602002820191905f5260205f20905b815481526020019060010190808311610b9c575b50505050509050919050565b5f818152600183016020526040812054610c0157508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610224565b505f610224565b6114bf80610f2483390190565b610830806123e383390190565b6127cc80612c1383390190565b6001600160a01b0381168114610c43575f5ffd5b50565b5f60208284031215610c56575f5ffd5b8135610a3c81610c2f565b602080825282518282018190525f918401906040840190835b81811015610ca15783516001600160a01b0316835260209384019390920191600101610c7a565b509095945050505050565b5f5f60408385031215610cbd575f5ffd5b8235610cc881610c2f565b946020939093013593505050565b5f5f83601f840112610ce6575f5ffd5b50813567ffffffffffffffff811115610cfd575f5ffd5b602083019150836020828501011115610d14575f5ffd5b9250929050565b5f5f5f5f5f60608688031215610d2f575f5ffd5b853567ffffffffffffffff811115610d45575f5ffd5b610d5188828901610cd6565b909650945050602086013567ffffffffffffffff811115610d70575f5ffd5b610d7c88828901610cd6565b96999598509660400135949350505050565b5f5f5f5f60408587031215610da1575f5ffd5b843567ffffffffffffffff811115610db7575f5ffd5b610dc387828801610cd6565b909550935050602085013567ffffffffffffffff811115610de2575f5ffd5b610dee87828801610cd6565b95989497509550505050565b5f60208284031215610e0a575f5ffd5b8151610a3c81610c2f565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b604081525f610e50604083018688610e15565b8281036020840152610e63818587610e15565b979650505050505050565b6001600160a01b03871681526080602082018190525f90610e929083018789610e15565b8281036040840152610ea5818688610e15565b91505060018060a01b0383166060830152979650505050505050565b602081525f610ed4602083018486610e15565b949350505050565b8181038181111561022457634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfe60c06040526005805460ff1916600117905534801561001c575f5ffd5b506040516114bf3803806114bf83398101604081905261003b91610155565b826001600160a01b03811661006957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610072816100cf565b506001600160a01b03811661009a57604051634a100d5960e01b815260040160405180910390fd5b815f036100ba576040516302f2d9e160e21b815260040160405180910390fd5b6001600160a01b031660805260a0525061018e565b600180546001600160a01b03191690556100e8816100eb565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610150575f5ffd5b919050565b5f5f5f60608486031215610167575f5ffd5b6101708461013a565b9250602084015191506101856040850161013a565b90509250925092565b60805160a0516112ed6101d25f395f81816101dd01528181610281015281816107dc01528181610818015261084601525f818161020c015261038501526112ed5ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637b103999116100bf578063b0b578cd11610079578063b0b578cd146102b8578063ce29e0af146102c0578063cf8ab76b146102d3578063e30c3978146102f4578063e8b348a014610305578063f2fde38b14610318575f5ffd5b80637b103999146102075780638da5cb5b146102465780639ba7da9214610256578063a7d270561461025f578063adc4e1d91461027f578063ae61c5ae146102a5575f5ffd5b80634c7f807d116101105780634c7f807d1461019f5780636c6071aa146101a8578063715018a6146101bd578063763f323d146101c55780637924294e146101d857806379ba5097146101ff575f5ffd5b80632929883d1461014c5780632a20d66b1461016757806331933916146101715780633212dd70146101795780633ef1fc3614610196575b5f5ffd5b61015461032b565b6040519081526020015b60405180910390f35b61016f610365565b005b610154610407565b6005546101869060ff1681565b604051901515815260200161015e565b61015460045481565b61015460025481565b6101b061042d565b60405161015e9190610f0c565b61016f610439565b61016f6101d3366004610f57565b61044a565b6101547f000000000000000000000000000000000000000000000000000000000000000081565b61016f610501565b61022e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015e565b5f546001600160a01b031661022e565b61015460035481565b61027261026d366004610f7d565b610545565b60405161015e9190610fc2565b7f0000000000000000000000000000000000000000000000000000000000000000610154565b61016f6102b3366004610f57565b610662565b610154610714565b61016f6102ce366004610fd4565b610756565b6102e66102e1366004611042565b610966565b60405161015e929190611062565b6001546001600160a01b031661022e565b610186610313366004610f57565b610bb3565b61016f610326366004610f57565b610bdb565b5f6004545f1480610340575060035460045411155b1561035e576040516324f9528560e11b815260040160405180910390fd5b5060035490565b5f546001600160a01b031633148015906103a85750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156103c5576040516282b42960e81b815260040160405180910390fd5b60055460ff1615610405576005805460ff1916905560405130907f9dadce7d1fbc48896c5ad91bd8a16a125e4170bd2a6c7dc06799659b5cc2e99c905f90a25b565b5f6003546004541161041857505f90565b6003546004546104289190611117565b905090565b60606104286008610c4b565b610441610c5e565b6104055f610c8a565b610452610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b03160361048e576040516301f4baf360e11b815260040160405180910390fd5b5f61049a600883610ca3565b9050806104ca57604051632d8c876360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6040516001600160a01b038316907f466d40d3c5afb07f32aa87fa68d587f144c6fee2dfb883b3363937d5427e0442905f90a25050565b60015433906001600160a01b031681146105395760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c1565b61054281610c8a565b50565b60606004545f03610569576040516324f9528560e11b815260040160405180910390fd5b600454821061059657600480546040516377ca6c2160e11b815291820184905260248201526044016104c1565b6003548210156105c757600354604051631f288e2560e31b81526104c1918491600401918252602082015260400190565b5f82815260066020526040902080546105df9061112a565b80601f016020809104026020016040519081016040528092919081815260200182805461060b9061112a565b80156106565780601f1061062d57610100808354040283529160200191610656565b820191905f5260205f20905b81548152906001019060200180831161063957829003601f168201915b50505050509050919050565b61066a610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b0316036106a6576040516301f4baf360e11b815260040160405180910390fd5b5f6106b2600883610cb7565b9050806106dd57604051636a96952f60e01b81526001600160a01b03831660048201526024016104c1565b6040516001600160a01b038316907f215ef528757ca84646fb5c401012a31bcbf1f99487a51e57a57a0c0afa0d3dd2905f90a25050565b5f6004545f1480610729575060035460045411155b15610747576040516324f9528560e11b815260040160405180910390fd5b60016004546104289190611117565b60055460ff16610779576040516390f5d9a760e01b815260040160405180910390fd5b5f546001600160a01b0316331480159061079b5750610799600833610ccb565b155b156107b8576040516282b42960e81b815260040160405180910390fd5b805f8190036107da57604051630b8fc7cd60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108445760405163116bd21f60e21b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016104c1565b7f0000000000000000000000000000000000000000000000000000000000000000816002546108739190611162565b1180156108835750600454600354105b156108e85760075f60035481526020019081526020015f205460025f8282546108ac9190611117565b90915550506003545f9081526006602052604081206108ca91610ec2565b600380545f9081526007602052604081205580546001019055610844565b6004545f8181526006602052604090206109038486836111d5565b505f81815260076020526040812083905560028054849290610926908490611162565b9091555050600480546001019055604051819030907fa2a2541c43b1972c43c639076a3bef6240e27c11817c7b20a4caab0db3e4f697905f90a350505050565b6060806004545f0361098b576040516324f9528560e11b815260040160405180910390fd5b6003548410156109bc57600354604051631f288e2560e31b81526104c1918691600401918252602082015260400190565b60045484106109e957600480546040516377ca6c2160e11b815291820186905260248201526044016104c1565b5f846004546109f89190611117565b905080841115610a255760405163bb1cb70b60e01b815260048101859052602481018290526044016104c1565b8367ffffffffffffffff811115610a3e57610a3e611175565b604051908082528060200260200182016040528015610a7157816020015b6060815260200190600190039081610a5c5790505b5092508367ffffffffffffffff811115610a8d57610a8d611175565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b5091505f5b84811015610baa575f610ace8288611162565b5f818152600660205260409020805491925090610aea9061112a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b169061112a565b8015610b615780601f10610b3857610100808354040283529160200191610b61565b820191905f5260205f20905b815481529060010190602001808311610b4457829003601f168201915b5050505050858381518110610b7857610b7861128f565b602002602001018190525080848381518110610b9657610b9661128f565b602090810291909101015250600101610abb565b50509250929050565b5f80546001600160a01b0383811691161480610bd55750610bd5600883610ccb565b92915050565b610be3610c5e565b600180546001600160a01b0383166001600160a01b03199091168117909155610c135f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60605f610c5783610cec565b9392505050565b5f546001600160a01b031633146104055760405163118cdaa760e01b81523360048201526024016104c1565b600180546001600160a01b031916905561054281610d44565b5f610c57836001600160a01b038416610d93565b5f610c57836001600160a01b038416610ddf565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561065657602002820191905f5260205f20905b815481526020019060010190808311610d255750505050509050919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818152600183016020526040812054610dd857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610bd5565b505f610bd5565b5f8181526001830160205260408120548015610eb9575f610e01600183611117565b85549091505f90610e1490600190611117565b9050808214610e73575f865f018281548110610e3257610e3261128f565b905f5260205f200154905080875f018481548110610e5257610e5261128f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610e8457610e846112a3565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610bd5565b5f915050610bd5565b508054610ece9061112a565b5f825580601f10610edd575050565b601f0160209004905f5260205f209081019061054291905b80821115610f08575f8155600101610ef5565b5090565b602080825282518282018190525f918401906040840190835b81811015610f4c5783516001600160a01b0316835260209384019390920191600101610f25565b509095945050505050565b5f60208284031215610f67575f5ffd5b81356001600160a01b0381168114610c57575f5ffd5b5f60208284031215610f8d575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c576020830184610f94565b5f5f60208385031215610fe5575f5ffd5b823567ffffffffffffffff811115610ffb575f5ffd5b8301601f8101851361100b575f5ffd5b803567ffffffffffffffff811115611021575f5ffd5b856020828401011115611032575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611053575f5ffd5b50508035926020909101359150565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b828110156110b957605f198786030184526110a4858351610f94565b94506020938401939190910190600101611088565b5050505082810360208401528084518083526020830191506020860192505f5b818110156110f75783518352602093840193909201916001016110d9565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd557610bd5611103565b600181811c9082168061113e57607f821691505b60208210810361115c57634e487b7160e01b5f52602260045260245ffd5b50919050565b80820180821115610bd557610bd5611103565b634e487b7160e01b5f52604160045260245ffd5b601f8211156111d057805f5260205f20601f840160051c810160208510156111ae5750805b601f840160051c820191505b818110156111cd575f81556001016111ba565b50505b505050565b67ffffffffffffffff8311156111ed576111ed611175565b611201836111fb835461112a565b83611189565b5f601f841160018114611232575f851561121b5750838201355b5f19600387901b1c1916600186901b1783556111cd565b5f83815260208120601f198716915b828110156112615786850135825560209485019460019092019101611241565b508682101561127d575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220b5aba89e2383af65925a0a3588b2894561865509b56096b726d8120603bc74ad64736f6c634300081c003360e06040526001805460ff60a01b1916600160a01b179055348015610022575f5ffd5b506040516108303803806108308339810160408190526100419161022d565b836001600160a01b03811661007057604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610079816100e7565b506001600160a01b038316158061009757506001600160a01b038216155b806100a957506001600160a01b038116155b156100c957604051631e4fbdf760e01b81525f6004820152602401610067565b6001600160a01b0392831660a05290821660c052166080525061027e565b6100f0816101a7565b60a05160405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b906024015f604051808303815f87803b158015610134575f5ffd5b505af1158015610146573d5f5f3e3d5ffd5b505060c05160405163f2fde38b60e01b81526001600160a01b038581166004830152909116925063f2fde38b91506024015f604051808303815f87803b15801561018e575f5ffd5b505af11580156101a0573d5f5f3e3d5ffd5b5050505050565b600180546001600160a01b03191690556101c0816101c3565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610228575f5ffd5b919050565b5f5f5f5f60808587031215610240575f5ffd5b61024985610212565b935061025760208601610212565b925061026560408601610212565b915061027360608601610212565b905092959194509250565b60805160a05160c0516105666102ca5f395f818160ed01528181610196015261044401525f8181610170015281816101e301526103d001525f818161013c015261021001526105665ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80638da5cb5b1161006e5780638da5cb5b1461015e578063b61db0841461016e578063d106542b14610194578063e30c3978146101ba578063f2fde38b146101cb578063f5bae629146101de575f5ffd5b806302fb0c5e146100b557806351b42b00146100de57806367055564146100e8578063715018a61461012757806379ba50971461012f5780637b10399914610137575b5f5ffd5b6001546100c990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6100e6610205565b005b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d5565b6100e66102b0565b6100e66102c3565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661010f565b7f000000000000000000000000000000000000000000000000000000000000000061010f565b7f000000000000000000000000000000000000000000000000000000000000000061010f565b6001546001600160a01b031661010f565b6100e66101d9366004610503565b61030c565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461024d576040516282b42960e81b815260040160405180910390fd5b600154600160a01b900460ff166102775760405163232990cb60e01b815260040160405180910390fd5b6001805460ff60a01b1916905560405130907fa58c733780f5c1527d6106ff1e731cbf2e9ffc0eb11ad399ca33ea55f057ddf4905f90a2565b6102b861037c565b6102c15f6103a8565b565b60015433906001600160a01b031681146103005760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b610309816103a8565b50565b61031461037c565b600180546001600160a01b0383166001600160a01b031990911681179091556103445f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b031633146102c15760405163118cdaa760e01b81523360048201526024016102f7565b6103b1816104a0565b60405163f2fde38b60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b906024015f604051808303815f87803b158015610411575f5ffd5b505af1158015610423573d5f5f3e3d5ffd5b505060405163f2fde38b60e01b81526001600160a01b0384811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063f2fde38b91506024015f604051808303815f87803b158015610487575f5ffd5b505af1158015610499573d5f5f3e3d5ffd5b5050505050565b600180546001600160a01b0319169055610309815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610513575f5ffd5b81356001600160a01b0381168114610529575f5ffd5b939250505056fea26469706673582212205c167df9d2cf3a57266ea27992ff77656faf813eb23a0acc2b09702b9717166b64736f6c634300081c003360a06040526004805460ff1916600117905534801561001c575f5ffd5b506040516127cc3803806127cc83398101604081905261003b916101ef565b836001600160a01b03811661006a57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610073816100cc565b506001600160a01b03811661009d57604051631e4fbdf760e01b81525f6004820152602401610061565b60026100a984826102f9565b5060036100b683826102f9565b506001600160a01b0316608052506103b3915050565b600180546001600160a01b03191690556100e5816100e8565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461014d575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610175575f5ffd5b81516001600160401b0381111561018e5761018e610152565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101bc576101bc610152565b6040528181528382016020018510156101d3575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f60808587031215610202575f5ffd5b61020b85610137565b60208601519094506001600160401b03811115610226575f5ffd5b61023287828801610166565b604087015190945090506001600160401b0381111561024f575f5ffd5b61025b87828801610166565b92505061026a60608601610137565b905092959194509250565b600181811c9082168061028957607f821691505b6020821081036102a757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102f457805f5260205f20601f840160051c810160208510156102d25750805b601f840160051c820191505b818110156102f1575f81556001016102de565b50505b505050565b81516001600160401b0381111561031257610312610152565b610326816103208454610275565b846102ad565b6020601f821160018114610358575f83156103415750848201515b5f19600385901b1c1916600184901b1784556102f1565b5f84815260208120601f198516915b828110156103875787850151825560209485019460019092019101610367565b50848210156103a457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6080516123ec6103e05f395f8181610244015281816104c0015281816105fb015261066701526123ec5ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c8063783cec80116100935780639a06d92e116100635780639a06d92e1461028e578063d611d6c8146102a1578063e30c3978146102b6578063f2fde38b146102c7575f5ffd5b8063783cec801461022f57806379ba5097146102375780637b1039991461023f5780638da5cb5b1461027e575f5ffd5b80633b7fdb73116100ce5780633b7fdb731461013c5780634869fe261461015157806351b42b001461021f578063715018a614610227575f5ffd5b806302fb0c5e146100f4578063220e81621461011657806337a0701a1461012b575b5f5ffd5b6004546101019060ff1681565b60405190151581526020015b60405180910390f35b610129610124366004610a39565b6102da565b005b60065460405190815260200161010d565b610144610429565b60405161010d9190610a59565b6101d961015f366004610a39565b60408051608080820183525f808352602080840182905283850182905260609384018290526001600160a01b039586168252600581529084902084519283018552805460ff811615158452610100900486169183019190915260018101548516938201939093526002909201549092169181019190915290565b60405161010d91908151151581526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b6101296104b5565b61012961053f565b610144610550565b61012961055d565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161010d565b5f546001600160a01b0316610266565b61026661029c366004610a8e565b6105a1565b6102a96108a5565b60405161010d9190610b12565b6001546001600160a01b0316610266565b6101296102d5366004610a39565b610905565b6102e2610975565b6001600160a01b0381165f908152600560205260409020805460ff1661032a576040516282d79d60e41b81526001600160a01b03831660048201526024015b60405180910390fd5b60028101548154604051635730e2d760e11b81526001600160a01b036101009092048216600482015291169063ae61c5ae906024015f604051808303815f87803b158015610376575f5ffd5b505af1158015610388573d5f5f3e3d5ffd5b5050505060018101548154604051635730e2d760e11b81526001600160a01b036101009092048216600482015291169063ae61c5ae906024015f604051808303815f87803b1580156103d8575f5ffd5b505af19250505080156103e9575060015b50805460ff191681556040516001600160a01b038316907f8b5dde107afbe1f827425373a7c474984b5479bf4889612cf11598c00a2ec58a905f90a25050565b6003805461043690610b5d565b80601f016020809104026020016040519081016040528092919081815260200182805461046290610b5d565b80156104ad5780601f10610484576101008083540402835291602001916104ad565b820191905f5260205f20905b81548152906001019060200180831161049057829003601f168201915b505050505081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104fd576040516282b42960e81b815260040160405180910390fd5b60045460ff161561053d576004805460ff1916905560405130907f1820619d110aba86833e84536b2ba04234f5cb9e87d61baf7846f14398bcfeee905f90a25b565b610547610975565b61053d5f6109a1565b6002805461043690610b5d565b60015433906001600160a01b031681146105955760405163118cdaa760e01b81526001600160a01b0382166004820152602401610321565b61059e816109a1565b50565b5f6105aa610975565b60045460ff166105cd5760405163e8431ca760e01b815260040160405180910390fd5b6001600160a01b0383166105f657604051631e4fbdf760e01b81525f6004820152602401610321565b5f30837f000000000000000000000000000000000000000000000000000000000000000060405161062690610a04565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff08015801561065f573d5f5f3e3d5ffd5b5090505f30847f000000000000000000000000000000000000000000000000000000000000000060405161069290610a04565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff0801580156106cb573d5f5f3e3d5ffd5b5060405163763f323d60e01b81526001600160a01b0387811660048301529192509082169063763f323d906024015f604051808303815f87803b158015610710575f5ffd5b505af1158015610722573d5f5f3e3d5ffd5b505050505f8282873060405161073790610a11565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff080158015610778573d5f5f3e3d5ffd5b506040805160808101825260018082526001600160a01b03808b166020808501918252898316858701908152898416606087019081528489165f8181526005909452888420975188549551871661010002610100600160a81b0319911515919091166001600160a81b031990961695909517949094178755905186860180549186166001600160a01b031992831617905590516002909601805496909416958116959095179092556006805493840181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f909101805490921681179091559051919550859250907f40ee62d3a0cf66ef791a7a1f9d6d563ec877b394b8f5c097b6238ac82a68c0e290610892908b908b90610b95565b60405180910390a2505050949350505050565b606060068054806020026020016040519081016040528092919081815260200182805480156108fb57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108dd575b5050505050905090565b61090d610975565b600180546001600160a01b0383166001600160a01b0319909116811790915561093d5f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b0316331461053d5760405163118cdaa760e01b8152336004820152602401610321565b600180546001600160a01b031916905561059e815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6114bf80610bc483390190565b6103348061208383390190565b80356001600160a01b0381168114610a34575f5ffd5b919050565b5f60208284031215610a49575f5ffd5b610a5282610a1e565b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f5f60608587031215610aa1575f5ffd5b843567ffffffffffffffff811115610ab7575f5ffd5b8501601f81018713610ac7575f5ffd5b803567ffffffffffffffff811115610add575f5ffd5b876020828401011115610aee575f5ffd5b602091820195509350610b02908601610a1e565b9396929550929360400135925050565b602080825282518282018190525f918401906040840190835b81811015610b525783516001600160a01b0316835260209384019390920191600101610b2b565b509095945050505050565b600181811c90821680610b7157607f821691505b602082108103610b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208152816020820152818360408301375f818301604090810191909152601f909201601f1916010191905056fe60c06040526005805460ff1916600117905534801561001c575f5ffd5b506040516114bf3803806114bf83398101604081905261003b91610155565b826001600160a01b03811661006957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610072816100cf565b506001600160a01b03811661009a57604051634a100d5960e01b815260040160405180910390fd5b815f036100ba576040516302f2d9e160e21b815260040160405180910390fd5b6001600160a01b031660805260a0525061018e565b600180546001600160a01b03191690556100e8816100eb565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610150575f5ffd5b919050565b5f5f5f60608486031215610167575f5ffd5b6101708461013a565b9250602084015191506101856040850161013a565b90509250925092565b60805160a0516112ed6101d25f395f81816101dd01528181610281015281816107dc01528181610818015261084601525f818161020c015261038501526112ed5ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637b103999116100bf578063b0b578cd11610079578063b0b578cd146102b8578063ce29e0af146102c0578063cf8ab76b146102d3578063e30c3978146102f4578063e8b348a014610305578063f2fde38b14610318575f5ffd5b80637b103999146102075780638da5cb5b146102465780639ba7da9214610256578063a7d270561461025f578063adc4e1d91461027f578063ae61c5ae146102a5575f5ffd5b80634c7f807d116101105780634c7f807d1461019f5780636c6071aa146101a8578063715018a6146101bd578063763f323d146101c55780637924294e146101d857806379ba5097146101ff575f5ffd5b80632929883d1461014c5780632a20d66b1461016757806331933916146101715780633212dd70146101795780633ef1fc3614610196575b5f5ffd5b61015461032b565b6040519081526020015b60405180910390f35b61016f610365565b005b610154610407565b6005546101869060ff1681565b604051901515815260200161015e565b61015460045481565b61015460025481565b6101b061042d565b60405161015e9190610f0c565b61016f610439565b61016f6101d3366004610f57565b61044a565b6101547f000000000000000000000000000000000000000000000000000000000000000081565b61016f610501565b61022e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015e565b5f546001600160a01b031661022e565b61015460035481565b61027261026d366004610f7d565b610545565b60405161015e9190610fc2565b7f0000000000000000000000000000000000000000000000000000000000000000610154565b61016f6102b3366004610f57565b610662565b610154610714565b61016f6102ce366004610fd4565b610756565b6102e66102e1366004611042565b610966565b60405161015e929190611062565b6001546001600160a01b031661022e565b610186610313366004610f57565b610bb3565b61016f610326366004610f57565b610bdb565b5f6004545f1480610340575060035460045411155b1561035e576040516324f9528560e11b815260040160405180910390fd5b5060035490565b5f546001600160a01b031633148015906103a85750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156103c5576040516282b42960e81b815260040160405180910390fd5b60055460ff1615610405576005805460ff1916905560405130907f9dadce7d1fbc48896c5ad91bd8a16a125e4170bd2a6c7dc06799659b5cc2e99c905f90a25b565b5f6003546004541161041857505f90565b6003546004546104289190611117565b905090565b60606104286008610c4b565b610441610c5e565b6104055f610c8a565b610452610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b03160361048e576040516301f4baf360e11b815260040160405180910390fd5b5f61049a600883610ca3565b9050806104ca57604051632d8c876360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6040516001600160a01b038316907f466d40d3c5afb07f32aa87fa68d587f144c6fee2dfb883b3363937d5427e0442905f90a25050565b60015433906001600160a01b031681146105395760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c1565b61054281610c8a565b50565b60606004545f03610569576040516324f9528560e11b815260040160405180910390fd5b600454821061059657600480546040516377ca6c2160e11b815291820184905260248201526044016104c1565b6003548210156105c757600354604051631f288e2560e31b81526104c1918491600401918252602082015260400190565b5f82815260066020526040902080546105df9061112a565b80601f016020809104026020016040519081016040528092919081815260200182805461060b9061112a565b80156106565780601f1061062d57610100808354040283529160200191610656565b820191905f5260205f20905b81548152906001019060200180831161063957829003601f168201915b50505050509050919050565b61066a610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b0316036106a6576040516301f4baf360e11b815260040160405180910390fd5b5f6106b2600883610cb7565b9050806106dd57604051636a96952f60e01b81526001600160a01b03831660048201526024016104c1565b6040516001600160a01b038316907f215ef528757ca84646fb5c401012a31bcbf1f99487a51e57a57a0c0afa0d3dd2905f90a25050565b5f6004545f1480610729575060035460045411155b15610747576040516324f9528560e11b815260040160405180910390fd5b60016004546104289190611117565b60055460ff16610779576040516390f5d9a760e01b815260040160405180910390fd5b5f546001600160a01b0316331480159061079b5750610799600833610ccb565b155b156107b8576040516282b42960e81b815260040160405180910390fd5b805f8190036107da57604051630b8fc7cd60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108445760405163116bd21f60e21b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016104c1565b7f0000000000000000000000000000000000000000000000000000000000000000816002546108739190611162565b1180156108835750600454600354105b156108e85760075f60035481526020019081526020015f205460025f8282546108ac9190611117565b90915550506003545f9081526006602052604081206108ca91610ec2565b600380545f9081526007602052604081205580546001019055610844565b6004545f8181526006602052604090206109038486836111d5565b505f81815260076020526040812083905560028054849290610926908490611162565b9091555050600480546001019055604051819030907fa2a2541c43b1972c43c639076a3bef6240e27c11817c7b20a4caab0db3e4f697905f90a350505050565b6060806004545f0361098b576040516324f9528560e11b815260040160405180910390fd5b6003548410156109bc57600354604051631f288e2560e31b81526104c1918691600401918252602082015260400190565b60045484106109e957600480546040516377ca6c2160e11b815291820186905260248201526044016104c1565b5f846004546109f89190611117565b905080841115610a255760405163bb1cb70b60e01b815260048101859052602481018290526044016104c1565b8367ffffffffffffffff811115610a3e57610a3e611175565b604051908082528060200260200182016040528015610a7157816020015b6060815260200190600190039081610a5c5790505b5092508367ffffffffffffffff811115610a8d57610a8d611175565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b5091505f5b84811015610baa575f610ace8288611162565b5f818152600660205260409020805491925090610aea9061112a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b169061112a565b8015610b615780601f10610b3857610100808354040283529160200191610b61565b820191905f5260205f20905b815481529060010190602001808311610b4457829003601f168201915b5050505050858381518110610b7857610b7861128f565b602002602001018190525080848381518110610b9657610b9661128f565b602090810291909101015250600101610abb565b50509250929050565b5f80546001600160a01b0383811691161480610bd55750610bd5600883610ccb565b92915050565b610be3610c5e565b600180546001600160a01b0383166001600160a01b03199091168117909155610c135f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60605f610c5783610cec565b9392505050565b5f546001600160a01b031633146104055760405163118cdaa760e01b81523360048201526024016104c1565b600180546001600160a01b031916905561054281610d44565b5f610c57836001600160a01b038416610d93565b5f610c57836001600160a01b038416610ddf565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561065657602002820191905f5260205f20905b815481526020019060010190808311610d255750505050509050919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818152600183016020526040812054610dd857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610bd5565b505f610bd5565b5f8181526001830160205260408120548015610eb9575f610e01600183611117565b85549091505f90610e1490600190611117565b9050808214610e73575f865f018281548110610e3257610e3261128f565b905f5260205f200154905080875f018481548110610e5257610e5261128f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610e8457610e846112a3565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610bd5565b5f915050610bd5565b508054610ece9061112a565b5f825580601f10610edd575050565b601f0160209004905f5260205f209081019061054291905b80821115610f08575f8155600101610ef5565b5090565b602080825282518282018190525f918401906040840190835b81811015610f4c5783516001600160a01b0316835260209384019390920191600101610f25565b509095945050505050565b5f60208284031215610f67575f5ffd5b81356001600160a01b0381168114610c57575f5ffd5b5f60208284031215610f8d575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c576020830184610f94565b5f5f60208385031215610fe5575f5ffd5b823567ffffffffffffffff811115610ffb575f5ffd5b8301601f8101851361100b575f5ffd5b803567ffffffffffffffff811115611021575f5ffd5b856020828401011115611032575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611053575f5ffd5b50508035926020909101359150565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b828110156110b957605f198786030184526110a4858351610f94565b94506020938401939190910190600101611088565b5050505082810360208401528084518083526020830191506020860192505f5b818110156110f75783518352602093840193909201916001016110d9565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd557610bd5611103565b600181811c9082168061113e57607f821691505b60208210810361115c57634e487b7160e01b5f52602260045260245ffd5b50919050565b80820180821115610bd557610bd5611103565b634e487b7160e01b5f52604160045260245ffd5b601f8211156111d057805f5260205f20601f840160051c810160208510156111ae5750805b601f840160051c820191505b818110156111cd575f81556001016111ba565b50505b505050565b67ffffffffffffffff8311156111ed576111ed611175565b611201836111fb835461112a565b83611189565b5f601f841160018114611232575f851561121b5750838201355b5f19600387901b1c1916600186901b1783556111cd565b5f83815260208120601f198716915b828110156112615786850135825560209485019460019092019101611241565b508682101561127d575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220b5aba89e2383af65925a0a3588b2894561865509b56096b726d8120603bc74ad64736f6c634300081c0033610100604052348015610010575f5ffd5b5060405161033438038061033483398101604081905261002f91610108565b6001600160a01b0384166100565760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03831661007d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166100a45760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0381166100cb5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0393841660805291831660a052821660c0521660e052610159565b80516001600160a01b0381168114610103575f5ffd5b919050565b5f5f5f5f6080858703121561011b575f5ffd5b610124856100ed565b9350610132602086016100ed565b9250610140604086016100ed565b915061014e606086016100ed565b905092959194509250565b60805160a05160c05160e05161019e6101965f395f606901525f60d301525f818160ac015261011d01525f818160f70152610146015261019e5ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806329e7ef2d1461006457806367055564146100a75780638c72c54e146100ce578063b61db084146100f5578063d106542b1461011b578063f5bae62914610141575b5f5ffd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b61008b7f00000000000000000000000000000000000000000000000000000000000000008156fea26469706673582212202ff90bf7e722fcc2acc3910365f69fec85473b4b720d18b9f0e8130bc3b3aa7a64736f6c634300081c0033a2646970667358221220ed1e21ad9c8eb820cee78982d7eff329c75282814849d892aed09070dd7a2eac64736f6c634300081c0033a2646970667358221220947efce87b2c58206821815b105da1c182fa57dca5d171b3719c7255f513151864736f6c634300081c0033" } diff --git a/packages/core/abi/SmartClawsAgent.json b/packages/core/abi/SmartClawsAgent.json index 580a49f..bf0cc0f 100644 --- a/packages/core/abi/SmartClawsAgent.json +++ b/packages/core/abi/SmartClawsAgent.json @@ -248,5 +248,5 @@ "type": "function" } ], - "bytecode": "0x60e06040526001805460ff60a01b1916600160a01b179055348015610022575f5ffd5b506040516108303803806108308339810160408190526100419161022d565b836001600160a01b03811661007057604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610079816100e7565b506001600160a01b038316158061009757506001600160a01b038216155b806100a957506001600160a01b038116155b156100c957604051631e4fbdf760e01b81525f6004820152602401610067565b6001600160a01b0392831660a05290821660c052166080525061027e565b6100f0816101a7565b60a05160405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b906024015f604051808303815f87803b158015610134575f5ffd5b505af1158015610146573d5f5f3e3d5ffd5b505060c05160405163f2fde38b60e01b81526001600160a01b038581166004830152909116925063f2fde38b91506024015f604051808303815f87803b15801561018e575f5ffd5b505af11580156101a0573d5f5f3e3d5ffd5b5050505050565b600180546001600160a01b03191690556101c0816101c3565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610228575f5ffd5b919050565b5f5f5f5f60808587031215610240575f5ffd5b61024985610212565b935061025760208601610212565b925061026560408601610212565b915061027360608601610212565b905092959194509250565b60805160a05160c0516105666102ca5f395f818160ed01528181610196015261044401525f8181610170015281816101e301526103d001525f818161013c015261021001526105665ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80638da5cb5b1161006e5780638da5cb5b1461015e578063b61db0841461016e578063d106542b14610194578063e30c3978146101ba578063f2fde38b146101cb578063f5bae629146101de575f5ffd5b806302fb0c5e146100b557806351b42b00146100de57806367055564146100e8578063715018a61461012757806379ba50971461012f5780637b10399914610137575b5f5ffd5b6001546100c990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6100e6610205565b005b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d5565b6100e66102b0565b6100e66102c3565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661010f565b7f000000000000000000000000000000000000000000000000000000000000000061010f565b7f000000000000000000000000000000000000000000000000000000000000000061010f565b6001546001600160a01b031661010f565b6100e66101d9366004610503565b61030c565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461024d576040516282b42960e81b815260040160405180910390fd5b600154600160a01b900460ff166102775760405163232990cb60e01b815260040160405180910390fd5b6001805460ff60a01b1916905560405130907fa58c733780f5c1527d6106ff1e731cbf2e9ffc0eb11ad399ca33ea55f057ddf4905f90a2565b6102b861037c565b6102c15f6103a8565b565b60015433906001600160a01b031681146103005760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b610309816103a8565b50565b61031461037c565b600180546001600160a01b0383166001600160a01b031990911681179091556103445f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b031633146102c15760405163118cdaa760e01b81523360048201526024016102f7565b6103b1816104a0565b60405163f2fde38b60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b906024015f604051808303815f87803b158015610411575f5ffd5b505af1158015610423573d5f5f3e3d5ffd5b505060405163f2fde38b60e01b81526001600160a01b0384811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063f2fde38b91506024015f604051808303815f87803b158015610487575f5ffd5b505af1158015610499573d5f5f3e3d5ffd5b5050505050565b600180546001600160a01b0319169055610309815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610513575f5ffd5b81356001600160a01b0381168114610529575f5ffd5b939250505056fea264697066735822122009a66e90c44b94249f2291617a50d405bc7ab9840584bec8b20e1e007744c28364736f6c634300081c0033" + "bytecode": "0x60e06040526001805460ff60a01b1916600160a01b179055348015610022575f5ffd5b506040516108303803806108308339810160408190526100419161022d565b836001600160a01b03811661007057604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610079816100e7565b506001600160a01b038316158061009757506001600160a01b038216155b806100a957506001600160a01b038116155b156100c957604051631e4fbdf760e01b81525f6004820152602401610067565b6001600160a01b0392831660a05290821660c052166080525061027e565b6100f0816101a7565b60a05160405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b906024015f604051808303815f87803b158015610134575f5ffd5b505af1158015610146573d5f5f3e3d5ffd5b505060c05160405163f2fde38b60e01b81526001600160a01b038581166004830152909116925063f2fde38b91506024015f604051808303815f87803b15801561018e575f5ffd5b505af11580156101a0573d5f5f3e3d5ffd5b5050505050565b600180546001600160a01b03191690556101c0816101c3565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610228575f5ffd5b919050565b5f5f5f5f60808587031215610240575f5ffd5b61024985610212565b935061025760208601610212565b925061026560408601610212565b915061027360608601610212565b905092959194509250565b60805160a05160c0516105666102ca5f395f818160ed01528181610196015261044401525f8181610170015281816101e301526103d001525f818161013c015261021001526105665ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80638da5cb5b1161006e5780638da5cb5b1461015e578063b61db0841461016e578063d106542b14610194578063e30c3978146101ba578063f2fde38b146101cb578063f5bae629146101de575f5ffd5b806302fb0c5e146100b557806351b42b00146100de57806367055564146100e8578063715018a61461012757806379ba50971461012f5780637b10399914610137575b5f5ffd5b6001546100c990600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6100e6610205565b005b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d5565b6100e66102b0565b6100e66102c3565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661010f565b7f000000000000000000000000000000000000000000000000000000000000000061010f565b7f000000000000000000000000000000000000000000000000000000000000000061010f565b6001546001600160a01b031661010f565b6100e66101d9366004610503565b61030c565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461024d576040516282b42960e81b815260040160405180910390fd5b600154600160a01b900460ff166102775760405163232990cb60e01b815260040160405180910390fd5b6001805460ff60a01b1916905560405130907fa58c733780f5c1527d6106ff1e731cbf2e9ffc0eb11ad399ca33ea55f057ddf4905f90a2565b6102b861037c565b6102c15f6103a8565b565b60015433906001600160a01b031681146103005760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b610309816103a8565b50565b61031461037c565b600180546001600160a01b0383166001600160a01b031990911681179091556103445f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b031633146102c15760405163118cdaa760e01b81523360048201526024016102f7565b6103b1816104a0565b60405163f2fde38b60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b906024015f604051808303815f87803b158015610411575f5ffd5b505af1158015610423573d5f5f3e3d5ffd5b505060405163f2fde38b60e01b81526001600160a01b0384811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063f2fde38b91506024015f604051808303815f87803b158015610487575f5ffd5b505af1158015610499573d5f5f3e3d5ffd5b5050505050565b600180546001600160a01b0319169055610309815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610513575f5ffd5b81356001600160a01b0381168114610529575f5ffd5b939250505056fea26469706673582212205c167df9d2cf3a57266ea27992ff77656faf813eb23a0acc2b09702b9717166b64736f6c634300081c0033" } diff --git a/packages/core/abi/SmartClawsChannel.json b/packages/core/abi/SmartClawsChannel.json index 5b0ba6d..d1d4a9b 100644 --- a/packages/core/abi/SmartClawsChannel.json +++ b/packages/core/abi/SmartClawsChannel.json @@ -570,5 +570,5 @@ "type": "function" } ], - "bytecode": "0x60c06040526005805460ff1916600117905534801561001c575f5ffd5b506040516114d43803806114d483398101604081905261003b91610155565b826001600160a01b03811661006957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610072816100cf565b506001600160a01b03811661009a57604051634a100d5960e01b815260040160405180910390fd5b815f036100ba576040516302f2d9e160e21b815260040160405180910390fd5b6001600160a01b031660805260a0525061018e565b600180546001600160a01b03191690556100e8816100eb565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610150575f5ffd5b919050565b5f5f5f60608486031215610167575f5ffd5b6101708461013a565b9250602084015191506101856040850161013a565b90509250925092565b60805160a0516113026101d25f395f81816101dd01528181610281015281816107dc01528181610818015261084601525f818161020c015261038501526113025ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637b103999116100bf578063b0b578cd11610079578063b0b578cd146102b8578063ce29e0af146102c0578063cf8ab76b146102d3578063e30c3978146102f4578063e8b348a014610305578063f2fde38b14610318575f5ffd5b80637b103999146102075780638da5cb5b146102465780639ba7da9214610256578063a7d270561461025f578063adc4e1d91461027f578063ae61c5ae146102a5575f5ffd5b80634c7f807d116101105780634c7f807d1461019f5780636c6071aa146101a8578063715018a6146101bd578063763f323d146101c55780637924294e146101d857806379ba5097146101ff575f5ffd5b80632929883d1461014c5780632a20d66b1461016757806331933916146101715780633212dd70146101795780633ef1fc3614610196575b5f5ffd5b61015461032b565b6040519081526020015b60405180910390f35b61016f610365565b005b610154610407565b6005546101869060ff1681565b604051901515815260200161015e565b61015460045481565b61015460025481565b6101b061042d565b60405161015e9190610f0c565b61016f610439565b61016f6101d3366004610f57565b61044a565b6101547f000000000000000000000000000000000000000000000000000000000000000081565b61016f610501565b61022e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015e565b5f546001600160a01b031661022e565b61015460035481565b61027261026d366004610f7d565b610545565b60405161015e9190610fd7565b7f0000000000000000000000000000000000000000000000000000000000000000610154565b61016f6102b3366004610f57565b610662565b610154610714565b61016f6102ce366004610fe9565b610756565b6102e66102e1366004611057565b610966565b60405161015e929190611077565b6001546001600160a01b031661022e565b610186610313366004610f57565b610bb3565b61016f610326366004610f57565b610bdb565b5f6004545f1480610340575060035460045411155b1561035e576040516324f9528560e11b815260040160405180910390fd5b5060035490565b5f546001600160a01b031633148015906103a85750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156103c5576040516282b42960e81b815260040160405180910390fd5b60055460ff1615610405576005805460ff1916905560405130907f9dadce7d1fbc48896c5ad91bd8a16a125e4170bd2a6c7dc06799659b5cc2e99c905f90a25b565b5f6003546004541161041857505f90565b600354600454610428919061112c565b905090565b60606104286008610c4b565b610441610c5e565b6104055f610c8a565b610452610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b03160361048e576040516301f4baf360e11b815260040160405180910390fd5b5f61049a600883610ca3565b9050806104ca57604051632d8c876360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6040516001600160a01b038316907f466d40d3c5afb07f32aa87fa68d587f144c6fee2dfb883b3363937d5427e0442905f90a25050565b60015433906001600160a01b031681146105395760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c1565b61054281610c8a565b50565b60606004545f03610569576040516324f9528560e11b815260040160405180910390fd5b600454821061059657600480546040516377ca6c2160e11b815291820184905260248201526044016104c1565b6003548210156105c757600354604051631f288e2560e31b81526104c1918491600401918252602082015260400190565b5f82815260066020526040902080546105df9061113f565b80601f016020809104026020016040519081016040528092919081815260200182805461060b9061113f565b80156106565780601f1061062d57610100808354040283529160200191610656565b820191905f5260205f20905b81548152906001019060200180831161063957829003601f168201915b50505050509050919050565b61066a610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b0316036106a6576040516301f4baf360e11b815260040160405180910390fd5b5f6106b2600883610cb7565b9050806106dd57604051636a96952f60e01b81526001600160a01b03831660048201526024016104c1565b6040516001600160a01b038316907f215ef528757ca84646fb5c401012a31bcbf1f99487a51e57a57a0c0afa0d3dd2905f90a25050565b5f6004545f1480610729575060035460045411155b15610747576040516324f9528560e11b815260040160405180910390fd5b6001600454610428919061112c565b60055460ff16610779576040516390f5d9a760e01b815260040160405180910390fd5b5f546001600160a01b0316331480159061079b5750610799600833610ccb565b155b156107b8576040516282b42960e81b815260040160405180910390fd5b805f8190036107da57604051630b8fc7cd60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108445760405163116bd21f60e21b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016104c1565b7f0000000000000000000000000000000000000000000000000000000000000000816002546108739190611177565b1180156108835750600454600354105b156108e85760075f60035481526020019081526020015f205460025f8282546108ac919061112c565b90915550506003545f9081526006602052604081206108ca91610ec2565b600380545f9081526007602052604081205580546001019055610844565b6004545f8181526006602052604090206109038486836111ea565b505f81815260076020526040812083905560028054849290610926908490611177565b9091555050600480546001019055604051819030907fa2a2541c43b1972c43c639076a3bef6240e27c11817c7b20a4caab0db3e4f697905f90a350505050565b6060806004545f0361098b576040516324f9528560e11b815260040160405180910390fd5b6003548410156109bc57600354604051631f288e2560e31b81526104c1918691600401918252602082015260400190565b60045484106109e957600480546040516377ca6c2160e11b815291820186905260248201526044016104c1565b5f846004546109f8919061112c565b905080841115610a255760405163bb1cb70b60e01b815260048101859052602481018290526044016104c1565b8367ffffffffffffffff811115610a3e57610a3e61118a565b604051908082528060200260200182016040528015610a7157816020015b6060815260200190600190039081610a5c5790505b5092508367ffffffffffffffff811115610a8d57610a8d61118a565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b5091505f5b84811015610baa575f610ace8288611177565b5f818152600660205260409020805491925090610aea9061113f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b169061113f565b8015610b615780601f10610b3857610100808354040283529160200191610b61565b820191905f5260205f20905b815481529060010190602001808311610b4457829003601f168201915b5050505050858381518110610b7857610b786112a4565b602002602001018190525080848381518110610b9657610b966112a4565b602090810291909101015250600101610abb565b50509250929050565b5f80546001600160a01b0383811691161480610bd55750610bd5600883610ccb565b92915050565b610be3610c5e565b600180546001600160a01b0383166001600160a01b03199091168117909155610c135f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60605f610c5783610cec565b9392505050565b5f546001600160a01b031633146104055760405163118cdaa760e01b81523360048201526024016104c1565b600180546001600160a01b031916905561054281610d44565b5f610c57836001600160a01b038416610d93565b5f610c57836001600160a01b038416610ddf565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561065657602002820191905f5260205f20905b815481526020019060010190808311610d255750505050509050919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818152600183016020526040812054610dd857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610bd5565b505f610bd5565b5f8181526001830160205260408120548015610eb9575f610e0160018361112c565b85549091505f90610e149060019061112c565b9050808214610e73575f865f018281548110610e3257610e326112a4565b905f5260205f200154905080875f018481548110610e5257610e526112a4565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610e8457610e846112b8565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610bd5565b5f915050610bd5565b508054610ece9061113f565b5f825580601f10610edd575050565b601f0160209004905f5260205f209081019061054291905b80821115610f08575f8155600101610ef5565b5090565b602080825282518282018190525f918401906040840190835b81811015610f4c5783516001600160a01b0316835260209384019390920191600101610f25565b509095945050505050565b5f60208284031215610f67575f5ffd5b81356001600160a01b0381168114610c57575f5ffd5b5f60208284031215610f8d575f5ffd5b5035919050565b5f81518084525f5b81811015610fb857602081850181015186830182015201610f9c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610c576020830184610f94565b5f5f60208385031215610ffa575f5ffd5b823567ffffffffffffffff811115611010575f5ffd5b8301601f81018513611020575f5ffd5b803567ffffffffffffffff811115611036575f5ffd5b856020828401011115611047575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611068575f5ffd5b50508035926020909101359150565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b828110156110ce57605f198786030184526110b9858351610f94565b9450602093840193919091019060010161109d565b5050505082810360208401528084518083526020830191506020860192505f5b8181101561110c5783518352602093840193909201916001016110ee565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd557610bd5611118565b600181811c9082168061115357607f821691505b60208210810361117157634e487b7160e01b5f52602260045260245ffd5b50919050565b80820180821115610bd557610bd5611118565b634e487b7160e01b5f52604160045260245ffd5b601f8211156111e557805f5260205f20601f840160051c810160208510156111c35750805b601f840160051c820191505b818110156111e2575f81556001016111cf565b50505b505050565b67ffffffffffffffff8311156112025761120261118a565b61121683611210835461113f565b8361119e565b5f601f841160018114611247575f85156112305750838201355b5f19600387901b1c1916600186901b1783556111e2565b5f83815260208120601f198716915b828110156112765786850135825560209485019460019092019101611256565b5086821015611292575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220529a0aa1554bed0205b03663020c41541f7929176c3ddd5a3f6f7e5954cd007264736f6c634300081c0033" + "bytecode": "0x60c06040526005805460ff1916600117905534801561001c575f5ffd5b506040516114bf3803806114bf83398101604081905261003b91610155565b826001600160a01b03811661006957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610072816100cf565b506001600160a01b03811661009a57604051634a100d5960e01b815260040160405180910390fd5b815f036100ba576040516302f2d9e160e21b815260040160405180910390fd5b6001600160a01b031660805260a0525061018e565b600180546001600160a01b03191690556100e8816100eb565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610150575f5ffd5b919050565b5f5f5f60608486031215610167575f5ffd5b6101708461013a565b9250602084015191506101856040850161013a565b90509250925092565b60805160a0516112ed6101d25f395f81816101dd01528181610281015281816107dc01528181610818015261084601525f818161020c015261038501526112ed5ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637b103999116100bf578063b0b578cd11610079578063b0b578cd146102b8578063ce29e0af146102c0578063cf8ab76b146102d3578063e30c3978146102f4578063e8b348a014610305578063f2fde38b14610318575f5ffd5b80637b103999146102075780638da5cb5b146102465780639ba7da9214610256578063a7d270561461025f578063adc4e1d91461027f578063ae61c5ae146102a5575f5ffd5b80634c7f807d116101105780634c7f807d1461019f5780636c6071aa146101a8578063715018a6146101bd578063763f323d146101c55780637924294e146101d857806379ba5097146101ff575f5ffd5b80632929883d1461014c5780632a20d66b1461016757806331933916146101715780633212dd70146101795780633ef1fc3614610196575b5f5ffd5b61015461032b565b6040519081526020015b60405180910390f35b61016f610365565b005b610154610407565b6005546101869060ff1681565b604051901515815260200161015e565b61015460045481565b61015460025481565b6101b061042d565b60405161015e9190610f0c565b61016f610439565b61016f6101d3366004610f57565b61044a565b6101547f000000000000000000000000000000000000000000000000000000000000000081565b61016f610501565b61022e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015e565b5f546001600160a01b031661022e565b61015460035481565b61027261026d366004610f7d565b610545565b60405161015e9190610fc2565b7f0000000000000000000000000000000000000000000000000000000000000000610154565b61016f6102b3366004610f57565b610662565b610154610714565b61016f6102ce366004610fd4565b610756565b6102e66102e1366004611042565b610966565b60405161015e929190611062565b6001546001600160a01b031661022e565b610186610313366004610f57565b610bb3565b61016f610326366004610f57565b610bdb565b5f6004545f1480610340575060035460045411155b1561035e576040516324f9528560e11b815260040160405180910390fd5b5060035490565b5f546001600160a01b031633148015906103a85750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156103c5576040516282b42960e81b815260040160405180910390fd5b60055460ff1615610405576005805460ff1916905560405130907f9dadce7d1fbc48896c5ad91bd8a16a125e4170bd2a6c7dc06799659b5cc2e99c905f90a25b565b5f6003546004541161041857505f90565b6003546004546104289190611117565b905090565b60606104286008610c4b565b610441610c5e565b6104055f610c8a565b610452610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b03160361048e576040516301f4baf360e11b815260040160405180910390fd5b5f61049a600883610ca3565b9050806104ca57604051632d8c876360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6040516001600160a01b038316907f466d40d3c5afb07f32aa87fa68d587f144c6fee2dfb883b3363937d5427e0442905f90a25050565b60015433906001600160a01b031681146105395760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c1565b61054281610c8a565b50565b60606004545f03610569576040516324f9528560e11b815260040160405180910390fd5b600454821061059657600480546040516377ca6c2160e11b815291820184905260248201526044016104c1565b6003548210156105c757600354604051631f288e2560e31b81526104c1918491600401918252602082015260400190565b5f82815260066020526040902080546105df9061112a565b80601f016020809104026020016040519081016040528092919081815260200182805461060b9061112a565b80156106565780601f1061062d57610100808354040283529160200191610656565b820191905f5260205f20905b81548152906001019060200180831161063957829003601f168201915b50505050509050919050565b61066a610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b0316036106a6576040516301f4baf360e11b815260040160405180910390fd5b5f6106b2600883610cb7565b9050806106dd57604051636a96952f60e01b81526001600160a01b03831660048201526024016104c1565b6040516001600160a01b038316907f215ef528757ca84646fb5c401012a31bcbf1f99487a51e57a57a0c0afa0d3dd2905f90a25050565b5f6004545f1480610729575060035460045411155b15610747576040516324f9528560e11b815260040160405180910390fd5b60016004546104289190611117565b60055460ff16610779576040516390f5d9a760e01b815260040160405180910390fd5b5f546001600160a01b0316331480159061079b5750610799600833610ccb565b155b156107b8576040516282b42960e81b815260040160405180910390fd5b805f8190036107da57604051630b8fc7cd60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108445760405163116bd21f60e21b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016104c1565b7f0000000000000000000000000000000000000000000000000000000000000000816002546108739190611162565b1180156108835750600454600354105b156108e85760075f60035481526020019081526020015f205460025f8282546108ac9190611117565b90915550506003545f9081526006602052604081206108ca91610ec2565b600380545f9081526007602052604081205580546001019055610844565b6004545f8181526006602052604090206109038486836111d5565b505f81815260076020526040812083905560028054849290610926908490611162565b9091555050600480546001019055604051819030907fa2a2541c43b1972c43c639076a3bef6240e27c11817c7b20a4caab0db3e4f697905f90a350505050565b6060806004545f0361098b576040516324f9528560e11b815260040160405180910390fd5b6003548410156109bc57600354604051631f288e2560e31b81526104c1918691600401918252602082015260400190565b60045484106109e957600480546040516377ca6c2160e11b815291820186905260248201526044016104c1565b5f846004546109f89190611117565b905080841115610a255760405163bb1cb70b60e01b815260048101859052602481018290526044016104c1565b8367ffffffffffffffff811115610a3e57610a3e611175565b604051908082528060200260200182016040528015610a7157816020015b6060815260200190600190039081610a5c5790505b5092508367ffffffffffffffff811115610a8d57610a8d611175565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b5091505f5b84811015610baa575f610ace8288611162565b5f818152600660205260409020805491925090610aea9061112a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b169061112a565b8015610b615780601f10610b3857610100808354040283529160200191610b61565b820191905f5260205f20905b815481529060010190602001808311610b4457829003601f168201915b5050505050858381518110610b7857610b7861128f565b602002602001018190525080848381518110610b9657610b9661128f565b602090810291909101015250600101610abb565b50509250929050565b5f80546001600160a01b0383811691161480610bd55750610bd5600883610ccb565b92915050565b610be3610c5e565b600180546001600160a01b0383166001600160a01b03199091168117909155610c135f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60605f610c5783610cec565b9392505050565b5f546001600160a01b031633146104055760405163118cdaa760e01b81523360048201526024016104c1565b600180546001600160a01b031916905561054281610d44565b5f610c57836001600160a01b038416610d93565b5f610c57836001600160a01b038416610ddf565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561065657602002820191905f5260205f20905b815481526020019060010190808311610d255750505050509050919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818152600183016020526040812054610dd857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610bd5565b505f610bd5565b5f8181526001830160205260408120548015610eb9575f610e01600183611117565b85549091505f90610e1490600190611117565b9050808214610e73575f865f018281548110610e3257610e3261128f565b905f5260205f200154905080875f018481548110610e5257610e5261128f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610e8457610e846112a3565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610bd5565b5f915050610bd5565b508054610ece9061112a565b5f825580601f10610edd575050565b601f0160209004905f5260205f209081019061054291905b80821115610f08575f8155600101610ef5565b5090565b602080825282518282018190525f918401906040840190835b81811015610f4c5783516001600160a01b0316835260209384019390920191600101610f25565b509095945050505050565b5f60208284031215610f67575f5ffd5b81356001600160a01b0381168114610c57575f5ffd5b5f60208284031215610f8d575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c576020830184610f94565b5f5f60208385031215610fe5575f5ffd5b823567ffffffffffffffff811115610ffb575f5ffd5b8301601f8101851361100b575f5ffd5b803567ffffffffffffffff811115611021575f5ffd5b856020828401011115611032575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611053575f5ffd5b50508035926020909101359150565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b828110156110b957605f198786030184526110a4858351610f94565b94506020938401939190910190600101611088565b5050505082810360208401528084518083526020830191506020860192505f5b818110156110f75783518352602093840193909201916001016110d9565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd557610bd5611103565b600181811c9082168061113e57607f821691505b60208210810361115c57634e487b7160e01b5f52602260045260245ffd5b50919050565b80820180821115610bd557610bd5611103565b634e487b7160e01b5f52604160045260245ffd5b601f8211156111d057805f5260205f20601f840160051c810160208510156111ae5750805b601f840160051c820191505b818110156111cd575f81556001016111ba565b50505b505050565b67ffffffffffffffff8311156111ed576111ed611175565b611201836111fb835461112a565b83611189565b5f601f841160018114611232575f851561121b5750838201355b5f19600387901b1c1916600186901b1783556111cd565b5f83815260208120601f198716915b828110156112615786850135825560209485019460019092019101611241565b508682101561127d575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220b5aba89e2383af65925a0a3588b2894561865509b56096b726d8120603bc74ad64736f6c634300081c0033" } diff --git a/packages/core/abi/SmartClawsDevice.json b/packages/core/abi/SmartClawsDevice.json index 20492c2..1c2b421 100644 --- a/packages/core/abi/SmartClawsDevice.json +++ b/packages/core/abi/SmartClawsDevice.json @@ -110,5 +110,5 @@ "type": "function" } ], - "bytecode": "0x610100604052348015610010575f5ffd5b5060405161033438038061033483398101604081905261002f91610108565b6001600160a01b0384166100565760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03831661007d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166100a45760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0381166100cb5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0393841660805291831660a052821660c0521660e052610159565b80516001600160a01b0381168114610103575f5ffd5b919050565b5f5f5f5f6080858703121561011b575f5ffd5b610124856100ed565b9350610132602086016100ed565b9250610140604086016100ed565b915061014e606086016100ed565b905092959194509250565b60805160a05160c05160e05161019e6101965f395f606901525f60d301525f818160ac015261011d01525f818160f70152610146015261019e5ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806329e7ef2d1461006457806367055564146100a75780638c72c54e146100ce578063b61db084146100f5578063d106542b1461011b578063f5bae62914610141575b5f5ffd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b61008b7f00000000000000000000000000000000000000000000000000000000000000008156fea2646970667358221220ed204b916a188187be4b5f5107f062498136c9b26b5af45732c1999cabb8135b64736f6c634300081c0033" + "bytecode": "0x610100604052348015610010575f5ffd5b5060405161033438038061033483398101604081905261002f91610108565b6001600160a01b0384166100565760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03831661007d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166100a45760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0381166100cb5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0393841660805291831660a052821660c0521660e052610159565b80516001600160a01b0381168114610103575f5ffd5b919050565b5f5f5f5f6080858703121561011b575f5ffd5b610124856100ed565b9350610132602086016100ed565b9250610140604086016100ed565b915061014e606086016100ed565b905092959194509250565b60805160a05160c05160e05161019e6101965f395f606901525f60d301525f818160ac015261011d01525f818160f70152610146015261019e5ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806329e7ef2d1461006457806367055564146100a75780638c72c54e146100ce578063b61db084146100f5578063d106542b1461011b578063f5bae62914610141575b5f5ffd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b61008b7f00000000000000000000000000000000000000000000000000000000000000008156fea26469706673582212202ff90bf7e722fcc2acc3910365f69fec85473b4b720d18b9f0e8130bc3b3aa7a64736f6c634300081c0033" } diff --git a/packages/core/abi/SmartClawsDeviceGroup.json b/packages/core/abi/SmartClawsDeviceGroup.json index 6118d1c..38fbb84 100644 --- a/packages/core/abi/SmartClawsDeviceGroup.json +++ b/packages/core/abi/SmartClawsDeviceGroup.json @@ -374,5 +374,5 @@ "type": "function" } ], - "bytecode": "0x60a06040526004805460ff1916600117905534801561001c575f5ffd5b5060405161280c38038061280c83398101604081905261003b91610204565b836001600160a01b03811661006a57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610073816100cc565b506001600160a01b03811661009d57604051631e4fbdf760e01b81525f6004820152602401610061565b60026100a9848261030e565b5060036100b6838261030e565b506001600160a01b0316608052506103c8915050565b600180546001600160a01b03191690556100e5816100e8565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461014d575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610175575f5ffd5b81516001600160401b0381111561018e5761018e610152565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101bc576101bc610152565b6040528181528382016020018510156101d3575f5ffd5b5f5b828110156101f1576020818601810151838301820152016101d5565b505f918101602001919091529392505050565b5f5f5f5f60808587031215610217575f5ffd5b61022085610137565b60208601519094506001600160401b0381111561023b575f5ffd5b61024787828801610166565b604087015190945090506001600160401b03811115610264575f5ffd5b61027087828801610166565b92505061027f60608601610137565b905092959194509250565b600181811c9082168061029e57607f821691505b6020821081036102bc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561030957805f5260205f20601f840160051c810160208510156102e75750805b601f840160051c820191505b81811015610306575f81556001016102f3565b50505b505050565b81516001600160401b0381111561032757610327610152565b61033b81610335845461028a565b846102c2565b6020601f82116001811461036d575f83156103565750848201515b5f19600385901b1c1916600184901b178455610306565b5f84815260208120601f198516915b8281101561039c578785015182556020948501946001909201910161037c565b50848210156103b957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6080516124176103f55f395f8181610244015281816104c0015281816105fb015261066701526124175ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c8063783cec80116100935780639a06d92e116100635780639a06d92e1461028e578063d611d6c8146102a1578063e30c3978146102b6578063f2fde38b146102c7575f5ffd5b8063783cec801461022f57806379ba5097146102375780637b1039991461023f5780638da5cb5b1461027e575f5ffd5b80633b7fdb73116100ce5780633b7fdb731461013c5780634869fe261461015157806351b42b001461021f578063715018a614610227575f5ffd5b806302fb0c5e146100f4578063220e81621461011657806337a0701a1461012b575b5f5ffd5b6004546101019060ff1681565b60405190151581526020015b60405180910390f35b610129610124366004610a39565b6102da565b005b60065460405190815260200161010d565b610144610429565b60405161010d9190610a59565b6101d961015f366004610a39565b60408051608080820183525f808352602080840182905283850182905260609384018290526001600160a01b039586168252600581529084902084519283018552805460ff811615158452610100900486169183019190915260018101548516938201939093526002909201549092169181019190915290565b60405161010d91908151151581526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b6101296104b5565b61012961053f565b610144610550565b61012961055d565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161010d565b5f546001600160a01b0316610266565b61026661029c366004610aa4565b6105a1565b6102a96108a5565b60405161010d9190610b28565b6001546001600160a01b0316610266565b6101296102d5366004610a39565b610905565b6102e2610975565b6001600160a01b0381165f908152600560205260409020805460ff1661032a576040516282d79d60e41b81526001600160a01b03831660048201526024015b60405180910390fd5b60028101548154604051635730e2d760e11b81526001600160a01b036101009092048216600482015291169063ae61c5ae906024015f604051808303815f87803b158015610376575f5ffd5b505af1158015610388573d5f5f3e3d5ffd5b5050505060018101548154604051635730e2d760e11b81526001600160a01b036101009092048216600482015291169063ae61c5ae906024015f604051808303815f87803b1580156103d8575f5ffd5b505af19250505080156103e9575060015b50805460ff191681556040516001600160a01b038316907f8b5dde107afbe1f827425373a7c474984b5479bf4889612cf11598c00a2ec58a905f90a25050565b6003805461043690610b73565b80601f016020809104026020016040519081016040528092919081815260200182805461046290610b73565b80156104ad5780601f10610484576101008083540402835291602001916104ad565b820191905f5260205f20905b81548152906001019060200180831161049057829003601f168201915b505050505081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104fd576040516282b42960e81b815260040160405180910390fd5b60045460ff161561053d576004805460ff1916905560405130907f1820619d110aba86833e84536b2ba04234f5cb9e87d61baf7846f14398bcfeee905f90a25b565b610547610975565b61053d5f6109a1565b6002805461043690610b73565b60015433906001600160a01b031681146105955760405163118cdaa760e01b81526001600160a01b0382166004820152602401610321565b61059e816109a1565b50565b5f6105aa610975565b60045460ff166105cd5760405163e8431ca760e01b815260040160405180910390fd5b6001600160a01b0383166105f657604051631e4fbdf760e01b81525f6004820152602401610321565b5f30837f000000000000000000000000000000000000000000000000000000000000000060405161062690610a04565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff08015801561065f573d5f5f3e3d5ffd5b5090505f30847f000000000000000000000000000000000000000000000000000000000000000060405161069290610a04565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff0801580156106cb573d5f5f3e3d5ffd5b5060405163763f323d60e01b81526001600160a01b0387811660048301529192509082169063763f323d906024015f604051808303815f87803b158015610710575f5ffd5b505af1158015610722573d5f5f3e3d5ffd5b505050505f8282873060405161073790610a11565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff080158015610778573d5f5f3e3d5ffd5b506040805160808101825260018082526001600160a01b03808b166020808501918252898316858701908152898416606087019081528489165f8181526005909452888420975188549551871661010002610100600160a81b0319911515919091166001600160a81b031990961695909517949094178755905186860180549186166001600160a01b031992831617905590516002909601805496909416958116959095179092556006805493840181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f909101805490921681179091559051919550859250907f40ee62d3a0cf66ef791a7a1f9d6d563ec877b394b8f5c097b6238ac82a68c0e290610892908b908b90610bab565b60405180910390a2505050949350505050565b606060068054806020026020016040519081016040528092919081815260200182805480156108fb57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108dd575b5050505050905090565b61090d610975565b600180546001600160a01b0383166001600160a01b0319909116811790915561093d5f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b0316331461053d5760405163118cdaa760e01b8152336004820152602401610321565b600180546001600160a01b031916905561059e815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6114d480610bda83390190565b610334806120ae83390190565b80356001600160a01b0381168114610a34575f5ffd5b919050565b5f60208284031215610a49575f5ffd5b610a5282610a1e565b9392505050565b602081525f82518060208401525f5b81811015610a855760208186018101516040868401015201610a68565b505f604082850101526040601f19601f83011684010191505092915050565b5f5f5f5f60608587031215610ab7575f5ffd5b843567ffffffffffffffff811115610acd575f5ffd5b8501601f81018713610add575f5ffd5b803567ffffffffffffffff811115610af3575f5ffd5b876020828401011115610b04575f5ffd5b602091820195509350610b18908601610a1e565b9396929550929360400135925050565b602080825282518282018190525f918401906040840190835b81811015610b685783516001600160a01b0316835260209384019390920191600101610b41565b509095945050505050565b600181811c90821680610b8757607f821691505b602082108103610ba557634e487b7160e01b5f52602260045260245ffd5b50919050565b60208152816020820152818360408301375f818301604090810191909152601f909201601f1916010191905056fe60c06040526005805460ff1916600117905534801561001c575f5ffd5b506040516114d43803806114d483398101604081905261003b91610155565b826001600160a01b03811661006957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610072816100cf565b506001600160a01b03811661009a57604051634a100d5960e01b815260040160405180910390fd5b815f036100ba576040516302f2d9e160e21b815260040160405180910390fd5b6001600160a01b031660805260a0525061018e565b600180546001600160a01b03191690556100e8816100eb565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610150575f5ffd5b919050565b5f5f5f60608486031215610167575f5ffd5b6101708461013a565b9250602084015191506101856040850161013a565b90509250925092565b60805160a0516113026101d25f395f81816101dd01528181610281015281816107dc01528181610818015261084601525f818161020c015261038501526113025ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637b103999116100bf578063b0b578cd11610079578063b0b578cd146102b8578063ce29e0af146102c0578063cf8ab76b146102d3578063e30c3978146102f4578063e8b348a014610305578063f2fde38b14610318575f5ffd5b80637b103999146102075780638da5cb5b146102465780639ba7da9214610256578063a7d270561461025f578063adc4e1d91461027f578063ae61c5ae146102a5575f5ffd5b80634c7f807d116101105780634c7f807d1461019f5780636c6071aa146101a8578063715018a6146101bd578063763f323d146101c55780637924294e146101d857806379ba5097146101ff575f5ffd5b80632929883d1461014c5780632a20d66b1461016757806331933916146101715780633212dd70146101795780633ef1fc3614610196575b5f5ffd5b61015461032b565b6040519081526020015b60405180910390f35b61016f610365565b005b610154610407565b6005546101869060ff1681565b604051901515815260200161015e565b61015460045481565b61015460025481565b6101b061042d565b60405161015e9190610f0c565b61016f610439565b61016f6101d3366004610f57565b61044a565b6101547f000000000000000000000000000000000000000000000000000000000000000081565b61016f610501565b61022e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015e565b5f546001600160a01b031661022e565b61015460035481565b61027261026d366004610f7d565b610545565b60405161015e9190610fd7565b7f0000000000000000000000000000000000000000000000000000000000000000610154565b61016f6102b3366004610f57565b610662565b610154610714565b61016f6102ce366004610fe9565b610756565b6102e66102e1366004611057565b610966565b60405161015e929190611077565b6001546001600160a01b031661022e565b610186610313366004610f57565b610bb3565b61016f610326366004610f57565b610bdb565b5f6004545f1480610340575060035460045411155b1561035e576040516324f9528560e11b815260040160405180910390fd5b5060035490565b5f546001600160a01b031633148015906103a85750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156103c5576040516282b42960e81b815260040160405180910390fd5b60055460ff1615610405576005805460ff1916905560405130907f9dadce7d1fbc48896c5ad91bd8a16a125e4170bd2a6c7dc06799659b5cc2e99c905f90a25b565b5f6003546004541161041857505f90565b600354600454610428919061112c565b905090565b60606104286008610c4b565b610441610c5e565b6104055f610c8a565b610452610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b03160361048e576040516301f4baf360e11b815260040160405180910390fd5b5f61049a600883610ca3565b9050806104ca57604051632d8c876360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6040516001600160a01b038316907f466d40d3c5afb07f32aa87fa68d587f144c6fee2dfb883b3363937d5427e0442905f90a25050565b60015433906001600160a01b031681146105395760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c1565b61054281610c8a565b50565b60606004545f03610569576040516324f9528560e11b815260040160405180910390fd5b600454821061059657600480546040516377ca6c2160e11b815291820184905260248201526044016104c1565b6003548210156105c757600354604051631f288e2560e31b81526104c1918491600401918252602082015260400190565b5f82815260066020526040902080546105df9061113f565b80601f016020809104026020016040519081016040528092919081815260200182805461060b9061113f565b80156106565780601f1061062d57610100808354040283529160200191610656565b820191905f5260205f20905b81548152906001019060200180831161063957829003601f168201915b50505050509050919050565b61066a610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b0316036106a6576040516301f4baf360e11b815260040160405180910390fd5b5f6106b2600883610cb7565b9050806106dd57604051636a96952f60e01b81526001600160a01b03831660048201526024016104c1565b6040516001600160a01b038316907f215ef528757ca84646fb5c401012a31bcbf1f99487a51e57a57a0c0afa0d3dd2905f90a25050565b5f6004545f1480610729575060035460045411155b15610747576040516324f9528560e11b815260040160405180910390fd5b6001600454610428919061112c565b60055460ff16610779576040516390f5d9a760e01b815260040160405180910390fd5b5f546001600160a01b0316331480159061079b5750610799600833610ccb565b155b156107b8576040516282b42960e81b815260040160405180910390fd5b805f8190036107da57604051630b8fc7cd60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108445760405163116bd21f60e21b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016104c1565b7f0000000000000000000000000000000000000000000000000000000000000000816002546108739190611177565b1180156108835750600454600354105b156108e85760075f60035481526020019081526020015f205460025f8282546108ac919061112c565b90915550506003545f9081526006602052604081206108ca91610ec2565b600380545f9081526007602052604081205580546001019055610844565b6004545f8181526006602052604090206109038486836111ea565b505f81815260076020526040812083905560028054849290610926908490611177565b9091555050600480546001019055604051819030907fa2a2541c43b1972c43c639076a3bef6240e27c11817c7b20a4caab0db3e4f697905f90a350505050565b6060806004545f0361098b576040516324f9528560e11b815260040160405180910390fd5b6003548410156109bc57600354604051631f288e2560e31b81526104c1918691600401918252602082015260400190565b60045484106109e957600480546040516377ca6c2160e11b815291820186905260248201526044016104c1565b5f846004546109f8919061112c565b905080841115610a255760405163bb1cb70b60e01b815260048101859052602481018290526044016104c1565b8367ffffffffffffffff811115610a3e57610a3e61118a565b604051908082528060200260200182016040528015610a7157816020015b6060815260200190600190039081610a5c5790505b5092508367ffffffffffffffff811115610a8d57610a8d61118a565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b5091505f5b84811015610baa575f610ace8288611177565b5f818152600660205260409020805491925090610aea9061113f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b169061113f565b8015610b615780601f10610b3857610100808354040283529160200191610b61565b820191905f5260205f20905b815481529060010190602001808311610b4457829003601f168201915b5050505050858381518110610b7857610b786112a4565b602002602001018190525080848381518110610b9657610b966112a4565b602090810291909101015250600101610abb565b50509250929050565b5f80546001600160a01b0383811691161480610bd55750610bd5600883610ccb565b92915050565b610be3610c5e565b600180546001600160a01b0383166001600160a01b03199091168117909155610c135f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60605f610c5783610cec565b9392505050565b5f546001600160a01b031633146104055760405163118cdaa760e01b81523360048201526024016104c1565b600180546001600160a01b031916905561054281610d44565b5f610c57836001600160a01b038416610d93565b5f610c57836001600160a01b038416610ddf565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561065657602002820191905f5260205f20905b815481526020019060010190808311610d255750505050509050919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818152600183016020526040812054610dd857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610bd5565b505f610bd5565b5f8181526001830160205260408120548015610eb9575f610e0160018361112c565b85549091505f90610e149060019061112c565b9050808214610e73575f865f018281548110610e3257610e326112a4565b905f5260205f200154905080875f018481548110610e5257610e526112a4565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610e8457610e846112b8565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610bd5565b5f915050610bd5565b508054610ece9061113f565b5f825580601f10610edd575050565b601f0160209004905f5260205f209081019061054291905b80821115610f08575f8155600101610ef5565b5090565b602080825282518282018190525f918401906040840190835b81811015610f4c5783516001600160a01b0316835260209384019390920191600101610f25565b509095945050505050565b5f60208284031215610f67575f5ffd5b81356001600160a01b0381168114610c57575f5ffd5b5f60208284031215610f8d575f5ffd5b5035919050565b5f81518084525f5b81811015610fb857602081850181015186830182015201610f9c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610c576020830184610f94565b5f5f60208385031215610ffa575f5ffd5b823567ffffffffffffffff811115611010575f5ffd5b8301601f81018513611020575f5ffd5b803567ffffffffffffffff811115611036575f5ffd5b856020828401011115611047575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611068575f5ffd5b50508035926020909101359150565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b828110156110ce57605f198786030184526110b9858351610f94565b9450602093840193919091019060010161109d565b5050505082810360208401528084518083526020830191506020860192505f5b8181101561110c5783518352602093840193909201916001016110ee565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd557610bd5611118565b600181811c9082168061115357607f821691505b60208210810361117157634e487b7160e01b5f52602260045260245ffd5b50919050565b80820180821115610bd557610bd5611118565b634e487b7160e01b5f52604160045260245ffd5b601f8211156111e557805f5260205f20601f840160051c810160208510156111c35750805b601f840160051c820191505b818110156111e2575f81556001016111cf565b50505b505050565b67ffffffffffffffff8311156112025761120261118a565b61121683611210835461113f565b8361119e565b5f601f841160018114611247575f85156112305750838201355b5f19600387901b1c1916600186901b1783556111e2565b5f83815260208120601f198716915b828110156112765786850135825560209485019460019092019101611256565b5086821015611292575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220529a0aa1554bed0205b03663020c41541f7929176c3ddd5a3f6f7e5954cd007264736f6c634300081c0033610100604052348015610010575f5ffd5b5060405161033438038061033483398101604081905261002f91610108565b6001600160a01b0384166100565760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03831661007d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166100a45760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0381166100cb5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0393841660805291831660a052821660c0521660e052610159565b80516001600160a01b0381168114610103575f5ffd5b919050565b5f5f5f5f6080858703121561011b575f5ffd5b610124856100ed565b9350610132602086016100ed565b9250610140604086016100ed565b915061014e606086016100ed565b905092959194509250565b60805160a05160c05160e05161019e6101965f395f606901525f60d301525f818160ac015261011d01525f818160f70152610146015261019e5ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806329e7ef2d1461006457806367055564146100a75780638c72c54e146100ce578063b61db084146100f5578063d106542b1461011b578063f5bae62914610141575b5f5ffd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b61008b7f00000000000000000000000000000000000000000000000000000000000000008156fea2646970667358221220ed204b916a188187be4b5f5107f062498136c9b26b5af45732c1999cabb8135b64736f6c634300081c0033a2646970667358221220cc98e4fcb8897f4e0f6164b29b69cb8d56fe98af407c33da2eab0962189f058b64736f6c634300081c0033" + "bytecode": "0x60a06040526004805460ff1916600117905534801561001c575f5ffd5b506040516127cc3803806127cc83398101604081905261003b916101ef565b836001600160a01b03811661006a57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610073816100cc565b506001600160a01b03811661009d57604051631e4fbdf760e01b81525f6004820152602401610061565b60026100a984826102f9565b5060036100b683826102f9565b506001600160a01b0316608052506103b3915050565b600180546001600160a01b03191690556100e5816100e8565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461014d575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610175575f5ffd5b81516001600160401b0381111561018e5761018e610152565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101bc576101bc610152565b6040528181528382016020018510156101d3575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f60808587031215610202575f5ffd5b61020b85610137565b60208601519094506001600160401b03811115610226575f5ffd5b61023287828801610166565b604087015190945090506001600160401b0381111561024f575f5ffd5b61025b87828801610166565b92505061026a60608601610137565b905092959194509250565b600181811c9082168061028957607f821691505b6020821081036102a757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102f457805f5260205f20601f840160051c810160208510156102d25750805b601f840160051c820191505b818110156102f1575f81556001016102de565b50505b505050565b81516001600160401b0381111561031257610312610152565b610326816103208454610275565b846102ad565b6020601f821160018114610358575f83156103415750848201515b5f19600385901b1c1916600184901b1784556102f1565b5f84815260208120601f198516915b828110156103875787850151825560209485019460019092019101610367565b50848210156103a457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6080516123ec6103e05f395f8181610244015281816104c0015281816105fb015261066701526123ec5ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c8063783cec80116100935780639a06d92e116100635780639a06d92e1461028e578063d611d6c8146102a1578063e30c3978146102b6578063f2fde38b146102c7575f5ffd5b8063783cec801461022f57806379ba5097146102375780637b1039991461023f5780638da5cb5b1461027e575f5ffd5b80633b7fdb73116100ce5780633b7fdb731461013c5780634869fe261461015157806351b42b001461021f578063715018a614610227575f5ffd5b806302fb0c5e146100f4578063220e81621461011657806337a0701a1461012b575b5f5ffd5b6004546101019060ff1681565b60405190151581526020015b60405180910390f35b610129610124366004610a39565b6102da565b005b60065460405190815260200161010d565b610144610429565b60405161010d9190610a59565b6101d961015f366004610a39565b60408051608080820183525f808352602080840182905283850182905260609384018290526001600160a01b039586168252600581529084902084519283018552805460ff811615158452610100900486169183019190915260018101548516938201939093526002909201549092169181019190915290565b60405161010d91908151151581526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b6101296104b5565b61012961053f565b610144610550565b61012961055d565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161010d565b5f546001600160a01b0316610266565b61026661029c366004610a8e565b6105a1565b6102a96108a5565b60405161010d9190610b12565b6001546001600160a01b0316610266565b6101296102d5366004610a39565b610905565b6102e2610975565b6001600160a01b0381165f908152600560205260409020805460ff1661032a576040516282d79d60e41b81526001600160a01b03831660048201526024015b60405180910390fd5b60028101548154604051635730e2d760e11b81526001600160a01b036101009092048216600482015291169063ae61c5ae906024015f604051808303815f87803b158015610376575f5ffd5b505af1158015610388573d5f5f3e3d5ffd5b5050505060018101548154604051635730e2d760e11b81526001600160a01b036101009092048216600482015291169063ae61c5ae906024015f604051808303815f87803b1580156103d8575f5ffd5b505af19250505080156103e9575060015b50805460ff191681556040516001600160a01b038316907f8b5dde107afbe1f827425373a7c474984b5479bf4889612cf11598c00a2ec58a905f90a25050565b6003805461043690610b5d565b80601f016020809104026020016040519081016040528092919081815260200182805461046290610b5d565b80156104ad5780601f10610484576101008083540402835291602001916104ad565b820191905f5260205f20905b81548152906001019060200180831161049057829003601f168201915b505050505081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104fd576040516282b42960e81b815260040160405180910390fd5b60045460ff161561053d576004805460ff1916905560405130907f1820619d110aba86833e84536b2ba04234f5cb9e87d61baf7846f14398bcfeee905f90a25b565b610547610975565b61053d5f6109a1565b6002805461043690610b5d565b60015433906001600160a01b031681146105955760405163118cdaa760e01b81526001600160a01b0382166004820152602401610321565b61059e816109a1565b50565b5f6105aa610975565b60045460ff166105cd5760405163e8431ca760e01b815260040160405180910390fd5b6001600160a01b0383166105f657604051631e4fbdf760e01b81525f6004820152602401610321565b5f30837f000000000000000000000000000000000000000000000000000000000000000060405161062690610a04565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff08015801561065f573d5f5f3e3d5ffd5b5090505f30847f000000000000000000000000000000000000000000000000000000000000000060405161069290610a04565b6001600160a01b03938416815260208101929092529091166040820152606001604051809103905ff0801580156106cb573d5f5f3e3d5ffd5b5060405163763f323d60e01b81526001600160a01b0387811660048301529192509082169063763f323d906024015f604051808303815f87803b158015610710575f5ffd5b505af1158015610722573d5f5f3e3d5ffd5b505050505f8282873060405161073790610a11565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff080158015610778573d5f5f3e3d5ffd5b506040805160808101825260018082526001600160a01b03808b166020808501918252898316858701908152898416606087019081528489165f8181526005909452888420975188549551871661010002610100600160a81b0319911515919091166001600160a81b031990961695909517949094178755905186860180549186166001600160a01b031992831617905590516002909601805496909416958116959095179092556006805493840181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f909101805490921681179091559051919550859250907f40ee62d3a0cf66ef791a7a1f9d6d563ec877b394b8f5c097b6238ac82a68c0e290610892908b908b90610b95565b60405180910390a2505050949350505050565b606060068054806020026020016040519081016040528092919081815260200182805480156108fb57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116108dd575b5050505050905090565b61090d610975565b600180546001600160a01b0383166001600160a01b0319909116811790915561093d5f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b0316331461053d5760405163118cdaa760e01b8152336004820152602401610321565b600180546001600160a01b031916905561059e815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6114bf80610bc483390190565b6103348061208383390190565b80356001600160a01b0381168114610a34575f5ffd5b919050565b5f60208284031215610a49575f5ffd5b610a5282610a1e565b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f5f60608587031215610aa1575f5ffd5b843567ffffffffffffffff811115610ab7575f5ffd5b8501601f81018713610ac7575f5ffd5b803567ffffffffffffffff811115610add575f5ffd5b876020828401011115610aee575f5ffd5b602091820195509350610b02908601610a1e565b9396929550929360400135925050565b602080825282518282018190525f918401906040840190835b81811015610b525783516001600160a01b0316835260209384019390920191600101610b2b565b509095945050505050565b600181811c90821680610b7157607f821691505b602082108103610b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208152816020820152818360408301375f818301604090810191909152601f909201601f1916010191905056fe60c06040526005805460ff1916600117905534801561001c575f5ffd5b506040516114bf3803806114bf83398101604081905261003b91610155565b826001600160a01b03811661006957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610072816100cf565b506001600160a01b03811661009a57604051634a100d5960e01b815260040160405180910390fd5b815f036100ba576040516302f2d9e160e21b815260040160405180910390fd5b6001600160a01b031660805260a0525061018e565b600180546001600160a01b03191690556100e8816100eb565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610150575f5ffd5b919050565b5f5f5f60608486031215610167575f5ffd5b6101708461013a565b9250602084015191506101856040850161013a565b90509250925092565b60805160a0516112ed6101d25f395f81816101dd01528181610281015281816107dc01528181610818015261084601525f818161020c015261038501526112ed5ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637b103999116100bf578063b0b578cd11610079578063b0b578cd146102b8578063ce29e0af146102c0578063cf8ab76b146102d3578063e30c3978146102f4578063e8b348a014610305578063f2fde38b14610318575f5ffd5b80637b103999146102075780638da5cb5b146102465780639ba7da9214610256578063a7d270561461025f578063adc4e1d91461027f578063ae61c5ae146102a5575f5ffd5b80634c7f807d116101105780634c7f807d1461019f5780636c6071aa146101a8578063715018a6146101bd578063763f323d146101c55780637924294e146101d857806379ba5097146101ff575f5ffd5b80632929883d1461014c5780632a20d66b1461016757806331933916146101715780633212dd70146101795780633ef1fc3614610196575b5f5ffd5b61015461032b565b6040519081526020015b60405180910390f35b61016f610365565b005b610154610407565b6005546101869060ff1681565b604051901515815260200161015e565b61015460045481565b61015460025481565b6101b061042d565b60405161015e9190610f0c565b61016f610439565b61016f6101d3366004610f57565b61044a565b6101547f000000000000000000000000000000000000000000000000000000000000000081565b61016f610501565b61022e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015e565b5f546001600160a01b031661022e565b61015460035481565b61027261026d366004610f7d565b610545565b60405161015e9190610fc2565b7f0000000000000000000000000000000000000000000000000000000000000000610154565b61016f6102b3366004610f57565b610662565b610154610714565b61016f6102ce366004610fd4565b610756565b6102e66102e1366004611042565b610966565b60405161015e929190611062565b6001546001600160a01b031661022e565b610186610313366004610f57565b610bb3565b61016f610326366004610f57565b610bdb565b5f6004545f1480610340575060035460045411155b1561035e576040516324f9528560e11b815260040160405180910390fd5b5060035490565b5f546001600160a01b031633148015906103a85750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156103c5576040516282b42960e81b815260040160405180910390fd5b60055460ff1615610405576005805460ff1916905560405130907f9dadce7d1fbc48896c5ad91bd8a16a125e4170bd2a6c7dc06799659b5cc2e99c905f90a25b565b5f6003546004541161041857505f90565b6003546004546104289190611117565b905090565b60606104286008610c4b565b610441610c5e565b6104055f610c8a565b610452610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b03160361048e576040516301f4baf360e11b815260040160405180910390fd5b5f61049a600883610ca3565b9050806104ca57604051632d8c876360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6040516001600160a01b038316907f466d40d3c5afb07f32aa87fa68d587f144c6fee2dfb883b3363937d5427e0442905f90a25050565b60015433906001600160a01b031681146105395760405163118cdaa760e01b81526001600160a01b03821660048201526024016104c1565b61054281610c8a565b50565b60606004545f03610569576040516324f9528560e11b815260040160405180910390fd5b600454821061059657600480546040516377ca6c2160e11b815291820184905260248201526044016104c1565b6003548210156105c757600354604051631f288e2560e31b81526104c1918491600401918252602082015260400190565b5f82815260066020526040902080546105df9061112a565b80601f016020809104026020016040519081016040528092919081815260200182805461060b9061112a565b80156106565780601f1061062d57610100808354040283529160200191610656565b820191905f5260205f20905b81548152906001019060200180831161063957829003601f168201915b50505050509050919050565b61066a610c5e565b5f546001600160a01b03166001600160a01b0316816001600160a01b0316036106a6576040516301f4baf360e11b815260040160405180910390fd5b5f6106b2600883610cb7565b9050806106dd57604051636a96952f60e01b81526001600160a01b03831660048201526024016104c1565b6040516001600160a01b038316907f215ef528757ca84646fb5c401012a31bcbf1f99487a51e57a57a0c0afa0d3dd2905f90a25050565b5f6004545f1480610729575060035460045411155b15610747576040516324f9528560e11b815260040160405180910390fd5b60016004546104289190611117565b60055460ff16610779576040516390f5d9a760e01b815260040160405180910390fd5b5f546001600160a01b0316331480159061079b5750610799600833610ccb565b155b156107b8576040516282b42960e81b815260040160405180910390fd5b805f8190036107da57604051630b8fc7cd60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108445760405163116bd21f60e21b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016104c1565b7f0000000000000000000000000000000000000000000000000000000000000000816002546108739190611162565b1180156108835750600454600354105b156108e85760075f60035481526020019081526020015f205460025f8282546108ac9190611117565b90915550506003545f9081526006602052604081206108ca91610ec2565b600380545f9081526007602052604081205580546001019055610844565b6004545f8181526006602052604090206109038486836111d5565b505f81815260076020526040812083905560028054849290610926908490611162565b9091555050600480546001019055604051819030907fa2a2541c43b1972c43c639076a3bef6240e27c11817c7b20a4caab0db3e4f697905f90a350505050565b6060806004545f0361098b576040516324f9528560e11b815260040160405180910390fd5b6003548410156109bc57600354604051631f288e2560e31b81526104c1918691600401918252602082015260400190565b60045484106109e957600480546040516377ca6c2160e11b815291820186905260248201526044016104c1565b5f846004546109f89190611117565b905080841115610a255760405163bb1cb70b60e01b815260048101859052602481018290526044016104c1565b8367ffffffffffffffff811115610a3e57610a3e611175565b604051908082528060200260200182016040528015610a7157816020015b6060815260200190600190039081610a5c5790505b5092508367ffffffffffffffff811115610a8d57610a8d611175565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b5091505f5b84811015610baa575f610ace8288611162565b5f818152600660205260409020805491925090610aea9061112a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b169061112a565b8015610b615780601f10610b3857610100808354040283529160200191610b61565b820191905f5260205f20905b815481529060010190602001808311610b4457829003601f168201915b5050505050858381518110610b7857610b7861128f565b602002602001018190525080848381518110610b9657610b9661128f565b602090810291909101015250600101610abb565b50509250929050565b5f80546001600160a01b0383811691161480610bd55750610bd5600883610ccb565b92915050565b610be3610c5e565b600180546001600160a01b0383166001600160a01b03199091168117909155610c135f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60605f610c5783610cec565b9392505050565b5f546001600160a01b031633146104055760405163118cdaa760e01b81523360048201526024016104c1565b600180546001600160a01b031916905561054281610d44565b5f610c57836001600160a01b038416610d93565b5f610c57836001600160a01b038416610ddf565b6001600160a01b0381165f9081526001830160205260408120541515610c57565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561065657602002820191905f5260205f20905b815481526020019060010190808311610d255750505050509050919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f818152600183016020526040812054610dd857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610bd5565b505f610bd5565b5f8181526001830160205260408120548015610eb9575f610e01600183611117565b85549091505f90610e1490600190611117565b9050808214610e73575f865f018281548110610e3257610e3261128f565b905f5260205f200154905080875f018481548110610e5257610e5261128f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610e8457610e846112a3565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610bd5565b5f915050610bd5565b508054610ece9061112a565b5f825580601f10610edd575050565b601f0160209004905f5260205f209081019061054291905b80821115610f08575f8155600101610ef5565b5090565b602080825282518282018190525f918401906040840190835b81811015610f4c5783516001600160a01b0316835260209384019390920191600101610f25565b509095945050505050565b5f60208284031215610f67575f5ffd5b81356001600160a01b0381168114610c57575f5ffd5b5f60208284031215610f8d575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c576020830184610f94565b5f5f60208385031215610fe5575f5ffd5b823567ffffffffffffffff811115610ffb575f5ffd5b8301601f8101851361100b575f5ffd5b803567ffffffffffffffff811115611021575f5ffd5b856020828401011115611032575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611053575f5ffd5b50508035926020909101359150565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b828110156110b957605f198786030184526110a4858351610f94565b94506020938401939190910190600101611088565b5050505082810360208401528084518083526020830191506020860192505f5b818110156110f75783518352602093840193909201916001016110d9565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610bd557610bd5611103565b600181811c9082168061113e57607f821691505b60208210810361115c57634e487b7160e01b5f52602260045260245ffd5b50919050565b80820180821115610bd557610bd5611103565b634e487b7160e01b5f52604160045260245ffd5b601f8211156111d057805f5260205f20601f840160051c810160208510156111ae5750805b601f840160051c820191505b818110156111cd575f81556001016111ba565b50505b505050565b67ffffffffffffffff8311156111ed576111ed611175565b611201836111fb835461112a565b83611189565b5f601f841160018114611232575f851561121b5750838201355b5f19600387901b1c1916600186901b1783556111cd565b5f83815260208120601f198716915b828110156112615786850135825560209485019460019092019101611241565b508682101561127d575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220b5aba89e2383af65925a0a3588b2894561865509b56096b726d8120603bc74ad64736f6c634300081c0033610100604052348015610010575f5ffd5b5060405161033438038061033483398101604081905261002f91610108565b6001600160a01b0384166100565760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03831661007d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166100a45760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0381166100cb5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0393841660805291831660a052821660c0521660e052610159565b80516001600160a01b0381168114610103575f5ffd5b919050565b5f5f5f5f6080858703121561011b575f5ffd5b610124856100ed565b9350610132602086016100ed565b9250610140604086016100ed565b915061014e606086016100ed565b905092959194509250565b60805160a05160c05160e05161019e6101965f395f606901525f60d301525f818160ac015261011d01525f818160f70152610146015261019e5ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c806329e7ef2d1461006457806367055564146100a75780638c72c54e146100ce578063b61db084146100f5578063d106542b1461011b578063f5bae62914610141575b5f5ffd5b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b61008b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b7f000000000000000000000000000000000000000000000000000000000000000061008b565b61008b7f00000000000000000000000000000000000000000000000000000000000000008156fea26469706673582212202ff90bf7e722fcc2acc3910365f69fec85473b4b720d18b9f0e8130bc3b3aa7a64736f6c634300081c0033a2646970667358221220ed1e21ad9c8eb820cee78982d7eff329c75282814849d892aed09070dd7a2eac64736f6c634300081c0033" } diff --git a/packages/core/biome.json b/packages/core/biome.json deleted file mode 100644 index 441a94e..0000000 --- a/packages/core/biome.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://biomejs.dev/schemas/2.4.9/schema.json", - "assist": { - "actions": { - "source": { "organizeImports": "on" } - } - }, - "linter": { - "enabled": true, - "rules": { "recommended": true } - }, - "formatter": { - "enabled": true, - "indentStyle": "space", - "indentWidth": 2, - "lineWidth": 100 - } -} diff --git a/packages/core/package.json b/packages/core/package.json index b8d20de..06bd9a4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@smartclaws/core", - "version": "0.2.0", + "version": "0.3.0", "type": "module", "exports": { ".": "./src/index.ts", diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index d2cb497..8f557b3 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -1,13 +1,9 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "target": "ES2022", "module": "NodeNext", "moduleResolution": "NodeNext", - "strict": true, - "skipLibCheck": true, - "resolveJsonModule": true, - "allowImportingTsExtensions": true, - "noEmit": true + "allowImportingTsExtensions": true }, "include": ["src"] } diff --git a/packages/dashboard/biome.json b/packages/dashboard/biome.json deleted file mode 100644 index 441a94e..0000000 --- a/packages/dashboard/biome.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://biomejs.dev/schemas/2.4.9/schema.json", - "assist": { - "actions": { - "source": { "organizeImports": "on" } - } - }, - "linter": { - "enabled": true, - "rules": { "recommended": true } - }, - "formatter": { - "enabled": true, - "indentStyle": "space", - "indentWidth": 2, - "lineWidth": 100 - } -} diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index 5de00e3..6ec826d 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -1,7 +1,7 @@ { "name": "@smartclaws/dashboard", "private": true, - "version": "0.2.0", + "version": "0.3.0", "type": "module", "scripts": { "dev": "vite", diff --git a/packages/dashboard/tsconfig.json b/packages/dashboard/tsconfig.json index 09f845f..f442d0f 100644 --- a/packages/dashboard/tsconfig.json +++ b/packages/dashboard/tsconfig.json @@ -1,17 +1,13 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { - "target": "ES2022", "useDefineForClassFields": true, "lib": ["ES2022", "DOM", "DOM.Iterable"], "module": "ESNext", - "skipLibCheck": true, "moduleResolution": "bundler", "allowImportingTsExtensions": true, - "resolveJsonModule": true, "isolatedModules": true, - "noEmit": true, "jsx": "react-jsx", - "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, diff --git a/python/pyproject.toml b/python/pyproject.toml index 3a742ac..6b7b9ec 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "smartclaws" -version = "0.2.0" +version = "0.3.0" description = "SDK and CLI for the SmartClaws IoT protocol on SKALE" requires-python = ">=3.11" license = "LGPL-3.0-or-later" diff --git a/python/scripts/publish.py b/python/scripts/ble_publisher.py similarity index 100% rename from python/scripts/publish.py rename to python/scripts/ble_publisher.py diff --git a/scripts/anvil.sh b/scripts/anvil.sh new file mode 100755 index 0000000..3487145 --- /dev/null +++ b/scripts/anvil.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# Start a local Anvil node for integration tests. +# Exports ANVIL_PRIVATE_KEY to the environment. + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +docker run -d --network host --name anvil ghcr.io/foundry-rs/foundry:v1.5.1 "anvil --prune-history 5" || true +sleep 5 + +ANVIL_PRIVATE_KEY=$(docker logs anvil 2>&1 | grep -A 10 "Private Keys" | grep "(0)" | awk '{print $2}') +export ANVIL_PRIVATE_KEY +echo "ANVIL_PRIVATE_KEY=${ANVIL_PRIVATE_KEY}" diff --git a/scripts/version-bump.mjs b/scripts/version-bump.mjs new file mode 100644 index 0000000..2109d87 --- /dev/null +++ b/scripts/version-bump.mjs @@ -0,0 +1,32 @@ +#!/usr/bin/env node +/** Bump version across all packages. Usage: node scripts/version-bump.mjs */ + +import { readFileSync, writeFileSync } from "node:fs"; + +const newVersion = process.argv[2]; +if (!newVersion || !/^\d+\.\d+\.\d+/.test(newVersion)) { + console.error("Usage: node scripts/version-bump.mjs "); + process.exit(1); +} + +const jsonFiles = [ + "package.json", + "packages/core/package.json", + "packages/cli/package.json", + "packages/dashboard/package.json", + "smart-contracts/package.json", +]; + +for (const file of jsonFiles) { + const content = readFileSync(file, "utf8"); + const updated = content.replace(/"version"\s*:\s*"[^"]+"/, `"version": "${newVersion}"`); + writeFileSync(file, updated); + console.log(`✓ ${file}`); +} + +// Python pyproject.toml +const toml = readFileSync("python/pyproject.toml", "utf8"); +writeFileSync("python/pyproject.toml", toml.replace(/^version\s*=\s*"[^"]+"/m, `version = "${newVersion}"`)); +console.log("✓ python/pyproject.toml"); + +console.log(`\nBumped all packages to ${newVersion}`); diff --git a/scripts/version-check.mjs b/scripts/version-check.mjs new file mode 100644 index 0000000..06a9787 --- /dev/null +++ b/scripts/version-check.mjs @@ -0,0 +1,34 @@ +#!/usr/bin/env node +/** Check that all packages declare the same version as the root. */ + +import { readFileSync } from "node:fs"; + +const root = JSON.parse(readFileSync("package.json", "utf8")); +const expected = root.version; + +const files = [ + "packages/core/package.json", + "packages/cli/package.json", + "packages/dashboard/package.json", + "smart-contracts/package.json", + "python/pyproject.toml", +]; + +let ok = true; +for (const file of files) { + const content = readFileSync(file, "utf8"); + const isPython = file.endsWith(".toml"); + const match = isPython + ? content.match(/^version\s*=\s*"([^"]+)"/m) + : content.match(/"version"\s*:\s*"([^"]+)"/); + + const found = match?.[1]; + if (found !== expected) { + console.error(`✗ ${file}: ${found ?? "missing"} (expected ${expected})`); + ok = false; + } else { + console.log(`✓ ${file}: ${found}`); + } +} + +process.exit(ok ? 0 : 1); diff --git a/skills/smartclaws-producer/SKILL.md b/skills/smartclaws-producer/SKILL.md index b2baa7d..225c65d 100644 --- a/skills/smartclaws-producer/SKILL.md +++ b/skills/smartclaws-producer/SKILL.md @@ -46,7 +46,20 @@ smartclaws --version If not installed, download the binary for the current platform: ```bash -PLATFORM="$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/aarch64/arm64/')" +OS="$(uname -s | tr '[:upper:]' '[:lower:]')" +ARCH="$(uname -m)" + +# On Apple Silicon, Rosetta shells can report x86_64. Prefer real hardware arch. +if [ "$OS" = "darwin" ] && [ "$(sysctl -n hw.optional.arm64 2>/dev/null || echo 0)" = "1" ]; then + ARCH="arm64" +fi + +case "$ARCH" in + aarch64|arm64) ARCH="arm64" ;; + x86_64|amd64) ARCH="x86_64" ;; +esac + +PLATFORM="${OS}-${ARCH}" curl -fL -o /usr/local/bin/smartclaws \ "https://github.com/skalenetwork/smartclaws/releases/latest/download/smartclaws-${PLATFORM}" chmod +x /usr/local/bin/smartclaws diff --git a/skills/smartclaws-reader/SKILL.md b/skills/smartclaws-reader/SKILL.md index 852830b..47c4c18 100644 --- a/skills/smartclaws-reader/SKILL.md +++ b/skills/smartclaws-reader/SKILL.md @@ -29,7 +29,20 @@ smartclaws --version If not installed, download the binary for the current platform: ```bash -PLATFORM="$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/aarch64/arm64/')" +OS="$(uname -s | tr '[:upper:]' '[:lower:]')" +ARCH="$(uname -m)" + +# On Apple Silicon, Rosetta shells can report x86_64. Prefer real hardware arch. +if [ "$OS" = "darwin" ] && [ "$(sysctl -n hw.optional.arm64 2>/dev/null || echo 0)" = "1" ]; then + ARCH="arm64" +fi + +case "$ARCH" in + aarch64|arm64) ARCH="arm64" ;; + x86_64|amd64) ARCH="x86_64" ;; +esac + +PLATFORM="${OS}-${ARCH}" curl -fL -o /usr/local/bin/smartclaws \ "https://github.com/skalenetwork/smartclaws/releases/latest/download/smartclaws-${PLATFORM}" chmod +x /usr/local/bin/smartclaws diff --git a/smart-contracts/hardhat.config.ts b/smart-contracts/hardhat.config.ts index 2088833..ba35588 100644 --- a/smart-contracts/hardhat.config.ts +++ b/smart-contracts/hardhat.config.ts @@ -35,15 +35,15 @@ export default defineConfig({ networks: { ...(process.env.SKALE_RPC_URL ? { - skaleTestnet: { - type: "http" as const, - chainId: 196243392, - url: process.env.SKALE_RPC_URL, - accounts: process.env.DEPLOYER_PRIVATE_KEY - ? [process.env.DEPLOYER_PRIVATE_KEY] - : [], - }, - } + skaleTestnet: { + type: "http" as const, + chainId: 196243392, + url: process.env.SKALE_RPC_URL, + accounts: process.env.DEPLOYER_PRIVATE_KEY + ? [process.env.DEPLOYER_PRIVATE_KEY] + : [], + }, + } : {}), }, }); diff --git a/smart-contracts/package-lock.json b/smart-contracts/package-lock.json deleted file mode 100644 index 698fd6e..0000000 --- a/smart-contracts/package-lock.json +++ /dev/null @@ -1,5269 +0,0 @@ -{ - "name": "@skalenetwork/smartclaws-contracts", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@skalenetwork/smartclaws-contracts", - "version": "0.1.0", - "license": "LGPL-3.0-or-later", - "devDependencies": { - "@nomicfoundation/hardhat-toolbox-mocha-ethers": "^3.0.3", - "@openzeppelin/contracts": "^5.0.2", - "dotenv": "^17.3.1", - "hardhat": "^3.2.0", - "solhint": "^6.1.0" - } - }, - "node_modules/@adraffy/ens-normalize": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", - "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz", - "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz", - "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz", - "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz", - "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz", - "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz", - "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz", - "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz", - "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz", - "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz", - "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz", - "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz", - "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz", - "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz", - "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz", - "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz", - "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz", - "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz", - "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz", - "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz", - "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz", - "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz", - "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz", - "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz", - "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz", - "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz", - "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz", - "integrity": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/address": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/hash": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/strings": "^5.8.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz", - "integrity": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/networks": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/transactions": "^5.8.0", - "@ethersproject/web": "^5.8.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz", - "integrity": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz", - "integrity": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/rlp": "^5.8.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz", - "integrity": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.8.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz", - "integrity": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz", - "integrity": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz", - "integrity": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.8.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz", - "integrity": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.8.0", - "@ethersproject/address": "^5.8.0", - "@ethersproject/base64": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/strings": "^5.8.0" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz", - "integrity": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz", - "integrity": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true - }, - "node_modules/@ethersproject/networks": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz", - "integrity": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz", - "integrity": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz", - "integrity": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz", - "integrity": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "bn.js": "^5.2.1", - "elliptic": "6.6.1", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz", - "integrity": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz", - "integrity": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/address": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/rlp": "^5.8.0", - "@ethersproject/signing-key": "^5.8.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz", - "integrity": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/base64": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/strings": "^5.8.0" - } - }, - "node_modules/@humanwhocodes/momoa": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", - "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@noble/ciphers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", - "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.4.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@nomicfoundation/edr": { - "version": "0.12.0-next.28", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.12.0-next.28.tgz", - "integrity": "sha512-DOW5VFGIZWpuB6Llx+5ewn9HingN7uV/6nI3ecB3pZ4qc5OnwxnfG/KatYS6Fq3J55SuWMSxgDMHHA0kAVTFHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nomicfoundation/edr-darwin-arm64": "0.12.0-next.28", - "@nomicfoundation/edr-darwin-x64": "0.12.0-next.28", - "@nomicfoundation/edr-linux-arm64-gnu": "0.12.0-next.28", - "@nomicfoundation/edr-linux-arm64-musl": "0.12.0-next.28", - "@nomicfoundation/edr-linux-x64-gnu": "0.12.0-next.28", - "@nomicfoundation/edr-linux-x64-musl": "0.12.0-next.28", - "@nomicfoundation/edr-win32-x64-msvc": "0.12.0-next.28" - }, - "engines": { - "node": ">= 20" - } - }, - "node_modules/@nomicfoundation/edr-darwin-arm64": { - "version": "0.12.0-next.28", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.12.0-next.28.tgz", - "integrity": "sha512-fJsQ8enlgp4Sky98jHcAFXXmb3EYNoYlwtGlmfoYjDsIeL74a2lozNzyo55CtduHD/sugffjtyF0nDyxZEdwMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - } - }, - "node_modules/@nomicfoundation/edr-darwin-x64": { - "version": "0.12.0-next.28", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.12.0-next.28.tgz", - "integrity": "sha512-QST3PPJPejfRJhxThR5CoCxQAfIty0n8k40JtI+wLwKGCDT86JRKkJ3AaXPM1a72nUqMYoQK+gzQyA11zZGd4Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - } - }, - "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { - "version": "0.12.0-next.28", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.12.0-next.28.tgz", - "integrity": "sha512-sj4p6jeQfkiePxn1goZFZzz7V0SVFfZDH6ngPileQcAoFBWHKqi17UOG4IZ4NFpjYmDCcdrUWDNRbxC7OhgEqQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - } - }, - "node_modules/@nomicfoundation/edr-linux-arm64-musl": { - "version": "0.12.0-next.28", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.12.0-next.28.tgz", - "integrity": "sha512-d0hV02jMTozPEqRF3PO65Xi6/RqN5EywU5KaiDMcO+8b0nk+pJZ6VdcugRgv3lMMJbM/sP3LDFQn2eoOhalp7w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - } - }, - "node_modules/@nomicfoundation/edr-linux-x64-gnu": { - "version": "0.12.0-next.28", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.12.0-next.28.tgz", - "integrity": "sha512-x3z4xbmCtSyZZg9MOhHcw1DOscngj50KK+6ZG0HKkGEbZ7WvDB9BnmRFEWo1rvIM+gqIcZvUBJbpLIdkA/BQYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - } - }, - "node_modules/@nomicfoundation/edr-linux-x64-musl": { - "version": "0.12.0-next.28", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.12.0-next.28.tgz", - "integrity": "sha512-CKGcvP7enTo7gTXVxQiR8txPDOTNqS+wPLPkKXFzQBuVJ0FDj8eKIMRlZaw3Wbcd8QObaAKmKH7KzHVO5zzXmQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - } - }, - "node_modules/@nomicfoundation/edr-win32-x64-msvc": { - "version": "0.12.0-next.28", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.12.0-next.28.tgz", - "integrity": "sha512-QAzb9dZGwOU7Ee2N96dvdSLiUMmjlPVxgLqTKsQbkibcBZ9I+Zs8TGisGUZsDccrbUcR4wDv8S9tD1EM9fEs/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - } - }, - "node_modules/@nomicfoundation/hardhat-errors": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-errors/-/hardhat-errors-3.0.9.tgz", - "integrity": "sha512-qwKMpPsTI0q2Q5w3SKh231WZZPyCHjUvlbUivAn8zNeQ7ko59nBqWoiwMNRuq4F0zVaO1XZ3863R8HwyNd/n0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nomicfoundation/hardhat-utils": "^4.0.1" - } - }, - "node_modules/@nomicfoundation/hardhat-ethers": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-4.0.6.tgz", - "integrity": "sha512-ZGQ7UzKs/EAzVgm0OShJP25oAGEqv9YKuRpRSHd1NyxD0bqJj4U3QeFhZ/3sB5CUly+pJlowJn2e8IVqoELxzA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nomicfoundation/hardhat-errors": "^3.0.7", - "@nomicfoundation/hardhat-utils": "^4.0.0", - "debug": "^4.3.2", - "ethereum-cryptography": "^2.2.1", - "ethers": "^6.14.0" - }, - "peerDependencies": { - "hardhat": "^3.1.11" - } - }, - "node_modules/@nomicfoundation/hardhat-ethers-chai-matchers": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers-chai-matchers/-/hardhat-ethers-chai-matchers-3.0.3.tgz", - "integrity": "sha512-X02s5neeaBsHiXYcPsXeqbHJ2bRytsBmQRkh0JyO6AYbkIY4pM9g+M4wnCUMWPnh1wQnLyT3Iqx+g8nJ8Ont6A==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nomicfoundation/hardhat-utils": "^4.0.0", - "@types/chai-as-promised": "^8.0.1", - "chai-as-promised": "^8.0.0", - "deep-eql": "^5.0.1" - }, - "peerDependencies": { - "@nomicfoundation/hardhat-ethers": "^4.0.0", - "chai": ">=5.1.2 <7", - "ethers": "^6.14.0", - "hardhat": "^3.0.0" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-3.1.0.tgz", - "integrity": "sha512-ENZcVz/L5cpxhtJhglN3nY9gYeMex9aJddOsMpcD+6xQqSwFcEslgJjXXCVJsjhtzDJC2UGBJT2DbpYWV1jILA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nomicfoundation/hardhat-errors": "^3.0.9", - "@nomicfoundation/hardhat-utils": "^4.0.0", - "@nomicfoundation/ignition-core": "^3.1.0", - "@nomicfoundation/ignition-ui": "^3.1.0", - "chalk": "^5.3.0", - "debug": "^4.3.2", - "json5": "^2.2.3", - "prompts": "^2.4.2" - }, - "peerDependencies": { - "@nomicfoundation/hardhat-verify": "^3.0.0", - "hardhat": "^3.1.5" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition-ethers": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-3.1.0.tgz", - "integrity": "sha512-Z/qVJVYObdJLpYZB2sSU6VdqQZRClefe5CQXyUGAGKALKSObcOU2d8V5Pe+d/uune50C47XkTmwAWRRf9gHx4A==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nomicfoundation/hardhat-errors": "^3.0.9" - }, - "peerDependencies": { - "@nomicfoundation/hardhat-ethers": "^4.0.0", - "@nomicfoundation/hardhat-ignition": "^3.0.7", - "@nomicfoundation/hardhat-verify": "^3.0.0", - "@nomicfoundation/ignition-core": "^3.0.7", - "ethers": "^6.14.0", - "hardhat": "^3.1.5" - } - }, - "node_modules/@nomicfoundation/hardhat-keystore": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-keystore/-/hardhat-keystore-3.0.5.tgz", - "integrity": "sha512-jxihFx7r9ekcGmxRVbeDxFJcE3P9cmOHObKxX4ORyBR4b/AKiaqKiktirvsF5MXKJSuQbbp/+wmaqfQDB3LyeA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@noble/ciphers": "1.2.1", - "@noble/hashes": "1.7.1", - "@nomicfoundation/hardhat-errors": "^3.0.7", - "@nomicfoundation/hardhat-utils": "^4.0.0", - "@nomicfoundation/hardhat-zod-utils": "^3.0.2", - "chalk": "^5.3.0", - "debug": "^4.3.2", - "zod": "^3.23.8" - }, - "peerDependencies": { - "hardhat": "^3.0.0" - } - }, - "node_modules/@nomicfoundation/hardhat-keystore/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@nomicfoundation/hardhat-mocha": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-mocha/-/hardhat-mocha-3.0.14.tgz", - "integrity": "sha512-r/g8kNU/NQudwplTNcY71eJoEqroawMgLVwZDwWyhVbcGwvHtQxxEl3IA+PXLJDHrsZc4era6u3JlnvWfs66xw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nomicfoundation/hardhat-errors": "^3.0.9", - "@nomicfoundation/hardhat-utils": "^4.0.1", - "@nomicfoundation/hardhat-zod-utils": "^3.0.3", - "chalk": "^5.3.0", - "debug": "^4.3.2", - "tsx": "^4.19.3", - "zod": "^3.23.8" - }, - "peerDependencies": { - "hardhat": "^3.2.0", - "mocha": "^11.0.0" - } - }, - "node_modules/@nomicfoundation/hardhat-network-helpers": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-3.0.4.tgz", - "integrity": "sha512-WTNISH3/ZkcSDNp//dML18zgV4z3ooeibNcxvv4soCh0AmI8I+2kKaTlKN/Ou1mhKOdiLUbCZCbKNz9LGK3uQw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nomicfoundation/hardhat-errors": "^3.0.7", - "@nomicfoundation/hardhat-utils": "^4.0.0" - }, - "peerDependencies": { - "hardhat": "^3.0.0" - } - }, - "node_modules/@nomicfoundation/hardhat-toolbox-mocha-ethers": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox-mocha-ethers/-/hardhat-toolbox-mocha-ethers-3.0.3.tgz", - "integrity": "sha512-74iTn+D5Mwm8czVbVLG/RB5Ec/hSoxsmt4Wvn4O6mtRIL5jRlLoeG8vc6TKDXEpk1MWL2r5TqCrh7F5N/fk01w==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@nomicfoundation/hardhat-ethers": "^4.0.0", - "@nomicfoundation/hardhat-ethers-chai-matchers": "^3.0.0", - "@nomicfoundation/hardhat-ignition": "^3.0.0", - "@nomicfoundation/hardhat-ignition-ethers": "^3.0.0", - "@nomicfoundation/hardhat-keystore": "^3.0.0", - "@nomicfoundation/hardhat-mocha": "^3.0.0", - "@nomicfoundation/hardhat-network-helpers": "^3.0.0", - "@nomicfoundation/hardhat-typechain": "^3.0.0", - "@nomicfoundation/hardhat-verify": "^3.0.0", - "@nomicfoundation/ignition-core": "^3.0.0", - "chai": ">=5.1.2 <7", - "ethers": "^6.14.0", - "hardhat": "^3.0.0", - "mocha": "^11.0.0" - } - }, - "node_modules/@nomicfoundation/hardhat-typechain": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-typechain/-/hardhat-typechain-3.0.4.tgz", - "integrity": "sha512-MDseC2dTlk8R3bwZyy0qPvNhmqthCrIUaK0SVyAmItj4XjuRametK6vwY9wWwT8UaB6TeIpnQ6S5eO6oTw87iA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nomicfoundation/hardhat-errors": "^3.0.7", - "@nomicfoundation/hardhat-utils": "^4.0.0", - "@nomicfoundation/hardhat-zod-utils": "^3.0.3", - "@typechain/ethers-v6": "^0.5.0", - "debug": "^4.3.2", - "typechain": "^8.3.1", - "zod": "^3.23.8" - }, - "peerDependencies": { - "@nomicfoundation/hardhat-ethers": "^4.0.0", - "ethers": "^6.14.0", - "hardhat": "^3.1.11" - } - }, - "node_modules/@nomicfoundation/hardhat-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-utils/-/hardhat-utils-4.0.1.tgz", - "integrity": "sha512-9xxD6WXLn+kopd+hmF+XYcJJ38Gm06QmZxKf/fIJzlzs9FuNI6C7Lvdd4qHv8/3ReegIbpBCrzozaL2GISmNrA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@streamparser/json-node": "^0.0.22", - "debug": "^4.3.2", - "env-paths": "^2.2.0", - "ethereum-cryptography": "^2.2.1", - "fast-equals": "^5.4.0", - "json-stream-stringify": "^3.1.6", - "rfdc": "^1.3.1", - "undici": "^6.16.1" - } - }, - "node_modules/@nomicfoundation/hardhat-vendored": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-vendored/-/hardhat-vendored-3.0.1.tgz", - "integrity": "sha512-jBOAqmEAMJ8zdfiQmTLV+c0IaSyySqkDSJ9spTy8Ts/m/mO8w364TClyfn+p4ZpxBjyX4LMa3NfC402hoDtwCg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nomicfoundation/hardhat-verify": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-3.0.12.tgz", - "integrity": "sha512-urgtoJdhOnL+SYVNYeoLUXhhs9ZEOa3Za4613eDaOlWn7YcrDC3bdcYkF/9oVF/9hmRN3FB4VTdtMPwPapBUhw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/abi": "^5.8.0", - "@nomicfoundation/hardhat-errors": "^3.0.7", - "@nomicfoundation/hardhat-utils": "^4.0.0", - "@nomicfoundation/hardhat-zod-utils": "^3.0.3", - "cbor2": "^1.9.0", - "chalk": "^5.3.0", - "debug": "^4.3.2", - "semver": "^7.6.3", - "zod": "^3.23.8" - }, - "peerDependencies": { - "hardhat": "^3.1.11" - } - }, - "node_modules/@nomicfoundation/hardhat-zod-utils": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-zod-utils/-/hardhat-zod-utils-3.0.3.tgz", - "integrity": "sha512-WER4/UKLpm7/nz1asvNR7EKZKKBW+48Hw7GOdcd3Rhdr3VTNuTaeIxCJpl6YxTTg+Eq/sPAWX0mr25+USs6KWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nomicfoundation/hardhat-errors": "^3.0.7", - "@nomicfoundation/hardhat-utils": "^4.0.0" - }, - "peerDependencies": { - "zod": "^3.23.8" - } - }, - "node_modules/@nomicfoundation/ignition-core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-3.1.0.tgz", - "integrity": "sha512-RJMBTBZqiWRT6lP0sWr2QoIogS0czCioxF4wYW8Y6PowipQKg/usvfJEbzcIEkTIbqOPBZbA7WGINr8YKIoJAA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/address": "5.6.1", - "@nomicfoundation/hardhat-errors": "^3.0.9", - "@nomicfoundation/hardhat-utils": "^4.0.0", - "@nomicfoundation/solidity-analyzer": "^0.1.1", - "cbor2": "^1.9.0", - "debug": "^4.3.2", - "ethers": "^6.14.0", - "immer": "10.0.2", - "lodash-es": "4.17.21", - "ndjson": "2.0.0" - } - }, - "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" - } - }, - "node_modules/@nomicfoundation/ignition-ui": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-3.1.0.tgz", - "integrity": "sha512-K34qH+C0IgerzzcY+OmLlXvAnpE1TGKRlDRDE0IfyhjB/ueDJj83+5+YhoPbCiwDFIl7uT7vaWopfFhkRPn9YQ==", - "dev": true, - "peer": true - }, - "node_modules/@nomicfoundation/solidity-analyzer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.2.tgz", - "integrity": "sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - }, - "optionalDependencies": { - "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.2", - "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.2", - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.2", - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.2", - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.2", - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.2", - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.2" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.2.tgz", - "integrity": "sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.2.tgz", - "integrity": "sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.2.tgz", - "integrity": "sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.2.tgz", - "integrity": "sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.2.tgz", - "integrity": "sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.2.tgz", - "integrity": "sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.2.tgz", - "integrity": "sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@openzeppelin/contracts": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.2.tgz", - "integrity": "sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true, - "license": "ISC" - }, - "node_modules/@pnpm/npm-conf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-3.0.2.tgz", - "integrity": "sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", - "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip39": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", - "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@sentry/core": { - "version": "9.47.1", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.47.1.tgz", - "integrity": "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@solidity-parser/parser": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.20.2.tgz", - "integrity": "sha512-rbu0bzwNvMcwAjH86hiEAcOeRI2EeK8zCkHDrFykh/Al8mvJeFmjy3UrE7GYQjNwOgbGUUtCn5/k8CB8zIu7QA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@streamparser/json": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/@streamparser/json/-/json-0.0.22.tgz", - "integrity": "sha512-b6gTSBjJ8G8SuO3Gbbj+zXbVx8NSs1EbpbMKpzGLWMdkR+98McH9bEjSz3+0mPJf68c5nxa3CrJHp5EQNXM6zQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@streamparser/json-node": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/@streamparser/json-node/-/json-node-0.0.22.tgz", - "integrity": "sha512-sJT2ptNRwqB1lIsQrQlCoWk5rF4tif9wDh+7yluAGijJamAhrHGYpFB/Zg3hJeceoZypi74ftXk8DHzwYpbZSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@streamparser/json": "^0.0.22" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@typechain/ethers-v6": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", - "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "lodash": "^4.17.15", - "ts-essentials": "^7.0.1" - }, - "peerDependencies": { - "ethers": "6.x", - "typechain": "^8.3.2", - "typescript": ">=4.7.0" - } - }, - "node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" - } - }, - "node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-8.0.2.tgz", - "integrity": "sha512-meQ1wDr1K5KRCSvG2lX7n7/5wf70BeptTKst0axGvnN6zqaVpRqegoIbugiAPSqOW9K9aL8gDVrm7a2LXOtn2Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/deep-eql": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.7.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", - "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/aes-js": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", - "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^8.0.1" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/ast-parents": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", - "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/better-ajv-errors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-2.0.3.tgz", - "integrity": "sha512-t1vxUP+vYKsaYi/BbKo2K98nEAZmfi4sjwvmRT8aOPDzPJeAtLurfoIDazVkLILxO4K+Sw4YrLYnBQ46l6pePg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@humanwhocodes/momoa": "^2.0.4", - "chalk": "^4.1.2", - "jsonpointer": "^5.0.1", - "leven": "^3.1.0 < 4" - }, - "engines": { - "node": ">= 18.20.6" - }, - "peerDependencies": { - "ajv": "4.11.8 - 8" - } - }, - "node_modules/better-ajv-errors/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/better-ajv-errors/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/better-ajv-errors/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bn.js": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.3.tgz", - "integrity": "sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cbor2": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/cbor2/-/cbor2-1.12.0.tgz", - "integrity": "sha512-3Cco8XQhi27DogSp9Ri6LYNZLi/TBY/JVnDe+mj06NkBjW/ZYOtekaEU4wZ4xcRMNrFkDv8KNtOAqHyDfz3lYg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18.7" - } - }, - "node_modules/chai": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/chai-as-promised": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-8.0.2.tgz", - "integrity": "sha512-1GadL+sEJVLzDjcawPM4kjfnL+p/9vrxiEUonowKOAzvVg0PixJUdtuDzdkDeQhK3zfOE76GqGkZIQ7/Adcrqw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, - "node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/check-error": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", - "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 16" - } - }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/command-line-usage/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-usage/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/command-line-usage/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/command-line-usage/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/command-line-usage/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/command-line-usage/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/command-line-usage/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/diff": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", - "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dotenv": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", - "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/elliptic": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", - "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", - "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/esbuild": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz", - "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.4", - "@esbuild/android-arm": "0.27.4", - "@esbuild/android-arm64": "0.27.4", - "@esbuild/android-x64": "0.27.4", - "@esbuild/darwin-arm64": "0.27.4", - "@esbuild/darwin-x64": "0.27.4", - "@esbuild/freebsd-arm64": "0.27.4", - "@esbuild/freebsd-x64": "0.27.4", - "@esbuild/linux-arm": "0.27.4", - "@esbuild/linux-arm64": "0.27.4", - "@esbuild/linux-ia32": "0.27.4", - "@esbuild/linux-loong64": "0.27.4", - "@esbuild/linux-mips64el": "0.27.4", - "@esbuild/linux-ppc64": "0.27.4", - "@esbuild/linux-riscv64": "0.27.4", - "@esbuild/linux-s390x": "0.27.4", - "@esbuild/linux-x64": "0.27.4", - "@esbuild/netbsd-arm64": "0.27.4", - "@esbuild/netbsd-x64": "0.27.4", - "@esbuild/openbsd-arm64": "0.27.4", - "@esbuild/openbsd-x64": "0.27.4", - "@esbuild/openharmony-arm64": "0.27.4", - "@esbuild/sunos-x64": "0.27.4", - "@esbuild/win32-arm64": "0.27.4", - "@esbuild/win32-ia32": "0.27.4", - "@esbuild/win32-x64": "0.27.4" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ethereum-cryptography": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", - "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@noble/curves": "1.4.2", - "@noble/hashes": "1.4.0", - "@scure/bip32": "1.4.0", - "@scure/bip39": "1.3.0" - } - }, - "node_modules/ethers": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.16.0.tgz", - "integrity": "sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "22.7.5", - "aes-js": "4.0.0-beta.5", - "tslib": "2.7.0", - "ws": "8.17.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/ethers/node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethers/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethers/node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/fast-equals": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz", - "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "peer": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-tsconfig": { - "version": "4.13.7", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.7.tgz", - "integrity": "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/hardhat": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-3.2.0.tgz", - "integrity": "sha512-1s5mE1OEx4ksnv+9bHRfzfWxlzI77mQ5cHbSNRxZp2DvpVOC41qSoIDfwqwvb3I2JqUVd0TBUgN/Ypco6sabkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nomicfoundation/edr": "0.12.0-next.28", - "@nomicfoundation/hardhat-errors": "^3.0.9", - "@nomicfoundation/hardhat-utils": "^4.0.1", - "@nomicfoundation/hardhat-vendored": "^3.0.1", - "@nomicfoundation/hardhat-zod-utils": "^3.0.3", - "@nomicfoundation/solidity-analyzer": "^0.1.1", - "@sentry/core": "^9.4.0", - "adm-zip": "^0.4.16", - "chalk": "^5.3.0", - "chokidar": "^4.0.3", - "debug": "^4.3.2", - "enquirer": "^2.3.0", - "ethereum-cryptography": "^2.2.1", - "micro-eth-signer": "^0.14.0", - "p-map": "^7.0.2", - "resolve.exports": "^2.0.3", - "semver": "^7.6.3", - "tsx": "^4.19.3", - "ws": "^8.18.0", - "zod": "^3.23.8" - }, - "bin": { - "hardhat": "dist/src/cli.js" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", - "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", - "dev": true, - "license": "MIT", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "peer": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stream-stringify": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz", - "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=7.10.1" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "license": "MIT", - "peer": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/micro-eth-signer": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/micro-eth-signer/-/micro-eth-signer-0.14.0.tgz", - "integrity": "sha512-5PLLzHiVYPWClEvZIXXFu5yutzpadb73rnQCpUqIHu3No3coFuWQNfE5tkBQJ7djuLYl6aRLaS0MgWJYGoqiBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "micro-packed": "~0.7.2" - } - }, - "node_modules/micro-eth-signer/node_modules/@noble/curves": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.2.tgz", - "integrity": "sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.7.2" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/micro-eth-signer/node_modules/@noble/hashes": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.2.tgz", - "integrity": "sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/micro-packed": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/micro-packed/-/micro-packed-0.7.3.tgz", - "integrity": "sha512-2Milxs+WNC00TRlem41oRswvw31146GiSaoCT7s3Xi2gMUglW5QBeqlQaZeHr5tJx9nm3i57LNXPqxOOaWtTYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@scure/base": "~1.2.5" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/micro-packed/node_modules/@scure/base": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", - "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - "dev": true, - "license": "BlueOak-1.0.0", - "peer": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha": { - "version": "11.7.5", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz", - "integrity": "sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/ndjson": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", - "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.5", - "readable-stream": "^3.6.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "ndjson": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-url": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz", - "integrity": "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", - "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", - "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", - "dev": true, - "license": "MIT", - "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0", - "peer": true - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "peer": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true, - "license": "ISC" - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/registry-auth-token": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.1.tgz", - "integrity": "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pnpm/npm-conf": "^3.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true - }, - "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/solhint": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/solhint/-/solhint-6.1.0.tgz", - "integrity": "sha512-ZuY+p4i/0oBW0aHxPso9p/4FuMLvDXKJXVT62iU44OJcVX3qfTOKnR6arGatXD2Q6eYPdOzPNqt7bWVdVd+FkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solidity-parser/parser": "^0.20.2", - "ajv": "^8.18.0", - "ajv-errors": "^3.0.0", - "ast-parents": "^0.0.1", - "better-ajv-errors": "^2.0.2", - "chalk": "^4.1.2", - "commander": "^10.0.0", - "cosmiconfig": "^8.0.0", - "fast-diff": "^1.2.0", - "glob": "^8.0.3", - "ignore": "^5.2.4", - "js-yaml": "^4.1.0", - "latest-version": "^7.0.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "semver": "^7.5.2", - "table": "^6.8.1", - "text-table": "^0.2.0" - }, - "bin": { - "solhint": "solhint.js" - }, - "optionalDependencies": { - "prettier": "^2.8.3" - } - }, - "node_modules/solhint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/solhint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/solhint/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/solhint/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/solhint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", - "dev": true, - "license": "WTFPL OR MIT", - "peer": true - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/table": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", - "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/ts-command-line-args": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", - "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "chalk": "^4.1.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.0", - "string-format": "^2.0.0" - }, - "bin": { - "write-markdown": "dist/write-markdown.js" - } - }, - "node_modules/ts-command-line-args/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-command-line-args/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-command-line-args/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "typescript": ">=3.7.0" - } - }, - "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", - "dev": true, - "license": "0BSD", - "peer": true - }, - "node_modules/tsx": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", - "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/typechain": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", - "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/prettier": "^2.1.1", - "debug": "^4.3.1", - "fs-extra": "^7.0.0", - "glob": "7.1.7", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.3.1", - "ts-command-line-args": "^2.2.0", - "ts-essentials": "^7.0.1" - }, - "bin": { - "typechain": "dist/cli/cli.js" - }, - "peerDependencies": { - "typescript": ">=4.3.0" - } - }, - "node_modules/typechain/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/typechain/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typechain/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/typescript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", - "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/undici": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz", - "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/workerpool": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz", - "integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==", - "dev": true, - "license": "Apache-2.0", - "peer": true - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", - "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/smart-contracts/package.json b/smart-contracts/package.json index 3c32c87..d61a463 100644 --- a/smart-contracts/package.json +++ b/smart-contracts/package.json @@ -1,6 +1,6 @@ { "name": "@skalenetwork/smartclaws-contracts", - "version": "0.2.0", + "version": "0.3.0", "type": "module", "license": "LGPL-3.0-or-later", "scripts": { @@ -11,9 +11,12 @@ }, "devDependencies": { "@nomicfoundation/hardhat-toolbox-mocha-ethers": "^3.0.3", - "@openzeppelin/contracts": "^5.0.2", + "@openzeppelin/contracts": "5.0.2", + "chai": "^5.2.0", "dotenv": "^17.3.1", + "ethers": "^6.14.0", "hardhat": "^3.2.0", + "mocha": "^11.0.0", "solhint": "^6.1.0" } } diff --git a/smart-contracts/tsconfig.json b/smart-contracts/tsconfig.json index a5be28c..37b0351 100644 --- a/smart-contracts/tsconfig.json +++ b/smart-contracts/tsconfig.json @@ -1,12 +1,9 @@ { + "extends": "../tsconfig.base.json", "compilerOptions": { - "target": "es2022", "module": "NodeNext", "moduleResolution": "NodeNext", "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "strict": true, - "skipLibCheck": true, - "resolveJsonModule": true + "forceConsistentCasingInFileNames": true } } diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..0519f6a --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ES2022", + "strict": true, + "skipLibCheck": true, + "resolveJsonModule": true, + "noEmit": true + } +} From 86765979df817df55d17fda8d7c41b5760315ac8 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Tue, 7 Apr 2026 20:00:45 +0100 Subject: [PATCH 2/6] update node version in ci --- .github/workflows/smart-contracts.yml | 4 ++ .github/workflows/typescript.yml | 4 ++ .../dashboard/src/pages/device-detail.tsx | 43 +++++++++++++++++++ 3 files changed, 51 insertions(+) diff --git a/.github/workflows/smart-contracts.yml b/.github/workflows/smart-contracts.yml index 5727451..d554ea1 100644 --- a/.github/workflows/smart-contracts.yml +++ b/.github/workflows/smart-contracts.yml @@ -21,6 +21,10 @@ jobs: steps: - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + - uses: oven-sh/setup-bun@v2 - name: Install dependencies diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index fea8f2b..7f62101 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -20,6 +20,10 @@ jobs: steps: - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + - uses: oven-sh/setup-bun@v2 - name: Install dependencies diff --git a/packages/dashboard/src/pages/device-detail.tsx b/packages/dashboard/src/pages/device-detail.tsx index 02e4575..c350f5c 100644 --- a/packages/dashboard/src/pages/device-detail.tsx +++ b/packages/dashboard/src/pages/device-detail.tsx @@ -2,6 +2,8 @@ import { ArrowDownLeft, ArrowLeft, ArrowUpRight, + Check, + Copy, ExternalLink, } from "lucide-react"; import { useState } from "react"; @@ -17,6 +19,45 @@ import { useChannelMessages } from "@/hooks/use-channel-messages"; import { useDeviceDetail } from "@/hooks/use-device-detail"; import { getExplorerAddressUrl } from "@/lib/explorer"; +function ChannelAddressBar({ address }: { address: string }) { + const [copied, setCopied] = useState(false); + const explorerUrl = getExplorerAddressUrl(address); + + function handleCopy() { + navigator.clipboard.writeText(address); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } + + return ( +
+ + + {address} + + + {explorerUrl && ( + + + + )} +
+ ); +} + export function DeviceDetailPage() { const { address } = useParams<{ address: string }>(); @@ -118,6 +159,8 @@ function DeviceDetailContent({ address }: { address: string }) { )} + {activeChannel && } + {outgoingChannel ? ( Date: Wed, 8 Apr 2026 11:21:38 +0100 Subject: [PATCH 3/6] update ci pipeline --- .github/workflows/typescript.yml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index 7f62101..5342818 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -19,6 +19,8 @@ jobs: steps: - uses: actions/checkout@v4 + with: + submodules: true - uses: actions/setup-node@v4 with: @@ -26,14 +28,20 @@ jobs: - uses: oven-sh/setup-bun@v2 - - name: Install dependencies - run: bun install + - name: Install contract deps + working-directory: smart-contracts + run: npm ci - - name: Check version sync - run: bun run version:check + - name: Compile contracts + working-directory: smart-contracts + run: npx hardhat compile - - name: Compile contracts & export ABIs - run: bun run export-abi + - name: Export ABIs + working-directory: smart-contracts + run: bash scripts/export-abi.sh + + - name: Install workspace deps + run: bun install - name: Lint working-directory: packages/cli @@ -52,7 +60,7 @@ jobs: run: bun run test:unit - name: Start anvil - run: bash scripts/anvil.sh + run: bash helper-scripts/helper.sh run_anvil - name: Integration tests working-directory: packages/cli From 16889b5c8479539946a9829e01903c2ef1a2f90c Mon Sep 17 00:00:00 2001 From: Dmytro Date: Wed, 8 Apr 2026 11:48:14 +0100 Subject: [PATCH 4/6] fix ci process --- .github/workflows/typescript.yml | 4 +-- .../src/components/shared/channel-view.tsx | 35 +++++++++++++++++-- .../src/hooks/use-channel-messages.ts | 23 ++++++++++-- .../dashboard/src/pages/device-detail.tsx | 19 ++-------- 4 files changed, 57 insertions(+), 24 deletions(-) diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index 5342818..5ea1664 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -30,11 +30,11 @@ jobs: - name: Install contract deps working-directory: smart-contracts - run: npm ci + run: bun install - name: Compile contracts working-directory: smart-contracts - run: npx hardhat compile + run: bunx hardhat compile - name: Export ABIs working-directory: smart-contracts diff --git a/packages/dashboard/src/components/shared/channel-view.tsx b/packages/dashboard/src/components/shared/channel-view.tsx index c775034..b8b85a2 100644 --- a/packages/dashboard/src/components/shared/channel-view.tsx +++ b/packages/dashboard/src/components/shared/channel-view.tsx @@ -1,4 +1,4 @@ -import { ChevronRight, Database, Hash, MessageSquare } from "lucide-react"; +import { ChevronsDown, ChevronRight, Database, Hash, Loader2, MessageSquare } from "lucide-react"; import { type ReactNode, useState } from "react"; import type { Address } from "viem"; import { EmptyState } from "@/components/shared/empty-state"; @@ -97,7 +97,7 @@ interface ChannelViewProps { } export function ChannelView({ address }: ChannelViewProps) { - const { messages, messageCount, maxCapacity, totalBytes, isLoading } = useChannelMessages(address); + const { messages, messageCount, maxCapacity, totalBytes, isLoading, isLoadingMore, canLoadMore, loadMore } = useChannelMessages(address); const [expanded, setExpanded] = useState>(new Set()); const toggleExpand = (key: string) => { @@ -170,6 +170,37 @@ export function ChannelView({ address }: ChannelViewProps) { + {messageCount !== undefined && messages.length > 0 && ( +
+
+ + Showing{" "} + + {messages.length} + + {" / "} + + {messageCount.toString()} + + + {canLoadMore && ( + + )} +
+
+ )} + {messages.length === 0 ? ( diff --git a/packages/dashboard/src/hooks/use-channel-messages.ts b/packages/dashboard/src/hooks/use-channel-messages.ts index b72616f..c5febbd 100644 --- a/packages/dashboard/src/hooks/use-channel-messages.ts +++ b/packages/dashboard/src/hooks/use-channel-messages.ts @@ -1,6 +1,6 @@ import { keepPreviousData } from "@tanstack/react-query"; import { decode, type Envelope } from "@smartclaws/core/envelope"; -import { useMemo, useRef } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { type Address, type Hex, hexToBytes } from "viem"; import { useReadContract, useReadContracts } from "wagmi"; import { abis } from "@/config/contracts"; @@ -13,7 +13,8 @@ export interface DecodedMessage { error?: string; } -export function useChannelMessages(channelAddress: Address, count = 20) { +export function useChannelMessages(channelAddress: Address, initialCount = 20) { + const [count, setCount] = useState(initialCount); const contract = { address: channelAddress, abi: abis.channel, chainId: chain.id } as const; // Track previous address so we can keep data on refetch but clear on channel switch @@ -54,7 +55,7 @@ export function useChannelMessages(channelAddress: Address, count = 20) { return Number(latestOffset - fromOffset) + 1; }, [fromOffset, latestOffset]); - const { data: rawMessages, isLoading: isLoadingMessages } = useReadContract({ + const { data: rawMessages, isLoading: isLoadingMessages, isFetching: isFetchingMessages } = useReadContract({ ...contract, functionName: "readMessages", args: fromOffset !== undefined ? [fromOffset, BigInt(readCount)] : undefined, @@ -86,6 +87,19 @@ export function useChannelMessages(channelAddress: Address, count = 20) { .reverse(); }, [rawMessages]); + const canLoadMore = messageCount !== undefined && messages.length < Number(messageCount); + const loadingMoreRef = useRef(false); + const isLoadingMore = loadingMoreRef.current && isFetchingMessages; + + useEffect(() => { + if (!isFetchingMessages) loadingMoreRef.current = false; + }, [isFetchingMessages]); + + const loadMore = useCallback(() => { + loadingMoreRef.current = true; + setCount((prev) => prev + initialCount); + }, [initialCount]); + return { messages, messageCount, @@ -94,5 +108,8 @@ export function useChannelMessages(channelAddress: Address, count = 20) { maxCapacity, totalBytes, isLoading: isLoadingStats || isLoadingMessages, + isLoadingMore, + canLoadMore, + loadMore, }; } diff --git a/packages/dashboard/src/pages/device-detail.tsx b/packages/dashboard/src/pages/device-detail.tsx index c350f5c..835504f 100644 --- a/packages/dashboard/src/pages/device-detail.tsx +++ b/packages/dashboard/src/pages/device-detail.tsx @@ -74,9 +74,7 @@ function DeviceDetailContent({ address }: { address: string }) { const activeChannel = activeTab === "outgoing" ? outgoingChannel : incomingChannel; - const channelData = useChannelMessages(activeChannel ?? ("0x" as Address)); - - // Also fetch 1 message from outgoing to get device name + // Fetch 1 message from outgoing to get device name const { messages: nameMessages } = useChannelMessages( outgoingChannel ?? ("0x" as Address), 1, @@ -143,20 +141,7 @@ function DeviceDetailContent({ address }: { address: string }) { - {activeChannel && channelData.messageCount !== undefined && ( -
- - Showing{" "} - - {channelData.messages.length} - - {" / "} - - {channelData.messageCount.toString()} - - -
- )} + {activeChannel && } From 1719645907bedb25ec43209a180749ac06361055 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Thu, 9 Apr 2026 15:50:34 +0100 Subject: [PATCH 5/6] add licence --- LICENSE | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..119467b --- /dev/null +++ b/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this +License without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. From 8c63685e636f796155d4efec3ddf7e57bdec8f3b Mon Sep 17 00:00:00 2001 From: Dmytro Date: Thu, 9 Apr 2026 15:56:37 +0100 Subject: [PATCH 6/6] fix ci job - typescript --- .github/workflows/typescript.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index 5ea1664..37a7d88 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -60,7 +60,7 @@ jobs: run: bun run test:unit - name: Start anvil - run: bash helper-scripts/helper.sh run_anvil + run: bash scripts/anvil.sh - name: Integration tests working-directory: packages/cli