diff --git a/.github/actions/run-ledger-tests/action.yml b/.github/actions/run-ledger-tests/action.yml new file mode 100644 index 000000000..c58e473ee --- /dev/null +++ b/.github/actions/run-ledger-tests/action.yml @@ -0,0 +1,182 @@ +name: Run Ledger clear-signing tests +description: Execute clear-signing tests against the Ledger Speculos emulator using cs-tester from device-sdk-ts. + +inputs: + registry-path: + description: Absolute path to the registry checkout (contains the descriptor and tests files). + required: true + descriptor: + description: Path to the descriptor JSON file, relative to registry-path. + required: true + test-file: + description: Path to the .tests.json file, relative to registry-path. + required: true + test-type: + description: Test type — "calldata" or "eip712". + required: true + device: + description: Device target (e.g. flex). + required: true + entity: + description: Entity name, used for artifact naming. + required: true + descriptor-name: + description: Descriptor base name, used for artifact naming. + required: true + gh-bot-app-id: + description: GitHub App ID for accessing the private coin-apps repository. + required: true + gh-bot-private-key: + description: GitHub App private key. + required: true + gating-token: + description: Gating token for cs-tester. + required: true + +outputs: + exit-code: + description: Exit code of the cs-tester run (0 = all tests passed / clear signed). + value: ${{ steps.run-tests.outputs.exit_code }} + +runs: + using: composite + steps: + - name: Checkout device-management-kit + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + repository: LedgerHQ/device-sdk-ts + ref: 2e35ed527c1a9aee852809a39ed2eaf76a415af1 # develop @ 2026-05-28 + path: dmk + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + with: + node-version: '20' + + - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 + with: + version: 9 + + - name: Install and build + shell: bash + working-directory: dmk + run: | + pnpm install + pnpm build:libs + + - name: Generate token for coin-apps + id: generate-token + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3 + with: + app-id: ${{ inputs.gh-bot-app-id }} + private-key: ${{ inputs.gh-bot-private-key }} + owner: LedgerHQ + repositories: coin-apps + + - name: Checkout coin-apps + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + repository: LedgerHQ/coin-apps + # TODO: pin to a specific commit SHA (coin-apps is private — pin + # using a SHA resolved with the CI bot's token). + ref: master + token: ${{ steps.generate-token.outputs.token }} + path: coin-apps + sparse-checkout: ${{ inputs.device }}/*/Ethereum/*.elf + sparse-checkout-cone-mode: false + + - name: Pull Speculos Docker image + shell: bash + run: docker pull ghcr.io/ledgerhq/speculos@sha256:9b414c3bcaecb7638224156d36a702d66af812a0aa59ca203ce7b34cf4d590ca + + - name: Prepare test inputs + shell: bash + env: + REGISTRY_PATH: ${{ inputs.registry-path }} + TEST_FILE: ${{ inputs.test-file }} + run: | + mkdir -p test-inputs screenshots + jq '.tests' "$REGISTRY_PATH/$TEST_FILE" > test-inputs/tests.json + + - name: Resolve descriptor includes + shell: bash + env: + REGISTRY_PATH: ${{ inputs.registry-path }} + DESCRIPTOR: ${{ inputs.descriptor }} + WORKSPACE: ${{ github.workspace }} + ACTION_PATH: ${{ github.action_path }} + run: | + node "$ACTION_PATH/../../scripts/resolve-erc7730-includes.js" \ + "$REGISTRY_PATH/$DESCRIPTOR" \ + "$WORKSPACE/test-inputs/resolved-descriptor.json" + + - name: Run clear signing tests + id: run-tests + shell: bash + working-directory: dmk + env: + FORCE_COLOR: "0" + GATING_TOKEN: ${{ inputs.gating-token }} + COIN_APPS_PATH: ${{ github.workspace }}/coin-apps + WORKSPACE: ${{ github.workspace }} + TEST_TYPE: ${{ inputs.test-type }} + DEVICE: ${{ inputs.device }} + run: | + CMD=$([[ "$TEST_TYPE" == "calldata" ]] && echo "raw-file" || echo "typed-data-file") + + set +e + pnpm cs-tester cli $CMD "$WORKSPACE/test-inputs/tests.json" \ + --device "$DEVICE" \ + --erc7730-files "$WORKSPACE/test-inputs/resolved-descriptor.json" \ + --screenshot-folder-path "$WORKSPACE/screenshots" \ + --log-level info 2>&1 | tee test-output.log + EXIT_CODE=${PIPESTATUS[0]} + echo "exit_code=$EXIT_CODE" >> $GITHUB_OUTPUT + + - name: Write job summary + if: always() + shell: bash + working-directory: dmk + env: + ENTITY: ${{ inputs.entity }} + DESCRIPTOR_NAME: ${{ inputs.descriptor-name }} + DEVICE: ${{ inputs.device }} + EXIT_CODE: ${{ steps.run-tests.outputs.exit_code }} + run: | + echo "## $ENTITY / $DESCRIPTOR_NAME ($DEVICE)" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + if [ "$EXIT_CODE" == "0" ]; then + echo "✅ **All tests passed (clear signed)**" >> $GITHUB_STEP_SUMMARY + else + echo "⚠️ **Exit code: $EXIT_CODE**" >> $GITHUB_STEP_SUMMARY + fi + + echo "" >> $GITHUB_STEP_SUMMARY + echo "### Test Output (last 30 lines)" >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + tail -30 test-output.log >> $GITHUB_STEP_SUMMARY 2>/dev/null || echo "No output available" + echo '```' >> $GITHUB_STEP_SUMMARY + + - name: Save exit code for PR comment + if: always() + shell: bash + env: + EXIT_CODE: ${{ steps.run-tests.outputs.exit_code }} + run: | + echo "$EXIT_CODE" > screenshots/exit_code.txt + + - name: Upload screenshots + if: always() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: screenshots-${{ inputs.device }}-${{ inputs.entity }}-${{ inputs.descriptor-name }} + path: screenshots/ + retention-days: 30 + + - name: Upload logs + if: always() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: logs-${{ inputs.device }}-${{ inputs.entity }}-${{ inputs.descriptor-name }} + path: dmk/test-output.log + retention-days: 7 diff --git a/.github/actions/run-rust-tests/action.yml b/.github/actions/run-rust-tests/action.yml new file mode 100644 index 000000000..1884e7b65 --- /dev/null +++ b/.github/actions/run-rust-tests/action.yml @@ -0,0 +1,50 @@ +name: Run Rust (llbartekll/clear-signing) clear-signing tests +description: Install llbartekll/clear-signing's cs-test binary via cargo, run it against a .tests.json fixture, and produce a results.json conforming to the format in .github/test-runner-docs/. + +inputs: + test-file: + description: Absolute path to the .tests.json fixture. + required: true + output: + description: Absolute path where results.json should be written. + required: true + +outputs: + results-path: + description: Path to the produced results.json. + value: ${{ inputs.output }} + +runs: + using: composite + steps: + - name: Checkout llbartekll/clear-signing + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + repository: llbartekll/clear-signing + ref: 0809971c81182ea93271759c62c04d1935415eff # main @ 2026-06-19 + path: cs-runner + persist-credentials: false + + - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable + + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + with: + workspaces: cs-runner + + - name: Install cs-test + shell: bash + working-directory: cs-runner + run: cargo install --path crates/cs-test --locked + + - name: Run tests + shell: bash + env: + TEST_FILE: ${{ inputs.test-file }} + OUTPUT: ${{ inputs.output }} + run: | + # Registry root = two levels up from the test file's `testsv2` dir + # (.../registry//testsv2/.tests.json). This lets the runner + # resolve nested-call descriptors (e.g. Safe inner call, kiln inner + # deposit) from anywhere in the tree, not just beside the test file. + REGISTRY_ROOT="$(cd "$(dirname "$TEST_FILE")/../.." && pwd)" + cs-test run "$TEST_FILE" --registry "$REGISTRY_ROOT" --output "$OUTPUT" diff --git a/.github/actions/run-sourcify-tests/action.yml b/.github/actions/run-sourcify-tests/action.yml new file mode 100644 index 000000000..06263e14a --- /dev/null +++ b/.github/actions/run-sourcify-tests/action.yml @@ -0,0 +1,47 @@ +name: Run Sourcify clear-signing tests +description: Clone and build @ethereum-sourcify/clear-signing-test-runner, then run it against a .tests.json fixture and produce a results.json conforming to the format in .github/test-runner-docs/. + +inputs: + test-file: + description: Absolute path to the .tests.json fixture. + required: true + output: + description: Absolute path where results.json should be written. + required: true +outputs: + results-path: + description: Path to the produced results.json. + value: ${{ inputs.output }} + +runs: + using: composite + steps: + - name: Checkout Sourcify test runner + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + repository: sourcifyeth/clear-signing-test-runner + ref: 3006d68e79c34278008000dff95a439d2b7c7665 # main @ 2026-06-08 + path: sourcify-test-runner + persist-credentials: false + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + with: + node-version: '22' + + - name: Install dependencies + shell: bash + working-directory: sourcify-test-runner + run: npm ci + + - name: Build + shell: bash + working-directory: sourcify-test-runner + run: npm run build + + - name: Run tests + shell: bash + working-directory: sourcify-test-runner + env: + TEST_FILE: ${{ inputs.test-file }} + OUTPUT: ${{ inputs.output }} + run: node dist/cli.js "$TEST_FILE" --output "$OUTPUT" --verbose diff --git a/.github/actions/upload-test-results/action.yml b/.github/actions/upload-test-results/action.yml new file mode 100644 index 000000000..78645bd79 --- /dev/null +++ b/.github/actions/upload-test-results/action.yml @@ -0,0 +1,70 @@ +name: Upload clear-signing test results +description: Validate the basic structure of a results.json against the spec in .github/test-runner-docs/README.md, then upload it as an artifact with a consistent name. Shared by all runners that emit the unified results format. + +inputs: + results-path: + description: Absolute path to the results.json file. + required: true + implementation-slug: + description: Short slug identifying the implementation (e.g. sourcify-ts-clear-signing). Used in the artifact name; the full package@version identifier lives inside the JSON. + required: true + entity: + description: Entity name (e.g. aave). + required: true + descriptor-name: + description: Descriptor name (e.g. calldata-lpv2). + required: true + retention-days: + description: Artifact retention in days. + required: false + default: '30' + +runs: + using: composite + steps: + - name: Validate results.json structure + shell: bash + env: + RESULTS_PATH: ${{ inputs.results-path }} + run: | + if [ ! -f "$RESULTS_PATH" ]; then + echo "::error::results.json not found at $RESULTS_PATH" + exit 1 + fi + + if ! jq -e ' + has("runner") and + has("implementation") and + has("cases") and + (.cases | type == "array") and + (.cases | all( + has("description") and + has("status") and + (.status | IN("pass","fail","error","skipped")) + )) + ' "$RESULTS_PATH" > /dev/null; then + echo "::error file=$RESULTS_PATH::results.json failed structural validation against the spec in .github/test-runner-docs/README.md" + exit 1 + fi + + - name: Stage with unique filename + shell: bash + env: + RESULTS_PATH: ${{ inputs.results-path }} + SLUG: ${{ inputs.implementation-slug }} + ENTITY: ${{ inputs.entity }} + DESCRIPTOR: ${{ inputs.descriptor-name }} + WORKSPACE: ${{ github.workspace }} + run: | + # Rename so multi-artifact downloads (with merge-multiple: true) don't + # collide on a shared `results.json` filename. The slug+entity+descriptor + # combination is guaranteed unique per matrix entry. + mkdir -p "$WORKSPACE/results-staging" + cp "$RESULTS_PATH" "$WORKSPACE/results-staging/${SLUG}__${ENTITY}__${DESCRIPTOR}.json" + + - name: Upload results + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: results__${{ inputs.implementation-slug }}__${{ inputs.entity }}__${{ inputs.descriptor-name }} + path: ${{ github.workspace }}/results-staging/${{ inputs.implementation-slug }}__${{ inputs.entity }}__${{ inputs.descriptor-name }}.json + retention-days: ${{ inputs.retention-days }} diff --git a/.github/test-runner-docs/README.md b/.github/test-runner-docs/README.md new file mode 100644 index 000000000..4bd5324d9 --- /dev/null +++ b/.github/test-runner-docs/README.md @@ -0,0 +1,86 @@ +# Test runner guide + +A test runner is a small program that consumes one `.tests.json` fixture from the registry, drives a clear-signing implementation against each case, and writes a `results.json` describing what the implementation rendered. The CI workflow ([`clear-signing-tests.yml`](../workflows/clear-signing-tests.yml)) wraps the runner in a composite action, uploads the `results.json` as an artifact, and the `post-results` job aggregates per-implementation columns onto the PR. + +## Input + +The runner is invoked with a path to a `.tests.json` fixture and the descriptor it points to. The fixture conforms to [`specs/erc7730-tests-v2.schema.json`](../../specs/erc7730-tests-v2.schema.json). + +The runner is responsible for: + +- Resolving ERC-7730 `includes` itself — the CI does not pre-flatten descriptors. +- Honoring the fixture's optional `dataProvider` block (mock token metadata, address-name lookups, etc.) instead of hitting the network. +- Producing rendered output for every case, regardless of whether it matches `expected`. + +## Output + +Write a single `results.json` per descriptor to the working directory. + +```json +{ + "runner": "@ethereum-sourcify/clear-signing-test-runner", + "implementation": "@ethereum-sourcify/clear-signing@0.1.1", + "cases": [ + { + "description": "Smart account execute: approve 100 USDC", + "status": "pass", + "rendered": { + "intent": "Execute call", + "interpolatedIntent": "Execute call on USDC", + "owner": "Example Smart Account", + "fields": { + "Target": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "Spending Limit": "0 ETH", + "Call data": { + "intent": "Approve", + "owner": "USDC", + "fields": { + "Spender": "0x1234567890123456789012345678901234567890", + "Amount": "100 USDC", + "Deadline": "2026-12-31 23:59 UTC" + } + } + } + } + } + ] +} +``` + +`rendered` mirrors the shape of `expected` in the fixture — the same `{intent, owner, fields}` form applies to both calldata and EIP-712 cases. + +### Fields + +| Field | Required | Type | Notes | +| --------------------- | ----------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `runner` | yes | string | Identifier of the test runner harness emitting this file. Always `@ethereum-sourcify/clear-signing-test-runner` | +| `implementation` | yes | string | Identifier of the clear-signing implementation under test, in `package@version` form | +| `cases` | yes | array | One entry per test case from the `.tests.json` input | +| `cases[].description` | yes | string | Copied verbatim from the `description` field of the source test case — used to join back to the fixture. Fixtures must keep descriptions unique within a file; runners can rely on that to key results without collision | +| `cases[].status` | yes | enum | One of `pass`, `fail`, `error`, `skipped` (see below) | +| `cases[].rendered` | conditional | object | What the runner produced. Same shape as `expected` in the test data file — see [The `expected` block](../../README.md#the-expected-block) in the main README for the field-level breakdown. Required on `pass` and `fail`; omitted on `error` and `skipped` | +| `cases[].message` | optional | string | Human-readable note. Required on `error` and `skipped`; optional on `fail` | + +**Calldata formatters.** Fields that use a calldata formatter (the field's value is itself an encoded inner call) appear as a nested `rendered`-shaped object in `fields`; nesting is recursive. + +`runner` vs `implementation`: the runner is the harness that drives the test (one identifier across all jobs); the implementation is the codebase being exercised by that harness (varies per job). The PR comment groups results by `implementation`. + +### Status values + +- **`pass`** — runner produced `rendered` output and it matched the fixture's `expected` block. +- **`fail`** — runner ran cleanly but `rendered` did not match `expected`. The `post-results` job computes the diff. Optionally include a `message`. +- **`error`** — runner crashed, timed out, or could not process the input for reasons unrelated to clear-signing semantics. Always include a `message`. +- **`skipped`** — runner intentionally chose not to run this case. Always include a `message` explaining why. + +### Examples + +- [`pass.example.json`](./pass.example.json) +- [`fail.example.json`](./fail.example.json) +- [`error.example.json`](./error.example.json) +- [`skipped.example.json`](./skipped.example.json) + +## Wiring into CI + +Wrap the runner in a composite action under `.github/actions/run--tests/` and add a sibling job in [`clear-signing-tests.yml`](../workflows/clear-signing-tests.yml). The action should call [`upload-test-results`](../actions/upload-test-results/action.yml) to publish the artifact. + +See [`run-sourcify-tests`](../actions/run-sourcify-tests/action.yml) for a complete reference implementation. diff --git a/.github/test-runner-docs/error.example.json b/.github/test-runner-docs/error.example.json new file mode 100644 index 000000000..b6cea65c7 --- /dev/null +++ b/.github/test-runner-docs/error.example.json @@ -0,0 +1,11 @@ +{ + "runner": "@ethereum-sourcify/clear-signing-test-runner", + "implementation": "@ethereum-sourcify/clear-signing@0.1.1", + "cases": [ + { + "description": "Withdraw Max WETH to sosalkin.eth", + "status": "error", + "message": "RPC timeout fetching token metadata for 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 after 10s" + } + ] +} diff --git a/.github/test-runner-docs/fail.example.json b/.github/test-runner-docs/fail.example.json new file mode 100644 index 000000000..ac39f5e6e --- /dev/null +++ b/.github/test-runner-docs/fail.example.json @@ -0,0 +1,19 @@ +{ + "runner": "@ethereum-sourcify/clear-signing-test-runner", + "implementation": "@ethereum-sourcify/clear-signing@0.1.1", + "cases": [ + { + "description": "Manage collateral — disable WETH", + "status": "fail", + "rendered": { + "intent": "Manage collateral", + "owner": "Aave DAO", + "fields": { + "For asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "Enable as collateral": "false" + } + }, + "message": "For asset rendered as raw address; expected token symbol 'WETH'" + } + ] +} diff --git a/.github/test-runner-docs/pass.example.json b/.github/test-runner-docs/pass.example.json new file mode 100644 index 000000000..0e053e5dd --- /dev/null +++ b/.github/test-runner-docs/pass.example.json @@ -0,0 +1,28 @@ +{ + "runner": "@ethereum-sourcify/clear-signing-test-runner", + "implementation": "@ethereum-sourcify/clear-signing@0.1.1", + "cases": [ + { + "description": "Smart account execute: approve 100 USDC", + "status": "pass", + "rendered": { + "intent": "Execute call", + "interpolatedIntent": "Execute call on USDC", + "owner": "Example Smart Account", + "fields": { + "Target": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "Spending Limit": "0 ETH", + "Call data": { + "intent": "Approve", + "owner": "USDC", + "fields": { + "Spender": "0x1234567890123456789012345678901234567890", + "Amount": "100 USDC", + "Deadline": "2026-12-31 23:59 UTC" + } + } + } + } + } + ] +} diff --git a/.github/test-runner-docs/skipped.example.json b/.github/test-runner-docs/skipped.example.json new file mode 100644 index 000000000..171945757 --- /dev/null +++ b/.github/test-runner-docs/skipped.example.json @@ -0,0 +1,11 @@ +{ + "runner": "@ethereum-sourcify/clear-signing-test-runner", + "implementation": "@ethereum-sourcify/clear-signing@0.1.1", + "cases": [ + { + "description": "Withdraw Max WETH to sosalkin.eth", + "status": "skipped", + "message": "ENS name resolution not yet supported by @ethereum-sourcify/clear-signing (issue #42)" + } + ] +} diff --git a/.github/workflows/clear-signing-tests.yml b/.github/workflows/clear-signing-tests.yml index 96afc499d..13dd40fd1 100644 --- a/.github/workflows/clear-signing-tests.yml +++ b/.github/workflows/clear-signing-tests.yml @@ -3,7 +3,7 @@ name: Clear Signing Tests on: pull_request: paths: - - 'registry/**/*.json' + - "registry/**/*.json" pull_request_target: types: [labeled] @@ -18,8 +18,6 @@ permissions: env: FORCE_COLOR: "1" - DMK_REPO: "LedgerHQ/device-sdk-ts" - DMK_REF: "develop" RUN_TESTS_LABEL: "run-tests" jobs: @@ -28,42 +26,51 @@ jobs: runs-on: ubuntu-latest outputs: can_run_tests: ${{ steps.check.outputs.can_run_tests }} - is_fork: ${{ steps.check.outputs.is_fork }} + is_cross_repo: ${{ steps.check.outputs.is_cross_repo }} steps: - name: Check if tests can run id: check env: - IS_FORK: ${{ github.event.pull_request.head.repo.fork }} + # Cross-repo = PR head lives in a different repo than the base. That is the + # only case where the head SHA is untrusted code that could exfiltrate + # secrets if run unattended. Intra-repo PRs (including within a fork) are + # safe — the head is already part of the repo a maintainer controls. + HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }} + BASE_REPO: ${{ github.event.pull_request.base.repo.full_name }} EVENT_ACTION: ${{ github.event.action }} LABEL_NAME: ${{ github.event.label.name }} run: | - echo "is_fork=$IS_FORK" >> $GITHUB_OUTPUT + IS_CROSS_REPO="false" + if [[ "$HEAD_REPO" != "$BASE_REPO" ]]; then + IS_CROSS_REPO="true" + fi + echo "is_cross_repo=$IS_CROSS_REPO" >> $GITHUB_OUTPUT - # Check if the run-tests label was just added + # Was the run-tests label just added? IS_LABELED="false" if [[ "$EVENT_ACTION" == "labeled" && "$LABEL_NAME" == "$RUN_TESTS_LABEL" ]]; then IS_LABELED="true" fi # Can run tests if: - # 1. Not a fork (internal PR), OR - # 2. Fork PR with run-tests label added by maintainer - if [[ "$IS_FORK" != "true" ]] || [[ "$IS_LABELED" == "true" ]]; then + # 1. Same-repo PR (head and base are the same repo — already trusted), OR + # 2. Cross-repo PR with run-tests label added by a maintainer + if [[ "$IS_CROSS_REPO" != "true" ]] || [[ "$IS_LABELED" == "true" ]]; then echo "can_run_tests=true" >> $GITHUB_OUTPUT else echo "can_run_tests=false" >> $GITHUB_OUTPUT fi - - name: Save PR metadata for fork notification - if: steps.check.outputs.is_fork == 'true' && steps.check.outputs.can_run_tests == 'false' + - name: Save PR metadata for cross-repo notification + if: steps.check.outputs.is_cross_repo == 'true' && steps.check.outputs.can_run_tests == 'false' env: PR_NUMBER: ${{ github.event.pull_request.number }} run: | echo "{\"pr_number\": $PR_NUMBER, \"needs_notification\": true}" > pr-metadata.json - name: Upload PR metadata - if: steps.check.outputs.is_fork == 'true' && steps.check.outputs.can_run_tests == 'false' - uses: actions/upload-artifact@v7.0.1 + if: steps.check.outputs.is_cross_repo == 'true' && steps.check.outputs.can_run_tests == 'false' + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: pr-metadata path: pr-metadata.json @@ -78,28 +85,27 @@ jobs: has_tests: ${{ steps.detect.outputs.has_tests }} test_matrix: ${{ steps.detect.outputs.test_matrix }} steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: # For pull_request_target, checkout the PR head ref: ${{ github.event.pull_request.head.sha }} - name: Checkout base scripts - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ github.event.pull_request.base.sha }} path: base-scripts sparse-checkout: .github/scripts - - name: Get changed descriptor files + - name: Get changed descriptors and test files id: changed-files - uses: tj-actions/changed-files@v47.0.5 + uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 with: files: | registry/**/calldata-*.json registry/**/eip712-*.json files_ignore: | - registry/**/tests/** - registry/**/*.tests.json + registry/**/testsv2/** - name: Detect test files for changed descriptors id: detect @@ -108,22 +114,38 @@ jobs: run: | TEST_ENTRIES=() HAS_TESTS="false" + declare -A SEEN for file in $CHANGED_FILES; do - descriptor_name=$(basename "$file" .json) - descriptor_dir=$(dirname "$file") - test_file="${descriptor_dir}/tests/${descriptor_name}.tests.json" + # Map either a changed descriptor or a changed test file to (descriptor, test_file) + if [[ "$file" == */tests/*.tests.json ]]; then + test_file="$file" + descriptor_name=$(basename "$file" .tests.json) + entity_dir=$(dirname "$(dirname "$file")") + descriptor="${entity_dir}/${descriptor_name}.json" + else + descriptor="$file" + descriptor_name=$(basename "$file" .json) + entity_dir=$(dirname "$file") + test_file="${entity_dir}/tests/${descriptor_name}.tests.json" + fi - # Infer test type from filename + # Infer test type from descriptor name + test_type="" [[ "$descriptor_name" == calldata-* ]] && test_type="calldata" [[ "$descriptor_name" == eip712-* ]] && test_type="eip712" [[ -z "$test_type" ]] && continue - if [ -f "$test_file" ]; then - HAS_TESTS="true" - entity=$(echo "$descriptor_dir" | sed 's|registry/||' | cut -d'/' -f1) - TEST_ENTRIES+=("{\"descriptor\":\"$file\",\"test_file\":\"$test_file\",\"test_type\":\"$test_type\",\"entity\":\"$entity\",\"descriptor_name\":\"$descriptor_name\"}") - fi + # Dedupe (PR may change both descriptor and test file) + [[ -n "${SEEN[$descriptor]:-}" ]] && continue + SEEN[$descriptor]=1 + + # Skip if either file is missing on disk + [[ -f "$descriptor" && -f "$test_file" ]] || continue + + HAS_TESTS="true" + entity=$(echo "$entity_dir" | sed 's|registry/||' | cut -d'/' -f1) + TEST_ENTRIES+=("{\"descriptor\":\"$descriptor\",\"test_file\":\"$test_file\",\"test_type\":\"$test_type\",\"entity\":\"$entity\",\"descriptor_name\":\"$descriptor_name\"}") done if [ "$HAS_TESTS" == "true" ]; then @@ -146,144 +168,31 @@ jobs: device: [flex] steps: - name: Checkout registry - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ github.event.pull_request.head.sha }} path: registry - - name: Checkout base scripts - uses: actions/checkout@v6.0.2 + - name: Checkout base scripts and actions + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ github.event.pull_request.base.sha }} path: base-scripts - sparse-checkout: .github/scripts - - - name: Checkout device-management-kit - uses: actions/checkout@v6.0.2 - with: - repository: ${{ env.DMK_REPO }} - ref: ${{ env.DMK_REF }} - path: dmk - - - uses: actions/setup-node@v6 - with: - node-version: '20' + sparse-checkout: .github - - uses: pnpm/action-setup@v5 + - name: Run Ledger clear-signing tests + uses: ./base-scripts/.github/actions/run-ledger-tests with: - version: 9 - - - name: Install and build - working-directory: dmk - run: | - pnpm install - pnpm build:libs - - - name: Generate token for coin-apps - id: generate-token - uses: actions/create-github-app-token@v3 - with: - app-id: ${{ secrets.GH_BOT_APP_ID }} - private-key: ${{ secrets.GH_BOT_PRIVATE_KEY }} - owner: LedgerHQ - repositories: coin-apps - - - name: Checkout coin-apps - uses: actions/checkout@v6.0.2 - with: - repository: LedgerHQ/coin-apps - ref: master - token: ${{ steps.generate-token.outputs.token }} - path: coin-apps - sparse-checkout: ${{ matrix.device }}/*/Ethereum/*.elf - sparse-checkout-cone-mode: false - - - name: Pull Speculos Docker image - run: docker pull ghcr.io/ledgerhq/speculos - - - name: Prepare test inputs - env: - TEST_FILE: ${{ matrix.test.test_file }} - run: | - mkdir -p test-inputs screenshots - jq '.tests' "registry/$TEST_FILE" > test-inputs/tests.json - - - name: Resolve descriptor includes - env: - DESCRIPTOR: ${{ matrix.test.descriptor }} - WORKSPACE: ${{ github.workspace }} - run: | - node "$WORKSPACE/base-scripts/.github/scripts/resolve-erc7730-includes.js" \ - "$WORKSPACE/registry/$DESCRIPTOR" \ - "$WORKSPACE/test-inputs/resolved-descriptor.json" - - - name: Run clear signing tests - id: run-tests - working-directory: dmk - env: - FORCE_COLOR: "0" - GATING_TOKEN: ${{ secrets.GATING_TOKEN }} - COIN_APPS_PATH: "${{ github.workspace }}/coin-apps" - WORKSPACE: ${{ github.workspace }} - TEST_TYPE: ${{ matrix.test.test_type }} - DEVICE: ${{ matrix.device }} - run: | - CMD=$([[ "$TEST_TYPE" == "calldata" ]] && echo "raw-file" || echo "typed-data-file") - - set +e - pnpm cs-tester cli $CMD "$WORKSPACE/test-inputs/tests.json" \ - --device "$DEVICE" \ - --erc7730-files "$WORKSPACE/test-inputs/resolved-descriptor.json" \ - --screenshot-folder-path "$WORKSPACE/screenshots" \ - --log-level info 2>&1 | tee test-output.log - EXIT_CODE=${PIPESTATUS[0]} - echo "exit_code=$EXIT_CODE" >> $GITHUB_OUTPUT - - - name: Write job summary - if: always() - working-directory: dmk - env: - ENTITY: ${{ matrix.test.entity }} - DESCRIPTOR_NAME: ${{ matrix.test.descriptor_name }} - DEVICE: ${{ matrix.device }} - EXIT_CODE: ${{ steps.run-tests.outputs.exit_code }} - run: | - echo "## $ENTITY / $DESCRIPTOR_NAME ($DEVICE)" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - - if [ "$EXIT_CODE" == "0" ]; then - echo "✅ **All tests passed (clear signed)**" >> $GITHUB_STEP_SUMMARY - else - echo "⚠️ **Exit code: $EXIT_CODE**" >> $GITHUB_STEP_SUMMARY - fi - - echo "" >> $GITHUB_STEP_SUMMARY - echo "### Test Output (last 30 lines)" >> $GITHUB_STEP_SUMMARY - echo '```' >> $GITHUB_STEP_SUMMARY - tail -30 test-output.log >> $GITHUB_STEP_SUMMARY 2>/dev/null || echo "No output available" - echo '```' >> $GITHUB_STEP_SUMMARY - - - name: Upload screenshots - if: always() - env: - EXIT_CODE: ${{ steps.run-tests.outputs.exit_code }} - run: | - # Save exit code for PR comment - echo "$EXIT_CODE" > screenshots/exit_code.txt - - uses: actions/upload-artifact@v7.0.1 - if: always() - with: - name: screenshots-${{ matrix.device }}-${{ matrix.test.entity }}-${{ matrix.test.descriptor_name }} - path: screenshots/ - retention-days: 30 - - - name: Upload logs - if: always() - uses: actions/upload-artifact@v7.0.1 - with: - name: logs-${{ matrix.device }}-${{ matrix.test.entity }}-${{ matrix.test.descriptor_name }} - path: dmk/test-output.log - retention-days: 7 + registry-path: ${{ github.workspace }}/registry + descriptor: ${{ matrix.test.descriptor }} + test-file: ${{ matrix.test.test_file }} + test-type: ${{ matrix.test.test_type }} + device: ${{ matrix.device }} + entity: ${{ matrix.test.entity }} + descriptor-name: ${{ matrix.test.descriptor_name }} + gh-bot-app-id: ${{ secrets.GH_BOT_APP_ID }} + gh-bot-private-key: ${{ secrets.GH_BOT_PRIVATE_KEY }} + gating-token: ${{ secrets.GATING_TOKEN }} post-results: name: Post results to PR @@ -291,12 +200,12 @@ jobs: if: always() && needs.detect-tests.outputs.has_tests == 'true' runs-on: ubuntu-latest steps: - - uses: actions/download-artifact@v8 + - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: path: artifacts - name: Post PR comment - uses: actions/github-script@v9.0.0 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 with: script: | const fs = require('fs'); @@ -342,36 +251,315 @@ jobs: await github.rest.issues.createComment({ ...params, issue_number: context.issue.number }); } - notify-missing-tests: - name: Notify missing tests - needs: [check-permissions, detect-tests] - if: needs.check-permissions.outputs.can_run_tests == 'true' && needs.detect-tests.outputs.has_tests == 'false' + detect-testsv2: + name: Detect testsv2 files + needs: check-permissions + if: needs.check-permissions.outputs.can_run_tests == 'true' runs-on: ubuntu-latest + outputs: + has_tests: ${{ steps.detect.outputs.has_tests }} + test_matrix: ${{ steps.detect.outputs.test_matrix }} steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ github.event.pull_request.head.sha }} - - name: Check for changed descriptors - id: check - uses: tj-actions/changed-files@v47.0.5 + - name: Get changed descriptors and testsv2 files + id: changed-files + uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 with: files: | registry/**/calldata-*.json registry/**/eip712-*.json - files_ignore: registry/**/tests/** + files_ignore: | + registry/**/tests/** - - name: Post comment - if: steps.check.outputs.any_changed == 'true' - uses: actions/github-script@v9.0.0 + - name: Detect testsv2 files for changed descriptors + id: detect + env: + CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} + run: | + TEST_ENTRIES=() + HAS_TESTS="false" + declare -A SEEN + + for file in $CHANGED_FILES; do + # Map either a changed descriptor or a changed shared-test file to (descriptor, test_file) + if [[ "$file" == */testsv2/*.tests.json ]]; then + test_file="$file" + descriptor_name=$(basename "$file" .tests.json) + entity_dir=$(dirname "$(dirname "$file")") + descriptor="${entity_dir}/${descriptor_name}.json" + else + descriptor="$file" + descriptor_name=$(basename "$file" .json) + entity_dir=$(dirname "$file") + test_file="${entity_dir}/testsv2/${descriptor_name}.tests.json" + fi + + # Filter on descriptor prefix + case "$descriptor_name" in + calldata-*|eip712-*) ;; + *) continue ;; + esac + + # Dedupe (PR may change both descriptor and test file) + [[ -n "${SEEN[$descriptor]:-}" ]] && continue + SEEN[$descriptor]=1 + + # Skip if either file is missing on disk + [[ -f "$descriptor" && -f "$test_file" ]] || continue + + HAS_TESTS="true" + entity=$(echo "$entity_dir" | sed 's|registry/||' | cut -d'/' -f1) + TEST_ENTRIES+=("{\"descriptor\":\"$descriptor\",\"test_file\":\"$test_file\",\"entity\":\"$entity\",\"descriptor_name\":\"$descriptor_name\"}") + done + + if [ "$HAS_TESTS" == "true" ]; then + MATRIX_JSON=$(printf '%s\n' "${TEST_ENTRIES[@]}" | jq -sc '.') + echo "test_matrix=$MATRIX_JSON" >> $GITHUB_OUTPUT + else + echo "test_matrix=[]" >> $GITHUB_OUTPUT + fi + echo "has_tests=$HAS_TESTS" >> $GITHUB_OUTPUT + + sourcify-tests: + name: Sourcify tests for ${{ matrix.test.entity }}/${{ matrix.test.descriptor_name }} + needs: [check-permissions, detect-testsv2] + if: needs.detect-testsv2.outputs.has_tests == 'true' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + test: ${{ fromJson(needs.detect-testsv2.outputs.test_matrix) }} + steps: + - name: Checkout registry + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ github.event.pull_request.head.sha }} + path: registry + + - name: Checkout base scripts and actions + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ github.event.pull_request.base.sha }} + path: base-scripts + sparse-checkout: .github + + - name: Run Sourcify clear-signing tests + uses: ./base-scripts/.github/actions/run-sourcify-tests + with: + test-file: ${{ github.workspace }}/registry/${{ matrix.test.test_file }} + output: ${{ github.workspace }}/results.json + + - name: Upload results + if: always() + uses: ./base-scripts/.github/actions/upload-test-results + with: + results-path: ${{ github.workspace }}/results.json + implementation-slug: sourcify-ts-clear-signing + entity: ${{ matrix.test.entity }} + descriptor-name: ${{ matrix.test.descriptor_name }} + + rust-tests: + name: Rust tests for ${{ matrix.test.entity }}/${{ matrix.test.descriptor_name }} + needs: [check-permissions, detect-testsv2] + if: needs.detect-testsv2.outputs.has_tests == 'true' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + test: ${{ fromJson(needs.detect-testsv2.outputs.test_matrix) }} + steps: + - name: Checkout registry + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ github.event.pull_request.head.sha }} + path: registry + + - name: Checkout base scripts and actions + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ github.event.pull_request.base.sha }} + path: base-scripts + sparse-checkout: .github + + - name: Run Rust clear-signing tests + uses: ./base-scripts/.github/actions/run-rust-tests + with: + test-file: ${{ github.workspace }}/registry/${{ matrix.test.test_file }} + output: ${{ github.workspace }}/results.json + + - name: Upload results + if: always() + uses: ./base-scripts/.github/actions/upload-test-results + with: + results-path: ${{ github.workspace }}/results.json + implementation-slug: rust-clear-signing + entity: ${{ matrix.test.entity }} + descriptor-name: ${{ matrix.test.descriptor_name }} + + post-implementation-results: + name: Post implementation results to PR + needs: [check-permissions, detect-testsv2, sourcify-tests, rust-tests] + if: always() && needs.detect-testsv2.outputs.has_tests == 'true' + runs-on: ubuntu-latest + steps: + - name: Checkout registry (PR head) + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ github.event.pull_request.head.sha }} + path: registry + + - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 + with: + path: artifacts + pattern: results__* + merge-multiple: true + + - name: Post PR comment + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 with: script: | - const body = `## Clear Signing Tests\n\n> ℹNo test files found for the changed descriptors.\n\nCreate a test file at \`registry//tests/.tests.json\`\n\nSee [testing documentation](../blob/master/README.md#reference-test-cases) for details.`; + const fs = require('fs'); + const path = require('path'); + + const STATUS_ICONS = { pass: '✅', fail: '❌', error: '⚠️', skipped: '⏭️' }; + const runUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`; + const workspace = process.env.GITHUB_WORKSPACE; + const artifactsRoot = path.join(workspace, 'artifacts'); + const registryRoot = path.join(workspace, 'registry'); + + // Each artifact is uploaded as a single file named + // `____.json`. With merge-multiple: true + // they all land flat in artifactsRoot, with no collisions. + let resultFiles = []; + try { + const entries = fs.readdirSync(artifactsRoot); + core.info(`Found ${entries.length} entries under ${artifactsRoot}: ${JSON.stringify(entries)}`); + resultFiles = entries.filter(f => f.endsWith('.json')); + } catch (e) { + core.warning(`Could not read ${artifactsRoot}: ${e.message}`); + } + core.info(`Matched ${resultFiles.length} result JSON files`); + + let body = '## Clear Signing Tests\n\n'; + // If anything went wrong (no results, or any non-pass case) we set + // this and fail the job at the end — block PRs from being merged + // with failing or erroring cases. + let failureReason = null; + + if (resultFiles.length === 0) { + body += '> No implementation test results found.\n'; + failureReason = 'Expected runner results but none were uploaded.'; + } else { + // rows: keyed by entity|descriptor|description + // each row stores per-impl status + rendered (for diff blocks) + message + const rows = new Map(); + const impls = new Set(); + + // Cache test file lookups so we don't re-read the same file + const testFileCache = new Map(); + const loadExpected = (entity, descriptor, description) => { + const key = `${entity}/${descriptor}`; + if (!testFileCache.has(key)) { + const testPath = path.join(registryRoot, 'registry', entity, 'testsv2', `${descriptor}.tests.json`); + try { + testFileCache.set(key, JSON.parse(fs.readFileSync(testPath, 'utf8'))); + } catch (e) { + core.warning(`Could not read ${testPath}: ${e.message}`); + testFileCache.set(key, null); + } + } + const doc = testFileCache.get(key); + if (!doc || !Array.isArray(doc.tests)) return null; + const t = doc.tests.find(t => t.description === description); + return t ? t.expected : null; + }; + + for (const file of resultFiles) { + const filePath = path.join(artifactsRoot, file); + let data; + try { data = JSON.parse(fs.readFileSync(filePath, 'utf8')); } + catch (e) { core.warning(`Could not parse ${file}: ${e.message}`); continue; } + const impl = data.implementation || file; + impls.add(impl); + // filename: ____.json + const base = file.replace(/\.json$/, ''); + const parts = base.split('__'); + const entity = parts[1]; + const descriptor = parts[2]; + for (const c of data.cases || []) { + const key = `${entity}|${descriptor}|${c.description}`; + if (!rows.has(key)) rows.set(key, { entity, descriptor, description: c.description, byImpl: {} }); + rows.get(key).byImpl[impl] = { + status: c.status, + rendered: c.rendered, + message: c.message, + }; + } + } + + const implList = [...impls].sort(); + + // --- Compact status table --- + const header = ['Entity', 'Descriptor', 'Case', ...implList].join(' | '); + const sep = ['---', '---', '---', ...implList.map(() => ':---:')].join(' | '); + body += `| ${header} |\n| ${sep} |\n`; + for (const r of rows.values()) { + const cells = implList.map(i => STATUS_ICONS[(r.byImpl[i] || {}).status] || '—'); + body += `| ${r.entity} | ${r.descriptor} | ${r.description} | ${cells.join(' | ')} |\n`; + } + body += '\n✅ pass · ❌ fail · ⚠️ error · ⏭️ skipped · — not run\n'; + + // --- Details for non-pass cases --- + const details = []; + for (const r of rows.values()) { + for (const impl of implList) { + const result = r.byImpl[impl]; + if (!result || result.status === 'pass') continue; + const icon = STATUS_ICONS[result.status] || '?'; + const summary = `${icon} ${r.entity}/${r.descriptor} · ${r.description} · \`${impl}\``; + let block = `
\n${summary}\n\n`; + if (result.message) { + block += `> ${result.message}\n\n`; + } + if (result.status === 'fail') { + const expected = loadExpected(r.entity, r.descriptor, r.description); + block += '**Expected:**\n\n```json\n'; + block += expected != null ? JSON.stringify(expected, null, 2) : '(could not load expected from test file)'; + block += '\n```\n\n'; + block += '**Got:**\n\n```json\n'; + block += result.rendered != null ? JSON.stringify(result.rendered, null, 2) : '(no rendered output)'; + block += '\n```\n'; + } + block += '\n
\n'; + details.push(block); + } + } + if (details.length > 0) { + body += '\n### Details\n\n' + details.join('\n'); + } + + // Count non-pass (case, implementation) pairs. + let nonPass = 0; + for (const r of rows.values()) { + for (const impl of implList) { + const result = r.byImpl[impl]; + if (result && result.status !== 'pass') nonPass++; + } + } + if (nonPass > 0) { + failureReason = `${nonPass} case/runner combination(s) did not pass.`; + } + + body += `\n📋 [View test details](${runUrl})\n`; + } const { data: comments } = await github.rest.issues.listComments({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number }); - const existing = comments.find(c => c.user.type === 'Bot' && c.body.includes('Clear Signing Tests')); + const existing = comments.find(c => c.user.type === 'Bot' && c.body.startsWith('## Clear Signing Tests')); const params = { owner: context.repo.owner, repo: context.repo.repo, body }; if (existing) { @@ -379,3 +567,63 @@ jobs: } else { await github.rest.issues.createComment({ ...params, issue_number: context.issue.number }); } + + // Comment is posted first so reviewers can see the table even + // when the run is marked failed. + if (failureReason) { + core.setFailed(failureReason); + } + + notify-missing-tests: + name: Notify missing testsv2 + needs: [check-permissions, detect-testsv2] + if: needs.check-permissions.outputs.can_run_tests == 'true' && needs.detect-testsv2.outputs.has_tests == 'false' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ github.event.pull_request.head.sha }} + + - name: Check for changed descriptors + id: check + uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 + with: + files: | + registry/**/calldata-*.json + registry/**/eip712-*.json + files_ignore: | + registry/**/tests/** + registry/**/testsv2/** + + - name: Post comment + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + env: + ANY_CHANGED: ${{ steps.check.outputs.any_changed }} + with: + script: | + const anyChanged = process.env.ANY_CHANGED === 'true'; + + // Same comment as post-implementation-results — exactly one + // "## Clear Signing Tests" comment per PR, in either warning or + // results state. + const { data: comments } = await github.rest.issues.listComments({ + owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number + }); + const existing = comments.find(c => c.user.type === 'Bot' && c.body.startsWith('## Clear Signing Tests')); + + if (anyChanged) { + const body = `## Clear Signing Tests\n\nNo testsv2 files found for the changed descriptors.\n\nCreate a test file at \`registry//testsv2/.tests.json\`\n\nSee [testing documentation](../blob/master/README.md#reference-test-cases) for details.`; + const params = { owner: context.repo.owner, repo: context.repo.repo, body }; + if (existing) { + await github.rest.issues.updateComment({ ...params, comment_id: existing.id }); + } else { + await github.rest.issues.createComment({ ...params, issue_number: context.issue.number }); + } + // Block the PR — descriptor changed without a matching testsv2 file. + core.setFailed('Missing testsv2 file(s) for changed descriptors.'); + } else if (existing) { + // No descriptors changed and no testsv2 either — nothing to say. Clear any stale comment. + await github.rest.issues.deleteComment({ + owner: context.repo.owner, repo: context.repo.repo, comment_id: existing.id + }); + } diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index acae36f2f..8279134e3 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout timeout-minutes: 10 - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Get date timeout-minutes: 10 @@ -32,7 +32,7 @@ jobs: - name: Setup python timeout-minutes: 10 - uses: actions/setup-python@v6 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: "3.12" cache: "pip" @@ -55,7 +55,7 @@ jobs: - name: Open pull request if: ${{ !cancelled() && steps.changes.outputs.changes == 'true' }} timeout-minutes: 10 - uses: peter-evans/create-pull-request@v8 + uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8 with: token: ${{ secrets.CI_BOT_TOKEN }} author: ${{ secrets.CI_BOT_USERNAME }} <${{ secrets.CI_BOT_USERNAME }}@users.noreply.github.com> diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 43fa949d5..bab7f6db7 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -27,11 +27,11 @@ jobs: steps: - name: Checkout timeout-minutes: 10 - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup python timeout-minutes: 10 - uses: actions/setup-python@v6 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: "3.12" cache: "pip" @@ -53,7 +53,7 @@ jobs: - name: Trigger update on LedgerHQ/crypto-assets if: ${{ !cancelled() }} timeout-minutes: 60 - uses: peter-evans/repository-dispatch@v4 + uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4 with: token: ${{ secrets.CI_BOT_TOKEN }} repository: LedgerHQ/crypto-assets @@ -62,7 +62,7 @@ jobs: - name: Trigger update on LedgerHQ/python-erc7730 if: ${{ !cancelled() }} timeout-minutes: 60 - uses: peter-evans/repository-dispatch@v4 + uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4 with: token: ${{ secrets.CI_BOT_TOKEN }} repository: LedgerHQ/python-erc7730 diff --git a/.github/workflows/notify-fork-pr.yml b/.github/workflows/notify-fork-pr.yml index 47259c202..be2f2a051 100644 --- a/.github/workflows/notify-fork-pr.yml +++ b/.github/workflows/notify-fork-pr.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Download PR metadata id: download - uses: actions/download-artifact@v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: pr-metadata github-token: ${{ secrets.GITHUB_TOKEN }} @@ -25,7 +25,7 @@ jobs: - name: Post notification comment if: steps.download.outcome == 'success' - uses: actions/github-script@v9.0.0 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 with: script: | const fs = require('fs'); diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index e4e909ab3..8c8eb0d79 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,22 +24,25 @@ jobs: steps: - name: Checkout timeout-minutes: 10 - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Get all changed descriptor files timeout-minutes: 5 id: changed-descriptor-files - uses: tj-actions/changed-files@v47.0.5 + uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 with: files: | registry/**/eip712-*.json registry/**/calldata-*.json - files_ignore: registry/**/tests/** + files_ignore: | + registry/**/tests/** + registry/**/testsv2/** + registry/**/*.tests.json - name: Setup python timeout-minutes: 10 if: steps.changed-descriptor-files.outputs.any_changed == 'true' - uses: actions/setup-python@v6 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: "3.12" cache: "pip" @@ -63,22 +66,21 @@ jobs: steps: - name: Checkout timeout-minutes: 10 - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Get all changed JSON files timeout-minutes: 5 id: changed-json-files - uses: tj-actions/changed-files@v47.0.5 + uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 with: files: | registry/**/*.json ercs/**/*.json - files_ignore: registry/**/tests/** - name: Setup python timeout-minutes: 10 if: steps.changed-json-files.outputs.any_changed == 'true' - uses: actions/setup-python@v6 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: "3.12" cache: "pip" @@ -95,11 +97,20 @@ jobs: CHANGED_FILES: ${{ steps.changed-json-files.outputs.all_changed_files }} run: | DEFAULT_SCHEMA="specs/erc7730-v2.schema.json" + TESTS_V1_SCHEMA="specs/erc7730-tests.schema.json" + TESTS_V2_SCHEMA="specs/erc7730-tests-v2.schema.json" FAILED=0 for file in $CHANGED_FILES; do - # Extract $schema value from the JSON file - SCHEMA_REF=$(python3 -c ' + # Resolve schema — folder-based dispatch for test files takes precedence, + # since legacy test files do not carry a $schema field. + if echo "$file" | grep -qE '/testsv2/.*\.tests\.json$'; then + SCHEMA_PATH="$TESTS_V2_SCHEMA" + elif echo "$file" | grep -qE '/tests/.*\.tests\.json$'; then + SCHEMA_PATH="$TESTS_V1_SCHEMA" + else + # Descriptor / shared / ercs file — read its $schema field if present. + SCHEMA_REF=$(python3 -c ' import json, sys try: with open(sys.argv[1]) as f: @@ -109,18 +120,18 @@ jobs: print("") ' "$file") - # Resolve schema path - if [ -z "$SCHEMA_REF" ]; then - SCHEMA_PATH="$DEFAULT_SCHEMA" - elif echo "$SCHEMA_REF" | grep -qE '^https?://'; then - SCHEMA_PATH="$DEFAULT_SCHEMA" - else - FILE_DIR=$(dirname "$file") - RESOLVED=$(cd "$FILE_DIR" && realpath -m "$SCHEMA_REF" 2>/dev/null || echo "") - if [ -n "$RESOLVED" ] && [ -f "$RESOLVED" ]; then - SCHEMA_PATH="$RESOLVED" - else + if [ -z "$SCHEMA_REF" ]; then SCHEMA_PATH="$DEFAULT_SCHEMA" + elif echo "$SCHEMA_REF" | grep -qE '^https?://'; then + SCHEMA_PATH="$DEFAULT_SCHEMA" + else + FILE_DIR=$(dirname "$file") + RESOLVED=$(cd "$FILE_DIR" && realpath -m "$SCHEMA_REF" 2>/dev/null || echo "") + if [ -n "$RESOLVED" ] && [ -f "$RESOLVED" ]; then + SCHEMA_PATH="$RESOLVED" + else + SCHEMA_PATH="$DEFAULT_SCHEMA" + fi fi fi diff --git a/.github/workflows/pull_request_setup.yml b/.github/workflows/pull_request_setup.yml index 232e51af7..a6e026819 100644 --- a/.github/workflows/pull_request_setup.yml +++ b/.github/workflows/pull_request_setup.yml @@ -19,15 +19,15 @@ jobs: steps: - name: Checkout timeout-minutes: 10 - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Add labels timeout-minutes: 5 - uses: actions/labeler@v6 + uses: actions/labeler@f27b608878404679385c85cfa523b85ccb86e213 # v6 - name: Enforce labels timeout-minutes: 5 - uses: mheap/github-action-required-labels@v5 + uses: mheap/github-action-required-labels@0ac283b4e65c1fb28ce6079dea5546ceca98ccbe # v5 with: mode: minimum count: 1 diff --git a/.github/workflows/sync-specs.yml b/.github/workflows/sync-specs.yml index 02e5fd6f7..cccd42975 100644 --- a/.github/workflows/sync-specs.yml +++ b/.github/workflows/sync-specs.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout timeout-minutes: 10 - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Get date timeout-minutes: 10 @@ -54,7 +54,7 @@ jobs: - name: Open pull request if: ${{ !cancelled() && steps.changes.outputs.changes == 'true' }} timeout-minutes: 10 - uses: peter-evans/create-pull-request@v8 + uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8 with: token: ${{ secrets.CI_BOT_TOKEN }} author: ${{ secrets.CI_BOT_USERNAME }} <${{ secrets.CI_BOT_USERNAME }}@users.noreply.github.com> diff --git a/README.md b/README.md index 729a3f7ab..982960799 100644 --- a/README.md +++ b/README.md @@ -11,14 +11,15 @@ README.md # top-level README file with submis specs/ erc-7730.md # most advanced version of the spec but reference should be the ERC erc7730-v1.schema.json # the json schema of the latest version of the extension - erc7730-tests.schema.json # json schema for test files + erc7730-tests.schema.json # legacy json schema for test files (tests/) + erc7730-tests-v2.schema.json # json schema for test files (testsv2/) registry/ $entity_name/ # official entity name submitting metadata information calldata-$contractName1.json # metadata for contract $contractName1, including the contract version in name calldata-$contractName2.json eip712-$messageName.json # metadata for EIP712 message $messageName common-$sharedDefinition.json # common definitions shared between descriptors (without prefix) - tests/ + testsv2/ calldata-$contractName1.tests.json # test cases for calldata-$contractName1.json calldata-$contractName2.tests.json eip712-$messageName.tests.json # test cases for eip712-$messageName.json @@ -88,19 +89,38 @@ You can add reference test cases for your ERC-7730 descriptors. These test cases ### Test file format -Test files should be placed in a `tests/` folder within your entity directory and named `.tests.json`. The test file name determines which descriptor it tests (e.g., `calldata-MyContract.tests.json` tests `calldata-MyContract.json`). +Test files should be placed in a `testsv2/` folder within your entity directory and named `.tests.json` — one fixture file per descriptor. The file declares the descriptor under test, an optional `dataProvider` block with mock token metadata and address-name lookups (so tests don't need network access), and an array of test cases. Each test case's `description` must be unique within the file; runners use it as the join key to match rendered output back to its expected block. **Calldata test file example** (`calldata-MyContract.tests.json`): ```json { - "$schema": "../../../specs/erc7730-tests.schema.json", + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-MyContract.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { "symbol": "USDC", "decimals": 6, "name": "USD Coin" } + }, + "addressNames": { + "0x1234567890123456789012345678901234567890": "Treasury" + }, + "ensNames": { + "0xabcdef0123456789abcdef0123456789abcdef01": "alice.eth" + } + }, "tests": [ { - "description": "Test approve function", + "description": "Approve 100 USDC for Treasury", "rawTx": "0x02f8b0...", "txHash": "0x1234...abcd", - "expectedTexts": ["Spender", "0x1234...", "Amount", "100 USDC"] + "expected": { + "intent": "Approve", + "owner": "MyProtocol", + "fields": [ + { "label": "Spender", "value": "Treasury" }, + { "label": "Amount", "value": "100 USDC" } + ] + } } ] } @@ -110,17 +130,25 @@ Test files should be placed in a `tests/` folder within your entity directory an ```json { - "$schema": "../../../specs/erc7730-tests.schema.json", + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-MyMessage.json", "tests": [ { - "description": "Test permit signature", + "description": "Permit 100 USDC", "data": { "types": { ... }, "primaryType": "Permit", "domain": { ... }, "message": { ... } }, - "expectedTexts": ["Spender", "0x1234...", "Amount", "100 USDC"] + "expected": { + "intent": "Permit", + "owner": "MyProtocol", + "fields": [ + { "label": "Spender", "value": "0x1234..." }, + { "label": "Amount", "value": "100 USDC" } + ] + } } ] } @@ -132,18 +160,28 @@ Test files should be placed in a `tests/` folder within your entity directory an | Field | Required | Description | |-------|----------|-------------| -| `description` | No | Human-readable test description | -| `rawTx` | Yes | The raw signed transaction (hex string, 0x-prefixed) | +| `description` | Yes | Human-readable test identifier — used to match runner results back to this case. **Must be unique within the test file.** | +| `rawTx` | Yes | The raw **unsigned** transaction (hex string, 0x-prefixed). Runners don't verify signatures, so fixtures stay simpler and reproducible by leaving the v/r/s off | +| `from` | No | Checksummed signer address. Only set when the descriptor references the signer via `@.from`; otherwise omit | | `txHash` | No | Transaction hash for reference (e.g., link to Etherscan) | -| `expectedTexts` | No | Array of expected text strings (labels and values) displayed during signing | +| `expected` | Yes | Expected rendered output: `{ intent, interpolatedIntent?, owner, fields }`. Field values are strings, or nested `{ intent, owner, fields }` objects for calldata formatters | #### For EIP-712 tests (`eip712-*.tests.json`) | Field | Required | Description | |-------|----------|-------------| -| `description` | No | Human-readable test description | +| `description` | Yes | Human-readable test identifier — used to match runner results back to this case. **Must be unique within the test file.** | | `data` | Yes | Complete EIP-712 typed data object (with `types`, `primaryType`, `domain`, `message`) | -| `expectedTexts` | No | Array of expected text strings (labels and values) displayed during signing | +| `expected` | Yes | Expected rendered output: `{ intent, interpolatedIntent?, owner, fields }` | + +#### The `expected` block + +| Field | Required | Description | +|-------|----------|-------------| +| `intent` | Yes | The action label shown to the user (e.g. `"Approve"`, `"Swap"`). For descriptors with a templated intent, this is the un-interpolated literal form | +| `interpolatedIntent` | No | The fully-rendered interpolatedIntent string after substituting template placeholders against the formatted fields (e.g. `"Swap 100 USDC for DAI"`). Omit when the descriptor has no interpolatedIntent | +| `owner` | Yes | The descriptor owner shown to the user (e.g. `"Aave DAO"`) | +| `fields` | Yes | Ordered array of `{ label, value }` entries — one entry per displayed field. `value` is the formatted string, or a nested `{ intent, owner, fields }` object for calldata-formatted fields | ### Best practices diff --git a/registry/1inch/testsv2/calldata-AggregationRouterV3.tests.json b/registry/1inch/testsv2/calldata-AggregationRouterV3.tests.json new file mode 100644 index 000000000..b90397044 --- /dev/null +++ b/registry/1inch/testsv2/calldata-AggregationRouterV3.tests.json @@ -0,0 +1,73 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-AggregationRouterV3.json", + "dataProvider": { + "tokens": { + "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee": { + "symbol": "ETH", + "decimals": 18, + "name": "Ether" + }, + "0x9196e18bc349b1f64bc08784eae259525329a1ad": { + "decimals": 18, + "name": "PUSSY token", + "symbol": "PUSSY" + }, + "0x0000000000000000000000000000000000000000": { + "symbol": "ETH", + "decimals": 18, + "name": "Ether" + } + } + }, + "tests": [ + { + "description": "Swap - chain 1 (1)", + "rawTx": "0xf985910584055d4a80836362489411111112542d85b3ef69ae05771c2dccff4faa26878e1bc9bf040000b985647c025200000000000000000000000000db38ae75c5f44276803345f7f02e95a0aeef594400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000180000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000009196e18bc349b1f64bc08784eae259525329a1ad000000000000000000000000db38ae75c5f44276803345f7f02e95a0aeef59440000000000000000000000001f5ec35fd635b225bd46518d575aa5d4439205ee000000000000000000000000000000000000000000000000008e1bc9bf04000000000000000000000000000000000000000000000000e820372f257fbfeaa01f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006a000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000be00000000000000000000000000000000000000000000000000000000000000e80000000000000000000000000000000000000000000000000000000000000130000000000000000000000000000000000000000000000000000000000000017800000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000029800000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000328000000000000000000000000000000000000000000000000000000000000037000000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000448000000000000000000000000000000000000000000000000000000000000049c00000000000000000000000000000000000000000000000000000000000004e4000000000000000000000000000000000000000000000000000000000000052c000000000000000000000000000000000000000000000000000000000000057400000000000000000000000000000000000000000000000000000000000005d00000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000066000000000000000000000000000000000000000000000000000000000000006a800000000000000000000000000000000000000000000000000000000000006f00000000000000000000000000000000000000000000000000000000000000738000000000000000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000000000000000007a400000000000000000000000000000000000000000000000000000000000007ba00000000000000000000000000000000000000000000000000000000000007ec00000000000000000000000000000000000000000000000000000000000008120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001e4b3af37c000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000f000000000000000000000000000000640000000000000000000000000398ec7346dcd622edc5ae82352f02be94c62d11900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a400a718a9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000b15217fc398ed144ec91f258c8fcc5999ae7fede000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001e4b3af37c000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000010400000000000000000000000000000550000000000000000000000000398ec7346dcd622edc5ae82352f02be94c62d11900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a400a718a9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a2c4bf3a9ddb98bf53d7cad60400b06088e155b2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001e4b3af37c000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000001b80000000000000000000000000000044c000000000000000000000000398ec7346dcd622edc5ae82352f02be94c62d11900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a400a718a9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000374e5ac9b531460656a04a859e973add8c3dee1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001e4b3af37c000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000029400000000000000000000000000000294800000000000000000000000398ec7346dcd622edc5ae82352f02be94c62d11900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a400a718a9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000092a4f58009df9eac5f2af6d05977683639f0060e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000010000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000032d9bc3f3c1042b431f29df63aaa547f5ed6ee6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000032d9bc3f3c1042b431f29df63aaa547f5ed6ee600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000010000000000000000000000000000004f00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000cbcf7be78c33b513e95d8708ee422b217aec90f1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000cbcf7be78c33b513e95d8708ee422b217aec90f100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000010000000000000000000000000000004e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000001b481b706b571839aa095ad11b82d7057370ee980000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000001b481b706b571839aa095ad11b82d7057370ee9800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000010000000000000000000000000000004d00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000868e68549418e9dcf92f2bf8611a2578f0f1fe88000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000868e68549418e9dcf92f2bf8611a2578f0f1fe8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000010000000000000000000000000000004c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000055f06ed45606c78370edddcb85ef7141ad2033d100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000055f06ed45606c78370edddcb85ef7141ad2033d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000010000000000000000000000000000004b00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000371a47394006224e38c9da28c17738e4f9a7900e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000371a47394006224e38c9da28c17738e4f9a7900e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c0b2b0c5376cb2e6f73b473a7caa341542f707ce000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000c0b2b0c5376cb2e6f73b473a7caa341542f707ce00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000009ce203ad2e38e29ea7eae395cb8b8a7877fa11750000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000009ce203ad2e38e29ea7eae395cb8b8a7877fa117500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000008d7d90a9554ca05c1668ded1a554d1b1d7b344800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000008d7d90a9554ca05c1668ded1a554d1b1d7b3448000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000b624c7d3b7daddea8825fa39e764f35d02a1b1ca000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000b624c7d3b7daddea8825fa39e764f35d02a1b1ca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000000000004200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000072a8f00913226b49e63cb7f27bc31ee5cfd0964600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000072a8f00913226b49e63cb7f27bc31ee5cfd0964600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000e969991ce475bcf817e01e1aad4687da7e1d6f83000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000e969991ce475bcf817e01e1aad4687da7e1d6f8300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000448000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000048483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000420000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000030000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000012807818b584a3fa65d38b6c25b13983fe888d6e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000012807818b584a3fa65d38b6c25b13983fe888d6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000164ceb757d50000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000db38ae75c5f44276803345f7f02e95a0aeef5944000000000000000000000000000000000000000000000000000000006097a79a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d478953d5572f829f457a5052580cbeaee36c1aa0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000030000000000000000000000000000003b00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000008287913adfa69adca06beb00deab68a99c9e8d460000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000008287913adfa69adca06beb00deab68a99c9e8d4600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000040000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000047477cd00da54a3ee74e595e125a5dca7628664800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000047477cd00da54a3ee74e595e125a5dca7628664800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000040000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000bcf29450ac65dbd9e4066c30946b67488d6a9f37000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000bcf29450ac65dbd9e4066c30946b67488d6a9f3700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000448000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000050483f1291f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004a0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000040000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001e452bbbe2900000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000db38ae75c5f44276803345f7f02e95a0aeef59440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000db38ae75c5f44276803345f7f02e95a0aeef594400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000006097a79a96646936b91d6b9d7d0c47c496afbf3d6ec7b6f80002000000000000000000190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000050000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ec577a919fca1b682f584a50b1048331ef0f30dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000ec577a919fca1b682f584a50b1048331ef0f30dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000050000000000000000000000000000002700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000002814dec8b21031f310e57829f942906c403182300000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000002814dec8b21031f310e57829f942906c4031823000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000050000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c45a95642bc59df699364237b80057eadc8d8a14000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000c45a95642bc59df699364237b80057eadc8d8a1400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000080000000000000000000000000000001d00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000003e413cbe7ea087706e57ad4e53994f36c173e5210000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000003e413cbe7ea087706e57ad4e53994f36c173e52100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000080000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000007f0b4d22b8a9abe2ae9ea1077fe1ab77dc7283a30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000007f0b4d22b8a9abe2ae9ea1077fe1ab77dc7283a300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c483f1291f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000d0000000000000000000000000000000d00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000068a241796628ecf44e48f0533fb00d07dd3419d200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000080000000000000000000000068a241796628ecf44e48f0533fb00d07dd3419d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a48201aa3f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000004480000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000184b3af37c000000000000000000000000000000000000000000000000000000000000000808000000000000000000000000000000000000000000000000000000000000024000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000005000000000000000000000000000000050000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000ac336936f2f0c2ab0c8dece3a027445323e8a24400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a4c9f12e9d000000000000000000000000ac336936f2f0c2ab0c8dece3a027445323e8a244000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000009196e18bc349b1f64bc08784eae259525329a1ad000000000000000000000003db38ae75c5f44276803345f7f02e95a0aeef5944000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000002647f8fe7a000000000000000000000000000000000000000000000000000000000000000808000000000000000000000000000000000000000000000000000000000000044000000000000000000000000db38ae75c5f44276803345f7f02e95a0aeef594400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a4059712240000000000000000000000009196e18bc349b1f64bc08784eae259525329a1ad000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004470bdb9470000000000000000000000009196e18bc349b1f64bc08784eae259525329a1ad0000000000000000000000000000000000000000000101eae7fb7effb8cbce5c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a4b3af37c00000000000000000000000000000000000000000000000000000000000000080a000000000000000000000000000000000000000000000000000000000000044000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f99000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000001f5ec35fd635b225bd46518d575aa5d4439205ee00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a4b3af37c0000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000440000000000000000000000009196e18bc349b1f64bc08784eae259525329a1ad000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f990000000000000000000000009196e18bc349b1f64bc08784eae259525329a1ad0000000000000000000000001f5ec35fd635b225bd46518d575aa5d4439205ee00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018080", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0x7e84a52f499cb9fd0cc89435d95eeaeff0a303ba96bcfcfe378f63517b3a835d", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "0.04 ETH" + }, + { + "label": "Minimum to Receive", + "value": "1096183.296274342997565471 PUSSY" + }, + { + "label": "Beneficiary", + "value": "0x1F5ec35FD635b225bD46518D575aA5d4439205ee" + } + ] + } + }, + { + "description": "Swap - chain 1 (2)", + "rawTx": "0xf8f4028402faf0808302c8ed9411111112542d85b3ef69ae05771c2dccff4faa26870eb75abbd22400b8c82e95b6c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb75abbd224000000000000000000000000000000000000000000000419aff021213ce297b92f0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000180000000000000003b6d0340da3a20aad0c34fa742bd9813d45bbf67c787ae0b0bd34b36018080", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0x66ac80852fa53c04af9361186494c812944e07e2418585813801f5342aa3b439", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "0.00414225 ETH" + }, + { + "label": "Minimum to Receive", + "value": "4957007923890945718204719" + }, + { + "label": "Beneficiary", + "value": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf" + } + ] + } + } + ] +} diff --git a/registry/1inch/testsv2/calldata-AggregationRouterV4.tests.json b/registry/1inch/testsv2/calldata-AggregationRouterV4.tests.json new file mode 100644 index 000000000..27360e089 --- /dev/null +++ b/registry/1inch/testsv2/calldata-AggregationRouterV4.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-AggregationRouterV4.json", + "dataProvider": { + "tokens": { + "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d": { + "symbol": "BUSD", + "decimals": 18, + "name": "BUSD Token" + }, + "0x55d398326f99059ff775485246999027b3197955": { + "symbol": "USDT", + "decimals": 18, + "name": "Tether USD" + } + } + }, + "tests": [ + { + "description": "Swap - chain 56", + "rawTx": "0xf902ce24843b9aca008303a18c941111111254fb6c44bac0bed2854e76f90643097d80b902a87c025200000000000000000000000000de9e4fe32b049f821c7f3e9802381aa470ffca73000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001800000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d00000000000000000000000055d398326f99059ff775485246999027b3197955000000000000000000000000de9e4fe32b049f821c7f3e9802381aa470ffca73000000000000000000000000911ac60509c4171161ce72d3e018812ee54fe2bb000000000000000000000000000000000000000000000006e38e7328fa40453c000000000000000000000000000000000000000000000006ae9b66a5291b4a1800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ef0000000000000000000000000000000000000000000000000000b100004e00a0744c8c098ac76a51cc950d9822d68b83fe1ad97b32cd580dc566940cf6ddbf6836185a6ba9edf2c00e84d362000000000000000000000000000000000000000000000000234568b40501491002a0000000000000000000000000000000000000000000000006ae9b66a5291b4a18ee63c1e5802c3c320d49019d4f9a92352e947c7e5acfe47d688ac76a51cc950d9822d68b83fe1ad97b32cd580d1111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000006e38e7328fa40453c00000000000000000000000000000000003db5cd3b388080", + "txHash": "0x818121d8a32295877ad9db78df08f2b6a6406ff4e5e86a2013cd5f8c21912181", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "127.077634355394266428 BUSD" + }, + { + "label": "Minimum to Receive", + "value": "123.262227285792213528 USDT" + }, + { + "label": "Beneficiary", + "value": "0x911aC60509c4171161CE72D3e018812ee54fE2bB" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/1inch/testsv2/calldata-AggregationRouterV5.tests.json b/registry/1inch/testsv2/calldata-AggregationRouterV5.tests.json new file mode 100644 index 000000000..18dcea48f --- /dev/null +++ b/registry/1inch/testsv2/calldata-AggregationRouterV5.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-AggregationRouterV5.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xba41ddf06b7ffd89d1267b5a93bfef2424eb2003": { + "decimals": 18, + "name": "Mythos", + "symbol": "MYTH" + } + } + }, + "tests": [ + { + "description": "Swap - chain 1", + "rawTx": "0x02f90390018291e48411e1a3008416361ed5832dc6c0941111111254eeb25477b68fb85ed929f73a96058280b9036412aa3caf000000000000000000000000990636ecb3ff04d33d92e970d3d588bf5cd8d086000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ba41ddf06b7ffd89d1267b5a93bfef2424eb2003000000000000000000000000990636ecb3ff04d33d92e970d3d588bf5cd8d086000000000000000000000000db3812cd8d20f27888677ddc97df1241850f8c4800000000000000000000000000000000000000000000000000000000010366400000000000000000000000000000000000000000000001e46eb04e96368677fd000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001d90000000000000000000000000000000000000001bb00015000014a00001a0020d6bdbf78a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485121d26f20001a72a18c002b00e6710000d68700ce00a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800841d8a79620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000020c49ba5e353f88000137c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100206b4be0b902a0000000000000000000000000000000000000000000000000000000000000000148c95033810000000000000000000000000000000000000000ba41ddf06b7ffd89d1267b5a93bfef2424eb200300271000006400001111111254eeb25477b68fb85ed929f73a96058200000000000000c0", + "txHash": "0x0026bdb4b61c13edd5031e1e424ff9fe7771756333e786ad70a2eefa1a77568a", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "17 USDC" + }, + { + "label": "Minimum to Receive", + "value": "8936.200093022562973693 MYTH" + }, + { + "label": "Beneficiary", + "value": "0xDb3812cD8d20F27888677dDC97dF1241850f8c48" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/1inch/testsv2/calldata-AggregationRouterV6.tests.json b/registry/1inch/testsv2/calldata-AggregationRouterV6.tests.json new file mode 100644 index 000000000..cfd4f5ce3 --- /dev/null +++ b/registry/1inch/testsv2/calldata-AggregationRouterV6.tests.json @@ -0,0 +1,356 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-AggregationRouterV6.json", + "dataProvider": { + "tokens": { + "0x45e02bc2875a2914c4f585bbf92a6f28bc07cb70": { + "decimals": 18, + "name": "$MBG Token", + "symbol": "$MBG" + }, + "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee": { + "symbol": "ETH", + "decimals": 18, + "name": "Ether" + }, + "0x740df024ce73f589acd5e8756b377ef8c6558bab": { + "decimals": 18, + "name": "Holograph Utility Token", + "symbol": "HLG" + }, + "0x5f7827fdeb7c20b443265fc2f40845b715385ff2": { + "decimals": 18, + "name": "EUR CoinVertible", + "symbol": "EURCV" + }, + "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0": { + "decimals": 18, + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984": { + "decimals": 18, + "name": "Uniswap", + "symbol": "UNI" + }, + "0x320623b8e4ff03373931769a31fc52a4e78b5d70": { + "decimals": 18, + "name": "Reserve Rights", + "symbol": "RSR" + }, + "0xec53bf9167f50cdeb3ae105f56099aaab9061f83": { + "decimals": 18, + "name": "Eigen", + "symbol": "EIGEN" + } + } + }, + "tests": [ + { + "description": "1inch: AggregationRouterV6: unoswapTo", + "rawTx": "0x02f8cf0182011684bcbdbb6d84c2bf4cf683027dfc94111111125421ca6dc452d289314280a0f8842a6580b8a4e2c95c820000000000000000000000004e5b17cf6393ecb5c0295f80ef9a79d6233fedb800000000000000000000000045e02bc2875a2914c4f585bbf92a6f28bc07cb700000000000000000000000000000000000000000000000e9441ef5ba99e00000000000000000000000000000000000000000000000000000000000007d78729128800000000000000000000053ead11073fc0651dce70572666f0ed0752abfeac0", + "from": "0x25C06620E00bcA98131D4Da081999D58b0cE149B", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "4303.000000000000262144 $MBG" + }, + { + "label": "Minimum to Receive", + "value": "2105045649" + }, + { + "label": "Beneficiary", + "value": "0x4E5B17cF6393ecb5c0295f80ef9a79D6233fEdb8" + }, + { + "label": "Last pool", + "value": "0x53Ead11073fc0651dce70572666f0eD0752abfeA" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: increaseEpoch", + "rawTx": "0x02f84b0182220b826bda840b7d6c268273d694111111125421ca6dc452d289314280a0f8842a6580a4c3cf80430000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x6A7CB43d6A0287B8880595ef4A9200FFaFeEE71d", + "expected": { + "intent": "Cancel all limit orders", + "owner": "1inch Network", + "fields": [ + { + "label": "Orders maker", + "value": "0x6A7CB43d6A0287B8880595ef4A9200FFaFeEE71d" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: ethUnoswap", + "rawTx": "0x02f877010c830a9ccc84071337e083045e9394111111125421ca6dc452d289314280a0f8842a6587071afd498d0000b848a76dfc3b00000000000000000000000000000000000000000000000000068ea41a18d0d020800000000000000000000004708077eca6bb527a5bbbd6358ffb043a9c1c14d1f115cbc0", + "from": "0x6d0eD6C6F826Bef217e04ab5FA2ea2D77D1e0559", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "0.002 ETH" + }, + { + "label": "Minimum to Receive", + "value": "1845685323878608" + }, + { + "label": "Beneficiary", + "value": "0x6d0eD6C6F826Bef217e04ab5FA2ea2D77D1e0559" + }, + { + "label": "Last pool", + "value": "0x04708077eCa6bb527a5BBbD6358ffb043a9c1C14" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: swap", + "rawTx": "0x02f9029b018201288435a525c68440ac61ac83046ebe94111111125421ca6dc452d289314280a0f8842a65870e90eda3943fffb9026807ed23790000000000000000000000008c864d0c8e476bf9eb9d620c10e1296fb0e2f940000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000740df024ce73f589acd5e8756b377ef8c6558bab0000000000000000000000008c864d0c8e476bf9eb9d620c10e1296fb0e2f940000000000000000000000000e4cd0f64d9836986d42da1025a40d3a6f68ef919000000000000000000000000000000000000000000000000000e90eda3943fff000000000000000000000000000000000000000000006a91897d74cbcb97135d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001170000000000000000000000000000000000000000f90000cb00006800004e00a0744c8c0900000000000000000000000000000000000000004a183b7ed67b9e14b3f45abfb2cf44ed22c29e5400000000000000000000000000000000000000000000000000001dd4d8593fff4041c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2d0e30db002a0000000000000000000000000000000000000000000006a0871a4b487e06fb937ee63c1e580afbc71453e7214d1090a2577a221989e949cf15ec02aaa39b223fe8d0a0e5c4f27ead9083c756cc2111111125421ca6dc452d289314280a0f8842a650020d6bdbf78740df024ce73f589acd5e8756b377ef8c6558bab111111125421ca6dc452d289314280a0f8842a650000000000000000006963f2b1c0", + "from": "0xe4cd0F64d9836986d42dA1025a40D3A6f68eF919", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "0.004099999999999999 ETH" + }, + { + "label": "Minimum to Receive", + "value": "503255.532278044205454173 HLG" + }, + { + "label": "Beneficiary", + "value": "0xe4cd0F64d9836986d42dA1025a40D3A6f68eF919" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: ethUnoswap2", + "rawTx": "0x02f8960139829a1084073c6ac08305c83494111111125421ca6dc452d289314280a0f8842a658785a72265a39f07b86889af926a00000000000000000000000000000000000000000000000579736cd9bf730780208000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b2000000000000000000000007eb59373d63627be64b42406b108b602174b4cccd1f115cbc0", + "from": "0xb401300129437757A22d8ca3AaCeD4fBe6C4BB82", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "0.037619938078465799 ETH" + }, + { + "label": "Minimum to Receive", + "value": "100985178551934453632" + }, + { + "label": "Beneficiary", + "value": "0xb401300129437757A22d8ca3AaCeD4fBe6C4BB82" + }, + { + "label": "Last pool", + "value": "0x7EB59373D63627be64b42406B108B602174B4CCC" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: unoswap2", + "rawTx": "0x02f8d00181c6828c328406eb8ba08306937194111111125421ca6dc452d289314280a0f8842a6580b8a88770ba910000000000000000000000005f7827fdeb7c20b443265fc2f40845b715385ff20000000000000000000000000000000000000000000002757a49aba4f641520a0000000000000000000000000000000000000000000002e04c3685295104d6fe2880000000000000000000001f195908f2ee7a6fc15d33b30c82298f568e805c20000000000000000000000027848b0c260961826c4135e69e6cdd45cfba8257d1f115cbc0", + "from": "0x3b026d35A5D98280617C167F1BE528B6c951D07e", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "11611.813785234229514762 EURCV" + }, + { + "label": "Minimum to Receive", + "value": "13582295361458354312958" + }, + { + "label": "Beneficiary", + "value": "0x3b026d35A5D98280617C167F1BE528B6c951D07e" + }, + { + "label": "Last pool", + "value": "0x27848B0c260961826C4135e69e6cDD45cFBa8257" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: unoswap", + "rawTx": "0x02f8b101820311823fca8407a42d408303e1c094111111125421ca6dc452d289314280a0f8842a6580b88883800a8e0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca000000000000000000000000000000000000000000000000000033398e834d6120000000000000000000000000000000000000000000000000003e7e783e26fe8388000000000000000000000109830a1aaad605bbf02a9dfa7b0b92ec2fb7daad1f115cbc0", + "from": "0xf4e22849bC1162082Cc7Ae62F23c25aCabEbfcEF", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "0.000901156753954322 wstETH" + }, + { + "label": "Minimum to Receive", + "value": "1099406466248680" + }, + { + "label": "Beneficiary", + "value": "0xf4e22849bC1162082Cc7Ae62F23c25aCabEbfcEF" + }, + { + "label": "Last pool", + "value": "0x109830a1AAaD605BbF02a9dFA7B0B92EC2FB7dAa" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: fillContractOrder", + "rawTx": "0x02f902140182a77e8405f5e1008413cb71a08301ceaf94111111125421ca6dc452d289314280a0f8842a6580b901e8cc713a04145a914aeda7f2a46a57a80dcbd2853fbf174699c2fd6a243c92300bcff072b2000000000000000000000000bee3211ab312a8d065c4fef0247448e17a8da00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000032ebf508d2782ce90000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000009e94d00693bab42ae775ed9c1bd18faac880000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000016345785d8a00002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004194403a5b240351b9ea804a61095dadeb4675bcfd2f278f6577fcc0606dc9523127c31f748aa28a9017e27ed65c778569de293d633cbc909cb41f8f01c5bfcd061c00000000000000000000000000000000000000000000000000000000000000fb39cfb5c0", + "from": "0xAc18D21721d4702Fce58Ae775ED9C1bd18FAAC88", + "expected": { + "intent": "Fill order", + "owner": "1inch Network", + "fields": [ + { + "label": "Order selling amount", + "value": "0.1 WETH" + }, + { + "label": "Order purchasing amt", + "value": "58.70873183460857 UNI" + }, + { + "label": "Amount to sell", + "value": "0.1 WETH" + }, + { + "label": "Additional action", + "value": "None" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: cancelOrder", + "rawTx": "0x02f86d018222098285fc840a6f2b5e830249f094111111125421ca6dc452d289314280a0f8842a6580b844b68fb0204e000000000000000000000000000005d300693bd2e80000000000000000000072db1056d64d81401fcb8e26ff694c7208f10e98e870674e1a402962d32ab200c0", + "from": "0x6A7CB43d6A0287B8880595ef4A9200FFaFeEE71d", + "expected": { + "intent": "Cancel limit orders", + "owner": "1inch Network", + "fields": [ + { + "label": "Order", + "value": "0x72db1056d64d81401fcb8e26ff694c7208f10e98e870674e1a402962d32ab200" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: unoswapTo3", + "rawTx": "0x02f9010f0182b4a0844846f877845851c0438308194494111111125421ca6dc452d289314280a0f8842a6580b8e4f7a70056000000000000000000000000893ee5a10aec49aae0ae6e5a78ff79e2069f82e8000000000000000000000000320623b8e4ff03373931769a31fc52a4e78b5d70000000000000000000000000000000000000000000007ef4a40090a01ccc00000000000000000000000000000000000000000000000000000000000079e32bd54a1800020008020811000000db6925ea42897ca786a045b252d95aa7370f44b44010010001080008020000002c683fad51da2cd17793219cc86439c1875c353e208000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9bc0", + "from": "0x1D425d5C3fe77F5F91f5582f2a98d4a94cb0549b", + "expected": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "599531 RSR" + }, + { + "label": "Minimum to Receive", + "value": "2044931029" + }, + { + "label": "Beneficiary", + "value": "0x893Ee5a10aEC49aAe0Ae6e5A78FF79e2069F82e8" + }, + { + "label": "Last pool", + "value": "0xc7bBeC68d12a0d1830360F8Ec58fA599bA1b0e9b" + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: permitAndCall", + "rawTx": "0x02f90711016a83021b428406f320af83060ba594111111125421ca6dc452d289314280a0f8842a6580b906e85816d7230000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000f4cbb7c0000ab88b473b1f5afd9ef808440eed33bf0000000000000000000000004e367b26d93bcb5e539b2784714f17804959f54f000000000000000000000000111111125421ca6dc452d289314280a0f8842a65ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000693d1c2c000000000000000000000000000000000000000000000000000000000000001b2a2de941abf06698ad640d59fddb32c3664016dfb875669259c85f49bec45b4945f76a98a69d7ccf01b19449e720521ec39e333a16e8b18bcc442b57b3838d74000000000000000000000000000000000000000000000000000000000000000000000000000000000000054407ed237900000000000000000000000027934db9cd07e6368900d99047c0b39e2a6664ce000000000000000000000000cbb7c0000ab88b473b1f5afd9ef808440eed33bf000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000027934db9cd07e6368900d99047c0b39e2a6664ce0000000000000000000000004e367b26d93bcb5e539b2784714f17804959f54f00000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000057b6ba70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000003fe3077ecebaf4bb5d73955000003bc7b9fa28143b9f2310242288dca9b32a276cff2c70362a8be462f3283d3531138aa45c40bd7a1686efb67c4339594337efddd0000000000000000000000000000000000000000000000000003a000013051309995855c00494d039ab6792f18e368e530dff931cbb7c0000ab88b473b1f5afd9ef808440eed33bf00841d8a79620000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000cbb7c0000ab88b473b1f5afd9ef808440eed33bf000000000000000000000000000000000000000000068db8bac710cb00000032000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff9a5889f795069a41a8a3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000183865120111111125421ca6dc452d289314280a0f8842a652260fac5e5542a773aa44fbcfedf7c193bc2c599012456a758680000000000000000000000000000000000000000693bcb1e00000000020d89300000000000000000000000009ba0cf1588e1dfa905ec948f7fe5104dd40eda310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000000000000000000000000000000000005822cc00000000000000000000000000000000000000000000000000000000000018771000000000000000000000000000144733500693bcb1e00000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000411cec0a60f23475706d579dacc548e0f46f0929b15f5508cd1d92375562b7435f925cf53921b3da6ac484bedf9a2f53f73e2ff0354c9abbe76ed6340ed9a1580ef2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014111111125421ca6dc452d289314280a0f8842a650000000000000000000000000000000000000000000000000000000000000000000000000000000000004a82836dc0", + "from": "0x4E367B26d93bCB5E539b2784714f17804959f54f", + "expected": { + "intent": "Execute with permit", + "owner": "1inch Network", + "fields": [ + { + "label": "Swap", + "value": { + "intent": "Swap", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "100000" + }, + { + "label": "Minimum to Receive", + "value": "91974567" + }, + { + "label": "Beneficiary", + "value": "0x4E367B26d93bCB5E539b2784714f17804959f54f" + } + ] + } + } + ] + } + }, + { + "description": "1inch: AggregationRouterV6: fillOrder", + "rawTx": "0x02f901b00155829a1084084d8ca08303b36e94111111125421ca6dc452d289314280a0f8842a6580b901889fda64bd000000000000000000000000000000000000000028d6dccde887ebbb1aca471600000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ec53bf9167f50cdeb3ae105f56099aaab9061f83000000000000000000000000000000000000000000000000000526d4a56da2bc00000000000000000000000000000000000000000000000089f424209cb220000000000000000000000000000000a9564000693bc55f545e0cdf69307c0f721eae2f2f243d9ab481951957d31d90355d1351990e14e9a07b976c10d90ddd7f6293653fc9782cc632b1f5b804a599631bc8c90674bbdaf197904fd75acc06974d00000000000000000000000000000000000000000000000089f424209cb220006000000000000000000000000000000000000000000000000000000000000000d1f115cbc0", + "from": "0x23E62aB2627F227014aA545e0CDF69307C0f721e", + "expected": { + "intent": "Fill order", + "owner": "1inch Network", + "fields": [ + { + "label": "Order selling amount", + "value": "9.94061 EIGEN" + }, + { + "label": "Order purchasing amt", + "value": "0.001450069633901244 WETH" + }, + { + "label": "Amount to sell", + "value": "9.94061 EIGEN" + }, + { + "label": "Additional action", + "value": "Unwrap" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/1inch/testsv2/calldata-NativeOrderFactory.tests.json b/registry/1inch/testsv2/calldata-NativeOrderFactory.tests.json new file mode 100644 index 000000000..96744f348 --- /dev/null +++ b/registry/1inch/testsv2/calldata-NativeOrderFactory.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-NativeOrderFactory.json", + "dataProvider": { + "tokens": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + } + } + }, + "tests": [ + { + "description": "create order - chain 1", + "rawTx": "0x02f9013601028404b571c0841443fd008302671594e12e0f117d23a5ccc57f8935cd8c4e80cd91ff01880d0ff2742cbe0467b901048c72b6084a82836daed59675d7c51ebd02a53102350af09d4ff6072b23b1abd4a474ad73000000000000000000000000dfe7504aff883fe0f20511cefcf8dea4d543acfc000000000000000000000000dfe7504aff883fe0f20511cefcf8dea4d543acfc000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000d0ff2742cbe04670000000000000000000000000000000000000000000000000000000078432a8b4a000000000000000000000000000000000069c1607c00000000000000000000c0", + "txHash": "0x042600336bbbf1c13b84935504fcc78c0c9042a6419ebf1c8638330dec593811", + "expected": { + "intent": "create order", + "owner": "1inch Network", + "fields": [ + { + "label": "Amount to Send", + "value": "0.941237427924501607 ETH" + }, + { + "label": "Receive amount", + "value": "2017.667723 USDT" + }, + { + "label": "Beneficiary", + "value": "0xdFE7504AFF883fe0F20511CeFcf8DEA4D543ACfc" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/1inch/testsv2/eip712-1inch-limit-order.tests.json b/registry/1inch/testsv2/eip712-1inch-limit-order.tests.json new file mode 100644 index 000000000..bb775d0b6 --- /dev/null +++ b/registry/1inch/testsv2/eip712-1inch-limit-order.tests.json @@ -0,0 +1,118 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-1inch-limit-order.json", + "dataProvider": { + "tokens": { + "0x6b175474e89094c44da98b954eedeac495271d0f": { + "symbol": "DAI", + "decimals": 18, + "name": "Dai Stablecoin" + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "1inch limit order - swap DAI for USDC", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "OrderStructure": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "maker", + "type": "address" + }, + { + "name": "receiver", + "type": "address" + }, + { + "name": "makerAsset", + "type": "address" + }, + { + "name": "takerAsset", + "type": "address" + }, + { + "name": "makingAmount", + "type": "uint256" + }, + { + "name": "takingAmount", + "type": "uint256" + }, + { + "name": "makerTraits", + "type": "uint256" + } + ] + }, + "primaryType": "OrderStructure", + "domain": { + "name": "1inch Limit Order Protocol", + "version": "2", + "chainId": 1, + "verifyingContract": "0x119c71d3bbac22029622cbaec24854d3d32d2828" + }, + "message": { + "salt": "12345678901234567890123456789012345678901234567890123456789012345678", + "maker": "0x1234567890123456789012345678901234567890", + "receiver": "0x0987654321098765432109876543210987654321", + "makerAsset": "0x6b175474e89094c44da98b954eedeac495271d0f", + "takerAsset": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "makingAmount": "1000000000000000000000", + "takingAmount": "999000000", + "makerTraits": "0" + } + }, + "expected": { + "intent": "1inch Order", + "owner": "1inch Limit Order Protocol", + "fields": [ + { + "label": "From", + "value": "0x1234567890123456789012345678901234567890" + }, + { + "label": "Send", + "value": "1000 DAI" + }, + { + "label": "Receive minimum", + "value": "999 USDC" + }, + { + "label": "To", + "value": "0x0987654321098765432109876543210987654321" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/1inch/testsv2/eip712-AggregationRouterV6.tests.json b/registry/1inch/testsv2/eip712-AggregationRouterV6.tests.json new file mode 100644 index 000000000..ea469ec67 --- /dev/null +++ b/registry/1inch/testsv2/eip712-AggregationRouterV6.tests.json @@ -0,0 +1,118 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-AggregationRouterV6.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + } + } + }, + "tests": [ + { + "description": "1inch Order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Order": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "maker", + "type": "address" + }, + { + "name": "receiver", + "type": "address" + }, + { + "name": "makerAsset", + "type": "address" + }, + { + "name": "takerAsset", + "type": "address" + }, + { + "name": "makingAmount", + "type": "uint256" + }, + { + "name": "takingAmount", + "type": "uint256" + }, + { + "name": "makerTraits", + "type": "uint256" + } + ] + }, + "primaryType": "Order", + "domain": { + "name": "1inch Aggregation Router", + "version": "6", + "chainId": 1, + "verifyingContract": "0x111111125421cA6dc452d289314280a0f8842A65" + }, + "message": { + "salt": "1777600000123", + "maker": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "receiver": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "makerAsset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "takerAsset": "0xC02aaA39b223FE8D0A0E5C4F27eAD9083C756Cc2", + "makingAmount": "2500000000", + "takingAmount": "1000000000000000000", + "makerTraits": "562949953421312" + } + }, + "expected": { + "intent": "1inch Order", + "owner": "1inch AggregationRouterV6", + "fields": [ + { + "label": "From", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Send", + "value": "2500 USDC" + }, + { + "label": "Receive minimum", + "value": "1 WETH" + }, + { + "label": "To", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/aave/testsv2/calldata-WrappedTokenGatewayV3.tests.json b/registry/aave/testsv2/calldata-WrappedTokenGatewayV3.tests.json new file mode 100644 index 000000000..5cd0b51e6 --- /dev/null +++ b/registry/aave/testsv2/calldata-WrappedTokenGatewayV3.tests.json @@ -0,0 +1,88 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-WrappedTokenGatewayV3.json", + "dataProvider": { + "ensNames": { + "0xfcdfda023f727dafa35e8ee2715bcd7411c86b21": "yohoming.eth" + } + }, + "tests": [ + { + "description": "Supply - chain 1", + "rawTx": "0x02f89801820b568459682f00848c02e5408304b5c494d01607c3c5ecaba394d8be377a085901493257228901c040a6de051e0000b864474cf53d00000000000000000000000087870bca3f3fd6335c3f4ce8392d69350b4fa4e2000000000000000000000000fcdfda023f727dafa35e8ee2715bcd7411c86b210000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xed7d16142ddb620f670975bfdbf0a7634cf7583ee108e7e8596471a20cb6823a", + "expected": { + "intent": "Supply", + "owner": "Aave DAO", + "fields": [ + { + "label": "Amount to supply", + "value": "32.3 ETH" + }, + { + "label": "Collateral recipient", + "value": "yohoming.eth" + } + ] + } + }, + { + "description": "Repay loan - chain 1", + "rawTx": "0x02f8970182023483989680846042f1c08305573094d01607c3c5ecaba394d8be377a0859014932572289049b9ca9a694340000b864bcc3c25500000000000000000000000087870bca3f3fd6335c3f4ce8392d69350b4fa4e20000000000000000000000000000000000000000000000049b9ca9a694340000000000000000000000000000b8066da076bc7accf964c351f2e1ecbe30458c12c0", + "txHash": "0x134d80855643c378ffa7e8e74511836507925807973dba3ef037f9e850322050", + "expected": { + "intent": "Repay loan", + "owner": "Aave DAO", + "fields": [ + { + "label": "Amount to repay", + "value": "85 ETH" + }, + { + "label": "For debt holder", + "value": "0xb8066Da076Bc7aCCF964C351F2E1eCbE30458c12" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88c0138830f42408429fc4a80830547a194d01607c3c5ecaba394d8be377a0859014932572280b86480500d2000000000000000000000000087870bca3f3fd6335c3f4ce8392d69350b4fa4e2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000e0f11bdab9a6638935580a540eabd81bf539f4cac0", + "txHash": "0x7936fb57558b4a157fb8b81771449615694e5a7bc2b48f71776983a1b92201a6", + "expected": { + "intent": "Withdraw", + "owner": "Aave DAO", + "fields": [ + { + "label": "Amount to withdraw", + "value": "All ETH" + }, + { + "label": "To recipient", + "value": "0xe0F11bdaB9A6638935580A540EaBd81bf539f4Ca" + } + ] + } + }, + { + "description": "Borrow - chain 1", + "rawTx": "0x02f88e018193848f0d180084c09525c08306ddd094d01607c3c5ecaba394d8be377a0859014932572280b864e74f7b8500000000000000000000000087870bca3f3fd6335c3f4ce8392d69350b4fa4e20000000000000000000000000000000000000000000000006124fee993bc00000000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0xb5AbAb90142E5BF306BaF6c942827534440c995A", + "txHash": "0x8e7635e9efbfb16fc1d851fa7396669a399584518b773bde8c937b683f0e1a98", + "expected": { + "intent": "Borrow", + "owner": "Aave DAO", + "fields": [ + { + "label": "Amount to borrow", + "value": "7 ETH" + }, + { + "label": "Debtor", + "value": "0xb5AbAb90142E5BF306BaF6c942827534440c995A" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/aave/testsv2/calldata-lpv2.tests.json b/registry/aave/testsv2/calldata-lpv2.tests.json new file mode 100644 index 000000000..e5e0e5c7b --- /dev/null +++ b/registry/aave/testsv2/calldata-lpv2.tests.json @@ -0,0 +1,68 @@ +{ + "descriptor": "../calldata-lpv2.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + }, + "addressNames": { + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": "WETH" + }, + "ensNames": { + "0xd20c9018a5097e922e9c0539aef389c871e76c3f": "sosalkin.eth" + } + }, + "tests": [ + { + "description": "Repay All USDC variable rate", + "rawTx": "0x02f8ad018189830186a084028c8c9c830493e0947d2768de32b0b80b7a3454c06bdac94a69ddc7a980b884573ade81000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000020000000000000000000000002fec9b58d089447d3e5e50578b9f71321713a470c0", + "txHash": "0xf869d27754007494d428c0999fffa0808b111f235acfd8466fe21626282283bb", + "expected": { + "intent": "Repay loan", + "owner": "Aave DAO", + "fields": [ + { "label": "Amount to repay", "value": "All USDC" }, + { "label": "Interest rate mode", "value": "variable" }, + { + "label": "For debt holder", + "value": "0x2Fec9B58d089447d3E5E50578B9F71321713a470" + } + ] + } + }, + { + "description": "Manage collateral — disable WETH", + "rawTx": "0x02f86d010f8477359400847a653b2c83021b10947d2768de32b0b80b7a3454c06bdac94a69ddc7a980b8445a3b74b9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x6096b535e6cd3516f62eebb23bd062d9b8b715629306a30bb8a0a3e7bcdc88b9", + "expected": { + "intent": "Manage collateral", + "owner": "Aave DAO", + "fields": [ + { "label": "For asset", "value": "WETH" }, + { "label": "Enable as collateral", "value": "false" } + ] + } + }, + { + "description": "Withdraw Max WETH to sosalkin.eth", + "rawTx": "0x02f88f018207e08405f5e1008419ea8580830544e9947d2768de32b0b80b7a3454c06bdac94a69ddc7a980b86469328dec000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000d20c9018a5097e922e9c0539aef389c871e76c3fc0", + "txHash": "0xe99efacfa20e0831b9101f468e59a4012e19a6b12c11ce7d03e95d3eebe8c267", + "expected": { + "intent": "Withdraw", + "owner": "Aave DAO", + "fields": [ + { "label": "Amount to withdraw", "value": "Max WETH" }, + { "label": "To recipient", "value": "sosalkin.eth" } + ] + } + } + ] +} diff --git a/registry/aave/testsv2/calldata-lpv3.tests.json b/registry/aave/testsv2/calldata-lpv3.tests.json new file mode 100644 index 000000000..5d21b68c0 --- /dev/null +++ b/registry/aave/testsv2/calldata-lpv3.tests.json @@ -0,0 +1,152 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-lpv3.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + }, + "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599": { + "symbol": "WBTC", + "decimals": 8, + "name": "Wrapped BTC" + }, + "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0": { + "symbol": "wstETH", + "decimals": 18, + "name": "Wrapped liquid staked Ether 2.0" + } + } + }, + "tests": [ + { + "description": "Repay loan - chain 1", + "rawTx": "0x02f8ae0181d8840f529242843c10015e830493e09487870bca3f3fd6335c3f4ce8392d69350b4fa4e280b884573ade81000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000003b6d034000000000000000000000000000000000000000000000000000000000000000020000000000000000000000002c62c80ad86785dd3bfc7b616400a98e1903b672c0", + "txHash": "0x54f9cecda2a2c8ccc7b22d9d6e217898a8f722056335832546def859767a3797", + "expected": { + "intent": "Repay loan", + "owner": "Aave DAO", + "fields": [ + { + "label": "Amount to repay", + "value": "997 USDC" + }, + { + "label": "Interest rate mode", + "value": "variable" + }, + { + "label": "For debt holder", + "value": "0x2c62C80aD86785DD3bfC7B616400A98E1903b672" + } + ] + } + }, + { + "description": "Manage collateral - chain 1", + "rawTx": "0x02f86d0120848f0d180084b96e17c0830200a39487870bca3f3fd6335c3f4ce8392d69350b4fa4e280b8445a3b74b90000000000000000000000009bf45ab47747f4b4dd09b3c2c73953484b4eb3750000000000000000000000000000000000000000000000000000000000000001c0", + "txHash": "0x09dffb02c35c7c1f0be42ac5f47a8874f362d7d6175cbc87ea90f670417c609f", + "expected": { + "intent": "Manage collateral", + "owner": "Aave DAO", + "fields": [ + { + "label": "For asset", + "value": "0x9Bf45ab47747F4B4dD09B3C2c73953484b4eB375" + }, + { + "label": "Use as collateral", + "value": "true" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88f01820295842faf0800845bd9cb40830606d79487870bca3f3fd6335c3f4ce8392d69350b4fa4e280b86469328dec000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000002c3c465ca58ec000000000000000000000000000052a7e3b57c481bcc01cd75938412fbd92242ece1c0", + "txHash": "0x1cbba01244794563ffda8bb739b87cf881800891c31bdb5dba8f2d0f45fcbb1d", + "expected": { + "intent": "Withdraw", + "owner": "Aave DAO", + "fields": [ + { + "label": "Amount to withdraw", + "value": "51 WETH" + }, + { + "label": "To recipient", + "value": "0x52A7E3b57C481bcC01cD75938412FBd92242ecE1" + } + ] + } + }, + { + "description": "Borrow - chain 1", + "rawTx": "0x02f8cf01821750841dcd650084486b6dc08306f1139487870bca3f3fd6335c3f4ce8392d69350b4fa4e280b8a4a415bcad0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000000000000000000000000000000000001d63b320000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081ec2081dfb42c5291c55e6123d527eb744a5ffbc0", + "txHash": "0xae32a8d0c693f223f7960680e457fec1257afb41a53ee511c53384a61db5c95d", + "expected": { + "intent": "Borrow", + "owner": "Aave DAO", + "fields": [ + { + "label": "Amount to borrow", + "value": "0.30817074 WBTC" + }, + { + "label": "Interest Rate mode", + "value": "variable" + }, + { + "label": "Debtor", + "value": "0x81EC2081dfb42C5291C55e6123D527EB744a5fFB" + } + ] + } + }, + { + "description": "Supply - chain 1 (1)", + "rawTx": "0x02f8af01821752842faf0800845c7261c0830493e09487870bca3f3fd6335c3f4ce8392d69350b4fa4e280b884617ba037000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000052c02155600000000000000000000000081ec2081dfb42c5291c55e6123d527eb744a5ffb0000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xa4430fd02f380847b2d41d851dae3eedf4c9b22b1a3ce89dc82347ed1ffada17", + "expected": { + "intent": "Supply", + "owner": "Aave DAO", + "fields": [ + { + "label": "Amount to supply", + "value": "22213.170518 USDC" + }, + { + "label": "Collateral recipient", + "value": "0x81EC2081dfb42C5291C55e6123D527EB744a5fFB" + } + ] + } + }, + { + "description": "Supply - chain 1 (2)", + "rawTx": "0x02f9012f0182025383143bb0842b5e4b80830557309487870bca3f3fd6335c3f4ce8392d69350b4fa4e280b9010402c205f00000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca00000000000000000000000000000000000000000000000197a8f6dd5519800000000000000000000000000006c413690c19cfc80c3db3211c80993bf642c645600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069b43d1a000000000000000000000000000000000000000000000000000000000000001c2c188c792ac9f04ac0c3d7f13a06566ccb9fcf651106778ad2002644afff911200b0c2c79281fc66d3fc577743a761addf6b0fb5c5256ac983bc7fd01973ce5ec0", + "txHash": "0x42dd09a64d53a4dd88f1afab485df77eb9875505622ee8cdf5d549129297d7a9", + "expected": { + "intent": "Supply", + "owner": "Aave DAO", + "fields": [ + { + "label": "Amount to supply", + "value": "470 wstETH" + }, + { + "label": "Collateral recipient", + "value": "0x6C413690c19CFC80c3db3211c80993BF642C6456" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/benqi/testsv2/calldata-sAVAX.tests.json b/registry/benqi/testsv2/calldata-sAVAX.tests.json new file mode 100644 index 000000000..aa104248a --- /dev/null +++ b/registry/benqi/testsv2/calldata-sAVAX.tests.json @@ -0,0 +1,85 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-sAVAX.json", + "dataProvider": { + "tokens": { + "0x2b2c81e08f1af8835a78bb2a90ae924ace0ea4be": { + "symbol": "sAVAX", + "decimals": 18, + "name": "BENQI Liquid Staked AVAX" + } + } + }, + "tests": [ + { + "description": "Stake AVAX - chain 43114", + "rawTx": "0x02f582a86a098411e7bf108416c883b482de93942b2c81e08f1af8835a78bb2a90ae924ace0ea4be8818904d9f44710000845bcb2fc6c0", + "txHash": "0x5738dfca5917c86b0b8c9e284a3e3013b0bea1e1104121635cb1090d32cab414", + "expected": { + "intent": "Stake AVAX", + "owner": "BENQI", + "fields": [ + { + "label": "Amount to stake", + "value": "1.77 AVAX" + } + ] + } + }, + { + "description": "Request unstaking - chain 43114", + "rawTx": "0xf84a2c840b20c02b830248b2942b2c81e08f1af8835a78bb2a90ae924ace0ea4be80a4c9d2ff9d00000000000000000000000000000000000000000000000421f7e47b4e9a60db82a86a8080", + "txHash": "0xc3f87cdcc04f9bed6b3bc93b3af7e0c454ef01f481dbd84d4882992a7df0726a", + "expected": { + "intent": "Request unstaking", + "owner": "BENQI", + "fields": [ + { + "label": "sAVAX amount", + "value": "76.234652435588210907 sAVAX" + } + ] + } + }, + { + "description": "Claim unstaked AVAX - chain 43114", + "rawTx": "0x02f85082a86a8208d88439e048c0844a447380830c3500942b2c81e08f1af8835a78bb2a90ae924ace0ea4be80a4db006a75000000000000000000000000000000000000000000000000000000000000000ac0", + "txHash": "0xdec89f0111e9d427bc7ab325e5f4be3e59da502dc6401752d425991877df7228", + "expected": { + "intent": "Claim unstaked AVAX", + "owner": "BENQI", + "fields": [ + { + "label": "Unlock index", + "value": "10" + } + ] + } + }, + { + "description": "Redeem Overdue - chain 43114", + "rawTx": "0xea048407b5e91b830194ca942b2c81e08f1af8835a78bb2a90ae924ace0ea4be80840d10d32c82a86a8080", + "txHash": "0xa1416267f30025c7f7b4a3005124927ffc3f26a4b38da5ca3410e069b85d7d19", + "expected": { + "intent": "Redeem Overdue", + "owner": "BENQI", + "fields": [] + } + }, + { + "description": "Redeem sAVAX - chain 43114", + "rawTx": "0x02f85082a86a8213a18459682f00845bba28da83016218942b2c81e08f1af8835a78bb2a90ae924ace0ea4be80a40f7e20480000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x7e4299801ade0f271bd9088645ed55e889437708f3db22e358d8ec518bdd6bea", + "expected": { + "intent": "Redeem sAVAX", + "owner": "BENQI", + "fields": [ + { + "label": "Unlock index", + "value": "0" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/circle/testsv2/eip712-ReceiveWithAuthorization.tests.json b/registry/circle/testsv2/eip712-ReceiveWithAuthorization.tests.json new file mode 100644 index 000000000..843eb455f --- /dev/null +++ b/registry/circle/testsv2/eip712-ReceiveWithAuthorization.tests.json @@ -0,0 +1,107 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-ReceiveWithAuthorization.json", + "dataProvider": { + "tokens": { + "0xaf88d065e77c8cc2239327c5edb3a432268e5831": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + }, + "tests": [ + { + "description": "USDC receive authorization on Arbitrum", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "ReceiveWithAuthorization": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "validAfter", + "type": "uint256" + }, + { + "name": "validBefore", + "type": "uint256" + }, + { + "name": "nonce", + "type": "bytes32" + } + ] + }, + "primaryType": "ReceiveWithAuthorization", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 42161, + "verifyingContract": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831" + }, + "message": { + "from": "0x9d7AE84C1E55C0f2dfd6909a88Ba93F48617e750", + "to": "0xA95d9c1F655341597C94393fDdc30cf3c08E4fcE", + "value": "8080000", + "validAfter": "1772641538", + "validBefore": "1772645198", + "nonce": "0x433e3aad3b685127a168b6faca79fbddc1cb3f8d019325500b3c71baebb6e5ca" + } + }, + "expected": { + "intent": "Authorize USDC transfer", + "owner": "Circle Internet Financial", + "fields": [ + { + "label": "From", + "value": "0x9d7AE84C1E55C0f2dfd6909a88Ba93F48617e750" + }, + { + "label": "To", + "value": "0xA95d9c1F655341597C94393fDdc30cf3c08E4fcE" + }, + { + "label": "Amount", + "value": "8.08 USDC" + }, + { + "label": "Valid after", + "value": "2026-03-04 16:25:38Z" + }, + { + "label": "Valid before", + "value": "2026-03-04 17:26:38Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/circle/testsv2/eip712-TransferWithAuthorization.tests.json b/registry/circle/testsv2/eip712-TransferWithAuthorization.tests.json new file mode 100644 index 000000000..edd28eb83 --- /dev/null +++ b/registry/circle/testsv2/eip712-TransferWithAuthorization.tests.json @@ -0,0 +1,475 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-TransferWithAuthorization.json", + "dataProvider": { + "tokens": { + "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + }, + "tests": [ + { + "description": "CoinGecko x402 v2 - USDC transfer authorization for onchain DEX pool search API", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TransferWithAuthorization": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "validAfter", + "type": "uint256" + }, + { + "name": "validBefore", + "type": "uint256" + }, + { + "name": "nonce", + "type": "bytes32" + } + ] + }, + "primaryType": "TransferWithAuthorization", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 8453, + "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "message": { + "from": "0x1234567890123456789012345678901234567890", + "to": "0x110cdBba7FE6434Ec4CE3464CC523942ad6Fb784", + "value": "10000", + "validAfter": "0", + "validBefore": "1738886400", + "nonce": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "expected": { + "intent": "Authorize USDC transfer", + "owner": "Circle Internet Financial", + "fields": [ + { + "label": "From", + "value": "0x1234567890123456789012345678901234567890" + }, + { + "label": "To", + "value": "0x110cdBba7FE6434Ec4CE3464CC523942ad6Fb784" + }, + { + "label": "Amount", + "value": "0.01 USDC" + }, + { + "label": "Valid after", + "value": "1970-01-01 00:00:00Z" + }, + { + "label": "Valid before", + "value": "2025-02-07 00:00:00Z" + } + ] + } + }, + { + "description": "Zapper x402 v1 - USDC transfer authorization for token price API", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TransferWithAuthorization": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "validAfter", + "type": "uint256" + }, + { + "name": "validBefore", + "type": "uint256" + }, + { + "name": "nonce", + "type": "bytes32" + } + ] + }, + "primaryType": "TransferWithAuthorization", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 8453, + "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "message": { + "from": "0xabCDeF0123456789AbcdEf0123456789aBCDEF01", + "to": "0x43A2A720cD0911690C248075f4a29a5e7716f758", + "value": "3000", + "validAfter": "0", + "validBefore": "1738886410", + "nonce": "0x0000000000000000000000000000000000000000000000000000000000000002" + } + }, + "expected": { + "intent": "Authorize USDC transfer", + "owner": "Circle Internet Financial", + "fields": [ + { + "label": "From", + "value": "0xabCDeF0123456789AbcdEf0123456789aBCDEF01" + }, + { + "label": "To", + "value": "0x43A2A720cD0911690C248075f4a29a5e7716f758" + }, + { + "label": "Amount", + "value": "0.003 USDC" + }, + { + "label": "Valid after", + "value": "1970-01-01 00:00:00Z" + }, + { + "label": "Valid before", + "value": "2025-02-07 00:00:10Z" + } + ] + } + }, + { + "description": "x402Factory x402 v1 - USDC transfer authorization for text-to-speech API", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TransferWithAuthorization": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "validAfter", + "type": "uint256" + }, + { + "name": "validBefore", + "type": "uint256" + }, + { + "name": "nonce", + "type": "bytes32" + } + ] + }, + "primaryType": "TransferWithAuthorization", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 8453, + "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "message": { + "from": "0x9876543210987654321098765432109876543210", + "to": "0x402FaCcC3fAeb72351CC2b68C7966faF5f22B0d4", + "value": "300000", + "validAfter": "0", + "validBefore": "1738886460", + "nonce": "0x0000000000000000000000000000000000000000000000000000000000000003" + } + }, + "expected": { + "intent": "Authorize USDC transfer", + "owner": "Circle Internet Financial", + "fields": [ + { + "label": "From", + "value": "0x9876543210987654321098765432109876543210" + }, + { + "label": "To", + "value": "0x402FaCcC3fAeb72351CC2b68C7966faF5f22B0d4" + }, + { + "label": "Amount", + "value": "0.3 USDC" + }, + { + "label": "Valid after", + "value": "1970-01-01 00:00:00Z" + }, + { + "label": "Valid before", + "value": "2025-02-07 00:01:00Z" + } + ] + } + }, + { + "description": "SilverbackDeFi x402 v2 - USDC transfer authorization for pool analysis API", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TransferWithAuthorization": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "validAfter", + "type": "uint256" + }, + { + "name": "validBefore", + "type": "uint256" + }, + { + "name": "nonce", + "type": "bytes32" + } + ] + }, + "primaryType": "TransferWithAuthorization", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 8453, + "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "message": { + "from": "0xfEdcBA9876543210FedCBa9876543210fEdCBa98", + "to": "0xD34411a70EffbDd000c529bbF572082ffDcF1794", + "value": "5000", + "validAfter": "0", + "validBefore": "1738886700", + "nonce": "0x0000000000000000000000000000000000000000000000000000000000000004" + } + }, + "expected": { + "intent": "Authorize USDC transfer", + "owner": "Circle Internet Financial", + "fields": [ + { + "label": "From", + "value": "0xfEdcBA9876543210FedCBa9876543210fEdCBa98" + }, + { + "label": "To", + "value": "0xD34411a70EffbDd000c529bbF572082ffDcF1794" + }, + { + "label": "Amount", + "value": "0.005 USDC" + }, + { + "label": "Valid after", + "value": "1970-01-01 00:00:00Z" + }, + { + "label": "Valid before", + "value": "2025-02-07 00:05:00Z" + } + ] + } + }, + { + "description": "Nittarab x402 v1 - USDC transfer authorization for secret content API", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TransferWithAuthorization": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "validAfter", + "type": "uint256" + }, + { + "name": "validBefore", + "type": "uint256" + }, + { + "name": "nonce", + "type": "bytes32" + } + ] + }, + "primaryType": "TransferWithAuthorization", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 8453, + "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "message": { + "from": "0x0123456789abcDEF0123456789abCDef01234567", + "to": "0x89764c3dEd721c29999A237cF935a34e1C8EDf97", + "value": "50000", + "validAfter": "0", + "validBefore": "1738886700", + "nonce": "0x0000000000000000000000000000000000000000000000000000000000000005" + } + }, + "expected": { + "intent": "Authorize USDC transfer", + "owner": "Circle Internet Financial", + "fields": [ + { + "label": "From", + "value": "0x0123456789abcDEF0123456789abCDef01234567" + }, + { + "label": "To", + "value": "0x89764c3dEd721c29999A237cF935a34e1C8EDf97" + }, + { + "label": "Amount", + "value": "0.05 USDC" + }, + { + "label": "Valid after", + "value": "1970-01-01 00:00:00Z" + }, + { + "label": "Valid before", + "value": "2025-02-07 00:05:00Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/consensus-specs/testsv2/calldata-DepositContract.tests.json b/registry/consensus-specs/testsv2/calldata-DepositContract.tests.json new file mode 100644 index 000000000..4e392044c --- /dev/null +++ b/registry/consensus-specs/testsv2/calldata-DepositContract.tests.json @@ -0,0 +1,29 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-DepositContract.json", + "tests": [ + { + "description": "Stake ETH - chain 1", + "rawTx": "0x02f901da01827310843b9aca008506fc23ac008303d0909400000000219ab540356cbb839cbe05303d7705fa8901bc16d674ec800000b901a422895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012031dbb68502f53ba9d82b1be0d3da20637dff74b36eda82f9fd7fc81681acfb080000000000000000000000000000000000000000000000000000000000000030a80c17e64f6172e5ab7bb1399d260b3684b0e70f99646f3fa7b4ef13a81963b245584b364f12ca3c465e20a23f548cdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200100000000000000000000007e2a2fa2a064f693f0a55c5639476d913ff12d050000000000000000000000000000000000000000000000000000000000000060a9e03c759e4da922dbc697d7d4de22f962b7f6a964dcce1f3dbff8cf39f5452461e7f240aff7a44cdcdef2f5d790ee9c0eb5a3ebb5dc2d4f4835ac506347121afd92fc14211a860f08aba80580fe5a1cea8b993507d8311b7369ddf8951ddbbcc0", + "txHash": "0x79786d7d8e1d37613e54e922f512b59cfb6f78c1003d22d4b8e2fcfd671e0cd7", + "expected": { + "intent": "Stake ETH", + "owner": "Ethereum Foundation", + "fields": [ + { + "label": "Validator public key", + "value": "0xa80c17e64f6172e5ab7bb1399d260b3684b0e70f99646f3fa7b4ef13a81963b245584b364f12ca3c465e20a23f548cdf" + }, + { + "label": "Withdraw credentials", + "value": "0x0100000000000000000000007e2a2fa2a064f693f0a55c5639476d913ff12d05" + }, + { + "label": "Amount to deposit", + "value": "32 ETH" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/degate/testsv2/eip712-degate.tests.json b/registry/degate/testsv2/eip712-degate.tests.json new file mode 100644 index 000000000..d09efc272 --- /dev/null +++ b/registry/degate/testsv2/eip712-degate.tests.json @@ -0,0 +1,366 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-degate.json", + "tests": [ + { + "description": "DeGate AccountUpdate", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "AccountUpdate": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "accountID", + "type": "uint32" + }, + { + "name": "feeTokenID", + "type": "uint32" + }, + { + "name": "maxFee", + "type": "uint96" + }, + { + "name": "publicKey", + "type": "uint256" + }, + { + "name": "validUntil", + "type": "uint32" + }, + { + "name": "nonce", + "type": "uint32" + } + ] + }, + "primaryType": "AccountUpdate", + "domain": { + "name": "DeGate Protocol", + "version": "3.0.1", + "chainId": 1, + "verifyingContract": "0xe63602a9B3DFe983187525AC985Fec4F57B24eD5" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "accountID": 10356, + "feeTokenID": 0, + "maxFee": "1000000000000000000", + "publicKey": "21888242871839275222246405745257275088548364400416034343698204186575808495617", + "validUntil": 1742169600, + "nonce": 7 + } + }, + "expected": { + "intent": "DeGate AccountUpdate", + "owner": "DeGate Exchange Contract", + "fields": [ + { + "label": "Owner", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "AccountID", + "value": "10356" + }, + { + "label": "FeeTokenID", + "value": "0" + }, + { + "label": "MaxFee", + "value": "1000000000000000000" + }, + { + "label": "PublicKey", + "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" + }, + { + "label": "ValidUntil", + "value": "1742169600" + }, + { + "label": "Nonce", + "value": "7" + } + ] + } + }, + { + "description": "DeGate Withdrawal", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Withdrawal": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "accountID", + "type": "uint32" + }, + { + "name": "tokenID", + "type": "uint32" + }, + { + "name": "amount", + "type": "uint248" + }, + { + "name": "feeTokenID", + "type": "uint32" + }, + { + "name": "maxFee", + "type": "uint96" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "minGas", + "type": "uint248" + }, + { + "name": "validUntil", + "type": "uint32" + }, + { + "name": "storageID", + "type": "uint32" + } + ] + }, + "primaryType": "Withdrawal", + "domain": { + "name": "DeGate Protocol", + "version": "3.0.1", + "chainId": 1, + "verifyingContract": "0xe63602a9B3DFe983187525AC985Fec4F57B24eD5" + }, + "message": { + "owner": "0x36B2E1B2e6F6F2b82BaA2E4837F6b0dE58Ae9815", + "accountID": 10425, + "tokenID": 0, + "amount": "1500000000000000000", + "feeTokenID": 2, + "maxFee": "3000000000000000", + "to": "0x36B2E1B2e6F6F2b82BaA2E4837F6b0dE58Ae9815", + "minGas": "100000", + "validUntil": 1774000000, + "storageID": 58 + } + }, + "expected": { + "intent": "DeGate Withdrawal", + "owner": "DeGate Exchange Contract", + "fields": [ + { + "label": "Owner", + "value": "0x36B2e1b2E6f6F2B82bAa2E4837F6b0De58Ae9815" + }, + { + "label": "AccountID", + "value": "10425" + }, + { + "label": "TokenID", + "value": "0" + }, + { + "label": "Amount", + "value": "1500000000000000000" + }, + { + "label": "FeeTokenID", + "value": "2" + }, + { + "label": "MaxFee", + "value": "3000000000000000" + }, + { + "label": "To", + "value": "0x36B2e1b2E6f6F2B82bAa2E4837F6b0De58Ae9815" + }, + { + "label": "MinGas", + "value": "100000" + }, + { + "label": "ValidUntil", + "value": "1774000000" + }, + { + "label": "StorageID", + "value": "58" + } + ] + } + }, + { + "description": "DeGate Transfer", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Transfer": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "accountID", + "type": "uint32" + }, + { + "name": "tokenID", + "type": "uint32" + }, + { + "name": "amount", + "type": "uint248" + }, + { + "name": "feeTokenID", + "type": "uint32" + }, + { + "name": "maxFee", + "type": "uint96" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "validUntil", + "type": "uint32" + }, + { + "name": "storageID", + "type": "uint32" + } + ] + }, + "primaryType": "Transfer", + "domain": { + "name": "DeGate Protocol", + "version": "3.0.1", + "chainId": 1, + "verifyingContract": "0xe63602a9B3DFe983187525AC985Fec4F57B24eD5" + }, + "message": { + "owner": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "accountID": 10425, + "tokenID": 0, + "amount": "1500000000000000000", + "feeTokenID": 0, + "maxFee": "500000000000000", + "to": "0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF", + "validUntil": 1773765209, + "storageID": 58 + } + }, + "expected": { + "intent": "DeGate Transfer", + "owner": "DeGate Exchange Contract", + "fields": [ + { + "label": "Owner", + "value": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf" + }, + { + "label": "AccountID", + "value": "10425" + }, + { + "label": "TokenID", + "value": "0" + }, + { + "label": "Amount", + "value": "1500000000000000000" + }, + { + "label": "FeeTokenID", + "value": "0" + }, + { + "label": "MaxFee", + "value": "500000000000000" + }, + { + "label": "To", + "value": "0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF" + }, + { + "label": "ValidUntil", + "value": "1773765209" + }, + { + "label": "StorageID", + "value": "58" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/dispatch/testsv2/eip712-dispatch.tests.json b/registry/dispatch/testsv2/eip712-dispatch.tests.json new file mode 100644 index 000000000..48d4843ba --- /dev/null +++ b/registry/dispatch/testsv2/eip712-dispatch.tests.json @@ -0,0 +1,103 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-dispatch.json", + "tests": [ + { + "description": "Dispatch.xyz Follow Profile", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "FollowWithSig": [ + { + "name": "follower", + "type": "address" + }, + { + "name": "profileIds", + "type": "uint256[]" + }, + { + "name": "datas", + "type": "bytes[]" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "FollowWithSig", + "domain": { + "name": "Lens Protocol Profiles", + "version": "1", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d" + }, + "message": { + "follower": "0x3A5bd1E37b099aE3386D13947b6a90d97675e5e3", + "profileIds": [ + "42", + "1337" + ], + "datas": [ + "0x", + "0x" + ], + "nonce": "7", + "deadline": "1742500000" + } + }, + "expected": { + "intent": "Dispatch.xyz Follow Profile", + "owner": "Dispatch.xyz", + "fields": [ + { + "label": "Profile Ids", + "value": "42" + }, + { + "label": "Profile Ids", + "value": "1337" + }, + { + "label": "Data", + "value": "0x" + }, + { + "label": "Data", + "value": "0x" + }, + { + "label": "Nonce", + "value": "7" + }, + { + "label": "Expiration Date", + "value": "1742500000" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/ethena/testsv2/calldata-ethena.tests.json b/registry/ethena/testsv2/calldata-ethena.tests.json new file mode 100644 index 000000000..fed66ca61 --- /dev/null +++ b/registry/ethena/testsv2/calldata-ethena.tests.json @@ -0,0 +1,50 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-ethena.json", + "dataProvider": { + "tokens": { + "0x9d39a5de30e57443bff2a8307a4256c8797a3497": { + "symbol": "sUSDe", + "decimals": 18, + "name": "Staked USDe" + }, + "0x4c9edd5852cd905f086c759e8383e09bff1e68b3": { + "symbol": "USDe", + "decimals": 18, + "name": "USDe" + } + } + }, + "tests": [ + { + "description": "Cooldown Shares - chain 1", + "rawTx": "0x02f84e018201e8841ff12f60841ff12f6083024728949d39a5de30e57443bff2a8307a4256c8797a349780a49343d9e10000000000000000000000000000000000000000000140dec2143dab35176404c0", + "txHash": "0xc34e8ee334d309e8b3658fcebcb4af2bc29ceb010141783b146d940ed4cdaca6", + "expected": { + "intent": "Cooldown Shares", + "owner": "Ethena", + "fields": [ + { + "label": "Amount", + "value": "1515266.436573198420501508 sUSDe" + } + ] + } + }, + { + "description": "Unstake - chain 1", + "rawTx": "0x02f84d0182032283154938841b435ec0830174c8949d39a5de30e57443bff2a8307a4256c8797a349780a4f2888dbb0000000000000000000000000561e5b036ddcf2401c2b6b486f85451d75760a2c0", + "txHash": "0x97ea01b140a601124530ce6cee4c4ad87f4b8aaee9e4a0f8d2e99cf86faaba57", + "expected": { + "intent": "Unstake", + "owner": "Ethena", + "fields": [ + { + "label": "Receiver", + "value": "0x0561e5b036DdcF2401c2B6b486f85451d75760A2" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/figment/testsv2/calldata-figment-batch-deposit.tests.json b/registry/figment/testsv2/calldata-figment-batch-deposit.tests.json new file mode 100644 index 000000000..d1ef1d5c9 --- /dev/null +++ b/registry/figment/testsv2/calldata-figment-batch-deposit.tests.json @@ -0,0 +1,29 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-figment-batch-deposit.json", + "tests": [ + { + "description": "Stake ETH - chain 1", + "rawTx": "0x02f90336011583dad15f840400e6de8305dc8f948b0d88b8be3c15d746feb0b1f18c883c03b6aa628901bc16d674ec800000b90304c09bb1db00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030af611d47ebf55fd5f5c9037959e93e5a42f5e3e97478362191e5600711216867b1bf67ead7a3ff42b63532a8a194850700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017fd4817db6a15e8ff78bd0c04b6977ef294300274ef7537598baa54e1852ba9000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000773594000c0", + "txHash": "0xa0cfdaeb2a7f7925e1ee18795b8b787c1091bd98b7e52e545353955682bff77a", + "expected": { + "intent": "Stake ETH", + "owner": "Figment", + "fields": [ + { + "label": "Validator Public Key", + "value": "0xaf611d47ebf55fd5f5c9037959e93e5a42f5e3e97478362191e5600711216867b1bf67ead7a3ff42b63532a8a1948507" + }, + { + "label": "Withdraw Credentials", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "label": "Amount to Deposit", + "value": "32ETH" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/calldata-EpochRewardsVault-dev.tests.json b/registry/flyingtulip/testsv2/calldata-EpochRewardsVault-dev.tests.json new file mode 100644 index 000000000..c9052d85c --- /dev/null +++ b/registry/flyingtulip/testsv2/calldata-EpochRewardsVault-dev.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-EpochRewardsVault-dev.json", + "tests": [ + { + "description": "Stake ftUSD", + "rawTx": "0x02f86a81921101843b9aca008307a12094137d66e0a5d4ceee0a7eda011bc3aa94931c723480b8446e553f650000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Stake ftUSD", + "owner": "Flying Tulip", + "fields": [ + { + "label": "ftUSD amount", + "value": "1000000000000000000" + }, + { + "label": "Receiver", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ], + "interpolatedIntent": "Stake 1000000000000000000" + } + }, + { + "description": "Unstake ftUSD", + "rawTx": "0x02f88a81921201843b9aca008307a12094137d66e0a5d4ceee0a7eda011bc3aa94931c723480b864b460af9400000000000000000000000000000000000000000000000006f05b59d3b20000000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Unstake ftUSD", + "owner": "Flying Tulip", + "fields": [ + { + "label": "ftUSD amount", + "value": "500000000000000000" + }, + { + "label": "Receiver", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Owner", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ], + "interpolatedIntent": "Unstake 500000000000000000" + } + }, + { + "description": "Claim ftUSD rewards", + "rawTx": "0x02f84981921301843b9aca008307a12094137d66e0a5d4ceee0a7eda011bc3aa94931c723480a41e83409a000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Claim ftUSD rewards", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Recipient", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ], + "interpolatedIntent": "Claim to 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/calldata-EpochRewardsVault.tests.json b/registry/flyingtulip/testsv2/calldata-EpochRewardsVault.tests.json new file mode 100644 index 000000000..9f049c0c9 --- /dev/null +++ b/registry/flyingtulip/testsv2/calldata-EpochRewardsVault.tests.json @@ -0,0 +1,75 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-EpochRewardsVault.json", + "dataProvider": { + "tokens": { + "0xF7D85EC4E7710f71992752eac2111312e73E9C9C": { + "symbol": "ftUSD", + "decimals": 6, + "name": "Flying Tulip USD" + } + } + }, + "tests": [ + { + "description": "Stake ftUSD", + "rawTx": "0x02f869010e01843b9aca008307a12094eb48218a4c35c814c7678cbcae88c6ee037f762580b8446e553f650000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Stake ftUSD", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Amount", + "value": "1000000000000 ftUSD" + }, + { + "label": "Receiver", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ], + "interpolatedIntent": "Stake 1000000000000 ftUSD" + } + }, + { + "description": "Unstake ftUSD", + "rawTx": "0x02f889010f01843b9aca008307a12094eb48218a4c35c814c7678cbcae88c6ee037f762580b864b460af9400000000000000000000000000000000000000000000000006f05b59d3b20000000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Unstake ftUSD", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Amount", + "value": "500000000000 ftUSD" + }, + { + "label": "Receiver", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Owner", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ], + "interpolatedIntent": "Unstake 500000000000 ftUSD" + } + }, + { + "description": "Claim ftUSD rewards", + "rawTx": "0x02f848011001843b9aca008307a12094eb48218a4c35c814c7678cbcae88c6ee037f762580a41e83409a000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Claim ftUSD rewards", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Recipient", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ], + "interpolatedIntent": "Claim to 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/calldata-MintAndRedeem-dev.tests.json b/registry/flyingtulip/testsv2/calldata-MintAndRedeem-dev.tests.json new file mode 100644 index 000000000..88950ae8c --- /dev/null +++ b/registry/flyingtulip/testsv2/calldata-MintAndRedeem-dev.tests.json @@ -0,0 +1,63 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-MintAndRedeem-dev.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + }, + "tests": [ + { + "description": "Buy ftUSD", + "rawTx": "0x02f8aa81920c01843b9aca008307a12094b9b23b0555b8066f3d5954ea6c679a02339f78dc80b884a647e8ec000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000069cf67000000000000000000000000000000000000000000000000000dbd2fc137a30000c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Buy ftUSD", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Pay", + "value": "1 USDC" + }, + { + "label": "Minimum ftUSD", + "value": "990000000000000000" + }, + { + "label": "Deadline", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "Buy 990000000000000000" + } + }, + { + "description": "Sell ftUSD", + "rawTx": "0x02f8aa81920d01843b9aca008307a12094b9b23b0555b8066f3d5954ea6c679a02339f78dc80b884ea2092f3000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000069cf670000000000000000000000000000000000000000000000000000000000000f1b30c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Sell ftUSD", + "owner": "Flying Tulip", + "fields": [ + { + "label": "ftUSD amount", + "value": "1000000000000000000" + }, + { + "label": "Minimum receive", + "value": "0.99 USDC" + }, + { + "label": "Deadline", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "Sell 1000000000000000000" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/calldata-MintAndRedeem.tests.json b/registry/flyingtulip/testsv2/calldata-MintAndRedeem.tests.json new file mode 100644 index 000000000..61edf4051 --- /dev/null +++ b/registry/flyingtulip/testsv2/calldata-MintAndRedeem.tests.json @@ -0,0 +1,68 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-MintAndRedeem.json", + "dataProvider": { + "tokens": { + "0xF7D85EC4E7710f71992752eac2111312e73E9C9C": { + "symbol": "ftUSD", + "decimals": 6, + "name": "Flying Tulip USD" + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "Buy ftUSD", + "rawTx": "0x02f8a9010a01843b9aca008307a12094aa48ecbc843cf7e9a29155d112b8cb27902bd23c80b884a647e8ec000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000069cf67000000000000000000000000000000000000000000000000000dbd2fc137a30000c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Buy ftUSD", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Pay", + "value": "1 USDC" + }, + { + "label": "Minimum receive", + "value": "990000000000 ftUSD" + }, + { + "label": "Deadline", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "Buy 990000000000 ftUSD" + } + }, + { + "description": "Sell ftUSD", + "rawTx": "0x02f8a9010b01843b9aca008307a12094aa48ecbc843cf7e9a29155d112b8cb27902bd23c80b884ea2092f3000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000069cf670000000000000000000000000000000000000000000000000000000000000f1b30c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Sell ftUSD", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Pay", + "value": "1000000000000 ftUSD" + }, + { + "label": "Minimum receive", + "value": "0.99 USDC" + }, + { + "label": "Deadline", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "Sell 1000000000000 ftUSD" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/calldata-PftMarketplace.tests.json b/registry/flyingtulip/testsv2/calldata-PftMarketplace.tests.json new file mode 100644 index 000000000..1475d6f55 --- /dev/null +++ b/registry/flyingtulip/testsv2/calldata-PftMarketplace.tests.json @@ -0,0 +1,134 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-PftMarketplace.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + }, + "nftCollectionNames": { + "0x1d8051c90076FaA5b683A3551Ee4369d00f99D67": "pFT NFT" + } + }, + "tests": [ + { + "description": "List FT PUT", + "rawTx": "0x02f8aa81920301843b9aca008307a120949bb958d459a97e3e37e11becf842e728167d911480b88494e85e80000000000000000000000000000000000000000000000000000000000000008d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000002625a00000000000000000000000000000000000000000000000000000000069cf6700c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "List FT PUT", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Position", + "value": "pFT NFT #141" + }, + { + "label": "Price", + "value": "2.5 USDC" + }, + { + "label": "Expires", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "List PUT pFT NFT #141" + } + }, + { + "description": "Edit FT PUT listing", + "rawTx": "0x02f8aa81920401843b9aca008307a120949bb958d459a97e3e37e11becf842e728167d911480b8844cd458a4000000000000000000000000000000000000000000000000000000000000008d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000029f6300000000000000000000000000000000000000000000000000000000069d02a50c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Edit FT PUT listing", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Position", + "value": "pFT NFT #141" + }, + { + "label": "Price", + "value": "2.75 USDC" + }, + { + "label": "Expires", + "value": "2026-04-03 21:00:00Z" + } + ], + "interpolatedIntent": "Edit PUT pFT NFT #141" + } + }, + { + "description": "Remove FT PUT listing", + "rawTx": "0x02f84981920501843b9aca008307a120949bb958d459a97e3e37e11becf842e728167d911480a4479ad4c3000000000000000000000000000000000000000000000000000000000000008dc0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Remove FT PUT listing", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Position", + "value": "pFT NFT #141" + } + ], + "interpolatedIntent": "Remove PUT pFT NFT #141" + } + }, + { + "description": "Buy FT PUT", + "rawTx": "0x02f901ab81920601843b9aca008307a120949bb958d459a97e3e37e11becf842e728167d911480b90184a7e26031000000000000000000000000000000000000000000000000000000000000008d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000002625a0444444444444444444444444444444444444444444444444444444444444444400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000069cf670000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000041aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Buy FT PUT", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Position", + "value": "pFT NFT #141" + }, + { + "label": "Price", + "value": "2.5 USDC" + }, + { + "label": "Permit deadline", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "Buy PUT pFT NFT #141" + } + }, + { + "description": "Accept FT PUT offer", + "rawTx": "0x02f902eb81920701843b9aca008307a120949bb958d459a97e3e37e11becf842e728167d911480b902c451bbefe60000000000000000000000002222222222222222222222222222222222222222000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000010a741a462780000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000002625a0000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000069cf6700000000000000000000000000000000000000000000000000000000000000008d00000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000b44444444444444444444444444444444444444444444444444444444444444440000000000000000000000000000000000000000000000000000000000000041aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb00000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Accept FT PUT offer", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Position", + "value": "pFT NFT #141" + }, + { + "label": "Offer price", + "value": "2.5 USDC" + }, + { + "label": "Buyer", + "value": "0x2222222222222222222222222222222222222222" + }, + { + "label": "Offer expires", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "Accept offer pFT NFT #141" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/calldata-PftNft.tests.json b/registry/flyingtulip/testsv2/calldata-PftNft.tests.json new file mode 100644 index 000000000..313695518 --- /dev/null +++ b/registry/flyingtulip/testsv2/calldata-PftNft.tests.json @@ -0,0 +1,52 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-PftNft.json", + "tests": [ + { + "description": "Approve pFT transfer", + "rawTx": "0x02f869010801843b9aca008307a12094a4215daaf3745e14e96e169e0e7706c479ce04f280b844095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000000000000000000000000000000000000000008dc0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Approve FT PUT position", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Operator", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Position", + "value": "pFT NFT #141" + } + ], + "interpolatedIntent": "Approve PUT pFT NFT #141" + } + }, + { + "description": "Approve pFT operator", + "rawTx": "0x02f869010901843b9aca008307a12094a4215daaf3745e14e96e169e0e7706c479ce04f280b844a22cb465000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000000001c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Manage FT PUT approvals", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Operator", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Access rights", + "value": "true" + } + ], + "interpolatedIntent": "Set operator 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + } + ], + "dataProvider": { + "nftCollectionNames": { + "0xa4215Daaf3745E14E96E169E0E7706c479Ce04F2": "pFT NFT", + "0x1d8051c90076FaA5b683A3551Ee4369d00f99D67": "pFT NFT" + } + } +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/calldata-PositionsManager.tests.json b/registry/flyingtulip/testsv2/calldata-PositionsManager.tests.json new file mode 100644 index 000000000..1ff4eb145 --- /dev/null +++ b/registry/flyingtulip/testsv2/calldata-PositionsManager.tests.json @@ -0,0 +1,119 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-PositionsManager.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "Deposit into lend position", + "rawTx": "0x02f869011401843b9aca008307a12094be4050a73a7fb384c65e885a15c33461a4b2005580b84447e7ef24000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000004c4b40c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Deposit collateral", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Amount", + "value": "5 USDC" + } + ], + "interpolatedIntent": "Deposit 5 USDC" + } + }, + { + "description": "Withdraw from lend position", + "rawTx": "0x02f869011501843b9aca008307a12094be4050a73a7fb384c65e885a15c33461a4b2005580b844f3fef3a3000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000f4240c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Withdraw collateral", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Amount", + "value": "1 USDC" + } + ], + "interpolatedIntent": "Withdraw 1 USDC" + } + }, + { + "description": "Borrow from lend position", + "rawTx": "0x02f869011601843b9aca008307a12094be4050a73a7fb384c65e885a15c33461a4b2005580b8444b8a3529000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000001e8480c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Borrow asset", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Amount", + "value": "2 USDC" + } + ], + "interpolatedIntent": "Borrow 2 USDC" + } + }, + { + "description": "Repay lend position", + "rawTx": "0x02f869011701843b9aca008307a12094be4050a73a7fb384c65e885a15c33461a4b2005580b84422867d78000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000001e8480c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Repay debt", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Amount", + "value": "2 USDC" + } + ], + "interpolatedIntent": "Repay 2 USDC" + } + }, + { + "description": "Approve lend borrow delegate", + "rawTx": "0x02f889011801843b9aca008307a12094be4050a73a7fb384c65e885a15c33461a4b2005580b864ef75b72b0000000000000000000000001111111111111111111111111111111111111111000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000989680c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Approve borrowing", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Delegate", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Allowance", + "value": "10 USDC" + } + ], + "interpolatedIntent": "Borrow OK 0x1111111111111111111111111111111111111111" + } + }, + { + "description": "Approve lend engine", + "rawTx": "0x02f889011901843b9aca008307a12094be4050a73a7fb384c65e885a15c33461a4b2005580b8649beefaf00000000000000000000000003333333333333333333333333333333333333333000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000989680c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Approve engine debit", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Engine", + "value": "0x3333333333333333333333333333333333333333" + }, + { + "label": "Allowance", + "value": "10 USDC" + } + ], + "interpolatedIntent": "Engine OK 0x3333333333333333333333333333333333333333" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/calldata-PutManager.tests.json b/registry/flyingtulip/testsv2/calldata-PutManager.tests.json new file mode 100644 index 000000000..1f583b33c --- /dev/null +++ b/registry/flyingtulip/testsv2/calldata-PutManager.tests.json @@ -0,0 +1,82 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-PutManager.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + }, + "nftCollectionNames": { + "0xa4215Daaf3745E14E96E169E0E7706c479Ce04F2": "pFT NFT" + } + }, + "tests": [ + { + "description": "Invest in FT PUT", + "rawTx": "0x02f90109018001843b9aca008307a12094ba49d0ac42f4fba4e24a8677a22218a4df75ebaa80b8e4de83db80000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa9604500000000000000000000000000000000000000000000000000000000004c4b4000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Invest in FT PUT", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Collateral", + "value": "1 USDC" + }, + { + "label": "Recipient", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Whitelist cap", + "value": "5000000" + } + ], + "interpolatedIntent": "Invest 1 USDC" + } + }, + { + "description": "Divest FT PUT", + "rawTx": "0x02f869010101843b9aca008307a12094ba49d0ac42f4fba4e24a8677a22218a4df75ebaa80b8444696c749000000000000000000000000000000000000000000000000000000000000008d00000000000000000000000000000000000000000000054b40b1f852bda00000c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Divest FT PUT", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Position", + "value": "pFT NFT #141" + }, + { + "label": "FT amount", + "value": "25000000000000000000000" + } + ], + "interpolatedIntent": "Divest PUT pFT NFT #141" + } + }, + { + "description": "Withdraw FT from PUT", + "rawTx": "0x02f869010201843b9aca008307a12094ba49d0ac42f4fba4e24a8677a22218a4df75ebaa80b8448bb992e1000000000000000000000000000000000000000000000000000000000000008d00000000000000000000000000000000000000000000021e19e0c9bab2400000c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Withdraw FT from PUT", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Position", + "value": "pFT NFT #141" + }, + { + "label": "FT amount", + "value": "10000000000000000000000" + } + ], + "interpolatedIntent": "Withdraw PUT pFT NFT #141" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/calldata-SessionManager.tests.json b/registry/flyingtulip/testsv2/calldata-SessionManager.tests.json new file mode 100644 index 000000000..a2520ac28 --- /dev/null +++ b/registry/flyingtulip/testsv2/calldata-SessionManager.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-SessionManager.json", + "dataProvider": {}, + "tests": [ + { + "description": "Create ftUSD session", + "rawTx": "0x02f9016a011a01843b9aca008307a120942daf4b445e7d659100b22a15c3eeb10e64ac5dc980b90144c14559e500000000000000000000000011111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000069800e800000000000000000000000000000000000000000000000000000000069893640000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000e055555555555555555555555555555555555555555555555555555555555555550000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f7d85ec4e7710f71992752eac2111312e73e9c9c0000000000000000000000000000000000000000000000056bc75e2d63100000c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "expected": { + "intent": "Create session", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Delegate", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Valid after", + "value": "2026-02-02 02:40:00Z" + }, + { + "label": "Valid until", + "value": "2026-02-09 01:20:00Z" + }, + { + "label": "Max calls", + "value": "100" + }, + { + "label": "Max fee", + "value": "500bps" + }, + { + "label": "Token limit", + "value": "100000000000000000000" + } + ], + "interpolatedIntent": "Session 0x1111111111111111111111111111111111111111" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/eip712-LeverageRfqEngine.tests.json b/registry/flyingtulip/testsv2/eip712-LeverageRfqEngine.tests.json new file mode 100644 index 000000000..fc44196d7 --- /dev/null +++ b/registry/flyingtulip/testsv2/eip712-LeverageRfqEngine.tests.json @@ -0,0 +1,127 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-LeverageRfqEngine.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + } + } + }, + "tests": [ + { + "description": "Sign spot order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "LeveragedOrder": [ + { + "name": "action", + "type": "uint8" + }, + { + "name": "user", + "type": "address" + }, + { + "name": "sellToken", + "type": "address" + }, + { + "name": "buyToken", + "type": "address" + }, + { + "name": "sellAmount", + "type": "uint256" + }, + { + "name": "buyAmount", + "type": "uint256" + }, + { + "name": "validTo", + "type": "uint32" + }, + { + "name": "feeAmount", + "type": "uint256" + } + ] + }, + "primaryType": "LeveragedOrder", + "domain": { + "name": "LeverageRfqEngine", + "version": "1", + "chainId": 1, + "verifyingContract": "0x8263a07504d93cB95e0a74f3627bb15faaf140e2" + }, + "message": { + "action": 2, + "user": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "sellToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "buyToken": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "sellAmount": "1000000", + "buyAmount": "250000000000000", + "validTo": 1775200000, + "feeAmount": "1000" + } + }, + "expected": { + "intent": "Sign spot order", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Action", + "value": "Swap" + }, + { + "label": "Sell", + "value": "1 USDC" + }, + { + "label": "Minimum buy", + "value": "0.00025 WETH" + }, + { + "label": "Fee", + "value": "0.001 USDC" + }, + { + "label": "User", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Valid until", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "Spot sell 1 USDC" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/eip712-PftMarketplace-BuyOffer.tests.json b/registry/flyingtulip/testsv2/eip712-PftMarketplace-BuyOffer.tests.json new file mode 100644 index 000000000..594e61a68 --- /dev/null +++ b/registry/flyingtulip/testsv2/eip712-PftMarketplace-BuyOffer.tests.json @@ -0,0 +1,117 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-PftMarketplace-BuyOffer.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + }, + "tests": [ + { + "description": "Make FT PUT offer", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "BuyOffer": [ + { + "name": "buyer", + "type": "address" + }, + { + "name": "denominationToken", + "type": "address" + }, + { + "name": "minAmountRemaining", + "type": "uint96" + }, + { + "name": "minFt", + "type": "uint96" + }, + { + "name": "minStrike", + "type": "uint96" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "price", + "type": "uint96" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint40" + } + ] + }, + "primaryType": "BuyOffer", + "domain": { + "chainId": 146, + "verifyingContract": "0x9bB958D459a97e3E37E11BeCf842E728167d9114" + }, + "message": { + "buyer": "0x2222222222222222222222222222222222222222", + "denominationToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "minAmountRemaining": "1000000", + "minFt": "1000000000000000000", + "minStrike": "1200000000000000000", + "paymentToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "price": "2500000", + "nonce": "10", + "deadline": "1775200000" + } + }, + "expected": { + "intent": "Make FT PUT offer", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Offer price", + "value": "2.5 USDC" + }, + { + "label": "Buyer", + "value": "0x2222222222222222222222222222222222222222" + }, + { + "label": "Minimum collateral", + "value": "1 USDC" + }, + { + "label": "Minimum FT", + "value": "1000000000000000000" + }, + { + "label": "Minimum strike", + "value": "1200000000000000000" + }, + { + "label": "Offer expires", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "PUT offer 2.5 USDC" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/eip712-SessionManager-FT.tests.json b/registry/flyingtulip/testsv2/eip712-SessionManager-FT.tests.json new file mode 100644 index 000000000..161bada9a --- /dev/null +++ b/registry/flyingtulip/testsv2/eip712-SessionManager-FT.tests.json @@ -0,0 +1,133 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-SessionManager-FT.json", + "dataProvider": {}, + "tests": [ + { + "description": "Create FT session", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "AssetLimit": [ + { + "name": "token", + "type": "address" + }, + { + "name": "limit", + "type": "uint256" + } + ], + "Session": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "delegate", + "type": "address" + }, + { + "name": "validAfter", + "type": "uint48" + }, + { + "name": "validUntil", + "type": "uint48" + }, + { + "name": "maxCalls", + "type": "uint32" + }, + { + "name": "maxFeeBps", + "type": "uint16" + }, + { + "name": "limits", + "type": "AssetLimit[]" + }, + { + "name": "salt", + "type": "bytes32" + } + ] + }, + "primaryType": "Session", + "domain": { + "name": "FT SessionManager", + "version": "1", + "chainId": 146, + "verifyingContract": "0x109AE72778a0260571b9767477204F1ce41FBdff" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "delegate": "0x1111111111111111111111111111111111111111", + "validAfter": 1770000000, + "validUntil": 1770600000, + "maxCalls": 100, + "maxFeeBps": 500, + "limits": [ + { + "token": "0xF7D85EC4E7710f71992752eac2111312e73E9C9C", + "limit": "100000000000000000000" + } + ], + "salt": "0x5555555555555555555555555555555555555555555555555555555555555555" + } + }, + "expected": { + "intent": "Create session", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Owner", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Delegate", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Valid after", + "value": "2026-02-02 02:40:00Z" + }, + { + "label": "Valid until", + "value": "2026-02-09 01:20:00Z" + }, + { + "label": "Max calls", + "value": "100" + }, + { + "label": "Max fee", + "value": "500bps" + }, + { + "label": "Token limit", + "value": "100000000000000000000" + } + ], + "interpolatedIntent": "FT session 0x1111111111111111111111111111111111111111" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/eip712-SessionManager-ftUSD.tests.json b/registry/flyingtulip/testsv2/eip712-SessionManager-ftUSD.tests.json new file mode 100644 index 000000000..83b23b3e8 --- /dev/null +++ b/registry/flyingtulip/testsv2/eip712-SessionManager-ftUSD.tests.json @@ -0,0 +1,133 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-SessionManager-ftUSD.json", + "dataProvider": {}, + "tests": [ + { + "description": "Create ftUSD session", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "AssetLimit": [ + { + "name": "token", + "type": "address" + }, + { + "name": "limit", + "type": "uint256" + } + ], + "Session": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "delegate", + "type": "address" + }, + { + "name": "validAfter", + "type": "uint48" + }, + { + "name": "validUntil", + "type": "uint48" + }, + { + "name": "maxCalls", + "type": "uint32" + }, + { + "name": "maxFeeBps", + "type": "uint16" + }, + { + "name": "limits", + "type": "AssetLimit[]" + }, + { + "name": "salt", + "type": "bytes32" + } + ] + }, + "primaryType": "Session", + "domain": { + "name": "ftUSD SessionManager", + "version": "1", + "chainId": 1, + "verifyingContract": "0x2DaF4B445E7d659100b22a15c3EeB10e64ac5dC9" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "delegate": "0x1111111111111111111111111111111111111111", + "validAfter": 1770000000, + "validUntil": 1770600000, + "maxCalls": 100, + "maxFeeBps": 500, + "limits": [ + { + "token": "0xF7D85EC4E7710f71992752eac2111312e73E9C9C", + "limit": "100000000000000000000" + } + ], + "salt": "0x5555555555555555555555555555555555555555555555555555555555555555" + } + }, + "expected": { + "intent": "Create ftUSD session", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Owner", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Delegate", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Valid after", + "value": "2026-02-02 02:40:00Z" + }, + { + "label": "Valid until", + "value": "2026-02-09 01:20:00Z" + }, + { + "label": "Max calls", + "value": "100" + }, + { + "label": "Max fee", + "value": "500bps" + }, + { + "label": "Token limit", + "value": "100000000000000000000" + } + ], + "interpolatedIntent": "ftUSD session 0x1111111111111111111111111111111111111111" + } + } + ] +} \ No newline at end of file diff --git a/registry/flyingtulip/testsv2/eip712-SpotOrderCancel.tests.json b/registry/flyingtulip/testsv2/eip712-SpotOrderCancel.tests.json new file mode 100644 index 000000000..eb21a53dc --- /dev/null +++ b/registry/flyingtulip/testsv2/eip712-SpotOrderCancel.tests.json @@ -0,0 +1,138 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-SpotOrderCancel.json", + "dataProvider": {}, + "tests": [ + { + "description": "Cancel spot order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "CancelOrder": [ + { + "name": "orderId", + "type": "string" + } + ] + }, + "primaryType": "CancelOrder", + "domain": { + "name": "FT SessionManager", + "version": "1", + "chainId": 146, + "verifyingContract": "0x109AE72778a0260571b9767477204F1ce41FBdff" + }, + "message": { + "orderId": "ft-spot-141" + } + }, + "expected": { + "intent": "Cancel spot order", + "owner": "Flying Tulip", + "fields": [ + { + "label": "Order ID", + "value": "ft-spot-141" + } + ], + "interpolatedIntent": "Cancel order ft-spot-141" + } + }, + { + "description": "Cancel TP/SL orders", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TpslGroupCancel": [ + { + "name": "user", + "type": "address" + }, + { + "name": "positionId", + "type": "string" + }, + { + "name": "tpslGroupId", + "type": "string" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "TpslGroupCancel", + "domain": { + "name": "FT SessionManager", + "version": "1", + "chainId": 146, + "verifyingContract": "0x109AE72778a0260571b9767477204F1ce41FBdff" + }, + "message": { + "user": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "positionId": "position-141", + "tpslGroupId": "tpsl-7", + "deadline": "1775200000" + } + }, + "expected": { + "intent": "Cancel TP/SL orders", + "owner": "Flying Tulip", + "fields": [ + { + "label": "User", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Position ID", + "value": "position-141" + }, + { + "label": "TP/SL group", + "value": "tpsl-7" + }, + { + "label": "Deadline", + "value": "2026-04-03 07:06:40Z" + } + ], + "interpolatedIntent": "Cancel TP/SL tpsl-7" + } + } + ] +} \ No newline at end of file diff --git a/registry/hyperliquid/testsv2/calldata-CctpExtension.tests.json b/registry/hyperliquid/testsv2/calldata-CctpExtension.tests.json new file mode 100644 index 000000000..c119ceb29 --- /dev/null +++ b/registry/hyperliquid/testsv2/calldata-CctpExtension.tests.json @@ -0,0 +1,53 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-CctpExtension.json", + "dataProvider": { + "tokens": { + "0xaf88d065e77c8cc2239327c5edb3a432268e5831": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + }, + "tests": [ + { + "description": "Bridge 8.08 USDC from Arbitrum to HyperEVM", + "rawTx": "0x02f9026d82a4b1048401fba8f08401fba8f08094a95d9c1f655341597c94393fddc30cf3c08e4fce80b9024495878db100000000000000000000000000000000000000000000000000000000007b4a800000000000000000000000000000000000000000000000000000000069a85d020000000000000000000000000000000000000000000000000000000069a86b4e433e3aad3b685127a168b6faca79fbddc1cb3f8d019325500b3c71baebb6e5ca000000000000000000000000000000000000000000000000000000000000001bed39c863ac5c03efcb7bf516b72bb039c36a9863abb6cb2b40f976204ffcfca8570ef356eb3ef24c44bc6cff4c83f0f8a21e32a2ce62a6bc05977ee370773b3b000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000007b4a800000000000000000000000000000000000000000000000000000000000000013000000000000000000000000b21d281dedb17ae5b501f6aa8256fe38c4e45757000000000000000000000000b21d281dedb17ae5b501f6aa8256fe38c4e457570000000000000000000000000000000000000000000000000000000000030d4000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000038636374702d666f727761726400000000000000000000000000000000000000189d7ae84c1e55c0f2dfd6909a88ba93f48617e750000000000000000000000000c0", + "expected": { + "intent": "Bridge USDC via CCTP", + "owner": "Circle Internet Financial", + "fields": [ + { + "label": "Amount", + "value": "8.08 USDC" + }, + { + "label": "Destination chain", + "value": "HyperEVM" + }, + { + "label": "Mint recipient", + "value": "0xb21D281DEdb17AE5B501F6AA8256fe38C4e45757" + }, + { + "label": "Destination caller", + "value": "0xb21D281DEdb17AE5B501F6AA8256fe38C4e45757" + }, + { + "label": "Max fee", + "value": "0.2 USDC" + }, + { + "label": "HyperEVM recipient", + "value": "0x9d7AE84C1E55C0f2dfd6909a88Ba93F48617e750" + }, + { + "label": "Destination DEX", + "value": "Perp" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/hyperliquid/testsv2/eip712-withdraw.tests.json b/registry/hyperliquid/testsv2/eip712-withdraw.tests.json new file mode 100644 index 000000000..d48159392 --- /dev/null +++ b/registry/hyperliquid/testsv2/eip712-withdraw.tests.json @@ -0,0 +1,80 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-withdraw.json", + "tests": [ + { + "description": "Hyperliquid withdraw - 1 USDC", + "data": { + "domain": { + "name": "HyperliquidSignTransaction", + "version": "1", + "chainId": 42161, + "verifyingContract": "0x0000000000000000000000000000000000000000" + }, + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "HyperliquidTransaction:Withdraw": [ + { + "name": "hyperliquidChain", + "type": "string" + }, + { + "name": "destination", + "type": "string" + }, + { + "name": "amount", + "type": "string" + }, + { + "name": "time", + "type": "uint64" + } + ] + }, + "primaryType": "HyperliquidTransaction:Withdraw", + "message": { + "hyperliquidChain": "Mainnet", + "destination": "0x110cdBba7FE6434Ec4CE3464CC523942ad6Fb784", + "amount": "1", + "time": 1773826878818 + } + }, + "expected": { + "intent": "Withdraw from Hyperliquid", + "owner": "Hyperliquid Labs", + "fields": [ + { + "label": "Recipient", + "value": "0x110cdBba7FE6434Ec4CE3464CC523942ad6Fb784" + }, + { + "label": "USDC amount", + "value": "1" + }, + { + "label": "Chain", + "value": "Mainnet" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-EURC-Morpho-Gauntlet-Core.tests.json b/registry/kiln/testsv2/calldata-Vault-EURC-Morpho-Gauntlet-Core.tests.json new file mode 100644 index 000000000..8f246da76 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-EURC-Morpho-Gauntlet-Core.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-EURC-Morpho-Gauntlet-Core.json", + "dataProvider": { + "tokens": { + "0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c": { + "symbol": "EURC", + "decimals": 6, + "name": "Euro Coin" + }, + "0xe69884A372571AF24fcB94fB3F6948d1b0146533": { + "symbol": "kmgcEURC", + "decimals": 6, + "name": "Kiln Morpho Gauntlet Core EURC Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86901280f840cf718c3830c2b0494e69884a372571af24fcb94fb3f6948d1b014653380b8446e553f6500000000000000000000000000000000000000000000000000000000000fa0ee000000000000000000000000ef6648842f74612e3566f52a361c4fba8aa30ccec0", + "txHash": "0x2a5852fa3b73a84aed8122052ed2892701bed137234eb9dae66dea9da4529e93", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.024238 EURC" + }, + { + "label": "Share ticker", + "value": "kmgcEURC" + }, + { + "label": "Send shares to", + "value": "0xEF6648842F74612e3566F52a361C4fbA8aA30CCe" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88e0181a28404002b80840cbccda08312f9f294e69884a372571af24fcb94fb3f6948d1b014653380b864ba08765200000000000000000000000000000000000000000000000000000000000f42410000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f44060000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0x70e1d4910e70cdce29fbc5f1ba376b0cbbce2247616d7d1f3215b33a0b26dd45", + "expected": { + "intent": "Redeem", + "owner": "Kiln", + "fields": [ + { + "label": "Shares to redeem", + "value": "1.000001 kmgcEURC" + }, + { + "label": "To", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + }, + { + "label": "Owner", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-RLUSD-Euler-Yield.tests.json b/registry/kiln/testsv2/calldata-Vault-RLUSD-Euler-Yield.tests.json new file mode 100644 index 000000000..f89f0b60a --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-RLUSD-Euler-Yield.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-RLUSD-Euler-Yield.json", + "dataProvider": { + "tokens": { + "0x8292Bb45bf1Ee4d140127049757C2E0fF06317eD": { + "symbol": "RLUSD", + "decimals": 18, + "name": "RLUSD" + }, + "0x11AEE91ED1e5a40443dd0ed21f7CF4d3fD4E0826": { + "symbol": "kEulerRLUSD", + "decimals": 18, + "name": "Kiln Euler RLUSD Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d01308439f8b2c08439f8b2c0830c85da9411aee91ed1e5a40443dd0ed21f7cf4d3fd4e082680b8446e553f650000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0x3345db379cc1db2727dc1f03821107df21c5dd8d8b22c7ba11a6174a1e390889", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1 RLUSD" + }, + { + "label": "Share ticker", + "value": "kEulerRLUSD" + }, + { + "label": "Send shares to", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d01618412afa1608412afa1608308fa7d9411aee91ed1e5a40443dd0ed21f7cf4d3fd4e082680b864ba0876520000000000000000000000000000000000000000000000000ddc9361b61ad9010000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48d0000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0xeaf3eacf42e5975c63842fc7400305687cba5d6aa1dbe58cd140366ce39749e0", + "expected": { + "intent": "Redeem", + "owner": "Kiln", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.998835265245731073 kEulerRLUSD" + }, + { + "label": "To", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + }, + { + "label": "Owner", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDC-Aave-v3.tests.json b/registry/kiln/testsv2/calldata-Vault-USDC-Aave-v3.tests.json new file mode 100644 index 000000000..7e2ce2441 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDC-Aave-v3.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDC-Aave-v3.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x640522135e5e4598CAE85b170D5A675a53770fa0": { + "symbol": "kAaveUSDC", + "decimals": 6, + "name": "Kiln Aave v3 USDC Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d011c84f582f3c084f582f3c0830ec94694640522135e5e4598cae85b170d5a675a53770fa080b8446e553f6500000000000000000000000000000000000000000000000000000000000f42400000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0x46aa74fb3e11a5110147ae05ac8a8b3665fcd1490a75707416fd1b20deafc708", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1 USDC" + }, + { + "label": "Share ticker", + "value": "kAaveUSDC" + }, + { + "label": "Send shares to", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f889015f25840de1907f83062fbe94640522135e5e4598cae85b170d5a675a53770fa080b864ba08765200000000000000000000000000000000000000000000000000000000000f41e30000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48d0000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0x0bd9781fcda93ca9fc3b942a82588f35643968844180d62dae5caa88b120d2d5", + "expected": { + "intent": "Redeem", + "owner": "Kiln", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.999907 kAaveUSDC" + }, + { + "label": "To", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + }, + { + "label": "Owner", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDC-Euler-Yield.tests.json b/registry/kiln/testsv2/calldata-Vault-USDC-Euler-Yield.tests.json new file mode 100644 index 000000000..74c8ad2f8 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDC-Euler-Yield.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDC-Euler-Yield.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x1fCe9396c3aDD4C3A2Ed6B4461425B36eBC4bf87": { + "symbol": "kEulerUSDC", + "decimals": 6, + "name": "Kiln Euler USDC Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d011f843b9aca008488e99d02830c941c941fce9396c3add4c3a2ed6b4461425b36ebc4bf8780b8446e553f6500000000000000000000000000000000000000000000000000000000cb39dd5d00000000000000000000000022b9093f13660d118fcfe63b3f7c454b0f405fffc0", + "txHash": "0x4211a285c69d64313dc2f105e7a3366efccc9e581f7f077870f9a28e737e1c81", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "3409.567069 USDC" + }, + { + "label": "Share ticker", + "value": "kEulerUSDC" + }, + { + "label": "Send shares to", + "value": "0x22b9093F13660d118Fcfe63B3F7c454b0F405fff" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d01628415b540408415b5404083090383941fce9396c3add4c3a2ed6b4461425b36ebc4bf8780b864ba08765200000000000000000000000000000000000000000000000000000000000f41540000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48d0000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0x6843b7f53446bf3fb768db329393f3d17419ec8dbd3e84d0f30e6fb8fc6ce64e", + "expected": { + "intent": "Redeem", + "owner": "Kiln", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.999764 kEulerUSDC" + }, + { + "label": "To", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + }, + { + "label": "Owner", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Gauntlet-Core.tests.json b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Gauntlet-Core.tests.json new file mode 100644 index 000000000..baab24b83 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Gauntlet-Core.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDC-Morpho-Gauntlet-Core.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x80C179Cb86C567a0047f53A290Ec4C246151b0E7": { + "symbol": "kmgcUSDC", + "decimals": 6, + "name": "Kiln Morpho Gauntlet Core USDC Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86b01578205dc8407d51bae8335c4a89480c179cb86c567a0047f53a290ec4c246151b0e780b8446e553f650000000000000000000000000000000000000000000000000000000000030d400000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0xccc8f859c1548a3eb5ff49c5be3221104740cc0a46c787ab15bbfb629eb205a0", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "0.2 USDC" + }, + { + "label": "Share ticker", + "value": "kmgcUSDC" + }, + { + "label": "Send shares to", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f889015c0f840c3e94c1831ab76e9480c179cb86c567a0047f53a290ec4c246151b0e780b864ba08765200000000000000000000000000000000000000000000000000000000000605710000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48d0000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0x3cdb5563860d34e92106a7e6c9a6d979f9091e4a08958deb3fe5092aab5a04aa", + "expected": { + "intent": "Redeem", + "owner": "Kiln", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.394609 kmgcUSDC" + }, + { + "label": "To", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + }, + { + "label": "Owner", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Gauntlet-Prime.tests.json b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Gauntlet-Prime.tests.json new file mode 100644 index 000000000..07fef4d49 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Gauntlet-Prime.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDC-Morpho-Gauntlet-Prime.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c014583019a2884c07e72d2830b2bb5945e720481e8de9c59547ad5a65742adddb53dd76580b8446e553f6500000000000000000000000000000000000000000000000000000000000f42410000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0x274e05b1c841b1aaabf647406264230de5a5b7d6079cb9158364eaf5e82cbb50", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDC" + }, + { + "label": "Share ticker", + "value": "kmgpUSDC" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Gauntlet-USDC-Core-multisig.tests.json b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Gauntlet-USDC-Core-multisig.tests.json new file mode 100644 index 000000000..3c8958607 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Gauntlet-USDC-Core-multisig.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDC-Morpho-Gauntlet-USDC-Core-multisig.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86b010d824f388416067f20831d6a8c94c8beaf503ff0f2f36115ef662881f9d1dd98fe7b80b8446e553f6500000000000000000000000000000000000000000000000000000000000f4241000000000000000000000000ef6648842f74612e3566f52a361c4fba8aa30ccec0", + "txHash": "0x9ff8769022e405cf30fa2cbc2b0e866244494c0722f137245c9e59b06cd869ea", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDC" + }, + { + "label": "Share ticker", + "value": "lmMgUSDC" + }, + { + "label": "Send shares to", + "value": "0xEF6648842F74612e3566F52a361C4fbA8aA30CCe" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-MEV-Capital.tests.json b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-MEV-Capital.tests.json new file mode 100644 index 000000000..35edae4ea --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-MEV-Capital.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDC-Morpho-MEV-Capital.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86b0169824dd68427137508832a1f14942a4e2dacc45186bed96d9f766cb6be6b0f8a26f180b8446e553f6500000000000000000000000000000000000000000000000000000000000f42410000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0x6da1864a7027c3875056741e4b2ed917905bb2b07d870291017764b530837349", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDC" + }, + { + "label": "Share ticker", + "value": "kmmUSDC" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Smokehouse-USDC-multisig.tests.json b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Smokehouse-USDC-multisig.tests.json new file mode 100644 index 000000000..dfee455d8 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Smokehouse-USDC-multisig.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDC-Morpho-Smokehouse-USDC-multisig.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c0111830f42408403d47e4883269d0094aeea95ad6dce50943a43ffb277e089a7c02b74d980b8446e553f6500000000000000000000000000000000000000000000000000000000000f4241000000000000000000000000ef6648842f74612e3566f52a361c4fba8aa30ccec0", + "txHash": "0x6653e102805d22d1f061fc0e9726bfce81f8585a56b10f8f31709f1e4719a36b", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDC" + }, + { + "label": "Share ticker", + "value": "lmMsmhUSDC" + }, + { + "label": "Send shares to", + "value": "0xEF6648842F74612e3566F52a361C4fbA8aA30CCe" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Steakhouse-USDC-multisig.tests.json b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Steakhouse-USDC-multisig.tests.json new file mode 100644 index 000000000..169f445c7 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDC-Morpho-Steakhouse-USDC-multisig.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDC-Morpho-Steakhouse-USDC-multisig.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86a0115818c8404f7a780830b9440943dc3b74698cd3e5e8c3a952342f6dd5696ad633d80b8446e553f6500000000000000000000000000000000000000000000000000000000000f4241000000000000000000000000ef6648842f74612e3566f52a361c4fba8aa30ccec0", + "txHash": "0x31228e3e0e55f451f08c6b14d91878bf934b796e4f564d81f4dbd3faf3f096ba", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDC" + }, + { + "label": "Share ticker", + "value": "lmMsthUSDC" + }, + { + "label": "Send shares to", + "value": "0xEF6648842F74612e3566F52a361C4fbA8aA30CCe" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDT-Aave-v3.tests.json b/registry/kiln/testsv2/calldata-Vault-USDT-Aave-v3.tests.json new file mode 100644 index 000000000..9f3ed59fd --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDT-Aave-v3.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDT-Aave-v3.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c014b83019a2884705453648307ce1d94dd7927c757c1659b56c81c65af848ae400eb879d80b8446e553f6500000000000000000000000000000000000000000000000000000000000f42410000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0x82931364cedb48aeedabba2c77fd06c35fa84c65d16fccd7f2a912569a56632d", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDT" + }, + { + "label": "Share ticker", + "value": "kAaveUSDT" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDT-Compound-v3.tests.json b/registry/kiln/testsv2/calldata-Vault-USDT-Compound-v3.tests.json new file mode 100644 index 000000000..79b686102 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDT-Compound-v3.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDT-Compound-v3.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c014d83019a28845a825af08305db7094cf34b24f5b1d7a4718f40d757a9a0dc0d7936f3e80b8446e553f6500000000000000000000000000000000000000000000000000000000000f42410000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0x65ed856860d66829021999e897b35809022c0723e38e7f831a07bffcea4272be", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDT" + }, + { + "label": "Share ticker", + "value": "kCompoundUSDT" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDT-Euler-Yield.tests.json b/registry/kiln/testsv2/calldata-Vault-USDT-Euler-Yield.tests.json new file mode 100644 index 000000000..6b908b8ec --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDT-Euler-Yield.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDT-Euler-Yield.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0xDb768E9658A544C547eb26af3B4E190845817f0E": { + "symbol": "kEulerUSDT", + "decimals": 6, + "name": "Kiln Euler USDT Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d012d84bdf5c2c084bdf5c2c0830d1ab894db768e9658a544c547eb26af3b4e190845817f0e80b8446e553f65000000000000000000000000000000000000000000000000000000000007a1200000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0xf350b28c3e10a4cc070f956a315e164eddb87d895a2ac4d0b3dfa39e57e79ebe", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "0.5 USDT" + }, + { + "label": "Share ticker", + "value": "kEulerUSDT" + }, + { + "label": "Send shares to", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f889015e25840e435e1e8305fde694db768e9658a544c547eb26af3b4e190845817f0e80b864ba087652000000000000000000000000000000000000000000000000000000000016e3560000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48d0000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0xfda87c6058b2aad40e48a349d4977a5a8cf6b4451bee457c82050ab33a2c14a0", + "expected": { + "intent": "Redeem", + "owner": "Kiln", + "fields": [ + { + "label": "Shares to redeem", + "value": "1.49999 kEulerUSDT" + }, + { + "label": "To", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + }, + { + "label": "Owner", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Gauntlet-Prime.tests.json b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Gauntlet-Prime.tests.json new file mode 100644 index 000000000..2055bb207 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Gauntlet-Prime.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDT-Morpho-Gauntlet-Prime.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0xfb477d921b18C0fe6A4bD031f6f40006831E4C2b": { + "symbol": "kmgpUSDT", + "decimals": 6, + "name": "Kiln Morpho Gauntlet Prime USDT Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f869012f0f840cf931ef830c580794fb477d921b18c0fe6a4bd031f6f40006831e4c2b80b8446e553f6500000000000000000000000000000000000000000000000000000000000fc044000000000000000000000000ef6648842f74612e3566f52a361c4fba8aa30ccec0", + "txHash": "0x2dd4488595feff4bc8a4a53656771b8308e0e13e1c63ce665e505f9de6592aa4", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.03226 USDT" + }, + { + "label": "Share ticker", + "value": "kmgpUSDT" + }, + { + "label": "Send shares to", + "value": "0xEF6648842F74612e3566F52a361C4fbA8aA30CCe" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88e0181ab8403868eb0840ac9d7408313cc2094fb477d921b18c0fe6a4bd031f6f40006831e4c2b80b864ba08765200000000000000000000000000000000000000000000000000000000000f42410000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f44060000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0xd8a83eb243dacf6b0bc56bb1ba52b12653346cb9c55060d41642e93e0024af91", + "expected": { + "intent": "Redeem", + "owner": "Kiln", + "fields": [ + { + "label": "Shares to redeem", + "value": "1.000001 kmgpUSDT" + }, + { + "label": "To", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + }, + { + "label": "Owner", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Gauntlet-USDT-Core-multisig.tests.json b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Gauntlet-USDT-Core-multisig.tests.json new file mode 100644 index 000000000..5c8c9571d --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Gauntlet-USDT-Core-multisig.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDT-Morpho-Gauntlet-USDT-Core-multisig.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86b010f824f38841169f56e830f882d9411dbf3cd45d339ed8971623be739883debdf239a80b8446e553f6500000000000000000000000000000000000000000000000000000000000f4241000000000000000000000000ef6648842f74612e3566f52a361c4fba8aa30ccec0", + "txHash": "0xabf9fa9956c099d3466d833b07b15fb3c40872ec22d232991442f62a6639496f", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDT" + }, + { + "label": "Share ticker", + "value": "lmMgUSDT" + }, + { + "label": "Send shares to", + "value": "0xEF6648842F74612e3566F52a361C4fbA8aA30CCe" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Gauntlet-USDT-Prime.tests.json b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Gauntlet-USDT-Prime.tests.json new file mode 100644 index 000000000..a1e01b019 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Gauntlet-USDT-Prime.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDT-Morpho-Gauntlet-USDT-Prime.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c0102830945d484983e81cc830c015d94067d3d0e11efd564fed27b48da1198ab0f492ed180b8446e553f6500000000000000000000000000000000000000000000000000000000000f648d000000000000000000000000ef6648842f74612e3566f52a361c4fba8aa30ccec0", + "txHash": "0x76aa3e9a11264f732801be58f2951f837bfbddbdcfef884861e3a0a8d097244e", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.008781 USDT" + }, + { + "label": "Share ticker", + "value": "kmgpUSDT" + }, + { + "label": "Send shares to", + "value": "0xEF6648842F74612e3566F52a361C4fbA8aA30CCe" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Smokehouse-USDT-multisig.tests.json b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Smokehouse-USDT-multisig.tests.json new file mode 100644 index 000000000..575dbaed6 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Smokehouse-USDT-multisig.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDT-Morpho-Smokehouse-USDT-multisig.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86a011381c9840831ff478314ff3d947150864349af6fa5745178c84c6354de6d803e5b80b8446e553f6500000000000000000000000000000000000000000000000000000000000f4241000000000000000000000000ef6648842f74612e3566f52a361c4fba8aa30ccec0", + "txHash": "0x6b78db1552d9e91534db28fd06766a07aa429669c8f4f136bf85b99f161c5cc1", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDT" + }, + { + "label": "Share ticker", + "value": "lmMsmhUSDT" + }, + { + "label": "Send shares to", + "value": "0xEF6648842F74612e3566F52a361C4fbA8aA30CCe" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Steakhouse-USDT-multisig.tests.json b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Steakhouse-USDT-multisig.tests.json new file mode 100644 index 000000000..523e27ec6 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDT-Morpho-Steakhouse-USDT-multisig.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDT-Morpho-Steakhouse-USDT-multisig.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86a0117818c8404580a4c830d00609400f05efa6d73335225f23b5adb1fc873795aaccf80b8446e553f6500000000000000000000000000000000000000000000000000000000000f4241000000000000000000000000ef6648842f74612e3566f52a361c4fba8aa30ccec0", + "txHash": "0x0a509e3700eb9ade4bf7db56c912e5c12f00df5f1cb13c97b2ed2a7005d69670", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1.000001 USDT" + }, + { + "label": "Share ticker", + "value": "lmMsthUSDT" + }, + { + "label": "Send shares to", + "value": "0xEF6648842F74612e3566F52a361C4fbA8aA30CCe" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-USDe-Euler-Yield-USDE.tests.json b/registry/kiln/testsv2/calldata-Vault-USDe-Euler-Yield-USDE.tests.json new file mode 100644 index 000000000..af3fc702d --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-USDe-Euler-Yield-USDE.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-USDe-Euler-Yield-USDE.json", + "dataProvider": { + "tokens": { + "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3": { + "symbol": "USDe", + "decimals": 18, + "name": "USDe" + }, + "0x370522eDfF79FcA69e38F42c378531ba71d09678": { + "symbol": "kEulerUSDe", + "decimals": 18, + "name": "Kiln Euler USDe Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d012884405f7e0084405f7e00830d193c94370522edff79fca69e38f42c378531ba71d0967880b8446e553f650000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0x2c7e90a644382643e1f02ceae2d89ff91c468d1f7cdedd789fe818e156c69651", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "1 USDe" + }, + { + "label": "Share ticker", + "value": "kEulerUSDe" + }, + { + "label": "Send shares to", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f889015d1e840ecbd3ad8305c34694370522edff79fca69e38f42c378531ba71d0967880b864ba0876520000000000000000000000000000000000000000000000000ddf74ab929b53a10000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48d0000000000000000000000004d98bae1f73284c093d610f0597411bfa114c48dc0", + "txHash": "0xffe85c594aa1f9f888d3529993ad91099644408e845289a3beea46dcab32f87f", + "expected": { + "intent": "Redeem", + "owner": "Kiln", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.999645922547422113 kEulerUSDe" + }, + { + "label": "To", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + }, + { + "label": "Owner", + "value": "0x4d98BaE1F73284c093d610F0597411Bfa114C48D" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-WBTC-Morpho-Gauntlet-Core.tests.json b/registry/kiln/testsv2/calldata-Vault-WBTC-Morpho-Gauntlet-Core.tests.json new file mode 100644 index 000000000..d9d2461e1 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-WBTC-Morpho-Gauntlet-Core.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-WBTC-Morpho-Gauntlet-Core.json", + "dataProvider": { + "tokens": { + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "symbol": "WBTC", + "decimals": 8, + "name": "Wrapped BTC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86b01578236b08432dc62d0830d23c2949d4c18c1c15cfdbf260f2910031bbd68f4aa889d80b8446e553f65000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0xacf4b104acb4c3d28e43ea297395f2343ffeb6d858082796c61d46682c85415c", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "0.00000911 WBTC" + }, + { + "label": "Share ticker", + "value": "kmgcWBTC" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-WETH-Aave-v3.tests.json b/registry/kiln/testsv2/calldata-Vault-WETH-Aave-v3.tests.json new file mode 100644 index 000000000..0e9b0d521 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-WETH-Aave-v3.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-WETH-Aave-v3.json", + "dataProvider": { + "tokens": { + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c015183019a2884837b19648307915d94b64bfc4e7de3638425dc36ed77da4d79bb4c59f680b8446e553f6500000000000000000000000000000000000000000000000000015f10a0e220010000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0xa0bdf85e98bc8f9753474f17d1d8942a6499106aaacbf67a54349c756fb75933", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "0.000386000000000001 WETH" + }, + { + "label": "Share ticker", + "value": "kAaveWETH" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-WETH-Morpho-Gauntlet-Core.tests.json b/registry/kiln/testsv2/calldata-Vault-WETH-Morpho-Gauntlet-Core.tests.json new file mode 100644 index 000000000..ea6082268 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-WETH-Morpho-Gauntlet-Core.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-WETH-Morpho-Gauntlet-Core.json", + "dataProvider": { + "tokens": { + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86b017382367c841bb8b84e8317330f94c90cb928711d7dff6564ede7d7ce3fb6e3e654f280b8446e553f6500000000000000000000000000000000000000000000000000015f10a0e220010000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0x37e16d2ef85ca8da3701f8d547201aa89e35ec9feab560591afe9b792e7438b5", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "0.000386000000000001 WETH" + }, + { + "label": "Share ticker", + "value": "kmgcWETH" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-WETH-Morpho-MEV-Capital.tests.json b/registry/kiln/testsv2/calldata-Vault-WETH-Morpho-MEV-Capital.tests.json new file mode 100644 index 000000000..c3b793a52 --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-WETH-Morpho-MEV-Capital.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-WETH-Morpho-MEV-Capital.json", + "dataProvider": { + "tokens": { + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86b017782367c841c3981d08320736994057e9b54c04b467ccd9dfb56a84bdd99c17a2a5080b8446e553f6500000000000000000000000000000000000000000000000000015f10a0e220010000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0xd6048421b5134de99497645645e22ee1fabe5004e13148e990255ce8e06c351f", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "0.000386000000000001 WETH" + }, + { + "label": "Share ticker", + "value": "kmmWETH" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-Vault-cbBTC-Morpho-Gauntlet-Core.tests.json b/registry/kiln/testsv2/calldata-Vault-cbBTC-Morpho-Gauntlet-Core.tests.json new file mode 100644 index 000000000..49461452e --- /dev/null +++ b/registry/kiln/testsv2/calldata-Vault-cbBTC-Morpho-Gauntlet-Core.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Vault-cbBTC-Morpho-Gauntlet-Core.json", + "dataProvider": { + "tokens": { + "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf": { + "symbol": "cbBTC", + "decimals": 8, + "name": "Coinbase Wrapped BTC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c015383019a28846b8d9df0830aeead9479091f30b3ba1102734b2484f209986250b2630b80b8446e553f65000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0xe637b638a0fae1b3c366e598e9303c2dd2a083ca36f42031af25f1f1ac791b36", + "expected": { + "intent": "Deposit", + "owner": "Kiln", + "fields": [ + { + "label": "Deposit asset", + "value": "0.00000911 cbBTC" + }, + { + "label": "Share ticker", + "value": "kmgccbBTC" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-kiln-batch-deposit-v2.tests.json b/registry/kiln/testsv2/calldata-kiln-batch-deposit-v2.tests.json new file mode 100644 index 000000000..0290bb659 --- /dev/null +++ b/registry/kiln/testsv2/calldata-kiln-batch-deposit-v2.tests.json @@ -0,0 +1,64 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-kiln-batch-deposit-v2.json", + "tests": [ + { + "description": "Stake 32ETH per validators - chain 1", + "rawTx": "0x02f90219010b85037e11d60085037e11d600830212c894576834cb068e677db4aff6ca245c7bde16c3867e8901bc16d674ec800000b901e4c82655b7000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000308636e3767e50b8f847c627c2cbb451c241664568464b95cc6d7f9629577a08f59bea50b5a5cc2901e8ebdd7abfe8d7b9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020010000000000000000000000c20d5ac9ec1463a85ed00ff3f483d0008773108b00000000000000000000000000000000000000000000000000000000000000609715f44974927cee3e6fa9372ed38c09da4069422e7e298ed04a63e979aeefe18295ffcdf64245635cdc684138caf8ce0b6cda608f62befc2c1eec549b29c52e3bc8669b8ff520d12525969cbb8a2e8f990d9229d392a0393d8430ce801880170000000000000000000000000000000000000000000000000000000000000001c00612ae76d3aa9b6903a201a628976b37de9fb1e98391b859c386d0b43b940dc0", + "txHash": "0x17d8ef5d23e67724302433c4c83dc6e7eb2024e837140ef3b31c45c3a308e438", + "expected": { + "intent": "Stake 32ETH per validators", + "owner": "Kiln", + "fields": [ + { + "label": "Validators", + "value": "0x8636e3767e50b8f847c627c2cbb451c241664568464b95cc6d7f9629577a08f59bea50b5a5cc2901e8ebdd7abfe8d7b9" + }, + { + "label": "Type and owner", + "value": "0x010000000000000000000000c20d5ac9ec1463a85ed00ff3f483d0008773108b" + }, + { + "label": "Signatures", + "value": "0x9715f44974927cee3e6fa9372ed38c09da4069422e7e298ed04a63e979aeefe18295ffcdf64245635cdc684138caf8ce0b6cda608f62befc2c1eec549b29c52e3bc8669b8ff520d12525969cbb8a2e8f990d9229d392a0393d8430ce80188017" + }, + { + "label": "Data Roots", + "value": "0xc00612ae76d3aa9b6903a201a628976b37de9fb1e98391b859c386d0b43b940d" + } + ] + } + }, + { + "description": "Stake any amount per validator - chain 1", + "rawTx": "0x02f9023701628403541ab3840cd0eeb083017df494576834cb068e677db4aff6ca245c7bde16c3867e8901bc16d674ec800000b90204fe37d82900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000000000000000000000308cdbf47b2dbbc72710095b274ed9a7e08226f0c37f2bbfbabf42946172fabafdf0383aac022cc1efadfd1891a455e54900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002002000000000000000000000007cfa0e1598a425ecbc8688faddba064a9a50ed8000000000000000000000000000000000000000000000000000000000000006087f02b2eb7e79e36a468a2b43b5c62adb21b8b58ff37aea73475d933e2df26efe0fb52cf8ff6e9312ecf519574dd0092015a09696478825e9a72a12e2537620431451b410e95f5b4a4d74c1aaf53ec58c8d1c43402249e2d7d00ed8e4ac128900000000000000000000000000000000000000000000000000000000000000001a689fe0d1fcf2df0f7a184d15343832d76b2ab2b9e4099092f80632ec9487a98c0", + "txHash": "0x3b4c1fa7a5cb82e6ed4b488cbb5ede95b4e3c7c8707365cd0feb9d4323c69321", + "expected": { + "intent": "Stake any amount per validator", + "owner": "Kiln", + "fields": [ + { + "label": "Validators", + "value": "0x8cdbf47b2dbbc72710095b274ed9a7e08226f0c37f2bbfbabf42946172fabafdf0383aac022cc1efadfd1891a455e549" + }, + { + "label": "Type and owner", + "value": "0x02000000000000000000000007cfa0e1598a425ecbc8688faddba064a9a50ed8" + }, + { + "label": "Signatures", + "value": "0x87f02b2eb7e79e36a468a2b43b5c62adb21b8b58ff37aea73475d933e2df26efe0fb52cf8ff6e9312ecf519574dd0092015a09696478825e9a72a12e2537620431451b410e95f5b4a4d74c1aaf53ec58c8d1c43402249e2d7d00ed8e4ac12890" + }, + { + "label": "Data Roots", + "value": "0xa689fe0d1fcf2df0f7a184d15343832d76b2ab2b9e4099092f80632ec9487a98" + }, + { + "label": "Amount Per Validator", + "value": "32 ETH" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-kiln-batch-exit.tests.json b/registry/kiln/testsv2/calldata-kiln-batch-exit.tests.json new file mode 100644 index 000000000..8c5ab2d77 --- /dev/null +++ b/registry/kiln/testsv2/calldata-kiln-batch-exit.tests.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-kiln-batch-exit.json", + "tests": [ + { + "description": "Request Validator Exit - chain 1", + "rawTx": "0x02f8ec010e84177861da842829d2b78264a994004c226fff73aa94b78a4df1a0e861797ba1681980b8c4254209ba0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030a82b3766b4cec79bd2843d3b81b458427b52c6a71be5c00262a1cf4cf4c2960255f0dead34b0adf426c257e74fb9bc2b00000000000000000000000000000000c0", + "txHash": "0xf4793919657e8d6d5fa34636e109bebd5f64e0bf9e58607a23a1331f8600e567", + "expected": { + "intent": "Request Validator Exit", + "owner": "Kiln", + "fields": [ + { + "label": "Validators", + "value": "0xa82b3766b4cec79bd2843d3b81b458427b52c6a71be5c00262a1cf4cf4c2960255f0dead34b0adf426c257e74fb9bc2b" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kiln/testsv2/calldata-kiln-fee-splitter-factory.tests.json b/registry/kiln/testsv2/calldata-kiln-fee-splitter-factory.tests.json new file mode 100644 index 000000000..8003e3993 --- /dev/null +++ b/registry/kiln/testsv2/calldata-kiln-fee-splitter-factory.tests.json @@ -0,0 +1,58 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-kiln-fee-splitter-factory.json", + "tests": [ + { + "description": "Create and Stake - chain 1", + "rawTx": "0x02f902f7010c84010d3b9984094f2e3083041e3c948659eeff31cfcff580d37af8e7af250f8998aa838901ccbe18194ef80000b902c4608c54d4000000000000000000000000939ff2302c6629b6e8ed93305dddd9c4a9b2eed5aa1ad05671b43fa27a4ad8bc5d683f33c23366c40a250259a5e4ac1fab6c8251000000000000000000000000576834cb068e677db4aff6ca245c7bde16c3867e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000204fe37d82900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000001ccbe18194ef80000000000000000000000000000000000000000000000000000000000000000003093d45bc199a5249f701be69cd87daaa179f2884c93b2e8c61b3756ce9267d162469fdf90deb33b797f9d824e052ddb20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020020000000000000000000000fa47b11975766516ca7c67eba782eb025b7240b200000000000000000000000000000000000000000000000000000000000000609892758c1b020dcf83abbd0078de16d81088f439614053fcda6206c84d5fa27f4f3da1e84f0abca56675dee7e88c181019f84ff3b60f771a86f26006a317f756013c67ccd5a59afc81fb3c1c23f24828a8714ce3466d729773523af5a6270a89000000000000000000000000000000000000000000000000000000000000000109a27560b52a66ab85554bf4efd347a3b59024564e308a2924effa2fb12d240600000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x1578de282acc15effada476d4d8a776c77a68adbfb8451909db7b5be4c27f4cd", + "expected": { + "intent": "Create and Stake", + "owner": "Kiln", + "fields": [ + { + "label": "Operator", + "value": "0x939ff2302c6629B6E8Ed93305DdDD9C4a9B2eed5" + }, + { + "label": "Salt", + "value": "0xaa1ad05671b43fa27a4ad8bc5d683f33c23366c40a250259a5e4ac1fab6c8251" + }, + { + "label": "Call Address", + "value": "0x576834cB068e677db4aFF6ca245c7bde16C3867e" + }, + { + "label": "Transaction", + "value": { + "intent": "Stake any amount per validator", + "owner": "Kiln", + "fields": [ + { + "label": "Validators", + "value": "0x93d45bc199a5249f701be69cd87daaa179f2884c93b2e8c61b3756ce9267d162469fdf90deb33b797f9d824e052ddb20" + }, + { + "label": "Type and owner", + "value": "0x020000000000000000000000fa47b11975766516ca7c67eba782eb025b7240b2" + }, + { + "label": "Signatures", + "value": "0x9892758c1b020dcf83abbd0078de16d81088f439614053fcda6206c84d5fa27f4f3da1e84f0abca56675dee7e88c181019f84ff3b60f771a86f26006a317f756013c67ccd5a59afc81fb3c1c23f24828a8714ce3466d729773523af5a6270a89" + }, + { + "label": "Data Roots", + "value": "0x09a27560b52a66ab85554bf4efd347a3b59024564e308a2924effa2fb12d2406" + }, + { + "label": "Amount Per Validator", + "value": "33.2 ETH" + } + ] + } + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/kyberswap/testsv2/calldata-MetaAggregationRouterV2.tests.json b/registry/kyberswap/testsv2/calldata-MetaAggregationRouterV2.tests.json new file mode 100644 index 000000000..0d5335cfb --- /dev/null +++ b/registry/kyberswap/testsv2/calldata-MetaAggregationRouterV2.tests.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-MetaAggregationRouterV2.json", + "tests": [ + { + "description": "KyberSwap: MetaAggregationRouterV2: swap USDC to WFRAX", + "rawTx": "0x02f9108f0180843b9aca00850ba43b74008307a120946131b5fae19ea4f9d964eac0408e4408b66337b580b91064e21fd0e900000000000000000000000000000000000000000000000000000000000000200000000000000000000000008f10b468b06c6fd214b65f87778827f7d113f996000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000d200000000000000000000000000000000000000000000000000000000000000f600000000000000000000000000000000000000000000000000000000000000c6000000000000000000000000057aee64000000000000000000000000057aee640000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000041c19fb33d8f3553eab8cc3a59d01c6d2ee49de9fa21a763f69f8b54995244d9c52126f70f3bf08296da71f8c024ff8b717173a8e20ee4759b121ac2acf594f4001b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b60000000000000000000000000d059075bf71107c56522b60354feb51edd1654bf000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000534c8df00000000000000000000000005c113e9000000000000000000000000057aee64000000000000000a2a1202dfd7bb98893000000000000000000000000000000000aa877f151bd1a0000000f42400000000000000000000000000000004f82e73edb06d29ff62c91ec8f5ff06571bdeb290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006a03e7470000000000000000000000000000000000000000000000000000000000000b40000000000000000000000000000000000000000000000000000000000000000261f598cd000000000000000031439a79a3535d69b65c3be384840282b4ea0aa791dd7346000000000000000031439a79a3535d69b65c3be384840282b4ea0aa7000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000900000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48800000000000000000000000000005bf00000000000000000000000057aee640000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000373d8bf008fce00900000000000000015455c918e405a2831fbff8595c0aae35ee3db9d100000000000000000000000000000000000000000000000000000000000000800000000000000000000000008f10b468b06c6fd214b65f87778827f7d113f9960000000000000000000000000000000000000000000000000000000000000020000000000000000000000100dcef968d416a41cdac0ed8702fac8128a64241a20000000000000000000000000000000000000000000000000000000020715a50bd2b21c500000000000000035c9193efd0d9af71cf6bd812afc73a21978e5e7f00000000000000000000000000000000000000000000000000000000000000800000000000000000000000008f10b468b06c6fd214b65f87778827f7d113f99600000000000000000000000000000000000000000000000000000000000000200000000000000000000000014f95c5ba0c7c69fb2f9340e190ccee890b3bd87c000000000000000000000000853d955acef822db058eb8505911ed77f175b99e8000000000000000000350237128d52600000000000000328d90cd6d4e6a6b760000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000328d90cd6d4e6a6b766fba12b700000000000000025455c918e405a2831fbff8595c0aae35ee3db9d100000000000000000000000000000000000000000000000000000000000000800000000000000000000000008f10b468b06c6fd214b65f87778827f7d113f99600000000000000000000000000000000000000000000000000000000000000200000001e000000000000271003b59bd1c8b9f6c265ba0c3421923b93f15036fa0000000000000000000000003432b6a60d23ca0dfca7761b7ab56459d9c964d080000000000000000006b3d780d05aee000000000000006645ab114b3f80f3b600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000006645ab114b3f80f3b6736e774d0000000000000004d1877a31a73c7cb31c02b9e7d7c336531562b21e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000008f10b468b06c6fd214b65f87778827f7d113f9960000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000003432b6a60d23ca0dfca7761b7ab56459d9c964d000000000000000000000000000000000000000000000006645ab114b3f80f3b600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000004acaf8d2865c0714f79da09645c13fd2888977f00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000001028bfef06007c02c79a0530e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cacd6fd266af91b8aed52accc382b4e165586e2980000000000000000001ef09a04f3400000000000000001d81aca2608b35000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000001d81aca2608b3500006fba12b700000000000000045455c918e405a2831fbff8595c0aae35ee3db9d100000000000000000000000000000000000000000000000000000000000000800000000000000000000000008f10b468b06c6fd214b65f87778827f7d113f99600000000000000000000000000000000000000000000000000000000000000200000001e00000000000027100fe046a9027d8ce9a909f0c93ea2ddcfd8090f8700000000000000000000000004acaf8d2865c0714f79da09645c13fd2888977f8000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000004acaf8d2865c0714f79da09645c13fd2888977f000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000d059075bf71107c56522b60354feb51edd1654bf0000000000000000000000000000000000000000000000000000000057aee6400000000000000000000000000000000000000000000000a28c4f23ba281431550000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000008f10b468b06c6fd214b65f87778827f7d113f99600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000057aee64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b97b22536f75726365223a226b7962657273776170222c22416d6f756e74496e555344223a22313436392e343235383537222c22416d6f756e744f7574555344223a22313436352e303038303735222c22416d6f756e744f7574223a2232393939393832383730333437303334323332393738222c22526f7574654944223a2261666232386464334d7446414c344f643a64316533313465372d6c464b32626c4f222c2254696d657374616d70223a313737383633393531317d00000000000000c0", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0x83fbc629168c0f0ecac343ea233495fd7b2c68bda02450f90b044819acd81a60", + "expected": { + "intent": "Swap", + "owner": "KyberSwap", + "fields": [ + { + "label": "Amount to Send", + "value": "1471080000" + }, + { + "label": "Minimum to Receive", + "value": "2998482878911860715861" + }, + { + "label": "Beneficiary", + "value": "0xd059075BF71107C56522B60354feb51eDD1654bF" + } + ], + "interpolatedIntent": "Swap 1471080000 for at least 2998482878911860715861 to recipient 0xd059075BF71107C56522B60354feb51eDD1654bF" + } + } + ] +} \ No newline at end of file diff --git a/registry/layerswap/testsv2/calldata-LayerswapDepository.tests.json b/registry/layerswap/testsv2/calldata-LayerswapDepository.tests.json new file mode 100644 index 000000000..06aa8f94c --- /dev/null +++ b/registry/layerswap/testsv2/calldata-LayerswapDepository.tests.json @@ -0,0 +1,170 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-LayerswapDepository.json", + "tests": [ + { + "description": "Layerswap: LayerswapDepository: depositNative - 0.1 ETH", + "rawTx": "0x02f87983aa36a7808459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b88016345785d8a0000b84480a6de927468697369737465737469647468697369737465737469647468697369737469000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045c0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Swap ETH", + "owner": "Layerswap", + "fields": [ + { + "label": "Swap ID", + "value": "0x7468697369737465737469647468697369737465737469647468697369737469" + }, + { + "label": "Solver", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Amount", + "value": "0.1 ETH" + } + ], + "interpolatedIntent": "Swap 0.1 ETH" + } + }, + { + "description": "Layerswap: LayerswapDepository: depositERC20 - 1 USDC", + "rawTx": "0x02f8b183aa36a7018459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b80b884f4371f637468697369737465737469647468697369737465737469647468697369737469000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa9604500000000000000000000000000000000000000000000000000000000000f4240c0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Swap token", + "owner": "Layerswap", + "fields": [ + { + "label": "Swap ID", + "value": "0x7468697369737465737469647468697369737465737469647468697369737469" + }, + { + "label": "Token to swap", + "value": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + { + "label": "Solver", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Amount", + "value": "1000000" + } + ], + "interpolatedIntent": "Swap 1000000" + } + }, + { + "description": "Layerswap: LayerswapDepository: addToWhitelist", + "rawTx": "0x02f85083aa36a7028459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b80a4e43252d7000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045c0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Add solver", + "owner": "Layerswap", + "fields": [ + { + "label": "Solver to whitelist", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ], + "interpolatedIntent": "Whitelist 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 as solver" + } + }, + { + "description": "Layerswap: LayerswapDepository: removeFromWhitelist", + "rawTx": "0x02f85083aa36a7038459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b80a48ab1d681000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045c0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Remove solver", + "owner": "Layerswap", + "fields": [ + { + "label": "Solver to remove", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ], + "interpolatedIntent": "Remove 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 from whitelist" + } + }, + { + "description": "Layerswap: LayerswapDepository: updateWhitelistedAddress", + "rawTx": "0x02f87183aa36a7048459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b80b84486d11066000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000ab5801a7d398351b8be11c439e05c5b3259aec9bc0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Replace solver", + "owner": "Layerswap", + "fields": [ + { + "label": "Existing solver", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Replacement solver", + "value": "0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B" + } + ], + "interpolatedIntent": "Swap solver to 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B" + } + }, + { + "description": "Layerswap: LayerswapDepository: pause", + "rawTx": "0x02f083aa36a7058459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b80848456cb59c0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Pause", + "owner": "Layerswap", + "fields": [], + "interpolatedIntent": "Pause Layerswap swaps" + } + }, + { + "description": "Layerswap: LayerswapDepository: unpause", + "rawTx": "0x02f083aa36a7068459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b80843f4ba83ac0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Resume", + "owner": "Layerswap", + "fields": [], + "interpolatedIntent": "Resume Layerswap swaps" + } + }, + { + "description": "Layerswap: LayerswapDepository: transferOwnership", + "rawTx": "0x02f85083aa36a7078459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b80a4f2fde38b000000000000000000000000ab5801a7d398351b8be11c439e05c5b3259aec9bc0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Transfer ownership", + "owner": "Layerswap", + "fields": [ + { + "label": "Proposed new owner", + "value": "0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B" + } + ], + "interpolatedIntent": "Propose new owner 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B" + } + }, + { + "description": "Layerswap: LayerswapDepository: acceptOwnership", + "rawTx": "0x02f083aa36a7088459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b808479ba5097c0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Accept ownership", + "owner": "Layerswap", + "fields": [], + "interpolatedIntent": "Accept depository ownership" + } + }, + { + "description": "Layerswap: LayerswapDepository: renounceOwnership", + "rawTx": "0x02f083aa36a7098459682f008506fc23ac0083030d4094805463c27e8d59fee436f3160904e52ca26ba74b8084715018a6c0", + "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "expected": { + "intent": "Renounce ownership", + "owner": "Layerswap", + "fields": [], + "interpolatedIntent": "Renounce ownership: FINAL" + } + } + ] +} \ No newline at end of file diff --git a/registry/ledgerquest/testsv2/eip712-ledgerquest.tests.json b/registry/ledgerquest/testsv2/eip712-ledgerquest.tests.json new file mode 100644 index 000000000..4770cc2bb --- /dev/null +++ b/registry/ledgerquest/testsv2/eip712-ledgerquest.tests.json @@ -0,0 +1,75 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-ledgerquest.json", + "tests": [ + { + "description": "Mint", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "mint": [ + { + "name": "receiver", + "type": "address" + }, + { + "name": "categoryId", + "type": "uint256" + }, + { + "name": "collectionId", + "type": "uint256" + } + ] + }, + "primaryType": "mint", + "domain": { + "name": "Ledger Quest", + "version": "1", + "chainId": 137, + "verifyingContract": "0x33C6EeC1723B12c46732f7AB41398DE45641FA42" + }, + "message": { + "receiver": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "categoryId": "3", + "collectionId": "12" + } + }, + "expected": { + "intent": "Mint", + "owner": "Ledger", + "fields": [ + { + "label": "Receiver", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Quest Type", + "value": "3" + }, + { + "label": "Collection", + "value": "12" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/lens/testsv2/eip712-lens-lenshub.tests.json b/registry/lens/testsv2/eip712-lens-lenshub.tests.json new file mode 100644 index 000000000..c590e386b --- /dev/null +++ b/registry/lens/testsv2/eip712-lens-lenshub.tests.json @@ -0,0 +1,1772 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-lens-lenshub.json", + "dataProvider": { + "tokens": { + "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270": { + "symbol": "WPOL", + "decimals": 18, + "name": "Wrapped Polygon Ecosystem Token" + }, + "0x2791bca1f2de4661ed88a30c99a7a9449aa84174": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin (PoS)" + }, + "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + } + }, + "tests": [ + { + "description": "Act", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Act": [ + { + "name": "publicationActedProfileId", + "type": "uint256" + }, + { + "name": "publicationActedId", + "type": "uint256" + }, + { + "name": "actorProfileId", + "type": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]" + }, + { + "name": "actionModuleAddress", + "type": "address" + }, + { + "name": "actionModuleData", + "type": "bytes" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Act", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d" + }, + "message": { + "publicationActedProfileId": 412876, + "publicationActedId": 27, + "actorProfileId": 589332, + "referrerProfileIds": [ + 412876, + 401245 + ], + "referrerPubIds": [ + 26, + 19 + ], + "actionModuleAddress": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "actionModuleData": "0x0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000000000000000000000000000000000f4240", + "nonce": 128, + "deadline": 1782864000 + } + }, + "expected": { + "intent": "Act", + "owner": "LensHub", + "fields": [ + { + "label": "actorProfileId", + "value": "589332" + }, + { + "label": "publicationActedId", + "value": "27" + }, + { + "label": "publicationActedProfileId", + "value": "412876" + } + ] + } + }, + { + "description": "ChangeDelegatedExecutorsConfig", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "ChangeDelegatedExecutorsConfig": [ + { + "name": "delegatorProfileId", + "type": "uint256" + }, + { + "name": "delegatedExecutors", + "type": "address[]" + }, + { + "name": "approvals", + "type": "bool[]" + }, + { + "name": "configNumber", + "type": "uint64" + }, + { + "name": "switchToGivenConfig", + "type": "bool" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "ChangeDelegatedExecutorsConfig", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "delegatorProfileId": 84521, + "delegatedExecutors": [ + "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619", + "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270" + ], + "approvals": [ + true, + false, + true + ], + "configNumber": 4, + "switchToGivenConfig": true, + "nonce": 12, + "deadline": 1776677136 + } + }, + "expected": { + "intent": "ChangeDelegatedExecutorsConfig", + "owner": "LensHub", + "fields": [ + { + "label": "Delegator ProfileId", + "value": "84521" + }, + { + "label": "Delegated Executors", + "value": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174" + }, + { + "label": "Delegated Executors", + "value": "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619" + }, + { + "label": "Delegated Executors", + "value": "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270" + }, + { + "label": "Approvals", + "value": "true" + }, + { + "label": "Approvals", + "value": "false" + }, + { + "label": "Approvals", + "value": "true" + }, + { + "label": "configNumber", + "value": "4" + }, + { + "label": "switchToGivenConfig", + "value": "true" + }, + { + "label": "nonce", + "value": "12" + } + ] + } + }, + { + "description": "Comment", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Comment": [ + { + "name": "profileId", + "type": "uint256" + }, + { + "name": "contentURI", + "type": "string" + }, + { + "name": "pointedProfileId", + "type": "uint256" + }, + { + "name": "pointedPubId", + "type": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]" + }, + { + "name": "referenceModuleData", + "type": "bytes" + }, + { + "name": "actionModules", + "type": "address[]" + }, + { + "name": "actionModulesInitDatas", + "type": "bytes[]" + }, + { + "name": "referenceModule", + "type": "address" + }, + { + "name": "referenceModuleInitData", + "type": "bytes" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Comment", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "profileId": "48291", + "contentURI": "ipfs://bafybeid7f4m4n7vxxtdh6x2f5w4jv3l2t5n6k2k3x4v5z6y7a8b9c0d1e2", + "pointedProfileId": "10987", + "pointedPubId": "42", + "referrerProfileIds": [ + "10201", + "22117" + ], + "referrerPubIds": [ + "88", + "13" + ], + "referenceModuleData": "0x", + "actionModules": [ + "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619" + ], + "actionModulesInitDatas": [ + "0x", + "0x" + ], + "referenceModule": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "referenceModuleInitData": "0x", + "nonce": "17", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Comment", + "owner": "LensHub", + "fields": [ + { + "label": "Profile Id", + "value": "48291" + }, + { + "label": "content URI", + "value": "ipfs://bafybeid7f4m4n7vxxtdh6x2f5w4jv3l2t5n6k2k3x4v5z6y7a8b9c0d1e2" + }, + { + "label": "Pointed Profile Id", + "value": "10987" + }, + { + "label": "Pointed Pub Id", + "value": "42" + }, + { + "label": "nonce", + "value": "17" + } + ] + } + }, + { + "description": "Follow", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Follow": [ + { + "name": "followerProfileId", + "type": "uint256" + }, + { + "name": "idsOfProfilesToFollow", + "type": "uint256[]" + }, + { + "name": "followTokenIds", + "type": "uint256[]" + }, + { + "name": "datas", + "type": "bytes[]" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Follow", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "followerProfileId": "84521", + "idsOfProfilesToFollow": [ + "12", + "1043" + ], + "followTokenIds": [ + "0", + "0" + ], + "datas": [ + "0x", + "0x" + ], + "nonce": "27", + "deadline": "1777680000" + } + }, + "expected": { + "intent": "Follow", + "owner": "LensHub", + "fields": [ + { + "label": "follower ProfileId", + "value": "84521" + }, + { + "label": "ids Of Profiles To Follow", + "value": "12" + }, + { + "label": "ids Of Profiles To Follow", + "value": "1043" + }, + { + "label": "follow TokenIds", + "value": "0" + }, + { + "label": "follow TokenIds", + "value": "0" + }, + { + "label": "datas", + "value": "0x" + }, + { + "label": "datas", + "value": "0x" + }, + { + "label": "nonce", + "value": "27" + } + ] + } + }, + { + "description": "follow_with_sign", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "follow_with_sign": [ + { + "name": "followerProfileId", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "follow_with_sign", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d" + }, + "message": { + "followerProfileId": "842197", + "signatureDeadline": "1776643200" + } + }, + "expected": { + "intent": "follow_with_sign", + "owner": "LensHub", + "fields": [ + { + "label": "followerProfileId", + "value": "842197" + }, + { + "label": "signatureDeadline", + "value": "1776643200" + } + ] + } + }, + { + "description": "link", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "link": [ + { + "name": "handle_id", + "type": "uint256" + }, + { + "name": "profile_id", + "type": "uint256" + } + ] + }, + "primaryType": "link", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d" + }, + "message": { + "handle_id": 184467, + "profile_id": 93211 + } + }, + "expected": { + "intent": "link", + "owner": "LensHub", + "fields": [ + { + "label": "handle_id", + "value": "184467" + }, + { + "label": "profile_id", + "value": "93211" + } + ] + } + }, + { + "description": "link_with_sig", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "link_with_sig": [ + { + "name": "handle_id", + "type": "uint256" + }, + { + "name": "profile_id", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "link_with_sig", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d" + }, + "message": { + "handle_id": 1045123, + "profile_id": 1045098, + "signatureDeadline": 1776643200 + } + }, + "expected": { + "intent": "link_with_sig", + "owner": "LensHub", + "fields": [ + { + "label": "handle_id", + "value": "1045123" + }, + { + "label": "profile_id", + "value": "1045098" + }, + { + "label": "signatureDeadline", + "value": "1776643200" + } + ] + } + }, + { + "description": "mint", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "mint": [ + { + "name": "to", + "type": "uint256" + }, + { + "name": "profile_id", + "type": "uint256" + }, + { + "name": "profile_id_pointed", + "type": "uint256" + }, + { + "name": "pubid_pointed", + "type": "uint256" + } + ] + }, + "primaryType": "mint", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "to": "1845210", + "profile_id": "512944", + "profile_id_pointed": "509102", + "pubid_pointed": "73" + } + }, + "expected": { + "intent": "mint", + "owner": "LensHub", + "fields": [ + { + "label": "to", + "value": "1845210" + }, + { + "label": "profile_id", + "value": "512944" + }, + { + "label": "profile_id_pointed", + "value": "509102" + }, + { + "label": "pubid_pointed", + "value": "73" + } + ] + } + }, + { + "description": "mirror", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Mirror": [ + { + "name": "profileId", + "type": "uint256" + }, + { + "name": "metadataURI", + "type": "string" + }, + { + "name": "pointedProfileId", + "type": "uint256" + }, + { + "name": "pointedPubId", + "type": "uint256" + }, + { + "name": "referrerProfileIds", + "type": "uint256[]" + }, + { + "name": "referrerPubIds", + "type": "uint256[]" + }, + { + "name": "referenceModuleData", + "type": "bytes" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Mirror", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46D1dC155634fBC732f92E853b10B288aD5A1D" + }, + "message": { + "profileId": 845321, + "metadataURI": "ipfs://bafkreifx2w4m6p7v3k9n2q8s5t1y0z7c4u6e8r9a1b3d5f7h9j0k2l4m", + "pointedProfileId": 112233, + "pointedPubId": 57, + "referrerProfileIds": [ + 445566, + 778899 + ], + "referrerPubIds": [ + 12, + 34 + ], + "referenceModuleData": "0x", + "nonce": 19, + "deadline": 1785168000 + } + }, + "expected": { + "intent": "mirror", + "owner": "LensHub", + "fields": [ + { + "label": "profileId", + "value": "845321" + }, + { + "label": "metadataURI", + "value": "ipfs://bafkreifx2w4m6p7v3k9n2q8s5t1y0z7c4u6e8r9a1b3d5f7h9j0k2l4m" + }, + { + "label": "pointedProfileId", + "value": "112233" + }, + { + "label": "nonce", + "value": "19" + } + ] + } + }, + { + "description": "mirror_with_sig", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "mirror_with_sig": [ + { + "name": "profile_id", + "type": "uint256" + }, + { + "name": "profile_id_pointed", + "type": "uint256" + }, + { + "name": "pubid_pointed", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "mirror_with_sig", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d" + }, + "message": { + "profile_id": 845321, + "profile_id_pointed": 712004, + "pubid_pointed": 43, + "signatureDeadline": 1779321600 + } + }, + "expected": { + "intent": "mirror_with_sig", + "owner": "LensHub", + "fields": [ + { + "label": "profile_id", + "value": "845321" + }, + { + "label": "profile_id_pointed", + "value": "712004" + }, + { + "label": "pubid_pointed", + "value": "43" + }, + { + "label": "signatureDeadline", + "value": "1779321600" + } + ] + } + }, + { + "description": "Post", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Post": [ + { + "name": "profileId", + "type": "uint256" + }, + { + "name": "contentURI", + "type": "string" + }, + { + "name": "actionModules", + "type": "address[]" + }, + { + "name": "actionModulesInitDatas", + "type": "bytes[]" + }, + { + "name": "referenceModule", + "type": "address" + }, + { + "name": "referenceModuleInitData", + "type": "bytes" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Post", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634Fbc732f92E853b10B288Ad5A1d" + }, + "message": { + "profileId": 42817, + "contentURI": "ipfs://bafybeid5n5x7m2z4j4q4s5j2xjv4f4m2j3mq6y7f7z3e6x2h6z4f2u3m3a/metadata.json", + "actionModules": [], + "actionModulesInitDatas": [], + "referenceModule": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", + "referenceModuleInitData": "0x", + "nonce": 12, + "deadline": 1776681600 + } + }, + "expected": { + "intent": "Post", + "owner": "LensHub", + "fields": [ + { + "label": "Profile Id", + "value": "42817" + }, + { + "label": "Post URI", + "value": "ipfs://bafybeid5n5x7m2z4j4q4s5j2xjv4f4m2j3mq6y7f7z3e6x2h6z4f2u3m3a/metadata.json" + }, + { + "label": "nonce", + "value": "12" + } + ] + } + }, + { + "description": "post_with_sign", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "post_with_sign": [ + { + "name": "profile_id", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "post_with_sign", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "profile_id": 735421, + "signatureDeadline": 1776643200 + } + }, + "expected": { + "intent": "post_with_sign", + "owner": "LensHub", + "fields": [ + { + "label": "profile_id", + "value": "735421" + }, + { + "label": "signatureDeadline", + "value": "1776643200" + } + ] + } + }, + { + "description": "Quote", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Quote": [ + { + "name": "profileId", + "type": "uint256" + }, + { + "name": "contentURI", + "type": "string" + }, + { + "name": "pointedProfileId", + "type": "uint256" + }, + { + "name": "pointedPubId", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Quote", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "profileId": 84291, + "contentURI": "ipfs://bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku", + "pointedProfileId": 21841, + "pointedPubId": 57, + "nonce": 19, + "deadline": 1779321600 + } + }, + "expected": { + "intent": "Quote", + "owner": "LensHub", + "fields": [ + { + "label": "profileId", + "value": "84291" + }, + { + "label": "contentURI", + "value": "ipfs://bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku" + }, + { + "label": "pointedProfileId", + "value": "21841" + }, + { + "label": "pointedPubId", + "value": "57" + }, + { + "label": "nonce", + "value": "19" + }, + { + "label": "deadline", + "value": "1779321600" + } + ] + } + }, + { + "description": "quote_with_sign", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "quote_with_sign": [ + { + "name": "profile_id", + "type": "uint256" + }, + { + "name": "profile_id_pointed", + "type": "uint256" + }, + { + "name": "pubid_pointed", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "quote_with_sign", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "profile_id": 482913, + "profile_id_pointed": 136204, + "pubid_pointed": 27, + "signatureDeadline": 1781913600 + } + }, + "expected": { + "intent": "quote_with_sign", + "owner": "LensHub", + "fields": [ + { + "label": "profile_id", + "value": "482913" + }, + { + "label": "profile_id_pointed", + "value": "136204" + }, + { + "label": "pubid_pointed", + "value": "27" + }, + { + "label": "signatureDeadline", + "value": "1781913600" + } + ] + } + }, + { + "description": "set_block_status", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "set_block_status": [ + { + "name": "byProfileId", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "set_block_status", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "byProfileId": "845211", + "signatureDeadline": "1777699200" + } + }, + "expected": { + "intent": "set_block_status", + "owner": "LensHub", + "fields": [ + { + "label": "byProfileId", + "value": "845211" + }, + { + "label": "signatureDeadline", + "value": "1777699200" + } + ] + } + }, + { + "description": "SetProfileMetadataURI", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "SetProfileMetadataURI": [ + { + "name": "profileId", + "type": "uint256" + }, + { + "name": "metadataURI", + "type": "string" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "SetProfileMetadataURI", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634Fbc732f92E853b10B288Ad5A1d" + }, + "message": { + "profileId": 482913, + "metadataURI": "ipfs://bafybeid5n5x7m2z4j4q4s5j2xjv4f4m2j3mq6y7f7z3e6x2h6z4f2u3m3a", + "nonce": 27, + "deadline": 1782864000 + } + }, + "expected": { + "intent": "SetProfileMetadataURI", + "owner": "LensHub", + "fields": [ + { + "label": "profileId", + "value": "482913" + }, + { + "label": "metadataURI", + "value": "ipfs://bafybeid5n5x7m2z4j4q4s5j2xjv4f4m2j3mq6y7f7z3e6x2h6z4f2u3m3a" + }, + { + "label": "nonce", + "value": "27" + } + ] + } + }, + { + "description": "set_block_status_with_sig", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "set_block_status_with_sig": [ + { + "name": "byProfileId", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "set_block_status_with_sig", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d" + }, + "message": { + "byProfileId": "84521", + "signatureDeadline": "1776672000" + } + }, + "expected": { + "intent": "set_block_status_with_sig", + "owner": "LensHub", + "fields": [ + { + "label": "byProfileId", + "value": "84521" + }, + { + "label": "signatureDeadline", + "value": "1776672000" + } + ] + } + }, + { + "description": "Set Follow Module", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "SetFollowModule": [ + { + "name": "profileId", + "type": "uint256" + }, + { + "name": "followModule", + "type": "address" + }, + { + "name": "followModuleInitData", + "type": "bytes" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "SetFollowModule", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "profileId": 128472, + "followModule": "0x794a61358D6845594F94dc1DB02A252b5b4814aD", + "followModuleInitData": "0x", + "nonce": 42, + "deadline": 1782864000 + } + }, + "expected": { + "intent": "Set Follow Module", + "owner": "LensHub", + "fields": [ + { + "label": "profileId", + "value": "128472" + }, + { + "label": "followModule", + "value": "0x794a61358D6845594F94dc1DB02A252b5b4814aD" + }, + { + "label": "nonce", + "value": "42" + } + ] + } + }, + { + "description": "set_profile_metadata_with_sign", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "set_profile_metadata_with_sign": [ + { + "name": "profileId", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "set_profile_metadata_with_sign", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xdb46d1dc155634fbc732f92e853b10b288ad5a1d" + }, + "message": { + "profileId": 42817, + "signatureDeadline": 1776686400 + } + }, + "expected": { + "intent": "set_profile_metadata_with_sign", + "owner": "LensHub", + "fields": [ + { + "label": "profileId", + "value": "42817" + }, + { + "label": "signatureDeadline", + "value": "1776686400" + } + ] + } + }, + { + "description": "Unfollow", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Unfollow": [ + { + "name": "unfollowerProfileId", + "type": "uint256" + }, + { + "name": "idsOfProfilesToUnfollow", + "type": "uint256[]" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Unfollow", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d" + }, + "message": { + "unfollowerProfileId": 48219, + "idsOfProfilesToUnfollow": [ + 9182, + 22451, + 77604 + ], + "nonce": 17, + "deadline": 1779273600 + } + }, + "expected": { + "intent": "Unfollow", + "owner": "LensHub", + "fields": [ + { + "label": "Unfollower ProfileId", + "value": "48219" + }, + { + "label": "ids Of Profiles To Unfollow", + "value": "9182" + }, + { + "label": "ids Of Profiles To Unfollow", + "value": "22451" + }, + { + "label": "ids Of Profiles To Unfollow", + "value": "77604" + }, + { + "label": "nonce", + "value": "17" + }, + { + "label": "deadline", + "value": "1779273600" + } + ] + } + }, + { + "description": "unfollow_with_sign", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "unfollow_with_sign": [ + { + "name": "unfollowerProfileId", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "unfollow_with_sign", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xDb46d1Dc155634FbC732f92E853b10B288AD5a1d" + }, + "message": { + "unfollowerProfileId": 482193, + "signatureDeadline": 1779321600 + } + }, + "expected": { + "intent": "unfollow_with_sign", + "owner": "LensHub", + "fields": [ + { + "label": "unfollowerProfileId", + "value": "482193" + }, + { + "label": "signatureDeadline", + "value": "1779321600" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/lens/testsv2/eip712-lens-token-handle-registry.tests.json b/registry/lens/testsv2/eip712-lens-token-handle-registry.tests.json new file mode 100644 index 000000000..bfaaebad9 --- /dev/null +++ b/registry/lens/testsv2/eip712-lens-token-handle-registry.tests.json @@ -0,0 +1,152 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-lens-token-handle-registry.json", + "dataProvider": { + "tokens": {} + }, + "tests": [ + { + "description": "unlink_with_sig", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "unlink_with_sig": [ + { + "name": "handle_id", + "type": "uint256" + }, + { + "name": "profile_id", + "type": "uint256" + }, + { + "name": "signatureDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "unlink_with_sig", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xd4f2f33680fccb36748fa9831851643781608844" + }, + "message": { + "handle_id": "1000000000000000000", + "profile_id": "1000000000000000000", + "signatureDeadline": "1000000000000000000" + } + }, + "expected": { + "intent": "unlink_with_sig", + "owner": "TokenHandleRegistry", + "fields": [ + { + "label": "handle_id", + "value": "1000000000000000000" + }, + { + "label": "profile_id", + "value": "1000000000000000000" + }, + { + "label": "signatureDeadline", + "value": "1000000000000000000" + } + ] + } + }, + { + "description": "unlink", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "unlink": [ + { + "name": "handleId", + "type": "uint256" + }, + { + "name": "profileId", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "unlink", + "domain": { + "name": "Lens Protocol Profiles", + "version": "2", + "chainId": 137, + "verifyingContract": "0xD4F2F33680FCCb36748FA9831851643781608844" + }, + "message": { + "handleId": "904217", + "profileId": "129381", + "nonce": "12", + "deadline": "1777449600" + } + }, + "expected": { + "intent": "unlink", + "owner": "TokenHandleRegistry", + "fields": [ + { + "label": "handleId", + "value": "904217" + }, + { + "label": "profileId", + "value": "129381" + }, + { + "label": "nonce", + "value": "12" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/lido/calldata-stETH.json b/registry/lido/calldata-stETH.json index 25225279e..a5e6d0f34 100644 --- a/registry/lido/calldata-stETH.json +++ b/registry/lido/calldata-stETH.json @@ -35,7 +35,7 @@ }, "submit(address _referral)": { "intent": "Stake ETH", - "interpolatedIntent": "Stake {@.value} ETH", + "interpolatedIntent": "Stake {@.value}", "fields": [ { "label": "Amount", "format": "amount", "path": "@.value" }, { "label": "Referral", "path": "#._referral", "visible": "never" } diff --git a/registry/lido/calldata-wstETH-referral-staker.json b/registry/lido/calldata-wstETH-referral-staker.json index 540ca2402..7f6c3d66e 100644 --- a/registry/lido/calldata-wstETH-referral-staker.json +++ b/registry/lido/calldata-wstETH-referral-staker.json @@ -9,7 +9,7 @@ "formats": { "stakeETH(address _referral)": { "intent": "Stake ETH", - "interpolatedIntent": "Stake {@.value} ETH", + "interpolatedIntent": "Stake {@.value}", "fields": [ { "label": "Amount to stake", "format": "amount", "path": "@.value" }, { "label": "Referral", "path": "#._referral", "visible": "never" } diff --git a/registry/lido/testsv2/calldata-WithdrawalQueueERC721.tests.json b/registry/lido/testsv2/calldata-WithdrawalQueueERC721.tests.json new file mode 100644 index 000000000..3d8354f11 --- /dev/null +++ b/registry/lido/testsv2/calldata-WithdrawalQueueERC721.tests.json @@ -0,0 +1,141 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-WithdrawalQueueERC721.json", + "dataProvider": { + "tokens": { + "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0": { + "symbol": "wstETH", + "decimals": 18, + "name": "Wrapped liquid staked Ether 2.0" + }, + "0xae7ab96520de3a18e5e111b5eaab095312d7fe84": { + "symbol": "stETH", + "decimals": 18, + "name": "Liquid staked Ether 2.0" + } + }, + "ensNames": { + "0xba782baf2ee66f6fc76a711b6554975afb2805e4": "conan26.eth" + } + }, + "tests": [ + { + "description": "Request Withdrawal - chain 1 (1)", + "rawTx": "0x02f8af018201148405f5e100840bad32608306680994889edc2edab5f40e902b864ad4d7ade8e412f9b180b884d66810420000000000000000000000000000000000000000000000000000000000000040000000000000000000000000ba782baf2ee66f6fc76a711b6554975afb2805e400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000003e99b888f3eb3c0", + "txHash": "0x726b85ce98dec618eaaf3abaae514613e9a89b7c489accbe0d0b807295a8797e", + "expected": { + "intent": "Request Withdrawal", + "owner": "Lido DAO", + "fields": [ + { + "label": "Amount", + "value": "0.001101279150423731 stETH" + }, + { + "label": "Beneficiary", + "value": "conan26.eth" + } + ], + "interpolatedIntent": "Withdraw 0.001101279150423731 stETH" + } + }, + { + "description": "Request Withdrawal - chain 1 (2)", + "rawTx": "0x02f9014d010983915c738403ca653b830463a094889edc2edab5f40e902b864ad4d7ade8e412f9b180b90124acf41e4d00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000b5f547a6b243c1fe6e907b6dc85e366c683911b8000000000000000000000000000000000000000000000000120a871cc00200000000000000000000000000000000000000000000000000000000000069bbc8a7000000000000000000000000000000000000000000000000000000000000001b1444e01dbd6066a3ab981980258e25413f406f98b3c11375f30efdc80157959928981af7de920ada3b9148d416c54f7755c36aa34bd21094f819bf661c6c1bdb0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000120a871cc0020000c0", + "txHash": "0x09e30771bbcade3c51b23674002770780b020d19f0dfddcb8ba9ba08b7ee7d51", + "expected": { + "intent": "Request Withdrawal", + "owner": "Lido DAO", + "fields": [ + { + "label": "Amount", + "value": "1.3 stETH" + }, + { + "label": "Beneficiary", + "value": "0xB5F547A6b243C1Fe6e907B6dC85e366c683911b8" + } + ], + "interpolatedIntent": "Withdraw 1.3 stETH" + } + }, + { + "description": "claim withdrawal - chain 1", + "rawTx": "0x02f84e01820121840280a484840663c0f28302b15894889edc2edab5f40e902b864ad4d7ade8e412f9b180a4f8444436000000000000000000000000000000000000000000000000000000000001c90fc0", + "txHash": "0x6c94afecc0fa00212767e0bc6c550a580616eef348a64aa55f86832bb54349de", + "expected": { + "intent": "Claim withdrawal", + "owner": "Lido DAO", + "fields": [ + { + "label": "Request ID", + "value": "117007" + } + ] + } + }, + { + "description": "claim withdrawals - chain 1", + "rawTx": "0x02f8ec0107830f42408405db8da28301612094889edc2edab5f40e902b864ad4d7ade8e412f9b180b8c4e3afe0a30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000016e410000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000034cc0", + "txHash": "0x79a234f238f16b22ff70a2023fbbba8cf4982f46c795eeee6ffd0232d942fa99", + "expected": { + "intent": "Claim withdrawals", + "owner": "Lido DAO", + "fields": [ + { + "label": "Request ID", + "value": "93761" + } + ] + } + }, + { + "description": "Transfer unstETH NFT - chain 1 (1)", + "rawTx": "0x02f88c01068405f5e1008409ce122082d3b694889edc2edab5f40e902b864ad4d7ade8e412f9b180b86442842e0e0000000000000000000000000240ce6cdac388d077f32b16c63b8c4251340ad50000000000000000000000000240ce6cdac388d077f32b16c63b8c4251340ad5000000000000000000000000000000000000000000000000000000000001ccb8c0", + "txHash": "0x719295da3686977b70cf157cc36bf74035acba0945aea47fe7a8845f60dec7b0", + "expected": { + "intent": "Transfer unstETH NFT", + "owner": "Lido DAO", + "fields": [ + { + "label": "From", + "value": "0x0240ce6CDAC388d077f32b16c63b8C4251340Ad5" + }, + { + "label": "To", + "value": "0x0240ce6CDAC388d077f32b16c63b8C4251340Ad5" + }, + { + "label": "Request ID", + "value": "117944" + } + ], + "interpolatedIntent": "Send unstETH to 0x0240ce6CDAC388d077f32b16c63b8C4251340Ad5" + } + }, + { + "description": "Transfer unstETH NFT - chain 1 (2)", + "rawTx": "0x02f88c0111839896808403f21d578302475394889edc2edab5f40e902b864ad4d7ade8e412f9b180b86423b872dd000000000000000000000000914403e8bfaaa4a7a47501d25cd1b4c1b2ae2772000000000000000000000000783402877691894c739b58e087107489ad6a5f25000000000000000000000000000000000000000000000000000000000001cd5ec0", + "txHash": "0x10cd5f8559ddfd311387d90278e20a4d831806b1ae9627fadb775e5a569eb55a", + "expected": { + "intent": "Transfer unstETH NFT", + "owner": "Lido DAO", + "fields": [ + { + "label": "From", + "value": "0x914403e8BfAaA4A7A47501D25CD1B4c1B2ae2772" + }, + { + "label": "To", + "value": "0x783402877691894c739b58E087107489aD6A5f25" + }, + { + "label": "Request ID", + "value": "118110" + } + ], + "interpolatedIntent": "Send unstETH to 0x783402877691894c739b58E087107489aD6A5f25" + } + } + ] +} \ No newline at end of file diff --git a/registry/lido/testsv2/calldata-stETH.tests.json b/registry/lido/testsv2/calldata-stETH.tests.json new file mode 100644 index 000000000..f3efcbbe5 --- /dev/null +++ b/registry/lido/testsv2/calldata-stETH.tests.json @@ -0,0 +1,71 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-stETH.json", + "dataProvider": { + "tokens": { + "0xae7ab96520de3a18e5e111b5eaab095312d7fe84": { + "symbol": "stETH", + "decimals": 18, + "name": "Liquid staked Ether 2.0" + } + } + }, + "tests": [ + { + "description": "Approve stETH - chain 1", + "rawTx": "0x02f86d01158401bdfe288405866f45830129ab94ae7ab96520de3a18e5e111b5eaab095312d7fe8480b844095ea7b300000000000000000000000040aa958dd87fc8305b97f2ba922cddca374bcd7f0000000000000000000000000000000000000000000000000354a6ba7a180000c0", + "txHash": "0x855d1be7b06e45058123bfa96b17102d21b3c8d6e32b78d25bfddfe004adda44", + "expected": { + "intent": "Approve stETH", + "owner": "Lido DAO", + "fields": [ + { + "label": "Spender", + "value": "0x40aA958dd87FC8305b97f2BA922CDdCa374bcD7f" + }, + { + "label": "Amount", + "value": "0.24 stETH" + } + ], + "interpolatedIntent": "Allow to spend 0.24 stETH" + } + }, + { + "description": "Stake ETH - chain 1", + "rawTx": "0x02f853011f830f42408405b16fd683016b4794ae7ab96520de3a18e5e111b5eaab095312d7fe84880ef7fca59c4bb813a4a1903eab0000000000000000000000006dc9657c2d90d57cadffb64239242d06e6103e43c0", + "txHash": "0x2c1bdd2d86e183f6b439296b2c07437f64fb91fbf97f50ee2298c5232b5de128", + "expected": { + "intent": "Stake ETH", + "owner": "Lido DAO", + "fields": [ + { + "label": "Amount", + "value": "1.078608424000534547 ETH" + } + ], + "interpolatedIntent": "Stake 1.078608424000534547 ETH" + } + }, + { + "description": "Transfer stETH - chain 1", + "rawTx": "0x02f86e01158477359400852e90edd0008303a98094ae7ab96520de3a18e5e111b5eaab095312d7fe8480b844a9059cbb00000000000000000000000062425cd6bdcb6bfe51558ea465b063486b70dc9f0000000000000000000000000000000000000000000000000e0db2f70f18f532c0", + "txHash": "0xedd2ec5c2909a2f746905e20e51222d002bc3b93de02acbc2b8c3b9f7093b70e", + "expected": { + "intent": "Transfer stETH", + "owner": "Lido DAO", + "fields": [ + { + "label": "Recipient", + "value": "0x62425cD6BDcB6bFE51558EA465B063486B70dc9f" + }, + { + "label": "Amount", + "value": "1.012662265408189746 stETH" + } + ], + "interpolatedIntent": "Send 1.012662265408189746 stETH to 0x62425cD6BDcB6bFE51558EA465B063486B70dc9f" + } + } + ] +} \ No newline at end of file diff --git a/registry/lido/testsv2/calldata-wstETH-referral-staker.tests.json b/registry/lido/testsv2/calldata-wstETH-referral-staker.tests.json new file mode 100644 index 000000000..82540140d --- /dev/null +++ b/registry/lido/testsv2/calldata-wstETH-referral-staker.tests.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-wstETH-referral-staker.json", + "tests": [ + { + "description": "Stake ETH - chain 1", + "rawTx": "0x02f8530112830f424084034826208304b34194a88f0329c2c4ce51ba3fc619bbf44efe7120dd0d88d6f788ee32cd0000a4946fe3e800000000000000000000000011d00000000000000000000000000000000011d0c0", + "txHash": "0x5dbf484d20aea51d0ffe9690ff3db21346f10da9ca4ce6e2a84cf4abf37d5ece", + "expected": { + "intent": "Stake ETH", + "owner": "Lido DAO", + "fields": [ + { + "label": "Amount to stake", + "value": "15.49 ETH" + } + ], + "interpolatedIntent": "Stake 15.49 ETH" + } + } + ] +} \ No newline at end of file diff --git a/registry/lido/testsv2/calldata-wstETH.tests.json b/registry/lido/testsv2/calldata-wstETH.tests.json new file mode 100644 index 000000000..f5e76b612 --- /dev/null +++ b/registry/lido/testsv2/calldata-wstETH.tests.json @@ -0,0 +1,186 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-wstETH.json", + "dataProvider": { + "tokens": { + "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0": { + "symbol": "wstETH", + "decimals": 18, + "name": "Wrapped liquid staked Ether 2.0" + }, + "0xae7ab96520de3a18e5e111b5eaab095312d7fe84": { + "symbol": "stETH", + "decimals": 18, + "name": "Liquid staked Ether 2.0" + } + } + }, + "tests": [ + { + "description": "Authorize spending - chain 1", + "rawTx": "0x02f86c01658477359400847baffa9e82b62a947f39c581f595b53c5cb19bd0b3f8da6c935e2ca080b844095ea7b3000000000000000000000000bf67f59d2988a46fbff7ed79a621778a3cd3985b000000000000000000000000000000000000000000000010fa168bd82c3645eec0", + "txHash": "0xda944502a7bbbe2f39cdae33e464175ce62d0304b13c8d7ff0984f66b7d0dc07", + "expected": { + "intent": "Authorize spending", + "owner": "Lido DAO", + "fields": [ + { + "label": "Spender", + "value": "0xBf67F59D2988A46FBFF7ed79A621778a3Cd3985B" + }, + { + "label": "Amount", + "value": "313.168649898893395438 wstETH" + } + ], + "interpolatedIntent": "Allow to spend 313.168649898893395438 wstETH" + } + }, + { + "description": "Wrap stETH - chain 1", + "rawTx": "0x02f84d0181818405f5e1008409a358a08302d8eb947f39c581f595b53c5cb19bd0b3f8da6c935e2ca080a4ea598cb00000000000000000000000000000000000000000000000000de0b6b3a763fffec0", + "txHash": "0x3af0ee20e9dba4ff0a5f18bf3bbaa551bb2397e91d61166668947aaafb99836b", + "expected": { + "intent": "Wrap stETH", + "owner": "Lido DAO", + "fields": [ + { + "label": "stETH amount", + "value": "0.999999999999999998 stETH" + } + ], + "interpolatedIntent": "Wrap 0.999999999999999998 stETH" + } + }, + { + "description": "Unwrap wstETH to stETH - chain 1", + "rawTx": "0x02f84c01628405f5e100840a52d2808302569a947f39c581f595b53c5cb19bd0b3f8da6c935e2ca080a4de0e9a3e000000000000000000000000000000000000000000000000000132ac87e52184c0", + "txHash": "0x907a2cfdbf3d3c2a7a20a1c2edf9f09c9c23ae74b74e8f298fa16461d29d0f87", + "expected": { + "intent": "Unwrap wstETH to stETH", + "owner": "Lido DAO", + "fields": [ + { + "label": "wstETH amount", + "value": "0.000337191572414852 wstETH" + } + ], + "interpolatedIntent": "Unwrap 0.000337191572414852 wstETH" + } + }, + { + "description": "Transfer wstETH - chain 1", + "rawTx": "0xf86903840365dd1983013880947f39c581f595b53c5cb19bd0b3f8da6c935e2ca080b844a9059cbb000000000000000000000000db34fbb4e7989c3f8957e9e9b346bf46ee0f0408000000000000000000000000000000000000000000000000000009184e72a000018080", + "txHash": "0x0e5a75211ed011499112a72adcc6ce3ce68fec3d0bed51def072daefce3efcbb", + "expected": { + "intent": "Transfer wstETH", + "owner": "Lido DAO", + "fields": [ + { + "label": "Recipient", + "value": "0xdB34FBB4E7989c3f8957e9E9b346bf46Ee0F0408" + }, + { + "label": "Amount", + "value": "0.00001 wstETH" + } + ], + "interpolatedIntent": "Send 0.00001 wstETH to 0xdB34FBB4E7989c3f8957e9E9b346bf46Ee0F0408" + } + }, + { + "description": "Decrease allowance - chain 1", + "rawTx": "0x02f86c01138477359400848b3dee0382ade2947f39c581f595b53c5cb19bd0b3f8da6c935e2ca080b844a457c2d7000000000000000000000000e951fe9a680e1249dbe463dd14a6d7061442bc9f00000000000000000000000000000000000000000000000001634549cc9c3000c0", + "from": "0x2C26F8EB29f385Ae47303cf46ebB412CB86B3145", + "txHash": "0x0803495eb52ed1e5bdb65e386f603b9a1c83c20fb69365aa24fe0ce2ec93a5f2", + "expected": { + "intent": "Decrease allowance", + "owner": "Lido DAO", + "fields": [ + { + "label": "Spender", + "value": "0xE951fe9a680E1249dBE463Dd14a6d7061442bc9F" + }, + { + "label": "Amount", + "value": "0.0999998 wstETH" + } + ] + } + }, + { + "description": "Increase allowance - chain 1", + "rawTx": "0x02f86c014c84773594008483eb8ad282ae04947f39c581f595b53c5cb19bd0b3f8da6c935e2ca080b844395093510000000000000000000000005bdd5eb14d20cebd6d90b92da6eb866ee756c1220000000000000000000000000000000000000000000000000000000000000064c0", + "from": "0x5bDd5Eb14d20cEBd6D90B92da6eB866ee756C122", + "txHash": "0xc969f43f76513d06e6731afffe2a55387a9c0c420bcbbef5ea7007e77c598150", + "expected": { + "intent": "Increase allowance", + "owner": "Lido DAO", + "fields": [ + { + "label": "Spender", + "value": "0x5bDd5Eb14d20cEBd6D90B92da6eB866ee756C122" + }, + { + "label": "Amount", + "value": "0.0000000000000001 wstETH" + } + ] + } + }, + { + "description": "Permit spending - chain 1", + "rawTx": "0x02f9010f0182932a831d5918850176be191b83037cc2947f39c581f595b53c5cb19bd0b3f8da6c935e2ca080b8e4d505accf00000000000000000000000008b00ceee2fb66029b53d76110b19eeaabfd1e65000000000000000000000000e66aa98b55c5a55c9af9da12fe39b8868af9a346ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000006a3a4f80000000000000000000000000000000000000000000000000000000000000001bd925c9dc4daf2b97326adca692aba99dd40a1394c841772f5a724c2dc35953867e99359d1f68b310a5c7f88d01abaf6956d58334b3ec60f8b70f32380d9474fcc0", + "from": "0x91507344F76A4b4c24EEaA3aEbBEEE5A162B4F4C", + "txHash": "0x921cbe8ffe2ae92351a33e194d6d170420d94903f636adeb04108565ca6bed86", + "expected": { + "intent": "Permit spending", + "owner": "Lido DAO", + "fields": [ + { + "label": "Owner", + "value": "0x08b00cEEE2Fb66029B53D76110B19eeAabfd1e65" + }, + { + "label": "Spender", + "value": "0xE66AA98B55C5A55c9Af9da12FE39B8868af9a346" + }, + { + "label": "Amount", + "value": "Unlimited wstETH" + }, + { + "label": "Deadline", + "value": "2026-06-23 09:18:56Z" + } + ], + "interpolatedIntent": "Permit Unlimited wstETH spending" + } + }, + { + "description": "Transfer wstETH from sender - chain 1", + "rawTx": "0x02f88f0182932b831d591885016d07380b8301f659947f39c581f595b53c5cb19bd0b3f8da6c935e2ca080b86423b872dd00000000000000000000000008b00ceee2fb66029b53d76110b19eeaabfd1e650000000000000000000000002aed99855fed0259e5774b50a9f589d2bc1e1597000000000000000000000000000000000000000000000000019334e70d000e9cc0", + "from": "0xE66AA98B55C5A55c9Af9da12FE39B8868af9a346", + "txHash": "0x6cb5632a279fcf9becb607354da606ba672d05151afebc5ba70450f1fd5cd790", + "expected": { + "intent": "Transfer wstETH", + "owner": "Lido DAO", + "fields": [ + { + "label": "Sender", + "value": "0x08b00cEEE2Fb66029B53D76110B19eeAabfd1e65" + }, + { + "label": "Recipient", + "value": "0x2aeD99855FED0259e5774B50a9f589D2BC1E1597" + }, + { + "label": "Amount", + "value": "0.113492582574591644 wstETH" + } + ], + "interpolatedIntent": "Send 0.113492582574591644 wstETH to 0x2aeD99855FED0259e5774B50a9f589D2BC1E1597" + } + } + ] +} \ No newline at end of file diff --git a/registry/lifi/testsv2/calldata-LIFIDiamond.tests.json b/registry/lifi/testsv2/calldata-LIFIDiamond.tests.json new file mode 100644 index 000000000..ab8b005fb --- /dev/null +++ b/registry/lifi/testsv2/calldata-LIFIDiamond.tests.json @@ -0,0 +1,206 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-LIFIDiamond.json", + "dataProvider": { + "tokens": { + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0xd7efb00d12c2c13131fd319336fdf952525da2af": { + "symbol": "XPR", + "decimals": 4, + "name": "Proton" + }, + "0x06450dee7fd2fb8e39061434babcfc05599a6fb8": { + "symbol": "XEN", + "decimals": 18, + "name": "XEN Crypto" + }, + "0xf230b790e05390fc8295f4d3f60332c93bed42e2": { + "symbol": "TRX", + "decimals": 6, + "name": "Tronix" + }, + "0x8248270620aa532e4d64316017be5e873e37cc09": { + "symbol": "DEVVE", + "decimals": 18, + "name": "DevvE" + } + } + }, + "tests": [ + { + "description": "Swap - chain 1 (1)", + "rawTx": "0x02f908100182026e8405f5e100841d91d57e83092faa941231deb6f5749ef6ce6943a275a1d3e7486f4eae80b907e45fd9ae2e82d1caaa74c5bf574756b6f41bd6ae9b56b0e6956600b37040b0a73c9a7ccb4600000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000078b59874bf0fb404d88d9e688fdc56ee3e085e6b00000000000000000000000000000000000000012e30579338f1fa147ae147ae00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000008626173652d617070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307830303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000003ef238c36035880efbdfa239d218186b79ad1d6f0000000000000000000000003ef238c36035880efbdfa239d218186b79ad1d6f000000000000000000000000d7efb00d12c2c13131fd319336fdf952525da2af000000000000000000000000d7efb00d12c2c13131fd319336fdf952525da2af000000000000000000000000000000000000000000000000000000012a05f20000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000084eedd56e1000000000000000000000000d7efb00d12c2c13131fd319336fdf952525da2af0000000000000000000000000000000000000000000000000000000002faf08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005aafc1f252d544f744d17a4e734afd6efc47ede400000000000000000000000000000000000000000000000000000000000000000000000000000000ac4c6e212a361c968f1725b4d055b47e63f80b75000000000000000000000000ac4c6e212a361c968f1725b4d055b47e63f80b75000000000000000000000000d7efb00d12c2c13131fd319336fdf952525da2af00000000000000000000000006450dee7fd2fb8e39061434babcfc05599a6fb800000000000000000000000000000000000000000000000000000001270b018000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003645f3bd1c8000000000000000000000000d7efb00d12c2c13131fd319336fdf952525da2af00000000000000000000000000000000000000000000000000000001270b01800000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae00000000000000000000000006450dee7fd2fb8e39061434babcfc05599a6fb800000000000000000000000000000000000000012de2fb53d7dd414100e6afcd000000000000000000000000c10ee9031f2a0b84766a86b55a8d90f357910fb400000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000244ba3f2165000000000000000000000000de7259893af7cdbc9fd806c6ba61d22d581d56670000000000000000000000000000000000000000004d5c3f6114b8d379fa97e1000000000000000000000000d7efb00d12c2c13131fd319336fdf952525da2af00000000000000000000000000000000000000000000000000000001270b018000000000000000000000000006450dee7fd2fb8e39061434babcfc05599a6fb800000000000000000000000000000000000000013788ee13d123b000000000000000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000cf019d1b698e15000301d7efb00d12c2c13131fd319336fdf952525da2af01ffff01464bd7e6718a815c20a5ad529003d7a93a9676b300c10ee9031f2a0b84766a86b55a8d90f357910fb400938611e7502b01c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2024ed200c0d776e2223c9a2ad13433dab7ec08cb9c5e76ae00c10ee9031f2a0b84766a86b55a8d90f357910fb4000bb88e712ac1624fffff012a9d2ba41aba912316d16742f259412b681898db00c10ee9031f2a0b84766a86b55a8d90f357910fb400a0182bd6d85000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x6cf0a5130b01feea85621148b7a6193c775d8516b1aa3628f37828bc5c12a5c8", + "expected": { + "intent": "Swap", + "owner": "LI.FI", + "fields": [ + { + "label": "Amount to Send", + "value": "500000 XPR" + }, + { + "label": "Minimum to Receive", + "value": "93522914967.046437151086561198 XEN" + }, + { + "label": "Recipient", + "value": "0x78b59874BF0Fb404D88D9e688fdC56eE3E085e6b" + } + ] + } + }, + { + "description": "Swap - chain 1 (2)", + "rawTx": "0x02f90fae01078405f5e10084217005e08310729d941231deb6f5749ef6ce6943a275a1d3e7486f4eae80b90f842c57e884db1fe5ccc56d184ef83d0947fb7cc3e54d747dc64af4229c70afe7d49466dbf900000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000a368825594237f98cd05803027e841aeca7e8f52000000000000000000000000000000000000000000000000001ac7d14c6f6c4a000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000046263646300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307830303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000003ef238c36035880efbdfa239d218186b79ad1d6f0000000000000000000000003ef238c36035880efbdfa239d218186b79ad1d6f000000000000000000000000f230b790e05390fc8295f4d3f60332c93bed42e2000000000000000000000000f230b790e05390fc8295f4d3f60332c93bed42e20000000000000000000000000000000000000000000000000000000003567e0000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000084eedd56e1000000000000000000000000f230b790e05390fc8295f4d3f60332c93bed42e20000000000000000000000000000000000000000000000000000000000088b8000000000000000000000000000000000000000000000000000000000000222e0000000000000000000000000f5ba3507df4e01a9ed6100b4d5671e346bf5443f000000000000000000000000000000000000000000000000000000000000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b50000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5000000000000000000000000f230b790e05390fc8295f4d3f60332c93bed42e2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034bcfa000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b04e21fd0e9000000000000000000000000000000000000000000000000000000000000002000000000000000000000000063242a4ea82847b20e506b63b0e2e2eff0cc6cb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000034bcfa0000000000000000000000000034bcfa0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000041dd453aebc7ebca1c7679a74bc186bcdc85db7fff0fc8078183e09de41e8f323b3b04c71c17e2d1b817e0483983c0fa0d150234042f24a7ac592ec96b184f0d741c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000003219ed800000000000000000000000003760068000000000000000000000000034bcfa00000000000000000001b779b9699aa2500000000000000000000000000000000000001ccd2cd6500000007a120077a100000000000000000000000008fe83dab1d17185f091569b440b9e3c7ead1453d0000000000000000000000008b1fb4937bab5d02248a0825bf2564863237b00f0000000000000000000000000000000000000000000000000000000069c1678200000000000000000000000000000000000000000000000000000000000005e0000000000000000000000000000000000000000000000000000000000000000261f598cd000000000000000031439a79a3535d69b65c3be384840282b4ea0aa791dd7346000000000000000031439a79a3535d69b65c3be384840282b4ea0aa70000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000f230b790e05390fc8295f4d3f60332c93bed42e280000000000000000000000000000037000000000000000000000000034bcfa000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000034bcfa0736e774d0000000000000001d1877a31a73c7cb31c02b9e7d7c336531562b21e000000000000000000000000000000000000000000000000000000000000008000000000000000000000000063242a4ea82847b20e506b63b0e2e2eff0cc6cb00000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000004444c5dc75cb358380d2e3de08a900000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f230b790e05390fc8295f4d3f60332c93bed42e200000000000000000000000000000000000000000000000000000000034bcfa000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009858000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000007b654a4cd9dd68a74ed9f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f230b790e05390fc8295f4d3f60332c93bed42e2000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae00000000000000000000000000000000000000000000000000000000034bcfa0000000000000000000000000000000000000000000000000001ac7d14c6f6c4900000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000063242a4ea82847b20e506b63b0e2e2eff0cc6cb0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000034bcfa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab7b22536f75726365223a226c692e6669222c22416d6f756e74496e555344223a2231362e393332303037222c22416d6f756e744f7574555344223a2231362e343935323432222c22416d6f756e744f7574223a2237373331333334353031343736393030222c22526f7574654944223a2238303131653761336b304a41497252383a64356663653163633439684563614d2d222c2254696d657374616d70223a313737343238313432367d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xdd05df1178e2c9becfa70eb62d8524b6940b3c3e5d478e40b41323370ff24e1d", + "expected": { + "intent": "Swap", + "owner": "LI.FI", + "fields": [ + { + "label": "Amount to Send", + "value": "56 TRX" + }, + { + "label": "Minimum Amount to receive", + "value": "7538051138939978" + }, + { + "label": "Receiver", + "value": "0xA368825594237F98cD05803027E841Aeca7e8F52" + } + ] + } + }, + { + "description": "Swap - chain 1 (3)", + "rawTx": "0x02f90797018201438405f5e100841acf8049830b025c941231deb6f5749ef6ce6943a275a1d3e7486f4eae8710aabbaec2c6d3b90764736eac0bf1026a307b79b4860b5e60d4e57e206e8278ed39267483b433d541afb78abaf900000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000009db61e60e1f1cc3e03952f8e19cc7705dce8581b000000000000000000000000000000000000000000000011c74070906863e8f600000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000008626173652d617070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307830303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000003ef238c36035880efbdfa239d218186b79ad1d6f0000000000000000000000003ef238c36035880efbdfa239d218186b79ad1d6f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010aabbaec2c6d300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000064e0cbc5f200000000000000000000000000000000000000000000000000002aaad63a448c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005aafc1f252d544f744d17a4e734afd6efc47ede400000000000000000000000000000000000000000000000000000000000000000000000000000000ac4c6e212a361c968f1725b4d055b47e63f80b75000000000000000000000000ac4c6e212a361c968f1725b4d055b47e63f80b7500000000000000000000000000000000000000000000000000000000000000000000000000000000000000008248270620aa532e4d64316017be5e873e37cc0900000000000000000000000000000000000000000000000000108010d888824700000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003045f3bd1c8000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000000000000000000000000000000108010d88882470000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae0000000000000000000000008248270620aa532e4d64316017be5e873e37cc09000000000000000000000000000000000000000000000011c2b351bb45784a43000000000000000000000000c10ee9031f2a0b84766a86b55a8d90f357910fb400000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e4ba3f2165000000000000000000000000de7259893af7cdbc9fd806c6ba61d22d581d5667000000000000000000000000000000000000000000000000048d1ed522eb9eb2000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000000000000000000000000000000108010d88882470000000000000000000000008248270620aa532e4d64316017be5e873e37cc09000000000000000000000000000000000000000000000012540317aca06700000000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000007f019d1b68b0af00020301ffff0201c10ee9031f2a0b84766a86b55a8d90f357910fb4c02aaa39b223fe8d0a0e5c4f27ead9083c756cc201c02aaa39b223fe8d0a0e5c4f27ead9083c756cc201ffff0118bbe20f81bdcb340325e28a6ee6bb426b7ccbc100c10ee9031f2a0b84766a86b55a8d90f357910fb40084012592a035000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xf681e1ea9b4e9a0b7597f825ae1c2cb9f7256d5e1d5caa791ae37c18ca7e063f", + "expected": { + "intent": "Swap", + "owner": "LI.FI", + "fields": [ + { + "label": "Amount to send", + "value": "0.004691322694977235 ETH" + }, + { + "label": "Minimum to Receive", + "value": "327.952248630648498422 DEVVE" + }, + { + "label": "Recipient", + "value": "0x9db61e60E1F1Cc3e03952F8E19CC7705DCE8581b" + } + ] + } + }, + { + "description": "Swap - chain 1 (4)", + "rawTx": "0x02f905ce01018405f5e1008414bdb50b8306139b941231deb6f5749ef6ce6943a275a1d3e7486f4eae80b905a44666fc800952f9c7209d8a4a1e0da65d943a2c152262753fd8b3f57ffe164339a71b3aaf00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000002d7d7d61978ff0b82164cc201ec532a68f10f9c200000000000000000000000000000000000000000000000000000000ad1fc97c00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000008626173652d617070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a30783030303030303030303030303030303030303030303030303030303030303030303030303030303000000000000000000000000000000000000000000000000000000000000000000000ac4c6e212a361c968f1725b4d055b47e63f80b75000000000000000000000000ac4c6e212a361c968f1725b4d055b47e63f80b75000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000b28412c000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003245f3bd1c8000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000b28412c00000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000acf3779e000000000000000000000000c10ee9031f2a0b84766a86b55a8d90f357910fb400000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000204ba3f2165000000000000000000000000de7259893af7cdbc9fd806c6ba61d22d581d566700000000000000000000000000000000000000000000000000000000002c51dd000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000b28412c0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000b27a808a0000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000009e019d1b569860000101dac17f958d2ee523a2206206994597c13d831ec701ffff06000000000004444c5dc75cb358380d2e3de08a90a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000a00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c10ee9031f2a0b84766a86b55a8d90f357910fb4b28410b27b1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x77640203938a2789ed6acb4cbcab24d152b0076848823800190341cb7974590e", + "expected": { + "intent": "Swap", + "owner": "LI.FI", + "fields": [ + { + "label": "Amount to Send", + "value": "2995 USDT" + }, + { + "label": "Minimum to Receive", + "value": "2904.541564 USDC" + }, + { + "label": "Recipient", + "value": "0x2D7d7d61978fF0b82164CC201Ec532a68f10F9c2" + } + ] + } + }, + { + "description": "Swap - chain 1 (5)", + "rawTx": "0x02f90af00182014c8432eabc9d8432eabc9d8304499b941231deb6f5749ef6ce6943a275a1d3e7486f4eae80b90ac4733214a3b0e46cd1cd95c3d26a4a45a24138c03e201c7b8898df6dc73b4436cfd85a2d9600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000a78456d70bed1938fb26e6106922b2f370960b610000000000000000000000000000000000000000000000000004c88b2db9c0000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000f6261636b7061636b2d77616c6c65740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307830303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000000000000000000000000000000000009706b69de23fe0b471addd642175126b3a8bf0710000000000000000000000009706b69de23fe0b471addd642175126b3a8bf071000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d4e9ace5000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000084400a32e6c000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000009010b0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20a0c000000000000000000000000000000000000000000000000000000000000000000000000000000000009030708030a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c02aaa39b223fe8d0a0e5c4f27ead9083c756cc27a89000000000000000000000000000000000000000000000000000000000000000000000000000000000806060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031231deb6f5749ef6ce6943a275a1d3e7486f4eae7a8506000000000000000000000000000000000000000000000000000000000000000000000000000000090304020306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000803020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e1f0273e81020201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e04f9fe6de11e10b1611000efb30baf7ac9075b97a810000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000d00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000004c88b2db9c0000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000001231deb6f5749ef6ce6943a275a1d3e7486f4eae00000000000000000000000000000000000000000000000000000000000000202717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63980000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000009706b69de23fe0b471addd642175126b3a8bf07100000000000000000000000000000000000000000000000000000000000000205548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f620000000000000000000000000000000000000000000000000000000000000020000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000242e1a7d4d0000000000000000000000000000000000000000000000000004d4e9ace5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002017c8350211f06df98b60a62097e1a510000004f0587fa9230000000000000074000000000000000000000000000000000000000000000000000000000000002047469f21e209d43e16bd7f4ca3e96bbfe3f1a41d7d486028d515bb7b3879bf2700000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000004d4e9ace5000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xd4a8263ff90910c298d65160242551a9360b30737717ba7a06c390a75c56bae1", + "expected": { + "intent": "Swap", + "owner": "LI.FI", + "fields": [ + { + "label": "Amount to Send", + "value": "0.00136 WETH" + }, + { + "label": "Minimum Amount to receive", + "value": "1346400000000000" + }, + { + "label": "Receiver", + "value": "0xa78456D70bed1938Fb26E6106922b2F370960b61" + } + ] + } + }, + { + "description": "Swap - chain 1 (6)", + "rawTx": "0x02f906150180841dcd650084316fa3c0830c370e941231deb6f5749ef6ce6943a275a1d3e7486f4eae87077427e9fd1a73b905e4af7060fd7d7dfcbd59649897cb1bb7b725bba402ae32237aaeae566881fd62c35b91540a00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000049d74da14765d2dc73d73884bf2d1e7a49b38f18000000000000000000000000000000000000000000000000000000000044cd060000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000f6a756d7065722e65786368616e67650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a30783030303030303030303030303030303030303030303030303030303030303030303030303030303000000000000000000000000000000000000000000000000000000000000000000000a6e941eab67569ca4522f70d343714ff51d571c4000000000000000000000000a6e941eab67569ca4522f70d343714ff51d571c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000077427e9fd1a7300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000036473fc445700000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000303024d01c01231deb6f5749ef6ce6943a275a1d3e7486f4eae0000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48e000d4e800d9f800ddc800df5ac7eea737afc7c27e64f1e67fae1130b507b0472b795d73d719f99d517706c36ba8c95b6e13b0f0df50d42a34dcad98fcbdc0cc0ac64e32fa30e60ec52359de1b0000e069c162e2e844cd06f800c8077427e9fd1a73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2c80478e4bf97dca60200e60300fa447a8103596af3ad1ed8dcdff53b1dd599264cd60200e60201080300fa0902f1ac01012570a0823101012c02010800020a0b000000000000000000000000000000000000000000000000000000000003013605004005002000030a0b03000e030d0c0102000401030000000000000000000000000000000000f003e5f003e8030160050060030181030184050020050000022c0d9ff88001019905008003008a0603019d03008ac802fb432a653dcd0200e60301afcd452c162da7761f08f656b8e5ede3a3859813780200e60201bd0301af01012c0201bd0301360500e00500c0f140a35a0101e90501000200e601019905012003008a0603019d03008a020070000206070706000000000000000000000000000000000000000000000000000000e845020603020905014003022a03013605016003022abea8108b5a8707edfe1507c3a06e2735d40ef7c202007002024005018000050607080700000000000000000000000000000000000000000000000000000003025d05016003022a0501400200700200480501a0040000010201080000030000011c012500000000400129012c01080000200130013600e6070020015701600000070020018701990000000000019f01af010804000001b701bd000003000001d101da00000000400129012c01bd00002001da01e000e607002001e001e9000000002001ed01f601bd00000001f6020601bd060020020602090000080020022e023700000700200237024000000300000254025d0000080020027e028a0000030000028a02930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xf853e035367ab9e89d58e0aea73a00d50489d5b0827e748bfa8dd81d7150e7e0", + "expected": { + "intent": "Swap", + "owner": "LI.FI", + "fields": [ + { + "label": "Amount to send", + "value": "0.002098039615199859 ETH" + }, + { + "label": "Minimum to Receive", + "value": "4.508934 USDC" + }, + { + "label": "Recipient", + "value": "0x49d74da14765d2Dc73d73884bF2d1E7A49B38F18" + } + ] + } + }, + { + "description": "Swap - chain 1 (7)", + "rawTx": "0xf9055281a3841126d33b830e9b1b941231deb6f5749ef6ce6943a275a1d3e7486f4eae872e57615dd2ec81b905244630a0d8f602a5b7b1e5fca34ba9773046a76ee2828de4e29e9f091dd7581cc7ee1aeafe00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000751f9dcc942294f9a8e1b415ac5d00ef7e6a0aae000000000000000000000000000000000000000000001c669ebefc5c77deb8520000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000665786f6475730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307830303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000003ef238c36035880efbdfa239d218186b79ad1d6f0000000000000000000000003ef238c36035880efbdfa239d218186b79ad1d6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e57615dd2ec8100000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000064e0cbc5f2000000000000000000000000000000000000000000000000000064d6b7328f94000000000000000000000000000000000000000000000000000011cb89bda0dd0000000000000000000000004dd665c59007fd825d98fddabf7759f650f2ace0000000000000000000000000000000000000000000000000000000000000000000000000000000000d05a7d3448512b78fa8a9e46c4872c88c4a0d050000000000000000000000000d05a7d3448512b78fa8a9e46c4872c88c4a0d0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c974b2d0ba1716e644c1fc59982a89ddd2ff724000000000000000000000000000000000000000000000000002de0bf1ce2bc1000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ca83bd37f9000000012c974b2d0ba1716e644c1fc59982a89ddd2ff724072de0bf1ce2bc100a1d477c116dbbb300000007ae140001365084b05fa7d5028346bd21d842ed0601bab5b8000000011231deb6f5749ef6ce6943a275a1d3e7486f4eae00000000276885550003010204005401010201000201a4020e0001020300030d40000fa000ff000000000000000000000000000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec72c974b2d0ba1716e644c1fc59982a89ddd2ff7240000000000000000000000000000000000000000000000000000018080", + "txHash": "0x0a324bca85db01cf88304c1b2c53702aca7764dca144c5b8c09f05377e8f33fc", + "expected": { + "intent": "Swap", + "owner": "LI.FI", + "fields": [ + { + "label": "Amount to Send", + "value": "13043924626238593" + }, + { + "label": "Minimum to Receive", + "value": "134119268273446086162514" + }, + { + "label": "Recipient", + "value": "0x751F9DCc942294F9a8E1B415ac5d00EF7E6A0aAe" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/lombard/testsv2/calldata-lbtc-mainnet.tests.json b/registry/lombard/testsv2/calldata-lbtc-mainnet.tests.json new file mode 100644 index 000000000..2a68e5591 --- /dev/null +++ b/registry/lombard/testsv2/calldata-lbtc-mainnet.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-lbtc-mainnet.json", + "dataProvider": { + "tokens": { + "0x8236a87084f8b84306f72007f36f2618a5634494": { + "symbol": "LBTC", + "decimals": 8, + "name": "Lombard Staked Bitcoin" + } + }, + "ensNames": { + "0xe57f3834700e9fe0166c97be35e97a053d1ac5f8": "ldzx-001.eth" + } + }, + "tests": [ + { + "description": "Approve - chain 1", + "rawTx": "0x02f86d01819e8405f5e1008408890f0082cb1e948236a87084f8b84306f72007f36f2618a563449480b844095ea7b30000000000000000000000006a000f20005980200259b80c51020030400010680000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xd1b5ddd11bab1de9f798d38626ba469a35142853d4b09f0c22ea3485ff7788f6", + "expected": { + "intent": "Approve", + "owner": "Lombard Finance", + "fields": [ + { + "label": "Amount to Approve", + "value": "0 LBTC" + }, + { + "label": "Spender", + "value": "0x6A000F20005980200259B80c5102003040001068" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0x02f90a6a01031c84049facfc8306a1d7948236a87084f8b84306f72007f36f2618a563449480b90a446bc63893000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164e288fb4a67636e97dfe9e0a5f7c0ab17636a921dc777c6aa9d6665e810ce50d61feb6d1200000000000000000000000000000000000000000000000000000000000009f000000000000000000000000089e3e4e7a699d6f131d893aeef7ee143706ac23a0000000000000000000000009ece5fb1ab62d9075c4ec814b321e24d8ea021ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000064155b6b130000000000000000000000008236a87084f8b84306f72007f36f2618a5634494000000000000000000000000e75d41c7ebcd9fa6b5ba4fe6ada3d960596d6b9e000000000000000000000000000000000000000000000000000000000066a72d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000056000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006e0000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000004005e0eccdcc0825ffb7412be724377bb3e7893c79939c68b51ce04fcf25b902be3c5d2c6ddb406a656a0c5b1a2c6c8ca87845064e492b761ff04fe3b6de2511ca0000000000000000000000000000000000000000000000000000000000000040b046977cc15700729e78bc9ee8b7c82a178cfd53b9de1ee5af1c82848c2f2f0137b6d1373c1837dd8913bcbfe069394d66639434e5cf791fa3ab391bc57bb2d3000000000000000000000000000000000000000000000000000000000000004077e6fe8e87cf9429d6ad6ca61f8f04f8a09f96d21d25e951493a77c93ab27a961da88402d072e62e2ad1db1a14f202f0b9ee374429f133cefbf41c4054894c680000000000000000000000000000000000000000000000000000000000000040cc83085bcb489ef1b72a61511919de3c93185e4a75a60293ae32b6c0d6bf67403f989ad0c22a4df1cc5d9961c3f394f23a884db32a528cd1ca9728679f33b4ae00000000000000000000000000000000000000000000000000000000000000406a4e8a90e2f4bdf3fe26e7819fdec18918e1c91f2700de0e636520bf6ecb96f228aa854d171f6fe963ca1c8bbb8876971947c10bb34948ca25891d04026776530000000000000000000000000000000000000000000000000000000000000040b87756db331a2d69829788c4ea7e0a91b5e612fc9bbde98c2326f2ca4d8d73a421456d13f8b8020004af01deda4821705cfd05cef5898edbe1e6be13585413ed0000000000000000000000000000000000000000000000000000000000000040cc489ed4c2462a148c7851cfea8775b05be6801cdb14e02d0d87d933895936a4242f06e6d86e2f2ed72e086ddf3df051d26695f27924bc15fb41115278ec11540000000000000000000000000000000000000000000000000000000000000040491b7fda8a37c5d8ddb8761f043f0a926f73acabc7adb4a0df4233abf2eaf6db307e57953f86a0b21c34f45e8e7568d856c768b5f7cca56950a771dd26b67f1500000000000000000000000000000000000000000000000000000000000000409246799ec707c50839fd1c56527bcc9912de53e009c337f98d445b1da04215331fb45917de07a0d8e9ed829f29bded6dfebc1bfcaaa7748f8a56d4c31a4f644c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000404669becc31eb67540dc7838634c3d9bd7a23dd6330a29c06c4a83a044293dbad54dde7808617684e5c84b7cf2b883774ea20ed2445439b1877daffaa65c5f64d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004070b1733e14d189348224d66fb5c587b82701ef77cd425905d25e14dfab92939941a950d1b8996b73e81384e37b456eb3dce6efffdf76fb5b1632eaf682ac36500000000000000000000000000000000000000000000000000000000000000040d0fc4b52d3d35e17601aee28f037dabd3c62c7cd7b61b88ce2f36736f5be18eb3569ab183dfb647d00d23402936099bbc06723d17f3a243f1c0e130c0db75e42c0", + "txHash": "0x19e1ffea5e038700b790190323a494c3d555397f178a3700d7a0b506f1ddeedf", + "expected": { + "intent": "Mint", + "owner": "Lombard Finance", + "fields": [ + { + "label": "Payload", + "value": "0xe288fb4a67636e97dfe9e0a5f7c0ab17636a921dc777c6aa9d6665e810ce50d61feb6d1200000000000000000000000000000000000000000000000000000000000009f000000000000000000000000089e3e4e7a699d6f131d893aeef7ee143706ac23a0000000000000000000000009ece5fb1ab62d9075c4ec814b321e24d8ea021ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000064155b6b130000000000000000000000008236a87084f8b84306f72007f36f2618a5634494000000000000000000000000e75d41c7ebcd9fa6b5ba4fe6ada3d960596d6b9e000000000000000000000000000000000000000000000000000000000066a72d00000000000000000000000000000000000000000000000000000000" + }, + { + "label": "Proof", + "value": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000056000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006e0000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000000007a0000000000000000000000000000000000000000000000000000000000000004005e0eccdcc0825ffb7412be724377bb3e7893c79939c68b51ce04fcf25b902be3c5d2c6ddb406a656a0c5b1a2c6c8ca87845064e492b761ff04fe3b6de2511ca0000000000000000000000000000000000000000000000000000000000000040b046977cc15700729e78bc9ee8b7c82a178cfd53b9de1ee5af1c82848c2f2f0137b6d1373c1837dd8913bcbfe069394d66639434e5cf791fa3ab391bc57bb2d3000000000000000000000000000000000000000000000000000000000000004077e6fe8e87cf9429d6ad6ca61f8f04f8a09f96d21d25e951493a77c93ab27a961da88402d072e62e2ad1db1a14f202f0b9ee374429f133cefbf41c4054894c680000000000000000000000000000000000000000000000000000000000000040cc83085bcb489ef1b72a61511919de3c93185e4a75a60293ae32b6c0d6bf67403f989ad0c22a4df1cc5d9961c3f394f23a884db32a528cd1ca9728679f33b4ae00000000000000000000000000000000000000000000000000000000000000406a4e8a90e2f4bdf3fe26e7819fdec18918e1c91f2700de0e636520bf6ecb96f228aa854d171f6fe963ca1c8bbb8876971947c10bb34948ca25891d04026776530000000000000000000000000000000000000000000000000000000000000040b87756db331a2d69829788c4ea7e0a91b5e612fc9bbde98c2326f2ca4d8d73a421456d13f8b8020004af01deda4821705cfd05cef5898edbe1e6be13585413ed0000000000000000000000000000000000000000000000000000000000000040cc489ed4c2462a148c7851cfea8775b05be6801cdb14e02d0d87d933895936a4242f06e6d86e2f2ed72e086ddf3df051d26695f27924bc15fb41115278ec11540000000000000000000000000000000000000000000000000000000000000040491b7fda8a37c5d8ddb8761f043f0a926f73acabc7adb4a0df4233abf2eaf6db307e57953f86a0b21c34f45e8e7568d856c768b5f7cca56950a771dd26b67f1500000000000000000000000000000000000000000000000000000000000000409246799ec707c50839fd1c56527bcc9912de53e009c337f98d445b1da04215331fb45917de07a0d8e9ed829f29bded6dfebc1bfcaaa7748f8a56d4c31a4f644c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000404669becc31eb67540dc7838634c3d9bd7a23dd6330a29c06c4a83a044293dbad54dde7808617684e5c84b7cf2b883774ea20ed2445439b1877daffaa65c5f64d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004070b1733e14d189348224d66fb5c587b82701ef77cd425905d25e14dfab92939941a950d1b8996b73e81384e37b456eb3dce6efffdf76fb5b1632eaf682ac36500000000000000000000000000000000000000000000000000000000000000040d0fc4b52d3d35e17601aee28f037dabd3c62c7cd7b61b88ce2f36736f5be18eb3569ab183dfb647d00d23402936099bbc06723d17f3a243f1c0e130c0db75e42" + } + ] + } + }, + { + "description": "Redeem BTC - chain 1", + "rawTx": "0x02f8cf018201b98407de8de8841a3b71ee8302b4e5948236a87084f8b84306f72007f36f2618a563449480b8a430b93d85000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000111e316800000000000000000000000000000000000000000000000000000000000000225120b1ab9b9a724417868ad01e94f4f918cd9099445086fa5123a8489f6b200b1002000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x4d8d2ac24fc9be6666b1542934d22a08b48b96424984e6058c2022b43dd21144", + "expected": { + "intent": "Redeem BTC", + "owner": "Lombard Finance", + "fields": [ + { + "label": "Amount to Burn", + "value": "2.871914 LBTC" + }, + { + "label": "ScriptPubKey (BTC)", + "value": "0x5120b1ab9b9a724417868ad01e94f4f918cd9099445086fa5123a8489f6b200b1002" + } + ] + } + }, + { + "description": "Send - chain 1", + "rawTx": "0x02f86d01638405f5e10084114c19c083015d16948236a87084f8b84306f72007f36f2618a563449480b844a9059cbb000000000000000000000000e57f3834700e9fe0166c97be35e97a053d1ac5f80000000000000000000000000000000000000000000000000000000000a6dcefc0", + "txHash": "0x2d23ceafa0c1ce4fbc26d975cf07be716f5d675319c619c5ccb78cb4c31c4a14", + "expected": { + "intent": "Send", + "owner": "Lombard Finance", + "fields": [ + { + "label": "Amount to Send", + "value": "0.10935535 LBTC" + }, + { + "label": "Recipient", + "value": "ldzx-001.eth" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/lombard/testsv2/eip712-network-fee-authorization-mainnet.tests.json b/registry/lombard/testsv2/eip712-network-fee-authorization-mainnet.tests.json new file mode 100644 index 000000000..bf1c63c06 --- /dev/null +++ b/registry/lombard/testsv2/eip712-network-fee-authorization-mainnet.tests.json @@ -0,0 +1,75 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-network-fee-authorization-mainnet.json", + "tests": [ + { + "description": "Lombard Network Fee Authorization", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "feeApproval": [ + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "fee", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint256" + } + ] + }, + "primaryType": "feeApproval", + "domain": { + "name": "Lombard Staked Bitcoin", + "version": "1", + "chainId": 1, + "verifyingContract": "0x8236a87084f8B84306f72007F36F2618A5634494" + }, + "message": { + "chainId": 1, + "fee": "300000000000000", + "expiry": 1779321600 + } + }, + "expected": { + "intent": "Lombard Network Fee Authorization", + "owner": "Lombard Finance", + "fields": [ + { + "label": "Chain ID", + "value": "1" + }, + { + "label": "Network Fee", + "value": "0.0003 ETH" + }, + { + "label": "Expiry", + "value": "2026-05-21 00:00:00Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/lombard/testsv2/eip712-network-fee-authorization-sepolia.tests.json b/registry/lombard/testsv2/eip712-network-fee-authorization-sepolia.tests.json new file mode 100644 index 000000000..d4901922b --- /dev/null +++ b/registry/lombard/testsv2/eip712-network-fee-authorization-sepolia.tests.json @@ -0,0 +1,75 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-network-fee-authorization-sepolia.json", + "tests": [ + { + "description": "Lombard Network Fee Authorization", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "feeApproval": [ + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "fee", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint256" + } + ] + }, + "primaryType": "feeApproval", + "domain": { + "name": "Lombard Staked Bitcoin", + "version": "1", + "chainId": 11155111, + "verifyingContract": "0x731eFa688F3679688cf60A3993b8658138953ED6" + }, + "message": { + "chainId": 11155111, + "fee": 2000000000000000, + "expiry": 1782345600 + } + }, + "expected": { + "intent": "Lombard Network Fee Authorization", + "owner": "Lombard Finance", + "fields": [ + { + "label": "Chain ID", + "value": "11155111" + }, + { + "label": "Network Fee", + "value": "2000000000000000" + }, + { + "label": "Expiry", + "value": "2026-06-25 00:00:00Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/midas/testsv2/calldata-MinterVault.tests.json b/registry/midas/testsv2/calldata-MinterVault.tests.json new file mode 100644 index 000000000..a4a713096 --- /dev/null +++ b/registry/midas/testsv2/calldata-MinterVault.tests.json @@ -0,0 +1,81 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-MinterVault.json", + "dataProvider": { + "addressNames": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": "USD Coin", + "0xdac17f958d2ee523a2206206994597c13d831ec7": "Tether USD" + } + }, + "tests": [ + { + "description": "instantly buy - chain 1 (1)", + "rawTx": "0x02f8cf01820149847735940084824e01598307b20e94c21511edd1e6ecdc36e8ad4c82117033e50d592180b8a442e8866b000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000001bc16d674ec8000000000000000000000000000000000000000000000000000000038d7ea4c680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260250f404fe130dde634c4e4c4e052dd664a8a3c0", + "txHash": "0x7a6ca5d72ca371b66a98106f34550900878237822f7ae21b63433bddffabfcd7", + "expected": { + "intent": "instantly buy", + "owner": "Midas", + "fields": [ + { + "label": "You pay with", + "value": "USD Coin" + }, + { + "label": "Amount", + "value": "2 " + }, + { + "label": "Minimum to Receive", + "value": "0.001 " + }, + { + "label": "Receiver", + "value": "0x260250f404fE130DdE634C4E4c4E052Dd664a8A3" + } + ] + } + }, + { + "description": "instantly buy - chain 1 (2)", + "rawTx": "0x02f8af018203dd8402c5005f840640ab07830813cd9499361435420711723af805f08187c9e6bf79668380b884c02dd27a000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000d26ca51afe12e000000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x51a26c6e28b98488a7f08dfa043910a3b9ce301cc63f3fa5a899853217366d6c", + "expected": { + "intent": "instantly buy", + "owner": "Midas", + "fields": [ + { + "label": "You pay with", + "value": "USD Coin" + }, + { + "label": "Amount", + "value": "1 " + }, + { + "label": "Minimum to Receive", + "value": "0.9476672238 " + } + ] + } + }, + { + "description": "request buying - chain 1", + "rawTx": "0x02f88d0131843b9aca008448a8782e83efdb5694a8a5c4ff4c86a459ebbdc39c5be77833b3a15d8880b8646e26b9f8000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xd5008782eec0db9954e8fa88f2d7fc8c0625ade08426129a8eaa3a337b449cf6", + "expected": { + "intent": "Deposit Request", + "owner": "Midas", + "fields": [ + { + "label": "You pay with", + "value": "Tether USD" + }, + { + "label": "Amount", + "value": "100 " + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/midas/testsv2/calldata-RedemptionVault.tests.json b/registry/midas/testsv2/calldata-RedemptionVault.tests.json new file mode 100644 index 000000000..6b7ccc4b3 --- /dev/null +++ b/registry/midas/testsv2/calldata-RedemptionVault.tests.json @@ -0,0 +1,53 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-RedemptionVault.json", + "dataProvider": { + "addressNames": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": "USD Coin" + } + }, + "tests": [ + { + "description": "instantly redeem - chain 1", + "rawTx": "0x02f88e0181d28405f5e1008408a48640830b38c594569d7dccbf6923350521ecbc28a555a500c4f0ec80b8648b53f75e000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000008283c08bbd531624630000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xf01f3749b6092dced9d1e85612eb14c27bb69267d5379d767c4af596a03cc3e9", + "expected": { + "intent": "instantly redeem", + "owner": "Midas", + "fields": [ + { + "label": "Receive token", + "value": "USD Coin" + }, + { + "label": "Amount to redeem", + "value": "2407.570471241997755491 " + }, + { + "label": "Min receive amount", + "value": "0 " + } + ] + } + }, + { + "description": "request a redemption - chain 1", + "rawTx": "0x02f86d011a841dcd65008449fcb4528307a4c094f6e51d24f4793ac5e71e0502213a9bbe3a6d451780b844bfc2d46a000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000067c255192f22317fcc0", + "txHash": "0x81124d83ab16c0b53fd5c6be7bb1be2c653906905f78f1c880c5d87056f90bc5", + "expected": { + "intent": "request a redemption", + "owner": "Midas", + "fields": [ + { + "label": "Receive token", + "value": "USD Coin" + }, + { + "label": "mToken Amount In", + "value": "119.626110368668129276 " + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-9summits-9SUSDC11Core.tests.json b/registry/morpho/testsv2/calldata-9summits-9SUSDC11Core.tests.json new file mode 100644 index 000000000..ccb737012 --- /dev/null +++ b/registry/morpho/testsv2/calldata-9summits-9SUSDC11Core.tests.json @@ -0,0 +1,112 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-9summits-9SUSDC11Core.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x1E2aAaDcF528b9cC08F43d4fd7db488cE89F5741": { + "symbol": "9SUSDC11Core", + "decimals": 18, + "name": "9Summits USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d011b84054e0840840a21fe80830bae70941e2aaadcf528b9cc08f43d4fd7db488ce89f574180b8446e553f650000000000000000000000000000000000000000000000000000000001299a4000000000000000000000000073f9c53a8b15e43056d5599f6488ac9a8730f85dc0", + "txHash": "0x2de38d96180cb43b3e22ee77f3ad954d5621140ce2e25d4fde509185b991717b", + "expected": { + "intent": "Deposit", + "owner": "9Summits", + "fields": [ + { + "label": "Deposit asset", + "value": "19.50368 USDC" + }, + { + "label": "Share ticker", + "value": "9SUSDC11Core" + }, + { + "label": "Send shares to", + "value": "0x73F9c53A8B15e43056d5599F6488AC9a8730F85d" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b820318840bdb141a8316e360941e2aaadcf528b9cc08f43d4fd7db488ce89f574180b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x8c800511cc1f75b5769af38a6b079d4d2d11c7a9536ada01819d563e23a7aed3", + "expected": { + "intent": "Mint", + "owner": "9Summits", + "fields": [ + { + "label": "Deposit asset", + "value": "USDC" + }, + { + "label": "Minted shares", + "value": "0.000000999 9SUSDC11Core" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88d014a8402ebae408402ebae40831d4d21941e2aaadcf528b9cc08f43d4fd7db488ce89f574180b864b460af940000000000000000000000000000000000000000000000000000000001598cd10000000000000000000000002fca661c0a563a4f3af1511c80d8391a4a5de79d0000000000000000000000002fca661c0a563a4f3af1511c80d8391a4a5de79dc0", + "txHash": "0xb52e5a0680a8d17458de3ca7571ff6df65163c21c47be2de4bc068af9940bdde", + "expected": { + "intent": "Withdraw", + "owner": "9Summits", + "fields": [ + { + "label": "Withdraw exactly", + "value": "22.645969 USDC" + }, + { + "label": "To", + "value": "0x2fCa661c0a563a4f3aF1511C80d8391a4a5DE79D" + }, + { + "label": "Owner", + "value": "0x2fCa661c0a563a4f3aF1511C80d8391a4a5DE79D" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d011d84054e0840840d1cef00830bf91d941e2aaadcf528b9cc08f43d4fd7db488ce89f574180b864ba0876520000000000000000000000000000000000000000000000013ef89e790317227f00000000000000000000000073f9c53a8b15e43056d5599f6488ac9a8730f85d00000000000000000000000073f9c53a8b15e43056d5599f6488ac9a8730f85dc0", + "txHash": "0xd3af902d949fe5f118c077be7bf8584bbf36ddd9095006e3894c46042ae5ab89", + "expected": { + "intent": "Redeem", + "owner": "9Summits", + "fields": [ + { + "label": "Shares to redeem", + "value": "22.984294940865405567 9SUSDC11Core" + }, + { + "label": "To", + "value": "0x73F9c53A8B15e43056d5599F6488AC9a8730F85d" + }, + { + "label": "Owner", + "value": "0x73F9c53A8B15e43056d5599F6488AC9a8730F85d" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-MorphoBlue.tests.json b/registry/morpho/testsv2/calldata-MorphoBlue.tests.json new file mode 100644 index 000000000..032defeb3 --- /dev/null +++ b/registry/morpho/testsv2/calldata-MorphoBlue.tests.json @@ -0,0 +1,280 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-MorphoBlue.json", + "tests": [ + { + "description": "Borrow from Morpho Market - chain 1", + "rawTx": "0x02f9014f018204d3830fb3888404a433b08303872a94bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb80b9012450d8cd4b000000000000000000000000cacd6fd266af91b8aed52accc382b4e165586e290000000000000000000000003b855aa8cc56a3cbd5dbb5456f5a13ce86aa0fe8000000000000000000000000c5860e9e6b6f6e9d79dce5c5ab0f7a4b878bd431000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc0000000000000000000000000000000000000000000000000d1d507e40be8000000000000000000000000000000000000000000000000c7e657b0c9a4ee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008449f934dbfbfa050f5e7738bf2e73a8110229040000000000000000000000008449f934dbfbfa050f5e7738bf2e73a811022904c0", + "txHash": "0xd65876b37b6cfd1c36051d7e4a710f122577ca66a5b94940cf0fd481c518d756", + "expected": { + "intent": "Borrow from Morpho Market", + "owner": "Morpho DAO", + "fields": [ + { + "label": "Loan Token", + "value": "0xCAcd6fd266aF91b8AeD52aCCc382b4e165586E29" + }, + { + "label": "Collateral Token", + "value": "0x3B855AA8CC56a3cBd5dBb5456F5A13Ce86AA0fe8" + }, + { + "label": "Oracle", + "value": "0xC5860e9e6b6F6E9D79DCe5c5AB0F7A4b878Bd431" + }, + { + "label": "Irm", + "value": "0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC" + }, + { + "label": "Lltv", + "value": "945000000000000000" + }, + { + "label": "Assets", + "value": "59000000000000000000000" + }, + { + "label": "Shares", + "value": "0" + }, + { + "label": "On Behalf", + "value": "0x8449f934dbFbFA050f5E7738bf2E73a811022904" + }, + { + "label": "Receiver", + "value": "0x8449f934dbFbFA050f5E7738bf2E73a811022904" + } + ] + } + }, + { + "description": "Repay on Morpho Market - chain 1", + "rawTx": "0x02f9016f0181b1841dcd6500842b39ac8083027dd194bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb80b9014420b76e810000000000000000000000006c3ea9036406852006290770bedfcaba0e23a0e80000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000c53c90d6e9a5b69e4abf3d5ae4c79225c7fef3d2000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc0000000000000000000000000000000000000000000000000bef55718ad6000000000000000000000000000000000000000000000000000000000000d22a7d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e4916bf722d5b2d397fd2f3a925029d2c4e83b5100000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x51da07893f0ce41500eb968e8cbb353acfd493a981d1b1376c9da13bd61390d7", + "expected": { + "intent": "Repay on Morpho Market", + "owner": "Morpho DAO", + "fields": [ + { + "label": "Loan Token", + "value": "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8" + }, + { + "label": "Collateral Token", + "value": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599" + }, + { + "label": "Oracle", + "value": "0xc53c90d6E9A5B69E4ABf3d5Ae4c79225C7FeF3d2" + }, + { + "label": "Irm", + "value": "0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC" + }, + { + "label": "Lltv", + "value": "860000000000000000" + }, + { + "label": "Assets", + "value": "3526000000" + }, + { + "label": "Shares", + "value": "0" + }, + { + "label": "On Behalf", + "value": "0xE4916bF722d5B2d397fd2F3A925029d2c4e83B51" + }, + { + "label": "Data", + "value": "0x" + } + ] + } + }, + { + "description": "Supply on Morpho Market - chain 1", + "rawTx": "0x02f9016d01498305b8d8841940136a830191e794bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb80b90144a99aad89000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000038eeb52f0771140d10c4e9a9a72349a329fe8a6a000000000000000000000000ff1487bda8049a536f912e41e27b82a8a3845862000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc0000000000000000000000000000000000000000000000000bef55718ad6000000000000000000000000000000000000000000000000000000000000055d4a800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e689f793882a9fbf80b26ee16f530076e013031100000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xda4b80253bbbbec23c7dfe3349da2206ee1a04c9f4e48e21c0510f2148e6126b", + "expected": { + "intent": "Supply on Morpho Market", + "owner": "Morpho DAO", + "fields": [ + { + "label": "Loan Token", + "value": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + { + "label": "Collateral Token", + "value": "0x38EEb52F0771140d10c4E9A9a72349A329Fe8a6A" + }, + { + "label": "Oracle", + "value": "0xff1487BDa8049a536F912e41E27B82a8A3845862" + }, + { + "label": "Irm", + "value": "0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC" + }, + { + "label": "Lltv", + "value": "860000000000000000" + }, + { + "label": "Assets", + "value": "90000000" + }, + { + "label": "Shares", + "value": "0" + }, + { + "label": "On Behalf", + "value": "0xe689F793882A9FbF80B26EE16f530076E0130311" + }, + { + "label": "Data", + "value": "0x" + } + ] + } + }, + { + "description": "Supply Collateral on Morpho Market - chain 1", + "rawTx": "0x02f9014d016f8315493884036746e08301eb4594bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb80b90124238d6579000000000000000000000000dc035d45d973e3ec169d2276ddab16f1e407384f000000000000000000000000e0f63a424a4439cbe457d80e4f4b51ad25b2c56c000000000000000000000000da63266b5184d08dbfbace96267837c45d7d34da000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc00000000000000000000000000000000000000000000000008ac7230489e80000000000000000000000000000000000000000000000000000000001486f278b6000000000000000000000000f11cc888d8da84d3bf735b7b357814fd071e8b1a00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x7f8c5721ec91f85d26337087db308564f0bb8ae4683f3a8186b859a5549c6324", + "expected": { + "intent": "Supply Collateral on Morpho Market", + "owner": "Morpho DAO", + "fields": [ + { + "label": "Loan Token", + "value": "0xdC035D45d973E3EC169d2276DDab16f1e407384F" + }, + { + "label": "Collateral Token", + "value": "0xE0f63A424a4439cBE457D80E4f4b51aD25b2c56C" + }, + { + "label": "Oracle", + "value": "0xdA63266b5184D08DbFBace96267837c45D7D34dA" + }, + { + "label": "Irm", + "value": "0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC" + }, + { + "label": "Lltv", + "value": "625000000000000000" + }, + { + "label": "Assets", + "value": "88163383478" + }, + { + "label": "On Behalf", + "value": "0xf11Cc888d8Da84D3bF735b7b357814fD071e8B1A" + }, + { + "label": "Data", + "value": "0x" + } + ] + } + }, + { + "description": "Withdraw from Morpho Market - chain 1", + "rawTx": "0x02f9014f01820cae8374ff88840e3d347b8302b01494bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb80b901245c2bea49000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000003eaa0f0f0a5d3d595ae4e4b0d27f439d01c3e7b200000000000000000000000012d66602c691aa93e90415ab22fb0760695ac768000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc0000000000000000000000000000000000000000000000000cb2bba6f17b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cd0ed733213b14000000000000000000000000d7583e3cf08bbcab66f1242195227bbf9f865fda000000000000000000000000d7583e3cf08bbcab66f1242195227bbf9f865fdac0", + "txHash": "0xaed67a56efd26a49af6fc08e1674a1aca01977f345df822bb6948fdc3ed986e3", + "expected": { + "intent": "Withdraw from Morpho Market", + "owner": "Morpho DAO", + "fields": [ + { + "label": "Loan Token", + "value": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + { + "label": "Collateral Token", + "value": "0x3EAA0F0f0A5d3D595ae4e4b0D27f439d01c3E7b2" + }, + { + "label": "Oracle", + "value": "0x12d66602C691Aa93E90415aB22FB0760695AC768" + }, + { + "label": "Irm", + "value": "0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC" + }, + { + "label": "Lltv", + "value": "915000000000000000" + }, + { + "label": "Assets", + "value": "0" + }, + { + "label": "Shares", + "value": "490064251891825428" + }, + { + "label": "On Behalf", + "value": "0xd7583E3CF08bbcaB66F1242195227bBf9F865Fda" + }, + { + "label": "Receiver", + "value": "0xd7583E3CF08bbcaB66F1242195227bBf9F865Fda" + } + ] + } + }, + { + "description": "Withdraw Collateral from Morpho Market - chain 1", + "rawTx": "0x02f9012d011d830186a0840436f2f083020e7f94bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb80b901048720316d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dcee70654261af21c44c093c300ed3bb97b78192000000000000000000000000b7948b5beee825e609990484a99340d8767b420e000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc0000000000000000000000000000000000000000000000000bef55718ad60000000000000000000000000000000000000000000000000000008e1bc9bf040000000000000000000000000000b1baf4287894eb272258651e7c581d16da883dda000000000000000000000000b1baf4287894eb272258651e7c581d16da883ddac0", + "txHash": "0x676bc37ff4709660d301508e85f6e27c4bfe1c143d04f9fb18af781a6f7ff7f6", + "expected": { + "intent": "Withdraw Collateral from Morpho Market", + "owner": "Morpho DAO", + "fields": [ + { + "label": "Loan Token", + "value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + }, + { + "label": "Collateral Token", + "value": "0xDcEe70654261AF21C44c093C300eD3Bb97b78192" + }, + { + "label": "Oracle", + "value": "0xb7948b5bEEe825E609990484A99340D8767B420e" + }, + { + "label": "Irm", + "value": "0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC" + }, + { + "label": "Lltv", + "value": "860000000000000000" + }, + { + "label": "Assets", + "value": "40000000000000000" + }, + { + "label": "On Behalf", + "value": "0xB1bAf4287894eB272258651e7C581d16da883DdA" + }, + { + "label": "Receiver", + "value": "0xB1bAf4287894eB272258651e7C581d16da883DdA" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-b_protocol-reUSDC.tests.json b/registry/morpho/testsv2/calldata-b_protocol-reUSDC.tests.json new file mode 100644 index 000000000..012177ad5 --- /dev/null +++ b/registry/morpho/testsv2/calldata-b_protocol-reUSDC.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-b_protocol-reUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x0F359FD18BDa75e9c49bC027E7da59a4b01BF32a": { + "symbol": "reUSDC", + "decimals": 18, + "name": "Relend USDC" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82029d84025275d58316e360940f359fd18bda75e9c49bc027e7da59a4b01bf32a80b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000001018080", + "txHash": "0xf97c0e344a4f62e5dafeb2f70e9d65b9655c95c261d93944cd5cce5bf10d68b3", + "expected": { + "intent": "Mint", + "owner": "B.Protocol", + "fields": [ + { + "label": "Deposit asset", + "value": "USDC" + }, + { + "label": "Minted shares", + "value": "0.000000001 reUSDC" + }, + { + "label": "Mint shares to", + "value": "0x0000000000000000000000000000000000000001" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d013c847735940084888ec3388329908e940f359fd18bda75e9c49bc027e7da59a4b01bf32a80b864ba08765200000000000000000000000000000000000000000000040629730d501e9955a50000000000000000000000001fc0ad1335de20be79621556e74479398d0ffdc70000000000000000000000001fc0ad1335de20be79621556e74479398d0ffdc7c0", + "txHash": "0xa2acf4597c37717ddf34cd78280724ac88ed95c07202b58c6d9c02878a30b951", + "expected": { + "intent": "Redeem", + "owner": "B.Protocol", + "fields": [ + { + "label": "Shares to redeem", + "value": "19003.133141536476845477 reUSDC" + }, + { + "label": "To", + "value": "0x1fc0aD1335DE20bE79621556e74479398D0FFdC7" + }, + { + "label": "Owner", + "value": "0x1fc0aD1335DE20bE79621556e74479398D0FFdC7" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-b_protocol-recbBTC.tests.json b/registry/morpho/testsv2/calldata-b_protocol-recbBTC.tests.json new file mode 100644 index 000000000..ce427e56f --- /dev/null +++ b/registry/morpho/testsv2/calldata-b_protocol-recbBTC.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-b_protocol-recbBTC.json", + "dataProvider": { + "tokens": { + "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf": { + "decimals": 8, + "name": "Coinbase Wrapped BTC", + "symbol": "cbBTC" + }, + "0xB9C9158aB81f90996cAD891fFbAdfBaad733c8C6": { + "symbol": "recbBTC", + "decimals": 18, + "name": "Relend cbBTC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86e012d844db9054185036092f2428306764294b9c9158ab81f90996cad891ffbadfbaad733c8c680b8446e553f6500000000000000000000000000000000000000000000000000000000000005f000000000000000000000000017e7bb9fe7983947fdcf02c1e3d8e6c92c21da54c0", + "txHash": "0x6bf7e9490d6fb86dd836ef81f0a0e4dd82f1de4b976adabf5014d3f459d3d0fb", + "expected": { + "intent": "Deposit", + "owner": "B.Protocol", + "fields": [ + { + "label": "Deposit asset", + "value": "0.0000152 cbBTC" + }, + { + "label": "Share ticker", + "value": "recbBTC" + }, + { + "label": "Send shares to", + "value": "0x17e7bB9fe7983947FdCf02c1E3d8e6C92C21da54" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-block_analitica-bbETH.tests.json b/registry/morpho/testsv2/calldata-block_analitica-bbETH.tests.json new file mode 100644 index 000000000..2594f0c95 --- /dev/null +++ b/registry/morpho/testsv2/calldata-block_analitica-bbETH.tests.json @@ -0,0 +1,115 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-block_analitica-bbETH.json", + "dataProvider": { + "tokens": { + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0x38989BBA00BDF8181F4082995b3DEAe96163aC5D": { + "symbol": "bbETH", + "decimals": 18, + "name": "Flagship ETH" + } + }, + "ensNames": { + "0x71912cBe10302B66F14F4D39f6329986798aaA6a": "duelinggalois.eth" + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86e01268405f5e1008504da7c7523830730789438989bba00bdf8181f4082995b3deae96163ac5d80b8446e553f6500000000000000000000000000000000000000000000000000b1a2bc2ec500000000000000000000000000008949ac8bae1389179cc222d9ec21a1fc2f69c786c0", + "txHash": "0x01062eec602faa1abff730e565e4b9a4ae29cd68552c876206b3fe8a983fb060", + "expected": { + "intent": "Deposit", + "owner": "Block Analitica", + "fields": [ + { + "label": "Deposit asset", + "value": "0.05 WETH" + }, + { + "label": "Share ticker", + "value": "bbETH" + }, + { + "label": "Send shares to", + "value": "0x8949ac8bae1389179Cc222d9eC21a1Fc2F69C786" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b8202a68402708be58316e3609438989bba00bdf8181f4082995b3deae96163ac5d80b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000001018080", + "txHash": "0xa81b7d46981f96643d90067dbb82c052d606d535634e63f6882bc11f8f8236e6", + "expected": { + "intent": "Mint", + "owner": "Block Analitica", + "fields": [ + { + "label": "Deposit asset", + "value": "WETH" + }, + { + "label": "Minted shares", + "value": "0.000000001 bbETH" + }, + { + "label": "Mint shares to", + "value": "0x0000000000000000000000000000000000000001" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88e01288405f5e100850880052f778304fdfb9438989bba00bdf8181f4082995b3deae96163ac5d80b864b460af94000000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000008949ac8bae1389179cc222d9ec21a1fc2f69c7860000000000000000000000008949ac8bae1389179cc222d9ec21a1fc2f69c786c0", + "txHash": "0x8fe3a3dfa623a2bb078b2e006554897139935dbec99ca2b103a66f3580c9d061", + "expected": { + "intent": "Withdraw", + "owner": "Block Analitica", + "fields": [ + { + "label": "Withdraw exactly", + "value": "0.0125 WETH" + }, + { + "label": "To", + "value": "0x8949ac8bae1389179Cc222d9eC21a1Fc2F69C786" + }, + { + "label": "Owner", + "value": "0x8949ac8bae1389179Cc222d9eC21a1Fc2F69C786" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f018201388405f5e10084087538e083037bce9438989bba00bdf8181f4082995b3deae96163ac5d80b864ba08765200000000000000000000000000000000000000000000000048cd63c52f59d43f00000000000000000000000071912cbe10302b66f14f4d39f6329986798aaa6a00000000000000000000000071912cbe10302b66f14f4d39f6329986798aaa6ac0", + "txHash": "0x5d2bf1c4f8d76914f00c1fce2252f6d4c7f1008e78b82603014d70d70b83fe38", + "expected": { + "intent": "Redeem", + "owner": "Block Analitica", + "fields": [ + { + "label": "Shares to redeem", + "value": "5.245958839510619199 bbETH" + }, + { + "label": "To", + "value": "duelinggalois.eth" + }, + { + "label": "Owner", + "value": "duelinggalois.eth" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-block_analitica-bbUSDC.tests.json b/registry/morpho/testsv2/calldata-block_analitica-bbUSDC.tests.json new file mode 100644 index 000000000..1bdf3bd9d --- /dev/null +++ b/registry/morpho/testsv2/calldata-block_analitica-bbUSDC.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-block_analitica-bbUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x186514400e52270cef3D80e1c6F8d10A75d47344": { + "symbol": "bbUSDC", + "decimals": 18, + "name": "Flagship USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d013084054e08408489173700830645ca94186514400e52270cef3d80e1c6f8d10a75d4734480b8446e553f65000000000000000000000000000000000000000000000000000000001149e2b80000000000000000000000004d4ece693d1d30d7e040f7325594f9e71786cb26c0", + "txHash": "0xbe1a29e83c5e5183ce1e5fd6c790151c81b5756fba1f7f3d8f117021ac3be836", + "expected": { + "intent": "Deposit", + "owner": "Block Analitica", + "fields": [ + { + "label": "Deposit asset", + "value": "290.05484 USDC" + }, + { + "label": "Share ticker", + "value": "bbUSDC" + }, + { + "label": "Send shares to", + "value": "0x4D4eCe693d1d30d7E040f7325594F9E71786cB26" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d013184054e0840841e65fb80830644f394186514400e52270cef3d80e1c6f8d10a75d4734480b864ba08765200000000000000000000000000000000000000000000000ef8a99b2b30746e1e0000000000000000000000004d4ece693d1d30d7e040f7325594f9e71786cb260000000000000000000000004d4ece693d1d30d7e040f7325594f9e71786cb26c0", + "txHash": "0x022a4ef3056fc42e6337efcfd7536192a8090c6c4ec2e2dbb82f83b07dd8f35a", + "expected": { + "intent": "Redeem", + "owner": "Block Analitica", + "fields": [ + { + "label": "Shares to redeem", + "value": "276.172440234202787358 bbUSDC" + }, + { + "label": "To", + "value": "0x4D4eCe693d1d30d7E040f7325594F9E71786cB26" + }, + { + "label": "Owner", + "value": "0x4D4eCe693d1d30d7E040f7325594F9E71786cB26" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-block_analitica-bbUSDT.tests.json b/registry/morpho/testsv2/calldata-block_analitica-bbUSDT.tests.json new file mode 100644 index 000000000..759683fa5 --- /dev/null +++ b/registry/morpho/testsv2/calldata-block_analitica-bbUSDT.tests.json @@ -0,0 +1,92 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-block_analitica-bbUSDT.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0x2C25f6C25770fFEC5959D34B94Bf898865e5D6b1": { + "symbol": "bbUSDT", + "decimals": 18, + "name": "Flagship USDT" + } + }, + "ensNames": { + "0xd93f808E16EeEAFcc342a55634FBA3B77E9231b3": "ccamborde.eth" + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d011184054e0840840bebc20083124f80942c25f6c25770ffec5959d34b94bf898865e5d6b180b8446e553f6500000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000bbaaa6f7f8c6d95efb8eb58c96084b0fe8e2df74c0", + "txHash": "0x667a1de923cbd76a75adc7735add68fc22da1bd05f5feee8e85968fc809ac912", + "expected": { + "intent": "Deposit", + "owner": "Block Analitica", + "fields": [ + { + "label": "Deposit asset", + "value": "0.1 USDT" + }, + { + "label": "Share ticker", + "value": "bbUSDT" + }, + { + "label": "Send shares to", + "value": "0xBBaAa6f7f8C6d95EfB8eB58c96084b0FE8E2dF74" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b8202348409c7c66c8316e360942c25f6c25770ffec5959d34b94bf898865e5d6b180b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x0309d43a20035008d3fb0183a3142dcb70a9038f8505b3037393adaf57346b61", + "expected": { + "intent": "Mint", + "owner": "Block Analitica", + "fields": [ + { + "label": "Deposit asset", + "value": "USDT" + }, + { + "label": "Minted shares", + "value": "0.000000001 bbUSDT" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d014c8405f5e100840ef902008303d0dd942c25f6c25770ffec5959d34b94bf898865e5d6b180b864ba08765200000000000000000000000000000000000000000000000594bce7778d012cc1000000000000000000000000d93f808e16eeeafcc342a55634fba3b77e9231b3000000000000000000000000d93f808e16eeeafcc342a55634fba3b77e9231b3c0", + "txHash": "0xa07e89c430c6b4088030a02cadd09e49bae133e605289ead6e15734566bb147b", + "expected": { + "intent": "Redeem", + "owner": "Block Analitica", + "fields": [ + { + "label": "Shares to redeem", + "value": "102.951416082435484865 bbUSDT" + }, + { + "label": "To", + "value": "ccamborde.eth" + }, + { + "label": "Owner", + "value": "ccamborde.eth" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtAUSDc.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtAUSDc.tests.json new file mode 100644 index 000000000..67fbf8ad3 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtAUSDc.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtAUSDc.json", + "dataProvider": { + "tokens": { + "0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a": { + "decimals": 6, + "name": "AUSD", + "symbol": "AUSD" + }, + "0x1B4cd53a1A8e5F50aB6320EF34E5fB4D3df7B6f6": { + "symbol": "gtAUSDc", + "decimals": 18, + "name": "Gauntlet AUSD Core" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b8202c684026d489d8316e360941b4cd53a1a8e5f50ab6320ef34e5fb4d3df7b6f680b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000001018080", + "txHash": "0x7d5646c715925fe645969e6745edab4eac9de3a100ee84b40df996ad9099532e", + "expected": { + "intent": "Mint", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "AUSD" + }, + { + "label": "Minted shares", + "value": "0.000000001 gtAUSDc" + }, + { + "label": "Mint shares to", + "value": "0x0000000000000000000000000000000000000001" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtDAIcore.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtDAIcore.tests.json new file mode 100644 index 000000000..71c18d19a --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtDAIcore.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtDAIcore.json", + "dataProvider": { + "tokens": { + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "decimals": 18, + "name": "Dai Stablecoin", + "symbol": "DAI" + }, + "0x500331c9fF24D9d11aee6B07734Aa72343EA74a5": { + "symbol": "gtDAIcore", + "decimals": 18, + "name": "Gauntlet DAI Core" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f8840150839896808403dc01b0830d9dc794500331c9ff24d9d11aee6b07734aa72343ea74a580b85c6e553f6500000000000000000000000000000000000000000000000a9016758fa56b8231000000000000000000000000b69b0242d57d01b0f710c33a311435234050f5b91f45ae883a71ba4b61ba1cce41fee9d8535a2a0fffc69debc0", + "txHash": "0x9209f8dcb3a2ffd6f16e7c2d3424b3f6bb9e282806197fdd839aa1b840f43443", + "expected": { + "intent": "Deposit", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "194.850055987860832817 DAI" + }, + { + "label": "Share ticker", + "value": "gtDAIcore" + }, + { + "label": "Send shares to", + "value": "0xB69b0242d57d01b0f710C33a311435234050F5b9" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtLRTcore.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtLRTcore.tests.json new file mode 100644 index 000000000..d7beb58da --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtLRTcore.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtLRTcore.json", + "dataProvider": { + "tokens": { + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0x4881Ef0BF6d2365D3dd6499ccd7532bcdBCE0658": { + "symbol": "gtLRTcore", + "decimals": 18, + "name": "Gauntlet LRT Core" + } + } + }, + "tests": [ + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d0102841dcd65008451e5938083134aff944881ef0bf6d2365d3dd6499ccd7532bcdbce065880b864ba0876520000000000000000000000000000000000000000000000081dc0379cc79c1898000000000000000000000000029f7fb1ad4e7953ac2f4f52f7b37b05a62d400f000000000000000000000000029f7fb1ad4e7953ac2f4f52f7b37b05a62d400fc0", + "txHash": "0x93ec71f4cdfa76bc16d40b5ea9349a8e25788207048fd79c9b13e4f90a8e46a6", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "149.717727158808090776 gtLRTcore" + }, + { + "label": "To", + "value": "0x029f7Fb1ad4E7953AC2F4f52F7B37b05a62D400F" + }, + { + "label": "Owner", + "value": "0x029f7Fb1ad4E7953AC2F4f52F7B37b05a62D400F" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtUSDAcore.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtUSDAcore.tests.json new file mode 100644 index 000000000..debb81d39 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtUSDAcore.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtUSDAcore.json", + "dataProvider": { + "tokens": { + "0x0000206329b97DB379d5E1Bf586BbDB969C63274": { + "decimals": 18, + "name": "USDA", + "symbol": "USDA" + }, + "0x125D41A6e5dbf455cD9Df8F80BCC6fd172D52Cc6": { + "symbol": "gtUSDAcore", + "decimals": 18, + "name": "Gauntlet USDA Core" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b8202cb8402844dd58316e36094125d41a6e5dbf455cd9df8f80bcc6fd172d52cc680b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000001018080", + "txHash": "0x69729eae9459cba89d0b99216f1d0f03958993af80d4df0df7249aa71d21d47f", + "expected": { + "intent": "Mint", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "USDA" + }, + { + "label": "Minted shares", + "value": "0.000000001 gtUSDAcore" + }, + { + "label": "Mint shares to", + "value": "0x0000000000000000000000000000000000000001" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f01820683841d303aa08421abb0a08309f91e94125d41a6e5dbf455cd9df8f80bcc6fd172d52cc680b864ba0876520000000000000000000000000000000000000000000000001bc16d674c0bfd57000000000000000000000000fda462548ce04282f4b6d6619823a7c64fdc0185000000000000000000000000fda462548ce04282f4b6d6619823a7c64fdc0185c0", + "txHash": "0x0a0cb71ed10dff4e3eb226df8b8d37a0686821d647aa89735c2ca8301021c389", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "1.999999999954124119 gtUSDAcore" + }, + { + "label": "To", + "value": "0xfdA462548Ce04282f4B6D6619823a7C64Fdc0185" + }, + { + "label": "Owner", + "value": "0xfdA462548Ce04282f4B6D6619823a7C64Fdc0185" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtUSDC.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtUSDC.tests.json new file mode 100644 index 000000000..9cc175cef --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtUSDC.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xdd0f28e19C1780eb6396170735D45153D261490d": { + "symbol": "gtUSDC", + "decimals": 18, + "name": "Gauntlet USDC Prime" + } + } + }, + "tests": [ + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d01098405f5e1008409e1e8408307382f94dd0f28e19c1780eb6396170735d45153d261490d80b864ba087652000000000000000000000000000000000000000000001202956385d14d904f54000000000000000000000000e0f2fa025f38241ebff5396da4e83ae8320d04d4000000000000000000000000e0f2fa025f38241ebff5396da4e83ae8320d04d4c0", + "txHash": "0x1247d987c9f8a0d7f9a74c67e1f2ec7ac90a865408035afd2faa16b49e88779c", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "85050.254774469374529364 gtUSDC" + }, + { + "label": "To", + "value": "0xe0F2Fa025F38241EBFf5396Da4E83ae8320d04D4" + }, + { + "label": "Owner", + "value": "0xe0F2Fa025F38241EBFf5396Da4E83ae8320d04D4" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtUSDCcore.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtUSDCcore.tests.json new file mode 100644 index 000000000..73e3eaeab --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtUSDCcore.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtUSDCcore.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x8eB67A509616cd6A7c1B3c8C21D48FF57df3d458": { + "symbol": "gtUSDCcore", + "decimals": 18, + "name": "Gauntlet USDC Core" + } + } + }, + "tests": [ + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d0153841dcd65008432685ba0831263d7948eb67a509616cd6a7c1b3c8c21d48ff57df3d45880b864ba0876520000000000000000000000000000000000000000000000bb352599a63a87a9770000000000000000000000001d657291293c5a14945680284f406629b527556b0000000000000000000000001d657291293c5a14945680284f406629b527556bc0", + "txHash": "0xe2d000e5c462aa36cffda0bb49bff613aa20010bdf792766a5208d393bcc0fb0", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "3453.370777781060217207 gtUSDCcore" + }, + { + "label": "To", + "value": "0x1d657291293C5A14945680284f406629B527556b" + }, + { + "label": "Owner", + "value": "0x1d657291293C5A14945680284f406629B527556b" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtUSDT.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtUSDT.tests.json new file mode 100644 index 000000000..885510d44 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtUSDT.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtUSDT.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0x8CB3649114051cA5119141a34C200D65dc0Faa73": { + "symbol": "gtUSDT", + "decimals": 18, + "name": "Gauntlet USDT Prime" + } + } + }, + "tests": [ + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88c010583a84df0840987e1608309374c948cb3649114051ca5119141a34c200d65dc0faa7380b864ba087652000000000000000000000000000000000000000000000143a93f9a5acd41ffec00000000000000000000000039148dfb5bc9313b6146d9aebc296ec8b2f0e81800000000000000000000000039148dfb5bc9313b6146d9aebc296ec8b2f0e818c0", + "txHash": "0xf66040050fc5bac02e7ce3eccdbec7260e865d59af918c9a7ae00dff99b33b78", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "5970.49397183890915326 gtUSDT" + }, + { + "label": "To", + "value": "0x39148dFB5bC9313B6146D9aEbc296eC8b2f0E818" + }, + { + "label": "Owner", + "value": "0x39148dFB5bC9313B6146D9aEbc296eC8b2f0E818" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtWBTCc.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtWBTCc.tests.json new file mode 100644 index 000000000..d5a2d1890 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtWBTCc.tests.json @@ -0,0 +1,92 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtWBTCc.json", + "dataProvider": { + "tokens": { + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "decimals": 8, + "name": "Wrapped BTC", + "symbol": "WBTC" + }, + "0x443df5eEE3196e9b2Dd77CaBd3eA76C3dee8f9b2": { + "symbol": "gtWBTCc", + "decimals": 18, + "name": "Gauntlet WBTC Core" + } + }, + "ensNames": { + "0x0147A2D38AcC12B88432F49B9A1dAc86f6793220": "investingdams.eth" + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f8850122847735940084797e5ec88305556694443df5eee3196e9b2dd77cabd3ea76c3dee8f9b280b85c6e553f6500000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000413f43ea142a4dd1690fb8897b5e61011be93dec96d0dba96dab518e61ba1cce41fee9d8535a2a0fffc69debc0", + "txHash": "0x86018a1c533756d7b31d353c3b36611e2e43a1ceb9a4685fe0ba564d842717f9", + "expected": { + "intent": "Deposit", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "0.00001 WBTC" + }, + { + "label": "Share ticker", + "value": "gtWBTCc" + }, + { + "label": "Send shares to", + "value": "0x413F43eA142a4dd1690fb8897b5e61011Be93DEC" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82035c841cabf4e88316e36094443df5eee3196e9b2dd77cabd3ea76c3dee8f9b280b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xeb33c156d68f9f9decdc9ce6a5206e6e0899a1348c56aef2b7f66ad912f305a6", + "expected": { + "intent": "Mint", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "WBTC" + }, + { + "label": "Minted shares", + "value": "0.000000999 gtWBTCc" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f018202568415c60920841866f2c0830911d094443df5eee3196e9b2dd77cabd3ea76c3dee8f9b280b864ba0876520000000000000000000000000000000000000000000000000012ff6a45b9f9080000000000000000000000000147a2d38acc12b88432f49b9a1dac86f67932200000000000000000000000000147a2d38acc12b88432f49b9a1dac86f6793220c0", + "txHash": "0x3e6418f61093aea2776e32a2f01d95bfb480af946996d45590566dcf567745cc", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.00534738148222388 gtWBTCc" + }, + { + "label": "To", + "value": "investingdams.eth" + }, + { + "label": "Owner", + "value": "investingdams.eth" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtWETH.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtWETH.tests.json new file mode 100644 index 000000000..f0da04adc --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtWETH.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtWETH.json", + "dataProvider": { + "tokens": { + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0x2371e134e3455e0593363cBF89d3b6cf53740618": { + "symbol": "gtWETH", + "decimals": 18, + "name": "Gauntlet WETH Prime" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f88401388336ee7f84067cdbbb83090aab942371e134e3455e0593363cbf89d3b6cf5374061880b85c6e553f650000000000000000000000000000000000000000000000003e7336287142000000000000000000000000000090deceec188094f6f6c1ef446d843f70abfc92cb798a57c245e9549d61ba1cce41fee9d8535a2a0fffc69debc0", + "txHash": "0xb4ad814583934261d841bd4c30e7cc3d2e42c0fa156119dbe24603738c3dc059", + "expected": { + "intent": "Deposit", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "4.5 WETH" + }, + { + "label": "Share ticker", + "value": "gtWETH" + }, + { + "label": "Send shares to", + "value": "0x90dECEec188094f6f6C1eF446D843F70abfC92Cb" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtWETHe.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtWETHe.tests.json new file mode 100644 index 000000000..a4c9c892b --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtWETHe.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtWETHe.json", + "dataProvider": { + "tokens": { + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0x1e6ffa4e9F63d10B8820A3ab52566Af881Dab53c": { + "symbol": "gtWETHe", + "decimals": 18, + "name": "Gauntlet WETH Ecosystem" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86e0181d08435a4e902843a676e0283062d5c941e6ffa4e9f63d10b8820a3ab52566af881dab53c80b8446e553f6500000000000000000000000000000000000000000000000000071afd498d00000000000000000000000000001cce18de074d0729459d81cf0a3e877456c8be3bc0", + "txHash": "0x3ed9299d9e7a06bbe890aaa4b104c94351a02ed6a7e2c1b28e51bd1b5e7c9cbc", + "expected": { + "intent": "Deposit", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "0.002 WETH" + }, + { + "label": "Share ticker", + "value": "gtWETHe" + }, + { + "label": "Send shares to", + "value": "0x1ccE18De074d0729459D81cf0A3e877456C8be3B" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82021c84063b9f898316e360941e6ffa4e9f63d10b8820a3ab52566af881dab53c80b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x2ed3ca2030df9e09365e49aa4aa5c91bff6800ffdff1a46971967a41968ef513", + "expected": { + "intent": "Mint", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "WETH" + }, + { + "label": "Minted shares", + "value": "0.000000001 gtWETHe" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f0182012d8406b316808409bbc2a08307d21d941e6ffa4e9f63d10b8820a3ab52566af881dab53c80b864ba0876520000000000000000000000000000000000000000000000000006fbcf04406a270000000000000000000000001cce18de074d0729459d81cf0a3e877456c8be3b0000000000000000000000001cce18de074d0729459d81cf0a3e877456c8be3bc0", + "txHash": "0xe9cd53415212eb5b6f02296a0bc5ce0fcdacc0096c38e6630627727f5d21c3cf", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.001965716408396327 gtWETHe" + }, + { + "label": "To", + "value": "0x1ccE18De074d0729459D81cf0A3e877456C8be3B" + }, + { + "label": "Owner", + "value": "0x1ccE18De074d0729459D81cf0A3e877456C8be3B" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtcbBTCc.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtcbBTCc.tests.json new file mode 100644 index 000000000..9766caac1 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtcbBTCc.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtcbBTCc.json", + "dataProvider": { + "tokens": { + "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf": { + "decimals": 8, + "name": "Coinbase Wrapped BTC", + "symbol": "cbBTC" + }, + "0xF587f2e8AfF7D76618d3B6B4626621860FbD54e3": { + "symbol": "gtcbBTCc", + "decimals": 18, + "name": "Gauntlet cbBTC Core" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d01818983030d43840337c9fd83063c2194f587f2e8aff7d76618d3b6b4626621860fbd54e380b8446e553f65000000000000000000000000000000000000000000000000000000000000014d00000000000000000000000051b5871fcf177189f2ee32966c258997ba42e216c0", + "txHash": "0x12b2ffb5ca5173774244d1ad125b6a8232784c1f97ca84b391579f3591cdfd8d", + "expected": { + "intent": "Deposit", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "0.00000333 cbBTC" + }, + { + "label": "Share ticker", + "value": "gtcbBTCc" + }, + { + "label": "Send shares to", + "value": "0x51b5871FCF177189F2Ee32966C258997bA42e216" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82025c840b5cf3628316e36094f587f2e8aff7d76618d3b6b4626621860fbd54e380b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xad6981a3d3b2df39c5e6297c3998d154b4691d3eb35b193b9468fd0954f99798", + "expected": { + "intent": "Mint", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "cbBTC" + }, + { + "label": "Minted shares", + "value": "0.000000001 gtcbBTCc" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gteUSDc.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gteUSDc.tests.json new file mode 100644 index 000000000..f567107cf --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gteUSDc.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gteUSDc.json", + "dataProvider": { + "tokens": { + "0xA0d69E286B938e21CBf7E51D71F6A4c8918f482F": { + "decimals": 18, + "name": "Electronic Dollar", + "symbol": "eUSD" + }, + "0xc080f56504e0278828A403269DB945F6c6D6E014": { + "symbol": "gteUSDc", + "decimals": 18, + "name": "Gauntlet eUSD Core" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f901d90181f4830f4240847aba8b5f83085b5594c080f56504e0278828a403269db945f6c6d6e01480b901af6e553f65000000000000000000000000000000000000000000000036303be2bbb864123e0000000000000000000000004521184ccf3451179372ebe495dbe93f1444d7f2e0f70dfc6bfe998fbefe82f04b8fa55cdc007864eed36e6a327a4395ee580e24f6192f52fb94831f69b1d4184abcb6633cb30a1c9db7f91c759d13092d98f8a898a8608ec9a279cc00f16acd61a97d5bae4baa3d029570284086a3d33cc71a6cceca27f811640504e300e87b226469737472696275746f724964223a224d704f6756446e63222c22616374696f6e223a226465706f736974222c226f70706f7274756e6974794964223a2239313966323561622d333634312d343235332d393233642d326530356366623838313335222c22616d6f756e74223a22393939353939383030383133363432353834363338222c22616d6f756e74557364223a223939382e3739222c22746f6b656e496e223a22307841306436394532383642393338653231434266374535314437314636413463383931386634383246222c22746f6b656e496e446563696d616c73223a31387d0001010cf09f90a24561726e0000000000000000deadbeefc0", + "txHash": "0x40a52b0f350f80fb2cd79342b34a4a38f4a968025ef14484a7cce655577127ea", + "expected": { + "intent": "Deposit", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "999.599800813642584638 eUSD" + }, + { + "label": "Share ticker", + "value": "gteUSDc" + }, + { + "label": "Send shares to", + "value": "0x4521184Ccf3451179372EBE495dBe93F1444d7f2" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d010b8405f5e100840b1ab66083085d6f94c080f56504e0278828a403269db945f6c6d6e01480b864ba08765200000000000000000000000000000000000000000000013560bfde1c76c34d2c000000000000000000000000a55cc19e50234b346bdee93b6a2191dcff48acc4000000000000000000000000a55cc19e50234b346bdee93b6a2191dcff48acc4c0", + "txHash": "0xcf4cbef81058eaf8723af911a9784eb536cbc675d576f7fc9b32bb8baafe924b", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "5707.01545373827722782 gteUSDc" + }, + { + "label": "To", + "value": "0xA55CC19E50234b346Bdee93b6A2191DCff48ACc4" + }, + { + "label": "Owner", + "value": "0xA55CC19E50234b346Bdee93b6A2191DCff48ACc4" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtmsETHc.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtmsETHc.tests.json new file mode 100644 index 000000000..5f5cfbd30 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtmsETHc.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtmsETHc.json", + "dataProvider": { + "tokens": { + "0x64351fC9810aDAd17A690E4e1717Df5e7e085160": { + "decimals": 18, + "name": "Metronome Synth ETH", + "symbol": "msETH" + }, + "0x78B18E07dc43017fcEaabaD0751d6464c0F56b25": { + "symbol": "gtmsETHc", + "decimals": 18, + "name": "Metronome msETH Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f87001820bc784c8df1bc9850a4c5808018304e2d79478b18e07dc43017fceaabad0751d6464c0f56b2580b8446e553f6500000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000df826ff6518e609e4cee86299d40611c148099d5c0", + "txHash": "0x369870a7cee9a9bac7ea1c17d125411b004df0078b942a32ac8cf9a780e20a12", + "expected": { + "intent": "Deposit", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "0.001 msETH" + }, + { + "label": "Share ticker", + "value": "gtmsETHc" + }, + { + "label": "Send shares to", + "value": "0xdf826ff6518e609E4cEE86299d40611C148099d5" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82024e84081e398e8316e3609478b18e07dc43017fceaabad0751d6464c0f56b2580b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x6fd32d19821849b2c9113bc1b2252f3f0631827ecfe02aabb15459c9003eda57", + "expected": { + "intent": "Mint", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "msETH" + }, + { + "label": "Minted shares", + "value": "0.000000001 gtmsETHc" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtmsUSDc.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtmsUSDc.tests.json new file mode 100644 index 000000000..57921b9b0 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtmsUSDc.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtmsUSDc.json", + "dataProvider": { + "tokens": { + "0xab5eB14c09D416F0aC63661E57EDB7AEcDb9BEfA": { + "decimals": 18, + "name": "Metronome Synth USD", + "symbol": "msUSD" + }, + "0x6859B34a9379122d25A9FA46f0882d434fee36c3": { + "symbol": "gtmsUSDc", + "decimals": 18, + "name": "Metronome msUSD Vault" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82026e840517d50b8316e360946859b34a9379122d25a9fa46f0882d434fee36c380b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xd6ecf1d7109c6c8220067de7340c1ba8bf6cdfac9f4c525fb24acfbdf2aeb769", + "expected": { + "intent": "Mint", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "msUSD" + }, + { + "label": "Minted shares", + "value": "0.000000001 gtmsUSDc" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-gtusdcf.tests.json b/registry/morpho/testsv2/calldata-gauntlet-gtusdcf.tests.json new file mode 100644 index 000000000..4f3a43e7d --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-gtusdcf.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-gtusdcf.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e": { + "symbol": "gtusdcf", + "decimals": 18, + "name": "Gauntlet USDC Frontier" + } + } + }, + "tests": [ + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88c0129834c4b4084085e4420831e848094c582f04d8a82795aa2ff9c8bb4c1c889fe7b754e80b864b460af94000000000000000000000000000000000000000000000000000000001e7cdb860000000000000000000000003cf3c6a96357e26de5c6f8be745dc453aad592490000000000000000000000002ce42f77f6f762fa3247bb2ad4d0f0c962f0c8a3c0", + "txHash": "0x85756e157b277558686dd008c1e17d2f40fc7a4e674631460d5797191f3e772f", + "expected": { + "intent": "Withdraw", + "owner": "Gauntlet", + "fields": [ + { + "label": "Withdraw exactly", + "value": "511.499142 USDC" + }, + { + "label": "To", + "value": "0x3cf3c6a96357e26DE5c6F8Be745DC453AAD59249" + }, + { + "label": "Owner", + "value": "0x2ce42f77f6F762fA3247bb2Ad4D0f0C962F0c8A3" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f8a101290284105c168b831c052e94c582f04d8a82795aa2ff9c8bb4c1c889fe7b754e80b87cba08765200000000000000000000000000000000000000000000114ecd3b46c803abff15000000000000000000000000b220f968e2f89c8f2372478cc28ff6384f3fc342000000000000000000000000b220f968e2f89c8f2372478cc28ff6384f3fc342ee2d0735dbe1e42c61ba1cce41fee9d8535a2a0fffc69debc0", + "txHash": "0xc942acb9dbb2b28ffad547027a17d7b9dbbbb918035dfe8917eca83ccb82831d", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "81733.864738159583821589 gtusdcf" + }, + { + "label": "To", + "value": "0xb220f968e2f89C8f2372478CC28ff6384F3FC342" + }, + { + "label": "Owner", + "value": "0xb220f968e2f89C8f2372478CC28ff6384F3FC342" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-mhyETH.tests.json b/registry/morpho/testsv2/calldata-gauntlet-mhyETH.tests.json new file mode 100644 index 000000000..d32bb65ca --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-mhyETH.tests.json @@ -0,0 +1,69 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-mhyETH.json", + "dataProvider": { + "tokens": { + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0x701907283a57FF77E255C3f1aAD790466B8CE4ef": { + "symbol": "mhyETH", + "decimals": 18, + "name": "Index Coop hyETH" + } + }, + "addressNames": { + "0x3006ef6777ccC79C3aF305101Fe0B3D14bd47b59": "capitalistarebelde.et h" + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82021a84069b9be18316e36094701907283a57ff77e255c3f1aad790466b8ce4ef80b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x75b5a6ac9ac2ab1ecacc84b17cde381cf69c2366b2f9099a4b8e826c3560ae66", + "expected": { + "intent": "Mint", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "WETH" + }, + { + "label": "Minted shares", + "value": "0.000000001 mhyETH" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f0182064a8402625a00840ac6ca00830af9c294701907283a57ff77e255c3f1aad790466b8ce4ef80b864ba087652000000000000000000000000000000000000000000000000037c03009a9eccfb0000000000000000000000003006ef6777ccc79c3af305101fe0b3d14bd47b590000000000000000000000003006ef6777ccc79c3af305101fe0b3d14bd47b59c0", + "txHash": "0xab3a6e91905c418c656865f832b945a07ef94312e575606db2835ea15fbb95f4", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.251078980354886907 mhyETH" + }, + { + "label": "To", + "value": "capitalistarebelde.et h" + }, + { + "label": "Owner", + "value": "capitalistarebelde.et h" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-midasUSDC.tests.json b/registry/morpho/testsv2/calldata-gauntlet-midasUSDC.tests.json new file mode 100644 index 000000000..0eacc0b62 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-midasUSDC.tests.json @@ -0,0 +1,69 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-midasUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xA8875aaeBc4f830524e35d57F9772FfAcbdD6C45": { + "symbol": "gtusdcrwa", + "decimals": 18, + "name": "Gauntlet USDC RWA" + } + }, + "ensNames": { + "0x81eb46BEFd6089B6ED8F6d791d89aFdA17f81E20": "outputlayer.eth" + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b820345843787b8908316e36094a8875aaebc4f830524e35d57f9772ffacbdd6c4580b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x44fa0c901326b313ab44b2fce5fababd1c1f1751d1602c28d5deee755f102e03", + "expected": { + "intent": "Mint", + "owner": "Gauntlet", + "fields": [ + { + "label": "Deposit asset", + "value": "USDC" + }, + { + "label": "Minted shares", + "value": "0.000000999 gtusdcrwa" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f018203aa8405f5e1008408de8200830801a794a8875aaebc4f830524e35d57f9772ffacbdd6c4580b864ba0876520000000000000000000000000000000000000000000000004367d4b95f6ba38900000000000000000000000081eb46befd6089b6ed8f6d791d89afda17f81e2000000000000000000000000081eb46befd6089b6ed8f6d791d89afda17f81e20c0", + "txHash": "0xd71d67d537bdd76b25c2f3531279e3b497231c468bc16612fa24ad2703fce2c7", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "4.857084615777297289 gtusdcrwa" + }, + { + "label": "To", + "value": "outputlayer.eth" + }, + { + "label": "Owner", + "value": "outputlayer.eth" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-resolvUSDC.tests.json b/registry/morpho/testsv2/calldata-gauntlet-resolvUSDC.tests.json new file mode 100644 index 000000000..30d4a0ed8 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-resolvUSDC.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-resolvUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x132E6C9C33A62D7727cd359b1f51e5B566E485Eb": { + "symbol": "resolvUSDC", + "decimals": 18, + "name": "Resolv USDC" + } + } + }, + "tests": [ + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88b011482eec184082523ff8307950394132e6c9c33a62d7727cd359b1f51e5b566e485eb80b864ba0876520000000000000000000000000000000000000000000000000002c68d56b25b7d000000000000000000000000afd8867fd41db00bcb1ee80331048be7a1192c26000000000000000000000000afd8867fd41db00bcb1ee80331048be7a1192c26c0", + "txHash": "0x70d64dbd2c5f13bcaedd83cde7181bc2a99a161e08b8d51d6ce2125d50415bec", + "expected": { + "intent": "Redeem", + "owner": "Gauntlet", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.000781260300639101 resolvUSDC" + }, + { + "label": "To", + "value": "0xaFd8867Fd41db00bCB1EE80331048Be7a1192c26" + }, + { + "label": "Owner", + "value": "0xaFd8867Fd41db00bCB1EE80331048Be7a1192c26" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-sbMorphoUSDC.tests.json b/registry/morpho/testsv2/calldata-gauntlet-sbMorphoUSDC.tests.json new file mode 100644 index 000000000..4301e7bf1 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-sbMorphoUSDC.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-sbMorphoUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x4Ff4186188f8406917293A9e01A1ca16d3cf9E59": { + "symbol": "sbMorphoUSDC", + "decimals": 18, + "name": "SwissBorg Morpho USDC" + } + } + }, + "tests": [ + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88b0182019825840366029e830a1a5e944ff4186188f8406917293a9e01a1ca16d3cf9e5980b864b460af94000000000000000000000000000000000000000000000000000000e8d4a51000000000000000000000000000fba64167e4f091ca625fa79aa6f83665856f8bf2000000000000000000000000fba64167e4f091ca625fa79aa6f83665856f8bf2c0", + "txHash": "0x409630d6632f7635945cd456ca5c050fd96725019e1423e6bc59bf8ab81e793e", + "expected": { + "intent": "Withdraw", + "owner": "Gauntlet", + "fields": [ + { + "label": "Withdraw exactly", + "value": "1000000 USDC" + }, + { + "label": "To", + "value": "0xFbA64167e4f091Ca625FA79aa6f83665856f8Bf2" + }, + { + "label": "Owner", + "value": "0xFbA64167e4f091Ca625FA79aa6f83665856f8Bf2" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-gauntlet-sbMorphotBTC.tests.json b/registry/morpho/testsv2/calldata-gauntlet-sbMorphotBTC.tests.json new file mode 100644 index 000000000..62e9bf081 --- /dev/null +++ b/registry/morpho/testsv2/calldata-gauntlet-sbMorphotBTC.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-gauntlet-sbMorphotBTC.json", + "dataProvider": { + "tokens": { + "0x18084fbA666a33d37592fA2633fD49a74DD93a88": { + "decimals": 18, + "name": "tBTC v2", + "symbol": "tBTC" + }, + "0x059Fc6723b9bF77DbF4283C8d7C90eA8Af44EF10": { + "symbol": "sbMorphotBTC", + "decimals": 18, + "name": "SwissBorg tBTC" + } + } + }, + "tests": [ + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88c0155830186a084135c78c7830440a494059fc6723b9bf77dbf4283c8d7c90ea8af44ef1080b864b460af940000000000000000000000000000000000000000000000000001c6bf52634000000000000000000000000000bb6cacfcea26e45d0ac8019e1eb606440736b53e000000000000000000000000bb6cacfcea26e45d0ac8019e1eb606440736b53ec0", + "txHash": "0x11aea34d6e8f3add9fa025840a0cdb02d5ad68ddb6ff39d5d92082676951d082", + "expected": { + "intent": "Withdraw", + "owner": "Gauntlet", + "fields": [ + { + "label": "Withdraw exactly", + "value": "0.0005 tBTC" + }, + { + "label": "To", + "value": "0xBb6CaCfCeA26e45D0ac8019e1Eb606440736b53e" + }, + { + "label": "Owner", + "value": "0xBb6CaCfCeA26e45D0ac8019e1Eb606440736b53e" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-hakutora-hUSDC.tests.json b/registry/morpho/testsv2/calldata-hakutora-hUSDC.tests.json new file mode 100644 index 000000000..0b2ad84f5 --- /dev/null +++ b/registry/morpho/testsv2/calldata-hakutora-hUSDC.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-hakutora-hUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x974c8FBf4fd795F66B85B73ebC988A51F1A040a9": { + "symbol": "hUSDC", + "decimals": 18, + "name": "Hakutora USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86a018195128408edd6bc831e848094974c8fbf4fd795f66b85b73ebc988a51f1a040a980b8446e553f6500000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000db494a7aa82349c40c053736cadc00fb18068d4ec0", + "txHash": "0xa643899cff94e3e8d17fa9a9f9b71a50122492815b5eccaf8b172ab2a52963ff", + "expected": { + "intent": "Deposit", + "owner": "Hakutora", + "fields": [ + { + "label": "Deposit asset", + "value": "0.001 USDC" + }, + { + "label": "Share ticker", + "value": "hUSDC" + }, + { + "label": "Send shares to", + "value": "0xdb494A7Aa82349c40C053736Cadc00Fb18068d4e" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88d010184054e0840842faf08008306e39e94974c8fbf4fd795f66b85b73ebc988a51f1a040a980b864b460af9400000000000000000000000000000000000000000000000000000002540be4000000000000000000000000003157c44c04bb41811895b046fc3de4ab7543a4690000000000000000000000003157c44c04bb41811895b046fc3de4ab7543a469c0", + "txHash": "0x83dc77df6887c74a4426639b1f296dcb4e53943adc01ba6f8355283e653ba9e1", + "expected": { + "intent": "Withdraw", + "owner": "Hakutora", + "fields": [ + { + "label": "Withdraw exactly", + "value": "10000 USDC" + }, + { + "label": "To", + "value": "0x3157c44C04bb41811895B046fc3dE4ab7543a469" + }, + { + "label": "Owner", + "value": "0x3157c44C04bb41811895B046fc3dE4ab7543a469" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d016084079671a084079671a083082b2194974c8fbf4fd795f66b85b73ebc988a51f1a040a980b864ba0876520000000000000000000000000000000000000000000000003a947b83940b173b0000000000000000000000007720866bab3fff360db6e080eb49cefa06fb1d070000000000000000000000007720866bab3fff360db6e080eb49cefa06fb1d07c0", + "txHash": "0x8bf30ac8812aec3f7998e2eca904f3b0ac9a55f146b7722dfee97e92aff645f7", + "expected": { + "intent": "Redeem", + "owner": "Hakutora", + "fields": [ + { + "label": "Shares to redeem", + "value": "4.221134555807684411 hUSDC" + }, + { + "label": "To", + "value": "0x7720866BAB3ffF360Db6E080EB49ceFa06fB1d07" + }, + { + "label": "Owner", + "value": "0x7720866BAB3ffF360Db6E080EB49ceFa06fB1d07" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-leadblock-USDC-RWA.tests.json b/registry/morpho/testsv2/calldata-leadblock-USDC-RWA.tests.json new file mode 100644 index 000000000..9e72a076b --- /dev/null +++ b/registry/morpho/testsv2/calldata-leadblock-USDC-RWA.tests.json @@ -0,0 +1,115 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-leadblock-USDC-RWA.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x4cA0E178c94f039d7F202E09d8d1a655Ed3fb6b6": { + "symbol": "USDC RWA", + "decimals": 18, + "name": "LeadBlock USDC RWA" + } + }, + "ensNames": { + "0x8379bD16381620914d8fA3d535F6Ca9eF23ece53": "kugusha.eth" + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d010c8405f5e10084354fb9c6830959a9944ca0e178c94f039d7f202e09d8d1a655ed3fb6b680b8446e553f650000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000079609ec8264bc4d1476d24bd23b8d9ddd5cce1f5c0", + "txHash": "0x2f11a61dfcaf440e5b6b7f92a7530677766ae9d2e091ef71819ec7049ed5ba23", + "expected": { + "intent": "Deposit", + "owner": "LeadBlock", + "fields": [ + { + "label": "Deposit asset", + "value": "100 USDC" + }, + { + "label": "Share ticker", + "value": "USDC RWA" + }, + { + "label": "Send shares to", + "value": "0x79609Ec8264Bc4d1476d24bD23B8D9ddD5cCE1f5" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b8201de840e73c36e83124f80944ca0e178c94f039d7f202e09d8d1a655ed3fb6b680b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xc11a51bddb224d826f0f9c1b1ac198d2eb55d5deebfdb62caf23e2baf811a1c7", + "expected": { + "intent": "Mint", + "owner": "LeadBlock", + "fields": [ + { + "label": "Deposit asset", + "value": "USDC" + }, + { + "label": "Minted shares", + "value": "0.000000001 USDC RWA" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88f0181e5844dca629885034b89c8e48307d516944ca0e178c94f039d7f202e09d8d1a655ed3fb6b680b864b460af940000000000000000000000000000000000000000000000000000000002fb3f7b0000000000000000000000008379bd16381620914d8fa3d535f6ca9ef23ece530000000000000000000000008379bd16381620914d8fa3d535f6ca9ef23ece53c0", + "txHash": "0x6582a51fdf0d20abc20e386520d3a69cc88e3649d174177549cebe7b2bf36ada", + "expected": { + "intent": "Withdraw", + "owner": "LeadBlock", + "fields": [ + { + "label": "Withdraw exactly", + "value": "50.020219 USDC" + }, + { + "label": "To", + "value": "kugusha.eth" + }, + { + "label": "Owner", + "value": "kugusha.eth" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f010885016b969d0085016b969d008308c174944ca0e178c94f039d7f202e09d8d1a655ed3fb6b680b864ba0876520000000000000000000000000000000000000000000068f8f1a5fa6cadd2b1840000000000000000000000005c45e68b45943dce5886032cf7b04b123df2a3d00000000000000000000000005c45e68b45943dce5886032cf7b04b123df2a3d0c0", + "txHash": "0xf1b87439fda0cc9c2550b0540de152bbad690e58af13308d2591a9c28ef29a44", + "expected": { + "intent": "Redeem", + "owner": "LeadBlock", + "fields": [ + { + "label": "Shares to redeem", + "value": "495718.319347602048594308 USDC RWA" + }, + { + "label": "To", + "value": "0x5C45e68B45943DCE5886032CF7b04b123DF2a3d0" + }, + { + "label": "Owner", + "value": "0x5C45e68B45943DCE5886032CF7b04b123DF2a3d0" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-mev_capital-MC-USR.tests.json b/registry/morpho/testsv2/calldata-mev_capital-MC-USR.tests.json new file mode 100644 index 000000000..83378e8b5 --- /dev/null +++ b/registry/morpho/testsv2/calldata-mev_capital-MC-USR.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-mev_capital-MC-USR.json", + "dataProvider": { + "tokens": { + "0x66a1E37c9b0eAddca17d3662D6c05F4DECf3e110": { + "decimals": 18, + "name": "Resolv USD", + "symbol": "USR" + }, + "0xD50DA5F859811A91fD1876C9461fD39c23C747Ad": { + "symbol": "MC-USR", + "decimals": 18, + "name": "MEV Capital Resolv USR" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b820294840435b83c8316e36094d50da5f859811a91fd1876c9461fd39c23c747ad80b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xb8cd21e6bd5aee99fc731326ac6ad4da7a3ecbbaae3925f931c4ecc89092fa26", + "expected": { + "intent": "Mint", + "owner": "MEV Capital", + "fields": [ + { + "label": "Deposit asset", + "value": "USR" + }, + { + "label": "Minted shares", + "value": "0.000000001 MC-USR" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d01819a8398968084034e40a0830e7fc694d50da5f859811a91fd1876c9461fd39c23c747ad80b864ba0876520000000000000000000000000000000000000000000000008b72a32870ee9536000000000000000000000000ceedf4da3eca8e5442a40ba450878c85cf5b5c03000000000000000000000000ceedf4da3eca8e5442a40ba450878c85cf5b5c03c0", + "txHash": "0x5d41b273ee55ce1b052d84e86bef5026922d13efc10e6dba23662fa355159af5", + "expected": { + "intent": "Redeem", + "owner": "MEV Capital", + "fields": [ + { + "label": "Shares to redeem", + "value": "10.048273112705701174 MC-USR" + }, + { + "label": "To", + "value": "0xceEdf4DA3eCA8E5442A40BA450878c85CF5B5c03" + }, + { + "label": "Owner", + "value": "0xceEdf4DA3eCA8E5442A40BA450878c85CF5B5c03" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-mev_capital-MC.eUSDC.tests.json b/registry/morpho/testsv2/calldata-mev_capital-MC.eUSDC.tests.json new file mode 100644 index 000000000..32cf62a14 --- /dev/null +++ b/registry/morpho/testsv2/calldata-mev_capital-MC.eUSDC.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-mev_capital-MC.eUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x1265a81d42d513Df40d0031f8f2e1346954d665a": { + "symbol": "MC.eUSDC", + "decimals": 18, + "name": "MEV Capital Elixir USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d013484020f452984060bbd3f83061fde941265a81d42d513df40d0031f8f2e1346954d665a80b8446e553f650000000000000000000000000000000000000000000000000000000000b6effd000000000000000000000000178d1a8ea06f28b2b4930620939b5d1739739580c0", + "txHash": "0x26f2ee1ccd67892153ca2990ff8df75fafd78ba5a2cfd233ca8b875dff813138", + "expected": { + "intent": "Deposit", + "owner": "MEV Capital", + "fields": [ + { + "label": "Deposit asset", + "value": "11.988989 USDC" + }, + { + "label": "Share ticker", + "value": "MC.eUSDC" + }, + { + "label": "Send shares to", + "value": "0x178d1A8ea06F28B2b4930620939B5D1739739580" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88d010b8405f5e1008420a19bb38306e8db941265a81d42d513df40d0031f8f2e1346954d665a80b864b460af940000000000000000000000000000000000000000000000000000000005f6101e000000000000000000000000ea07cc94c895265762d10de96944e2b6c84cd9e9000000000000000000000000ea07cc94c895265762d10de96944e2b6c84cd9e9c0", + "txHash": "0x39808dde69b42a9ac93bf6a0b8a4523119c195ad91f46234a51c23c59b471aa9", + "expected": { + "intent": "Withdraw", + "owner": "MEV Capital", + "fields": [ + { + "label": "Withdraw exactly", + "value": "100.012062 USDC" + }, + { + "label": "To", + "value": "0xEA07cC94c895265762d10De96944E2B6C84cD9e9" + }, + { + "label": "Owner", + "value": "0xEA07cC94c895265762d10De96944E2B6C84cD9e9" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d0137840350fe7384091300d6830ea600941265a81d42d513df40d0031f8f2e1346954d665a80b864ba0876520000000000000000000000000000000000000000000000001fd216c90fd0c32d000000000000000000000000178d1a8ea06f28b2b4930620939b5d1739739580000000000000000000000000178d1a8ea06f28b2b4930620939b5d1739739580c0", + "txHash": "0xe6dd75065a0f335a25d3dd38447727d13ad103059ba1faa1a3bee4bd2f774f5c", + "expected": { + "intent": "Redeem", + "owner": "MEV Capital", + "fields": [ + { + "label": "Shares to redeem", + "value": "2.292920213094581037 MC.eUSDC" + }, + { + "label": "To", + "value": "0x178d1A8ea06F28B2b4930620939B5D1739739580" + }, + { + "label": "Owner", + "value": "0x178d1A8ea06F28B2b4930620939B5D1739739580" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-mev_capital-MC_USD0.tests.json b/registry/morpho/testsv2/calldata-mev_capital-MC_USD0.tests.json new file mode 100644 index 000000000..5a04cc32b --- /dev/null +++ b/registry/morpho/testsv2/calldata-mev_capital-MC_USD0.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-mev_capital-MC_USD0.json", + "dataProvider": { + "tokens": { + "0x73A15FeD60Bf67631dC6cd7Bc5B6e8da8190aCF5": { + "decimals": 18, + "name": "Usual USD", + "symbol": "USD0" + }, + "0x749794E985Af5a9A384B9cEe6D88DaB4CE1576A1": { + "symbol": "MC_USD0", + "decimals": 18, + "name": "MEV Capital USD0" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82028a84047645308316e36094749794e985af5a9a384b9cee6d88dab4ce1576a180b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xfb0cc0ca2d800da47f81754b139340116ccba7429715bb412e5f883503e47270", + "expected": { + "intent": "Mint", + "owner": "MEV Capital", + "fields": [ + { + "label": "Deposit asset", + "value": "USD0" + }, + { + "label": "Minted shares", + "value": "0.000000001 MC_USD0" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88e01818d841dcd650084245ee9c083139a4f94749794e985af5a9a384b9cee6d88dab4ce1576a180b864b460af940000000000000000000000000000000000000000000000000a6efa8c291f0a3d000000000000000000000000117b7819a3d2ace81f57398fac0a30c6e72ad5ee000000000000000000000000117b7819a3d2ace81f57398fac0a30c6e72ad5eec0", + "txHash": "0x35cbab1063a6a5fd7afc596dda9d5b0589ece7bb5f67d5814216cb31610a295c", + "expected": { + "intent": "Withdraw", + "owner": "MEV Capital", + "fields": [ + { + "label": "Withdraw exactly", + "value": "0.751813667709717053 USD0" + }, + { + "label": "To", + "value": "0x117b7819a3D2AcE81F57398fAc0a30C6e72AD5eE" + }, + { + "label": "Owner", + "value": "0x117b7819a3D2AcE81F57398fAc0a30C6e72AD5eE" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f0182019a84017429708403fa5f20830d568d94749794e985af5a9a384b9cee6d88dab4ce1576a180b864ba087652000000000000000000000000000000000000000000000002aadc379a11afdd2000000000000000000000000075c43c290e374ec5c202a0edb4b54ef3885698f800000000000000000000000075c43c290e374ec5c202a0edb4b54ef3885698f8c0", + "txHash": "0x6f9f436a5c5e8aae37e05d4038d10e600f202f56e4d1e25ea063dc35ab938a2b", + "expected": { + "intent": "Redeem", + "owner": "MEV Capital", + "fields": [ + { + "label": "Shares to redeem", + "value": "49.205264763604426016 MC_USD0" + }, + { + "label": "To", + "value": "0x75c43c290E374Ec5C202a0EDB4b54eF3885698f8" + }, + { + "label": "Owner", + "value": "0x75c43c290E374Ec5C202a0EDB4b54eF3885698f8" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-mev_capital-MCcbBTC.tests.json b/registry/morpho/testsv2/calldata-mev_capital-MCcbBTC.tests.json new file mode 100644 index 000000000..d96c60102 --- /dev/null +++ b/registry/morpho/testsv2/calldata-mev_capital-MCcbBTC.tests.json @@ -0,0 +1,69 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-mev_capital-MCcbBTC.json", + "dataProvider": { + "tokens": { + "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf": { + "decimals": 8, + "name": "Coinbase Wrapped BTC", + "symbol": "cbBTC" + }, + "0x98cF0B67Da0F16E1F8f1a1D23ad8Dc64c0c70E0b": { + "symbol": "MCcbBTC", + "decimals": 18, + "name": "MEV Capital cbBTC" + } + }, + "ensNames": { + "0x0448cB024711D99f1DaEd26A90408E58745Ee66e": "kozakura.eth" + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b820360841c9b7a408316e3609498cf0b67da0f16e1f8f1a1d23ad8dc64c0c70e0b80b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x2df237208cbd87ae093ae613599b8ab0a85af12132a091f61aec4252c779f650", + "expected": { + "intent": "Mint", + "owner": "MEV Capital", + "fields": [ + { + "label": "Deposit asset", + "value": "cbBTC" + }, + { + "label": "Minted shares", + "value": "0.000000999 MCcbBTC" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f01820104840109cee08404380460830652eb9498cf0b67da0f16e1f8f1a1d23ad8dc64c0c70e0b80b864ba0876520000000000000000000000000000000000000000000000000024ffec078a260b0000000000000000000000000448cb024711d99f1daed26a90408e58745ee66e0000000000000000000000000448cb024711d99f1daed26a90408e58745ee66ec0", + "txHash": "0x66371451ef7743ec44100db98c6dbc34d57236a23a585906af06d40c4f75b20d", + "expected": { + "intent": "Redeem", + "owner": "MEV Capital", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.010414488365442571 MCcbBTC" + }, + { + "label": "To", + "value": "kozakura.eth" + }, + { + "label": "Owner", + "value": "kozakura.eth" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-mev_capital-MCwBTC.tests.json b/registry/morpho/testsv2/calldata-mev_capital-MCwBTC.tests.json new file mode 100644 index 000000000..ceb425094 --- /dev/null +++ b/registry/morpho/testsv2/calldata-mev_capital-MCwBTC.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-mev_capital-MCwBTC.json", + "dataProvider": { + "tokens": { + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "decimals": 8, + "name": "Wrapped BTC", + "symbol": "WBTC" + }, + "0x1c530D6de70c05A81bF1670157b9d928e9699089": { + "symbol": "MCwBTC", + "decimals": 18, + "name": "MEV Capital WBTC" + } + } + }, + "tests": [ + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88c014e8359e9c5843c4c5f45831b9e50941c530d6de70c05a81bf1670157b9d928e969908980b864b460af94000000000000000000000000000000000000000000000000000000000000da39000000000000000000000000e3137ad66f739c0e6df4753e4a6a9665bc50ae9f000000000000000000000000e3137ad66f739c0e6df4753e4a6a9665bc50ae9fc0", + "txHash": "0x70e6ef32b70f9dad762aecdff7f1d564eb04c16655a69f308c9e42654ead5164", + "expected": { + "intent": "Withdraw", + "owner": "MEV Capital", + "fields": [ + { + "label": "Withdraw exactly", + "value": "0.00055865 WBTC" + }, + { + "label": "To", + "value": "0xE3137aD66F739c0e6dF4753E4a6a9665bC50Ae9f" + }, + { + "label": "Owner", + "value": "0xE3137aD66F739c0e6dF4753E4a6a9665bC50Ae9f" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f0182022c8401f89bb0844d3f640083056bb5941c530d6de70c05a81bf1670157b9d928e969908980b864ba087652000000000000000000000000000000000000000000000000000019c7761152e5000000000000000000000000e3137ad66f739c0e6df4753e4a6a9665bc50ae9f000000000000000000000000e3137ad66f739c0e6df4753e4a6a9665bc50ae9fc0", + "txHash": "0xdc35d22a1e82f8cf8220e4f7172cd111fe67d5a224590b6f273917261669b9cf", + "expected": { + "intent": "Redeem", + "owner": "MEV Capital", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.000028344470033125 MCwBTC" + }, + { + "label": "To", + "value": "0xE3137aD66F739c0e6dF4753E4a6a9665bC50Ae9f" + }, + { + "label": "Owner", + "value": "0xE3137aD66F739c0e6dF4753E4a6a9665bC50Ae9f" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-mev_capital-MCwETH.tests.json b/registry/morpho/testsv2/calldata-mev_capital-MCwETH.tests.json new file mode 100644 index 000000000..fbaf55368 --- /dev/null +++ b/registry/morpho/testsv2/calldata-mev_capital-MCwETH.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-mev_capital-MCwETH.json", + "dataProvider": { + "tokens": { + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8": { + "symbol": "MCwETH", + "decimals": 18, + "name": "MEV Capital wETH" + } + } + }, + "tests": [ + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88c0116830f42408403f57d208321376e949a8bc3b04b7f3d87cfc09ba407dced575f2d61d880b864ba0876520000000000000000000000000000000000000000000000000011127a3c8542d40000000000000000000000006b5fcb8b83c46e9871b546948605e5e8b8e3b5330000000000000000000000006b5fcb8b83c46e9871b546948605e5e8b8e3b533c0", + "txHash": "0x530eb4492ed884e116535dc33a98ed0727447ade3bdd19d913e70b288626b75d", + "expected": { + "intent": "Redeem", + "owner": "MEV Capital", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.004805390814757588 MCwETH" + }, + { + "label": "To", + "value": "0x6B5fCb8B83C46E9871B546948605E5E8B8e3B533" + }, + { + "label": "Owner", + "value": "0x6B5fCb8B83C46E9871B546948605E5E8B8e3B533" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-mev_capital-USUALUSDC+.tests.json b/registry/morpho/testsv2/calldata-mev_capital-USUALUSDC+.tests.json new file mode 100644 index 000000000..588ca8576 --- /dev/null +++ b/registry/morpho/testsv2/calldata-mev_capital-USUALUSDC+.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-mev_capital-USUALUSDC+.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xd63070114470f685b75B74D60EEc7c1113d33a3D": { + "symbol": "USUALUSDC+", + "decimals": 18, + "name": " Usual Boosted USDC" + } + } + }, + "tests": [ + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d012f8405f5e1008409a973208323854b94d63070114470f685b75b74d60eec7c1113d33a3d80b864ba08765200000000000000000000000000000000000000000000027a3d260076023720b30000000000000000000000001665d08e19f4f03b085058b056f9ae3f4ff03c8a0000000000000000000000001665d08e19f4f03b085058b056f9ae3f4ff03c8ac0", + "txHash": "0x54509ba249472c8891aabb8a513d309541f86e6d96fb4e2ee88c81d6f910e849", + "expected": { + "intent": "Redeem", + "owner": "MEV Capital", + "fields": [ + { + "label": "Shares to redeem", + "value": "11699.641952524127641779 USUALUSDC+" + }, + { + "label": "To", + "value": "0x1665d08E19f4F03B085058b056f9Ae3f4ff03c8A" + }, + { + "label": "Owner", + "value": "0x1665d08E19f4F03B085058b056f9Ae3f4ff03c8A" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-mev_capital-pWBTC.tests.json b/registry/morpho/testsv2/calldata-mev_capital-pWBTC.tests.json new file mode 100644 index 000000000..8e837830a --- /dev/null +++ b/registry/morpho/testsv2/calldata-mev_capital-pWBTC.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-mev_capital-pWBTC.json", + "dataProvider": { + "tokens": { + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "decimals": 8, + "name": "Wrapped BTC", + "symbol": "WBTC" + }, + "0x2f1aBb81ed86Be95bcf8178bA62C8e72D6834775": { + "symbol": "pWBTC", + "decimals": 18, + "name": "Pendle WBTC" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82035b8414fc26948316e360942f1abb81ed86be95bcf8178ba62c8e72d683477580b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x71ac64f145eb7a88f234f6af853e1e56cbbd87aca04412989e08171cc335f529", + "expected": { + "intent": "Mint", + "owner": "MEV Capital", + "fields": [ + { + "label": "Deposit asset", + "value": "WBTC" + }, + { + "label": "Minted shares", + "value": "0.000000999 pWBTC" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88c0128836234a084077f8e408309f638942f1abb81ed86be95bcf8178ba62c8e72d683477580b864ba08765200000000000000000000000000000000000000000000000000002453308299520000000000000000000000008258ecec50c5b0c0179d9986a9942fc2b8ad23620000000000000000000000008258ecec50c5b0c0179d9986a9942fc2b8ad2362c0", + "txHash": "0x74290763234dbdb1475b7bda6d11f5e0f566856d189b915b40e7b34ccb719863", + "expected": { + "intent": "Redeem", + "owner": "MEV Capital", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.000039939714750802 pWBTC" + }, + { + "label": "To", + "value": "0x8258EceC50C5b0C0179d9986a9942Fc2B8Ad2362" + }, + { + "label": "Owner", + "value": "0x8258EceC50C5b0C0179d9986a9942Fc2B8Ad2362" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-re7_labs-Re7FRAX.tests.json b/registry/morpho/testsv2/calldata-re7_labs-Re7FRAX.tests.json new file mode 100644 index 000000000..76825ce24 --- /dev/null +++ b/registry/morpho/testsv2/calldata-re7_labs-Re7FRAX.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-re7_labs-Re7FRAX.json", + "dataProvider": { + "tokens": { + "0x853d955aCEf822Db058eb8505911ED77F175b99e": { + "decimals": 18, + "name": "Frax", + "symbol": "FRAX" + }, + "0xBE40491F3261Fd42724F1AEb465796eb11c06ddF": { + "symbol": "Re7FRAX", + "decimals": 18, + "name": "Re7 FRAX" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b8202d484025fe3f38316e36094be40491f3261fd42724f1aeb465796eb11c06ddf80b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000001018080", + "txHash": "0x4f351761336fd283b8f6e630365694401c83ccbda6105803bb4b094172453584", + "expected": { + "intent": "Mint", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Deposit asset", + "value": "FRAX" + }, + { + "label": "Minted shares", + "value": "0.000000001 Re7FRAX" + }, + { + "label": "Mint shares to", + "value": "0x0000000000000000000000000000000000000001" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88e018204f5830f424084b2dfa040830a31df94be40491f3261fd42724f1aeb465796eb11c06ddf80b864ba08765200000000000000000000000000000000000000000000065a442221835292d53d000000000000000000000000798a59cb1ef7110e91640fc6a8056d029ba8a42e000000000000000000000000798a59cb1ef7110e91640fc6a8056d029ba8a42ec0", + "txHash": "0xfddaa0e03fb8b65f522b0ebbc95ed7c962cff4e9d92095e4d457b880798b5d86", + "expected": { + "intent": "Redeem", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Shares to redeem", + "value": "29999.315387243427976509 Re7FRAX" + }, + { + "label": "To", + "value": "0x798a59cB1EF7110e91640Fc6A8056D029BA8a42E" + }, + { + "label": "Owner", + "value": "0x798a59cB1EF7110e91640Fc6A8056D029BA8a42E" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-re7_labs-Re7USDA.tests.json b/registry/morpho/testsv2/calldata-re7_labs-Re7USDA.tests.json new file mode 100644 index 000000000..2fc436563 --- /dev/null +++ b/registry/morpho/testsv2/calldata-re7_labs-Re7USDA.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-re7_labs-Re7USDA.json", + "dataProvider": { + "tokens": { + "0x0000206329b97DB379d5E1Bf586BbDB969C63274": { + "decimals": 18, + "name": "USDA", + "symbol": "USDA" + }, + "0x89D80f5e9BC88d8021b352064ae73F0eAf79EBd8": { + "symbol": "Re7USDA", + "decimals": 18, + "name": "Re7 USDA" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86f01819c8405f5e100850342770c0083088cee9489d80f5e9bc88d8021b352064ae73f0eaf79ebd880b8446e553f650000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000a9ddd91249dfdd450e81e1c56ab60e1a62651701c0", + "txHash": "0xea95291322b60d91de372edacecf320303fd518677a573576c2714020b7762f0", + "expected": { + "intent": "Deposit", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Deposit asset", + "value": "100 USDA" + }, + { + "label": "Share ticker", + "value": "Re7USDA" + }, + { + "label": "Send shares to", + "value": "0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-re7_labs-Re7USDC.tests.json b/registry/morpho/testsv2/calldata-re7_labs-Re7USDC.tests.json new file mode 100644 index 000000000..84d202dc0 --- /dev/null +++ b/registry/morpho/testsv2/calldata-re7_labs-Re7USDC.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-re7_labs-Re7USDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x60d715515d4411f7F43e4206dc5d4a3677f0eC78": { + "symbol": "Re7USDC", + "decimals": 18, + "name": "Re7 USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c01318302bf2084641381c08308be7b9460d715515d4411f7f43e4206dc5d4a3677f0ec7880b8446e553f6500000000000000000000000000000000000000000000000000000000001e8480000000000000000000000000027c348c69fcf6f311334c7bedef7ddf7eeffff9c0", + "txHash": "0xe3a12d3cbb88151ff0770ad0ae32a0e2d8197c49967a6a29b4e0811c493dce69", + "expected": { + "intent": "Deposit", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Deposit asset", + "value": "2 USDC" + }, + { + "label": "Share ticker", + "value": "Re7USDC" + }, + { + "label": "Send shares to", + "value": "0x027C348C69fcf6f311334C7BedEf7ddf7EEfFfF9" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88c013383087be0845a5c530083086be89460d715515d4411f7f43e4206dc5d4a3677f0ec7880b864b460af940000000000000000000000000000000000000000000000000000000000000025000000000000000000000000027c348c69fcf6f311334c7bedef7ddf7eeffff9000000000000000000000000027c348c69fcf6f311334c7bedef7ddf7eeffff9c0", + "txHash": "0x4e9e82f5fbdaf67554d576a0ec806379d3e8a68e04d9e120a701832850ccf264", + "expected": { + "intent": "Withdraw", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Withdraw exactly", + "value": "0.000037 USDC" + }, + { + "label": "To", + "value": "0x027C348C69fcf6f311334C7BedEf7ddf7EEfFfF9" + }, + { + "label": "Owner", + "value": "0x027C348C69fcf6f311334C7BedEf7ddf7EEfFfF9" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f0182018284054e08408416a65700830960199460d715515d4411f7f43e4206dc5d4a3677f0ec7880b864ba0876520000000000000000000000000000000000000000000000000dc845de262bdcae0000000000000000000000006877bb79f680216bbdf01704939037f22193e7710000000000000000000000006877bb79f680216bbdf01704939037f22193e771c0", + "txHash": "0xba9152488544bceb62a814a14a80dc453a3d6d020706ab039fb8b8147375c2b5", + "expected": { + "intent": "Redeem", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.993120538260659374 Re7USDC" + }, + { + "label": "To", + "value": "0x6877BB79f680216BbdF01704939037F22193e771" + }, + { + "label": "Owner", + "value": "0x6877BB79f680216BbdF01704939037F22193e771" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-re7_labs-Re7WBTC.tests.json b/registry/morpho/testsv2/calldata-re7_labs-Re7WBTC.tests.json new file mode 100644 index 000000000..6967451bf --- /dev/null +++ b/registry/morpho/testsv2/calldata-re7_labs-Re7WBTC.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-re7_labs-Re7WBTC.json", + "dataProvider": { + "tokens": { + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "decimals": 8, + "name": "Wrapped BTC", + "symbol": "WBTC" + }, + "0xE0C98605f279e4D7946d25B75869c69802823763": { + "symbol": "Re7WBTC", + "decimals": 18, + "name": "Re7 WBTC" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b8203568411bd5ed68316e36094e0c98605f279e4d7946d25b75869c6980282376380b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xff59b5d911ce8b9b99f5028ceea718ff0a0a516a7249c04e6894cb981d676698", + "expected": { + "intent": "Mint", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Deposit asset", + "value": "WBTC" + }, + { + "label": "Minted shares", + "value": "0.000000999 Re7WBTC" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d010b840171434084410756c08308311994e0c98605f279e4d7946d25b75869c6980282376380b864ba0876520000000000000000000000000000000000000000000000000018c3a857cb9a240000000000000000000000005aff481603bfab1b69785d1f6361a143697c55a90000000000000000000000005aff481603bfab1b69785d1f6361a143697c55a9c0", + "txHash": "0xfa8847646f90532ece4da2e969d7cf5ec1fda803b4c870b35e7e3dee545f1d25", + "expected": { + "intent": "Redeem", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.006970527235938852 Re7WBTC" + }, + { + "label": "To", + "value": "0x5aFF481603BFAB1B69785D1f6361a143697c55A9" + }, + { + "label": "Owner", + "value": "0x5aFF481603BFAB1B69785D1f6361a143697c55A9" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-re7_labs-Re7cbBTC.tests.json b/registry/morpho/testsv2/calldata-re7_labs-Re7cbBTC.tests.json new file mode 100644 index 000000000..479bc81fa --- /dev/null +++ b/registry/morpho/testsv2/calldata-re7_labs-Re7cbBTC.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-re7_labs-Re7cbBTC.json", + "dataProvider": { + "tokens": { + "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf": { + "decimals": 8, + "name": "Coinbase Wrapped BTC", + "symbol": "cbBTC" + }, + "0xA02F5E93f783baF150Aa1F8b341Ae90fe0a772f7": { + "symbol": "Re7cbBTC", + "decimals": 18, + "name": "Re7 cbBTC" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b8203638422684c0a8316e36094a02f5e93f783baf150aa1f8b341ae90fe0a772f780b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x3382a9e55d83f85a33514e4da907eff2375dcbc6f51330994588b0c204e03628", + "expected": { + "intent": "Mint", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Deposit asset", + "value": "cbBTC" + }, + { + "label": "Minted shares", + "value": "0.000000999 Re7cbBTC" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-re7_labs-fxUSDC.tests.json b/registry/morpho/testsv2/calldata-re7_labs-fxUSDC.tests.json new file mode 100644 index 000000000..021b5ef31 --- /dev/null +++ b/registry/morpho/testsv2/calldata-re7_labs-fxUSDC.tests.json @@ -0,0 +1,92 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-re7_labs-fxUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x4F460bb11cf958606C69A963B4A17f9DaEEea8b6": { + "symbol": "fxUSDC", + "decimals": 18, + "name": "f(x) Protocol Morpho USDC" + } + }, + "ensNames": { + "0xE923302a5f0617ae4850442C03291cb709e99E43": "pochemuchka.eth" + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c0181a58224f684066851e0830774c2944f460bb11cf958606c69a963b4a17f9daeeea8b680b8446e553f6500000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000deadc0", + "txHash": "0x36d2d5024e66082c4bce7b44a3617b66534a85b4d97c46831e77078b07715152", + "expected": { + "intent": "Deposit", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Deposit asset", + "value": "0.1 USDC" + }, + { + "label": "Share ticker", + "value": "fxUSDC" + }, + { + "label": "Send shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88e0181ca843b9aca04843e9614598305e6fd944f460bb11cf958606c69a963b4a17f9daeeea8b680b864b460af940000000000000000000000000000000000000000000000000000000000004e2000000000000000000000000003adfaa573ac1a9b19d2b8f79a5aaffb9c2a053200000000000000000000000003adfaa573ac1a9b19d2b8f79a5aaffb9c2a0532c0", + "txHash": "0xd67b3f72591768aa4378e13d23acdb11ca6821037390e4adeca169c8b3f11d5d", + "expected": { + "intent": "Withdraw", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Withdraw exactly", + "value": "0.02 USDC" + }, + { + "label": "To", + "value": "0x03adFaA573aC1a9b19D2b8F79a5aAFFb9c2A0532" + }, + { + "label": "Owner", + "value": "0x03adFaA573aC1a9b19D2b8F79a5aAFFb9c2A0532" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88e0181c3841dcd6500844c4b400083084014944f460bb11cf958606c69a963b4a17f9daeeea8b680b864ba08765200000000000000000000000000000000000000000000000480fddc5ca3c5fc24000000000000000000000000e923302a5f0617ae4850442c03291cb709e99e43000000000000000000000000e923302a5f0617ae4850442c03291cb709e99e43c0", + "txHash": "0xd54ca0440e935795120aea20f0fe143ed17569068285afe26e467e1abd3a5773", + "expected": { + "intent": "Redeem", + "owner": "RE7 Labs", + "fields": [ + { + "label": "Shares to redeem", + "value": "83.08180379124354154 fxUSDC" + }, + { + "label": "To", + "value": "pochemuchka.eth" + }, + { + "label": "Owner", + "value": "pochemuchka.eth" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-sparkdao-spDAI.tests.json b/registry/morpho/testsv2/calldata-sparkdao-spDAI.tests.json new file mode 100644 index 000000000..34ab1c896 --- /dev/null +++ b/registry/morpho/testsv2/calldata-sparkdao-spDAI.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-sparkdao-spDAI.json", + "dataProvider": { + "tokens": { + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "decimals": 18, + "name": "Dai Stablecoin", + "symbol": "DAI" + }, + "0x73e65DBD630f90604062f6E02fAb9138e713edD9": { + "symbol": "spDAI", + "decimals": 18, + "name": "Spark DAI Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d0171843b9aca008450eb2827831749b29473e65dbd630f90604062f6e02fab9138e713edd980b8446e553f65000000000000000000000000000000000000000000000004d31f847531c400000000000000000000000000003263116cc11b1b4f3a45662e1d6ef93a0aaf7f9bc0", + "txHash": "0xebc3c510f5aff9527dd35dfd4772b9f95babbe5c60265d0d7bd12fb829e17b2d", + "expected": { + "intent": "Deposit", + "owner": "SparkDAO", + "fields": [ + { + "label": "Deposit asset", + "value": "89 DAI" + }, + { + "label": "Share ticker", + "value": "spDAI" + }, + { + "label": "Send shares to", + "value": "0x3263116cC11B1b4F3a45662E1D6Ef93a0AaF7F9b" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82027e840487c1198316e3609473e65dbd630f90604062f6e02fab9138e713edd980b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xb72ba61c2438c23df9b354695bf5f3835939fa1196b2b944536b8e7f7b19849c", + "expected": { + "intent": "Mint", + "owner": "SparkDAO", + "fields": [ + { + "label": "Deposit asset", + "value": "DAI" + }, + { + "label": "Minted shares", + "value": "0.000000001 spDAI" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88d01098477359400849d1dd4e78312f43a9473e65dbd630f90604062f6e02fab9138e713edd980b864b460af940000000000000000000000000000000000000000000000000de0b6c1f91e4a76000000000000000000000000d7c6b904ba79b1a2d7e505db8fcff6c30d28b097000000000000000000000000d7c6b904ba79b1a2d7e505db8fcff6c30d28b097c0", + "txHash": "0xc27947bab051aa71585f472d4179a674f845b31d3a6a3c98854431b2cb46d6dc", + "expected": { + "intent": "Withdraw", + "owner": "SparkDAO", + "fields": [ + { + "label": "Withdraw exactly", + "value": "1.000000061500705398 DAI" + }, + { + "label": "To", + "value": "0xd7C6b904bA79b1A2d7E505Db8FCff6c30D28b097" + }, + { + "label": "Owner", + "value": "0xd7C6b904bA79b1A2d7E505Db8FCff6c30D28b097" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-bbqDAI.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-bbqDAI.tests.json new file mode 100644 index 000000000..cb20c080b --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-bbqDAI.tests.json @@ -0,0 +1,112 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-bbqDAI.json", + "dataProvider": { + "tokens": { + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "decimals": 18, + "name": "Dai Stablecoin", + "symbol": "DAI" + }, + "0xbeeFfF68CC520D68f82641EFF84330C631E2490E": { + "symbol": "bbqDAI", + "decimals": 18, + "name": "Smokehouse DAI" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f87301820128843b9aca00846cb80800830c192994beefff68cc520d68f82641eff84330c631e2490e80b8486e553f6500000000000000000000000000000000000000000000000390cb9d196dc325bf00000000000000000000000028cd8363cbeae51faf8ae752aee7c37bc2a851201115098fc0", + "txHash": "0x00e927698d58e312392ff29ce877052690ac411f0122a56b289d9da49ff5741b", + "expected": { + "intent": "Deposit", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "65.773837915403789759 DAI" + }, + { + "label": "Share ticker", + "value": "bbqDAI" + }, + { + "label": "Send shares to", + "value": "0x28cD8363cBEaE51FAF8Ae752aEE7c37bC2a85120" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82027a840459cfa58316e36094beefff68cc520d68f82641eff84330c631e2490e80b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x1c41209b4ce4491a1b4819c7df3bef7a6e8338651d922151bebf10d764d00557", + "expected": { + "intent": "Mint", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "DAI" + }, + { + "label": "Minted shares", + "value": "0.000000001 bbqDAI" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88c010e83989680845620f340830cb43094beefff68cc520d68f82641eff84330c631e2490e80b864b460af9400000000000000000000000000000000000000000000000014fe30a2a7bbc000000000000000000000000000027c348c69fcf6f311334c7bedef7ddf7eeffff9000000000000000000000000027c348c69fcf6f311334c7bedef7ddf7eeffff9c0", + "txHash": "0x393c4b9f9318e842e56e680c014a193cea5b4f2062e24702fc9d0178fee390c9", + "expected": { + "intent": "Withdraw", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Withdraw exactly", + "value": "1.5127 DAI" + }, + { + "label": "To", + "value": "0x027C348C69fcf6f311334C7BedEf7ddf7EEfFfF9" + }, + { + "label": "Owner", + "value": "0x027C348C69fcf6f311334C7BedEf7ddf7EEfFfF9" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f893018201298451994840848433fe80830bcfba94beefff68cc520d68f82641eff84330c631e2490e80b868ba087652000000000000000000000000000000000000000000000003476b59cffd4158b300000000000000000000000028cd8363cbeae51faf8ae752aee7c37bc2a8512000000000000000000000000028cd8363cbeae51faf8ae752aee7c37bc2a851201115098fc0", + "txHash": "0x9124617ae20d2899fcaac95450f0560a152722748a3003662a2d8bb1e21cb718", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "60.486537970171599027 bbqDAI" + }, + { + "label": "To", + "value": "0x28cD8363cBEaE51FAF8Ae752aEE7c37bC2a85120" + }, + { + "label": "Owner", + "value": "0x28cD8363cBEaE51FAF8Ae752aEE7c37bC2a85120" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-bbqUSDC.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-bbqUSDC.tests.json new file mode 100644 index 000000000..4575cf4f8 --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-bbqUSDC.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-bbqUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xBEeFFF209270748ddd194831b3fa287a5386f5bC": { + "symbol": "bbqUSDC", + "decimals": 18, + "name": "Smokehouse USDC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86c013f832473318404326b898342d16e94beefff209270748ddd194831b3fa287a5386f5bc80b8446e553f650000000000000000000000000000000000000000000000000000000243e4c24000000000000000000000000051744abe45dbe5970d1389377c505a51b53beca8c0", + "txHash": "0x342f4b452ade62bb8253c70f4421c386454447263d9a8ef6ca80ba3545572743", + "expected": { + "intent": "Deposit", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "9729 USDC" + }, + { + "label": "Share ticker", + "value": "bbqUSDC" + }, + { + "label": "Send shares to", + "value": "0x51744abe45DBE5970d1389377C505a51B53bECA8" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f893018201cf841dcd65008428d8d9208317435194beefff209270748ddd194831b3fa287a5386f5bc80b868b460af94000000000000000000000000000000000000000000000000000000012a05f200000000000000000000000000fb4b6b889e8ba9e1aa424dad4da9f8ba6b83bb0a000000000000000000000000fb4b6b889e8ba9e1aa424dad4da9f8ba6b83bb0a1115098fc0", + "txHash": "0xa1c7e7a838ddcb0b92400584e45ad7fd383b7151e476ecacef0719aed36a8997", + "expected": { + "intent": "Withdraw", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Withdraw exactly", + "value": "5000 USDC" + }, + { + "label": "To", + "value": "0xFb4B6B889e8Ba9E1AA424Dad4da9f8BA6b83bB0a" + }, + { + "label": "Owner", + "value": "0xFb4B6B889e8Ba9E1AA424Dad4da9f8BA6b83bB0a" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d013b8405f5e1008409664fa0831659f694beefff209270748ddd194831b3fa287a5386f5bc80b864ba0876520000000000000000000000000000000000000000000000003f77e9bd41dad3da000000000000000000000000c45baf5922f39cdaca0a8f75abafb42a54f18ef4000000000000000000000000c45baf5922f39cdaca0a8f75abafb42a54f18ef4c0", + "txHash": "0x69a8af37f9fd73669fee17ad2de8deabe66254f92d6c49c82e3f1b64853acdb0", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "4.573380945680978906 bbqUSDC" + }, + { + "label": "To", + "value": "0xc45baF5922f39CdaCa0A8F75AbafB42A54f18eF4" + }, + { + "label": "Owner", + "value": "0xc45baF5922f39CdaCa0A8F75AbafB42A54f18eF4" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-bbqUSDT.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-bbqUSDT.tests.json new file mode 100644 index 000000000..27b1cfb26 --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-bbqUSDT.tests.json @@ -0,0 +1,115 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-bbqUSDT.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0xA0804346780b4c2e3bE118ac957D1DB82F9d7484": { + "symbol": "bbqUSDT", + "decimals": 18, + "name": "Smokehouse USDT" + } + }, + "ensNames": { + "0xb0DebcB643eE79f19Ef659Bd01D0FAC12d058604": "vijaypushkin.eth" + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f871015b8401f2f66084056365008311803b94a0804346780b4c2e3be118ac957d1db82f9d748480b8486e553f650000000000000000000000000000000000000000000000000000000011d67727000000000000000000000000781ee986573a2d5951fbad81cce1f0d0662a97741115098fc0", + "txHash": "0xac0505ddaecebc038e40040631df48cc18fb94bd09893073190e37b09cc12325", + "expected": { + "intent": "Deposit", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "299.267879 USDT" + }, + { + "label": "Share ticker", + "value": "bbqUSDT" + }, + { + "label": "Send shares to", + "value": "0x781EE986573A2D5951fBaD81cCE1F0d0662A9774" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82037f840f37c86e8316e36094a0804346780b4c2e3be118ac957d1db82f9d748480b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x93aeb1c21f54ffe7d570c968a33e8d3e4a6fe90baac6a608d6c13f0c88b32566", + "expected": { + "intent": "Mint", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "USDT" + }, + { + "label": "Minted shares", + "value": "0.000000999 bbqUSDT" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88e0181dc8477359400847bfec2ba8314215294a0804346780b4c2e3be118ac957d1db82f9d748480b864b460af9400000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000b0debcb643ee79f19ef659bd01d0fac12d058604000000000000000000000000b0debcb643ee79f19ef659bd01d0fac12d058604c0", + "txHash": "0xfcdc8d83302aaa3aae9789179f2004e9c3956fabc017b859febb4f3b035d918a", + "expected": { + "intent": "Withdraw", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Withdraw exactly", + "value": "1 USDT" + }, + { + "label": "To", + "value": "vijaypushkin.eth" + }, + { + "label": "Owner", + "value": "vijaypushkin.eth" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f0182010a8404b571c0840a977ca0831358ae94a0804346780b4c2e3be118ac957d1db82f9d748480b864ba08765200000000000000000000000000000000000000000000000075ac55952b3200ca000000000000000000000000b0debcb643ee79f19ef659bd01d0fac12d058604000000000000000000000000b0debcb643ee79f19ef659bd01d0fac12d058604c0", + "txHash": "0x11878d6dc04bdaf704e355d0eace5bf2eff13fc7438ea32988ed5f0561aefbfb", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "8.479246297594986698 bbqUSDT" + }, + { + "label": "To", + "value": "vijaypushkin.eth" + }, + { + "label": "Owner", + "value": "vijaypushkin.eth" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-bbqWSTETH.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-bbqWSTETH.tests.json new file mode 100644 index 000000000..2729234aa --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-bbqWSTETH.tests.json @@ -0,0 +1,115 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-bbqWSTETH.json", + "dataProvider": { + "tokens": { + "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": { + "decimals": 18, + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH" + }, + "0x833AdaeF212c5cD3f78906B44bBfb18258F238F0": { + "symbol": "bbqWSTETH", + "decimals": 18, + "name": "Smokehouse WSTETH" + } + }, + "ensNames": { + "0xc27DF98C6379569Eb00D9048fdfE898Bd1680132": "bluetable.eth" + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86e0181c4843b9aca00844bf3366283086f7d94833adaef212c5cd3f78906b44bbfb18258f238f080b8446e553f650000000000000000000000000000000000000000000000000002e7c59b01f25d000000000000000000000000c27df98c6379569eb00d9048fdfe898bd1680132c0", + "txHash": "0x592863bacb4402cc6de2929bc48debf1d7a024d9e38a5f3c79bf2696a18a06ad", + "expected": { + "intent": "Deposit", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "0.000817785848590941 wstETH" + }, + { + "label": "Share ticker", + "value": "bbqWSTETH" + }, + { + "label": "Send shares to", + "value": "bluetable.eth" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82025284083ab47c8316e36094833adaef212c5cd3f78906b44bbfb18258f238f080b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x68c1d3b1438d52f1bb27cd207aa1841f1ab1c00634b377e525bfc3ac4c879427", + "expected": { + "intent": "Mint", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "wstETH" + }, + { + "label": "Minted shares", + "value": "0.000000001 bbqWSTETH" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88d01438477359400847d4cc4d78309151394833adaef212c5cd3f78906b44bbfb18258f238f080b864b460af940000000000000000000000000000000000000000000000002c54313f448e3199000000000000000000000000e29ca8f9c2e1af136a3489c0903a168d6fbecda3000000000000000000000000e29ca8f9c2e1af136a3489c0903a168d6fbecda3c0", + "txHash": "0x33970829758413ad51a93cbc41484db226457d3e0a944ec0196598cbdb81f571", + "expected": { + "intent": "Withdraw", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Withdraw exactly", + "value": "3.194232183515394457 wstETH" + }, + { + "label": "To", + "value": "0xe29CA8f9c2e1af136a3489C0903A168D6FbEcda3" + }, + { + "label": "Owner", + "value": "0xe29CA8f9c2e1af136a3489C0903A168D6FbEcda3" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88c015683e4e1c08423c3460083073c8494833adaef212c5cd3f78906b44bbfb18258f238f080b864ba087652000000000000000000000000000000000000000000000000003359d61f956000000000000000000000000000519f9718cf3c9ea0bf1fa9f6e9095b83b51fc9d3000000000000000000000000519f9718cf3c9ea0bf1fa9f6e9095b83b51fc9d3c0", + "txHash": "0xfe05cd833d6530f46f60007d98b114d74c800a8682792fdb17d5bcfba9674317", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.014454 bbqWSTETH" + }, + { + "label": "To", + "value": "0x519F9718cf3C9Ea0bF1FA9f6e9095b83b51FC9D3" + }, + { + "label": "Owner", + "value": "0x519F9718cf3C9Ea0bF1FA9f6e9095b83b51FC9D3" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-csUSDC.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-csUSDC.tests.json new file mode 100644 index 000000000..5668ec48b --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-csUSDC.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-csUSDC.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x7204B7Dbf9412567835633B6F00C3Edc3a8D6330": { + "symbol": "csUSDC", + "decimals": 18, + "name": "Coinshift USDC" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82033084463a12af8316e360947204b7dbf9412567835633b6f00c3edc3a8d633080b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x73b6c6c4bba8c64408aad731606f9e31b3d19fcd102a841437db67486742a7b0", + "expected": { + "intent": "Mint", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "USDC" + }, + { + "label": "Minted shares", + "value": "0.000000999 csUSDC" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88f01820101840405d0d08414aeccc083074145947204b7dbf9412567835633b6f00c3edc3a8d633080b864ba0876520000000000000000000000000000000000000000000000008a7962f8d597de66000000000000000000000000977767f401fc909614905857c9174bd08af02363000000000000000000000000977767f401fc909614905857c9174bd08af02363c0", + "txHash": "0x3150fd241b78bd5002fa7865220014e214d0560a6450ef3a2c65a6f08aff867f", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "9.978115270290955878 csUSDC" + }, + { + "label": "To", + "value": "0x977767f401Fc909614905857c9174bd08af02363" + }, + { + "label": "Owner", + "value": "0x977767f401Fc909614905857c9174bd08af02363" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-csUSDL.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-csUSDL.tests.json new file mode 100644 index 000000000..6ea56c4b0 --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-csUSDL.tests.json @@ -0,0 +1,46 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-csUSDL.json", + "dataProvider": { + "tokens": { + "0x7751E2F4b8ae93EF6B79d86419d42FE3295A4559": { + "decimals": 6, + "name": "Wrapped USDL", + "symbol": "wUSDL" + }, + "0xbEEFC01767ed5086f35deCb6C00e6C12bc7476C1": { + "symbol": "csUSDL", + "decimals": 18, + "name": "Coinshift USDL" + } + }, + "ensNames": { + "0xc28De126e148361CaD06a235EB39651652360ba0": "devhaikya.eth" + } + }, + "tests": [ + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88e0182014783b71b0084068b6a408304563694beefc01767ed5086f35decb6c00e6c12bc7476c180b864ba087652000000000000000000000000000000000000000000000002376492eb6deff68c000000000000000000000000c28de126e148361cad06a235eb39651652360ba0000000000000000000000000c28de126e148361cad06a235eb39651652360ba0c0", + "txHash": "0x38ecf69ebb1a2d0d615bb47a97e6ac8db02814c32e95ed82f119f5c7516a3f13", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "40.884964857035617932 csUSDL" + }, + { + "label": "To", + "value": "devhaikya.eth" + }, + { + "label": "Owner", + "value": "devhaikya.eth" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-steakPYUSD.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-steakPYUSD.tests.json new file mode 100644 index 000000000..c5641a503 --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-steakPYUSD.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-steakPYUSD.json", + "dataProvider": { + "tokens": { + "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": { + "decimals": 6, + "name": "PayPal USD", + "symbol": "PYUSD" + }, + "0xbEEF02e5E13584ab96848af90261f0C8Ee04722a": { + "symbol": "steakPYUSD", + "decimals": 18, + "name": "Steakhouse PYUSD" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f8720181a98405f5e1008409c4ea608307b6cf94beef02e5e13584ab96848af90261f0c8ee04722a80b8486e553f650000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000002d77c8db6756c3854aa6e8416b2f31741e708f2c1115098fc0", + "txHash": "0x26291fbfc8dc37c40ff24f67051f6b20e876cff66fe16d24aa6524f8cb2eeafc", + "expected": { + "intent": "Deposit", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "100 PYUSD" + }, + { + "label": "Share ticker", + "value": "steakPYUSD" + }, + { + "label": "Send shares to", + "value": "0x2D77C8Db6756C3854aa6e8416B2f31741E708f2c" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b820369841261a7c68316e36094beef02e5e13584ab96848af90261f0c8ee04722a80b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xebb2b37f4995652aada8103e6c44cff6934f1f2586c2a88e71e379bb37b989bb", + "expected": { + "intent": "Mint", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "PYUSD" + }, + { + "label": "Minted shares", + "value": "0.000000999 steakPYUSD" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88e01820125831549388407fe34208308272b94beef02e5e13584ab96848af90261f0c8ee04722a80b864ba0876520000000000000000000000000000000000000000000001f3eee567e151798a4a0000000000000000000000009578380ecb0bb6e546c89fb595090645f8abffa20000000000000000000000009578380ecb0bb6e546c89fb595090645f8abffa2c0", + "txHash": "0x954d264523f2c5f4702d601f9156f523969f68bdb071f5ef058d5b9ffb4cf5c3", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "9222.139572149192067658 steakPYUSD" + }, + { + "label": "To", + "value": "0x9578380ECb0bb6E546C89fb595090645f8AbFfa2" + }, + { + "label": "Owner", + "value": "0x9578380ECb0bb6E546C89fb595090645f8AbFfa2" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-steakRUSD.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-steakRUSD.tests.json new file mode 100644 index 000000000..cb7533fd4 --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-steakRUSD.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-steakRUSD.json", + "dataProvider": { + "tokens": { + "0x09D4214C03D01F49544C0448DBE3A27f768F2b34": { + "decimals": 18, + "name": "Reservoir Stablecoin", + "symbol": "rUSD" + }, + "0xBeEf11eCb698f4B5378685C05A210bdF71093521": { + "symbol": "steakRUSD", + "decimals": 18, + "name": "Steakhouse RUSD" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f8810149028404729c608308877f94beef11ecb698f4b5378685c05a210bdf7109352180b85c6e553f6500000000000000000000000000000000000000000000021e19e0c9bab24000000000000000000000000000006e0046c436d8d05bd999fd3b39556ed9937ba00eb51718d87bc93ce97e9b3a4c21f8d052535a2a0fffc69debc0", + "txHash": "0x54231ba46a52a439e220a13cd381e1622db9acd35c5bf2f047f9fae4a204f6ff", + "expected": { + "intent": "Deposit", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "10000 rUSD" + }, + { + "label": "Share ticker", + "value": "steakRUSD" + }, + { + "label": "Send shares to", + "value": "0x6E0046c436D8D05Bd999FD3B39556eD9937bA00E" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b8202ac84026cffa08316e36094beef11ecb698f4b5378685c05a210bdf7109352180b84494bf804d000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000001018080", + "txHash": "0xf941fa4151c17a0f1367a862b41903efc500f8bf07a765d1f7f497c1c2b61ac8", + "expected": { + "intent": "Mint", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "rUSD" + }, + { + "label": "Minted shares", + "value": "0.000000001 steakRUSD" + }, + { + "label": "Mint shares to", + "value": "0x0000000000000000000000000000000000000001" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88c0124839896808405d560b083093aca94beef11ecb698f4b5378685c05a210bdf7109352180b864ba0876520000000000000000000000000000000000000000000000007271a54e404a0111000000000000000000000000f1e205f74b0de14d8c45dd3748f9074da02b2416000000000000000000000000f1e205f74b0de14d8c45dd3748f9074da02b2416c0", + "txHash": "0x2749a98943cfa896fe348a3133b6f8bcb05769e7e0e99826682a11c2369e0c91", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "8.246554148196712721 steakRUSD" + }, + { + "label": "To", + "value": "0xF1E205f74b0dE14D8C45dd3748f9074DA02b2416" + }, + { + "label": "Owner", + "value": "0xF1E205f74b0dE14D8C45dd3748f9074DA02b2416" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDQ.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDQ.tests.json new file mode 100644 index 000000000..c20ff09b0 --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDQ.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-steakUSDQ.json", + "dataProvider": { + "tokens": { + "0xc83e27f270cce0A3A3A29521173a83F402c1768b": { + "decimals": 6, + "name": "Quantoz USDQ", + "symbol": "USDQ" + }, + "0xA1b60d96e5C50dA627095B9381dc5a46AF1a9a42": { + "symbol": "steakUSDQ", + "decimals": 18, + "name": "Steakhouse USDQ" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b820377842f98d6b48316e36094a1b60d96e5c50da627095b9381dc5a46af1a9a4280b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0xbd3fa947f858f658749b43c1c3cb56c55ee24e13d881351465d0465c8fe5fdfe", + "expected": { + "intent": "Mint", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "USDQ" + }, + { + "label": "Minted shares", + "value": "0.000000999 steakUSDQ" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDR.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDR.tests.json new file mode 100644 index 000000000..f8bd2c1d4 --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDR.tests.json @@ -0,0 +1,43 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-steakUSDR.json", + "dataProvider": { + "tokens": { + "0x7B43E3875440B44613DC3bC08E7763e6Da63C8f8": { + "decimals": 6, + "name": "StablR USD", + "symbol": "USDR" + }, + "0x30881Baa943777f92DC934d53D3bFdF33382cab3": { + "symbol": "steakUSDR", + "decimals": 18, + "name": "Steakhouse USDR" + } + } + }, + "tests": [ + { + "description": "Mint - chain 1", + "rawTx": "0xf86b82038d8410dfb4348316e3609430881baa943777f92dc934d53d3bfdf33382cab380b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x45f2582c2a333b806e3856a23bd9d663e78ed8ac6e0488412c684439d82511ea", + "expected": { + "intent": "Mint", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "USDR" + }, + { + "label": "Minted shares", + "value": "0.000000999 steakUSDR" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDT.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDT.tests.json new file mode 100644 index 000000000..cf4bf2d8c --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDT.tests.json @@ -0,0 +1,89 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-steakUSDT.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0xbEef047a543E45807105E51A8BBEFCc5950fcfBa": { + "symbol": "steakUSDT", + "decimals": 18, + "name": "Steakhouse USDT" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f869013a0f840947e8978307503394beef047a543e45807105e51a8bbefcc5950fcfba80b8446e553f6500000000000000000000000000000000000000000000000000000001cf07f86e000000000000000000000000bb12e9dee4c2b5811c53198bf2134325be444a3ac0", + "txHash": "0xec34e48ead4d572829bc21739c29f125e854f0c137171e27316c178db1b4c06f", + "expected": { + "intent": "Deposit", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "7768.373358 USDT" + }, + { + "label": "Share ticker", + "value": "steakUSDT" + }, + { + "label": "Send shares to", + "value": "0xbB12e9dee4c2B5811c53198BF2134325bE444A3a" + } + ] + } + }, + { + "description": "Withdraw - chain 1", + "rawTx": "0x02f88e0182069d835f0c0884033b2dd083085c5894beef047a543e45807105e51a8bbefcc5950fcfba80b864b460af9400000000000000000000000000000000000000000000000000000082c2feeae800000000000000000000000068230e37b83fd2b586b51f3e58f6ed4a0689a4af00000000000000000000000068230e37b83fd2b586b51f3e58f6ed4a0689a4afc0", + "txHash": "0x7e53b7ac983d03d7a3e14c3c86f6ad1f1ea7d80088f576ece3c2b09d3de38507", + "expected": { + "intent": "Withdraw", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Withdraw exactly", + "value": "561617.234664 USDT" + }, + { + "label": "To", + "value": "0x68230E37B83Fd2b586B51F3e58f6Ed4A0689A4Af" + }, + { + "label": "Owner", + "value": "0x68230E37B83Fd2b586B51F3e58f6Ed4A0689A4Af" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d01188405f5e1008408c491608308d16294beef047a543e45807105e51a8bbefcc5950fcfba80b864ba0876520000000000000000000000000000000000000000000000056d46ff0eaacb92630000000000000000000000000dd5b2999c33ec54fe276ccded69965d4ca909ff0000000000000000000000000dd5b2999c33ec54fe276ccded69965d4ca909ffc0", + "txHash": "0xc6bb1f7d17f7d8cade6c590f56839eda1a04475ceaec59f3d98cb2fbb65d8c2a", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "100.107981805511742051 steakUSDT" + }, + { + "label": "To", + "value": "0x0dD5B2999C33Ec54fE276cCDED69965D4cA909fF" + }, + { + "label": "Owner", + "value": "0x0dD5B2999C33Ec54fE276cCDED69965D4cA909fF" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDTlite.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDTlite.tests.json new file mode 100644 index 000000000..558ee28c3 --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-steakUSDTlite.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-steakUSDTlite.json", + "dataProvider": { + "tokens": { + "0xdAC17F958D2ee523a2206206994597C13D831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0x097FFEDb80d4b2Ca6105a07a4D90eB739C45A666": { + "symbol": "steakUSDTlite", + "decimals": 18, + "name": "Steakhouse USDT Lite" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86f018204ed8405f5e100840a3bef208307a91594097ffedb80d4b2ca6105a07a4d90eb739c45a66680b8446e553f6500000000000000000000000000000000000000000000000000000000000027100000000000000000000000005daf465a9ccf64deb146eeae9e7bd40d6761c986c0", + "txHash": "0x981314d50d9160b4d03ebabe484da2212b956b412bf190231b81f46dcb24a8e9", + "expected": { + "intent": "Deposit", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "0.01 USDT" + }, + { + "label": "Share ticker", + "value": "steakUSDTlite" + }, + { + "label": "Send shares to", + "value": "0x5daF465a9cCf64DEB146eEaE9E7Bd40d6761c986" + } + ] + } + }, + { + "description": "Mint - chain 1", + "rawTx": "0xf86b820352841376a79a8316e36094097ffedb80d4b2ca6105a07a4d90eb739c45a66680b84494bf804d000000000000000000000000000000000000000000000000000000e8990a4600000000000000000000000000000000000000000000000000000000000000dead018080", + "txHash": "0x32943121ed822af11b61e234596603d1f7accea5546fda1dfdf2bd9faf73c054", + "expected": { + "intent": "Mint", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "USDT" + }, + { + "label": "Minted shares", + "value": "0.000000999 steakUSDTlite" + }, + { + "label": "Mint shares to", + "value": "0x000000000000000000000000000000000000dEaD" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/morpho/testsv2/calldata-steakhouse_financial-steakWBTC.tests.json b/registry/morpho/testsv2/calldata-steakhouse_financial-steakWBTC.tests.json new file mode 100644 index 000000000..def5fc859 --- /dev/null +++ b/registry/morpho/testsv2/calldata-steakhouse_financial-steakWBTC.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-steakhouse_financial-steakWBTC.json", + "dataProvider": { + "tokens": { + "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { + "decimals": 8, + "name": "Wrapped BTC", + "symbol": "WBTC" + }, + "0xbeEf094333AEdD535c130958c204E84f681FD9FA": { + "symbol": "steakWBTC", + "decimals": 18, + "name": "Steakhouse WBTC" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d011f841e65fb8084ff58a7008305a7a694beef094333aedd535c130958c204e84f681fd9fa80b8446e553f650000000000000000000000000000000000000000000000000000000000004a380000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0x46ce6f8edf167b996b41bfe3878d9f2427d1c3bd747f94db6358ac839d62157c", + "expected": { + "intent": "Deposit", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Deposit asset", + "value": "0.00019 WBTC" + }, + { + "label": "Share ticker", + "value": "steakWBTC" + }, + { + "label": "Send shares to", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88e0181a584081e3f40841034dd6083048bcc94beef094333aedd535c130958c204e84f681fd9fa80b864ba0876520000000000000000000000000000000000000000000000000000acc8f2ef6ee70000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f44060000000000000000000000004179b87f8fae24ed5a4bce952b794426d68f4406c0", + "txHash": "0x63f96c82713269482c52f5c7bba629a7b5ebd77e91bad507cb22a508c3930fb7", + "expected": { + "intent": "Redeem", + "owner": "Steakhouse Financial", + "fields": [ + { + "label": "Shares to redeem", + "value": "0.000189979069214439 steakWBTC" + }, + { + "label": "To", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + }, + { + "label": "Owner", + "value": "0x4179b87f8faE24ED5A4bCe952b794426D68f4406" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/okx/testsv2/calldata-OkxDexRouterV1.0.7-multi-commission.tests.json b/registry/okx/testsv2/calldata-OkxDexRouterV1.0.7-multi-commission.tests.json new file mode 100644 index 000000000..3c29c76cd --- /dev/null +++ b/registry/okx/testsv2/calldata-OkxDexRouterV1.0.7-multi-commission.tests.json @@ -0,0 +1,223 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-OkxDexRouterV1.0.7-multi-commission.json", + "dataProvider": { + "tokens": { + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x17205fab260a7a6383a81452ce6315a39370db97": { + "symbol": "RAVE", + "decimals": 18, + "name": "RaveDAO" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0x8ad3c73f833d3f9a523ab01476625f269aeb7cf0": { + "symbol": "TSLAx", + "decimals": 18, + "name": "Tesla xStock" + }, + "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee": { + "symbol": "ETH", + "decimals": 18, + "name": "Ether" + }, + "0x0000000000000000000000000000000000000000": { + "symbol": "ETH", + "decimals": 18, + "name": "Ether" + }, + "0xe0a458bf4acf353cb45e211281a334bb1d837885": { + "symbol": "4CHAN", + "decimals": 9, + "name": "4CHAN" + } + } + }, + "tests": [ + { + "description": "Swap - chain 1 (1)", + "rawTx": "0x02f90bcc01820e8f17840866b358830d6775945e1f62dac767b0491e3ce72469c217365d5b48cc80b90ba4f2c42696000000000000000000000000000000000000000000000000000000003bbb9bae000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000017205fab260a7a6383a81452ce6315a39370db97000000000000000000000000000000000000000000000000000000000fd37b34000000000000000000000000000000000000000000000035ed0df84296d382fa0000000000000000000000000000000000000000000000000000000069bbe7e700000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ce937da1ffd21673aa1e063459873f30189a21930000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ce937da1ffd21673aa1e063459873f30189a219300000000000000000000000000000000000000000000000000000000000000018000000000000000000127100bdf246b4aef9cfe4dd6eef153a1b645ac4bcbb60000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000003c587dd6a10c04000000000000000000000000000000000000000000000000000000000069bbd9fb000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000cd81502214d405f40ff14884f2b3962a2f822d6700000000000000000000000000000000000000000000000001b218468460c310000000000000000000000000000000000000000000000000000000000fd37b340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041b49f6a75972795cdf532a446507d4a6fff0af96fe2430f04b12fb738c9b8a9a22994c7a382b4bfe2f89212d11b1caa42833d607d9e2fa7c9ddc55f10476ad3ed1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000010000000000000000000000006747bcaf9bd5a5f0758cbe08903490e45ddfacb500000000000000000000000000000000000000000000000000000000000000010000000000000000000000006747bcaf9bd5a5f0758cbe08903490e45ddfacb50000000000000000000000000000000000000000000000000000000000000001000000000000000001022710de758db54c1b4a87b06b34b30ef0a710dc35388f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000163f3103de041d25464e2c8a4f8f3187ec1856e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000163f3103de041d25464e2c8a4f8f3187ec1856e000000000000000000000000000000000000000000000000000000000000000018000000000000000020327100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000017205fab260a7a6383a81452ce6315a39370db970000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000080000000000000000000000017205fab260a7a6383a81452ce6315a39370db973ca20afc2bbb00000000000149e1bf431e9bbbd8e57afcd21ccac3f30e7d98d3c0", + "txHash": "0xdceda830882a8a741e11ed8621ad5c48916255fac5b52e9373babd872ec32b26", + "expected": { + "intent": "Swap", + "owner": "OKX Labs", + "fields": [ + { + "label": "Order ID", + "value": "1002150830" + }, + { + "label": "Amount to Send", + "value": "265.517876 USDC" + }, + { + "label": "Minimum to Receive", + "value": "994.759017833174369018 RAVE" + }, + { + "label": "Deadline", + "value": "2026-03-19 12:11:19Z" + } + ] + } + }, + { + "description": "Swap - chain 1 (2)", + "rawTx": "0x02f9068f01818e8405f5e10f840c4727d2830956a0945e1f62dac767b0491e3ce72469c217365d5b48cc80b906640c307f76000000000000000000000000000000000000000000000000000000003bab72ec0000000000000000000000007e2329dc03871eb81f04a3f48ad287464eeea079000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000008ad3c73f833d3f9a523ab01476625f269aeb7cf00000000000000000000000000000000000000000000000000000000000c3936b00000000000000000000000000000000000000000000000000719fb8c8d45a600000000000000000000000000000000000000000000000000000000069bbe797000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000bb2cd025c6f81142f2c5300960865344f9eab8310000000000000000000000000000000000000000000000000000000000000001000000000000000000000000bb2cd025c6f81142f2c5300960865344f9eab83100000000000000000000000000000000000000000000000000000000000000018000000000000000000127100000000000000000000000006dd161107ef07bb8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000010000000000000000000000006747bcaf9bd5a5f0758cbe08903490e45ddfacb500000000000000000000000000000000000000000000000000000000000000010000000000000000000000006747bcaf9bd5a5f0758cbe08903490e45ddfacb50000000000000000000000000000000000000000000000000000000000000001800000000000000001022710a7fd774e0ad54a6d2ceafb4103615f473e589cc60000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000008ad3c73f833d3f9a523ab01476625f269aeb7cf022220afc2aaa000000249f00d64a453da8fcdd049697aa5c6dabfff09916c795800000000000000000000000dac17f958d2ee523a2206206994597c13d831ec722220afc2aaa0000000927c0fa00a9ed787f3793db668bff3e6e6e7db0f92a1bc0", + "txHash": "0x9d63cc6614609db86a665354cf5a60d1d557b88367d014f63fc6df68efa1dcea", + "expected": { + "intent": "Swap", + "owner": "OKX Labs", + "fields": [ + { + "label": "Order ID", + "value": "1001091820" + }, + { + "label": "Beneficiary", + "value": "0x7E2329Dc03871EB81f04A3f48ad287464EeEa079" + }, + { + "label": "Amount to Send", + "value": "12.817259 USDT" + }, + { + "label": "Minimum to Receive", + "value": "0.031982288360462944 TSLAx" + }, + { + "label": "Deadline", + "value": "2026-03-19 12:09:59Z" + } + ] + } + }, + { + "description": "Swap - chain 1 (3)", + "rawTx": "0x02f9080e014984017bdcbf84072cb7cc830cafb4945e1f62dac767b0491e3ce72469c217365d5b48cc80b907e4b80c2f09000000000000000000000000000000000000000000000000003c5877882c3700000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000000000000000000000000000000000005e34577a70000000000000000000000000000000000000000000000009fcdbf702d6c55340000000000000000000000000000000000000000000000000000000069bbe64a0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000007c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000005e34577a7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ce937da1ffd21673aa1e063459873f30189a21930000000000000000000000006747bcaf9bd5a5f0758cbe08903490e45ddfacb50000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ce937da1ffd21673aa1e063459873f30189a21930000000000000000000000006747bcaf9bd5a5f0758cbe08903490e45ddfacb500000000000000000000000000000000000000000000000000000000000000020000000000000000000025e40bdf246b4aef9cfe4dd6eef153a1b645ac4bcbb680000000000000000000012cde758db54c1b4a87b06b34b30ef0a710dc35388f00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000003c587788360c02400000000000000000000000000000000000000000000000000000000069bbd85e000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000cd81502214d405f40ff14884f2b3962a2f822d670000000000000000000000000000000000000000000000009c32cc09d18ae00000000000000000000000000000000000000000000000000000000005b60d9f9500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000413980e692a3292aa0eda5f4e7cd8456cab5f9dd7f48d4e7df34a31a4269f6446b32348e7bdaff6fe28fde6c5c72f525fbca89e5c41640eeb51128e0e6d81db1371b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x1b5dc9f893a8821b20e5ac7f47eec36b8fb451b5481dd4ee1ac1c6831be03985", + "expected": { + "intent": "Swap", + "owner": "OKX Labs", + "fields": [ + { + "label": "Order ID", + "value": "16985769011590912" + }, + { + "label": "Amount to Send", + "value": "25287.817127 USDT" + }, + { + "label": "Minimum to Receive", + "value": "11.515070310775543092 ETH" + }, + { + "label": "Deadline", + "value": "2026-03-19 12:04:26Z" + } + ] + } + }, + { + "description": "Wrap/Unwrap - chain 1", + "rawTx": "0x02f86d01318401ea8be9840757aff683023d36945e1f62dac767b0491e3ce72469c217365d5b48cc80b84401617fab000000000000000000000000000000000000000000000000003c58764c89378080000000000000000000000000000000000000000000000000363a86f1da0000c0", + "txHash": "0x64edee29a2ae78b7a90ed7baecb88773b9462a2002af7f94da396f7d56455d3f", + "expected": { + "intent": "Wrap/Unwrap", + "owner": "OKX Labs", + "fields": [ + { + "label": "Order ID", + "value": "16985763716085632" + }, + { + "label": "Direction", + "value": "WETH --> ETH" + }, + { + "label": "Amount", + "value": "0.015264 WETH" + } + ] + } + }, + { + "description": "Swap - chain 1 (4)", + "rawTx": "0x02f90137018204218401a56e4284067112128303d1b9945e1f62dac767b0491e3ce72469c217365d5b48cc87038d7ea4c68000b901040d5f0e3b00000000003c587c3b8837806fddfa63c80e222f8237d03d80d8b44fe882f508000000000000000000000000000000000000000000000000000385c3954b7800000000000000000000000000000000000000000000000017040dad182b3fe07f0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000180000000000000000000000038fa0e36a9eb335ca00dbd6d0f203b0bd72ce3b6000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3ca20afc2aaa00000081b3206ea08ca8f313d860808ef7431fc72c6fbcf4a72dc0", + "txHash": "0x1f637b58cab2487570d055c2b6eaea2f048ae657f872085a6310370084928ea5", + "expected": { + "intent": "Swap", + "owner": "OKX Labs", + "fields": [ + { + "label": "Beneficiary", + "value": "0x6fDDfA63C80e222F8237D03D80D8B44Fe882f508" + } + ] + } + }, + { + "description": "Swap - chain 1 (5)", + "rawTx": "0x02f901350180840127e40084062a83b483048b16945e1f62dac767b0491e3ce72469c217365d5b48cc878e1bc9bf040000b901049871efa400000000003c587d80bc37000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008ce68f53cac000000000000000000000000000000000000000000000000000000a17e0f4f5d77a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001b0000000000000003b6d034060af6f46039ad6323c5d60102d58ff84706a8ff3000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3ca20afc2aaa00000081b3206ea08ca8f313d860808ef7431fc72c6fbcf4a72dc0", + "txHash": "0x47de77c7b97593e9f0d732eb43a73e96127f4e90d48952663a9a1ef92ec5e677", + "expected": { + "intent": "Swap", + "owner": "OKX Labs", + "fields": [ + { + "label": "Amount to Send", + "value": "0.03966 ETH" + }, + { + "label": "Minimum to Receive", + "value": "2841004716971898" + } + ] + } + }, + { + "description": "Swap - chain 1 (6)", + "rawTx": "0x02f901af0181938401a0dbd784066e10e88306217c945e1f62dac767b0491e3ce72469c217365d5b48cc80b90184b8815477000000000000000000000000000000000000000000000000003c5873c96637000000000000000000000000001e975a823fc5e4a260331084822031f8d01f999c00000000003c5873c9663700e0a458bf4acf353cb45e211281a334bb1d83788500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011a545f4e212976ec329000000000000000000000000000000000000000000000000000312aabc08882d0000000000000000000000000000000000000000000000000000000069bbe55400000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001f0000000000000003b6d03404ff4c7c8754127cc097910cf9d80400adef5b65d000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3ca20afc2bbb00000081b3206ea08ca8f313d860808ef7431fc72c6fbcf4a72dc0", + "txHash": "0x2b41d2dbba4a3a908fa3a7ef29807240b22f93508e6f39af121ba04caeb7bd25", + "expected": { + "intent": "Swap", + "owner": "OKX Labs", + "fields": [ + { + "label": "Order ID", + "value": "16985752926041856" + }, + { + "label": "Beneficiary", + "value": "0x1e975A823fc5e4A260331084822031F8D01f999c" + }, + { + "label": "Amount to Send", + "value": "83328983883398.456984361 4CHAN" + }, + { + "label": "Minimum to Receive", + "value": "0.000864949438548013 ETH" + }, + { + "label": "Deadline", + "value": "2026-03-19 12:00:20Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/ondo-finance/testsv2/calldata-GMTokenLimitOrder.tests.json b/registry/ondo-finance/testsv2/calldata-GMTokenLimitOrder.tests.json new file mode 100644 index 000000000..bf4874344 --- /dev/null +++ b/registry/ondo-finance/testsv2/calldata-GMTokenLimitOrder.tests.json @@ -0,0 +1,232 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-GMTokenLimitOrder.json", + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0x1b468d5535Ed7C19Ce42f0073db7Fdf441028131": { + "symbol": "ALBon", + "decimals": 18, + "name": "Albemarle (Ondo Tokenized)" + }, + "0x55d398326f99059fF775485246999027B3197955": { + "symbol": "USDT", + "decimals": 18, + "name": "Tether USD" + }, + "0x8b872732b07be325a8803CDB480D9d20B6f8d11B": { + "symbol": "SLVon", + "decimals": 18, + "name": "Silver (Ondo Tokenized)" + }, + "0xB812837b81a3a6b81d7CD74CfB19A7f2784555E5": { + "symbol": "MSFTon", + "decimals": 18, + "name": "Microsoft (Ondo Tokenized)" + } + }, + "addressNames": { + "0x0C1f3412A44Ff99E40bF14e06e5Ea321aE7B3938": "AMDon", + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": "USDC", + "0x5A9D924FC336A5EC8cf3B1909aA660533B50b015": "ENLVon", + "0x55d398326f99059fF775485246999027B3197955": "USDT", + "0xB812837b81a3a6b81d7CD74CfB19A7f2784555E5": "MSFTon" + } + }, + "tests": [ + { + "description": "Limit buy (Exact In) AMDon for up to 898.247698 USDC at max 449.123849357071046643 USD on Ethereum", + "rawTx": "0x02f8cd01098404b571c0849502f9008303b5f194f0bc39fc911f6437c84d16188dd8294f7110f45180b8a4cda491a10000000000000000000000000c1f3412a44ff99e40bf14e06e5ea321ae7b3938000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000358a2c1200000000000000000000000000000000000000000000001858d8716e1c4557f3000000000000000000000000000000000000000000000000000000006a049916c0", + "from": "0x3ebB514Eb6bC31a4fF3dd874070b0b5A21bA6d85", + "txHash": "0x442fedae322b1ebabe46ddd92e63e418e0d21401576685f0b1736112f97a1074", + "expected": { + "intent": "Limit Buy GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Token", + "value": "AMDon" + }, + { + "label": "Spend Amount", + "value": "898.247698 USDC" + }, + { + "label": "Max Price", + "value": "449.123849357071046643USD" + }, + { + "label": "Order Expires", + "value": "2026-05-13 15:30:30Z" + } + ], + "interpolatedIntent": "Buy AMDon for up to 898.247698 USDC at max 449.123849357071046643USD" + } + }, + { + "description": "Limit sell (Exact In) 10.292398306774911618 ALBon at min 198.508790985784036875 USD on Ethereum", + "rawTx": "0x02f8cf0182060d847735940084bd65486283050fb694f0bc39fc911f6437c84d16188dd8294f7110f45180b8a4dab2b7780000000000000000000000001b468d5535ed7c19ce42f0073db7fdf441028131000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000008ed5f1ba82268a8200000000000000000000000000000000000000000000000ac2dce5a82bec0e0b000000000000000000000000000000000000000000000000000000006a04a03bc0", + "from": "0xf59013763666a6C7a1cfda6A5b3d716308029b05", + "txHash": "0x273992df0a0118faf2996431cae18d1736caae02a5557c815bde952f2b3a7504", + "expected": { + "intent": "Limit Sell GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Amount to Sell", + "value": "10.292398306774911618 ALBon" + }, + { + "label": "Receive Token", + "value": "USDC" + }, + { + "label": "Min Price", + "value": "198.508790985784036875USD" + }, + { + "label": "Order Expires", + "value": "2026-05-13 16:00:59Z" + } + ], + "interpolatedIntent": "Sell 10.292398306774911618 ALBon for USDC at min 198.508790985784036875USD" + } + }, + { + "description": "Limit buy ENLVon for up to 105 USDT at max 0.80250155914148666 USD on BSC", + "rawTx": "0x02f8cd38188402faf0808402faf08083050f839496b525b1a93f31e65f4aaf18c53842ed28525d4880b8a4cda491a10000000000000000000000005a9d924fc336a5ec8cf3b1909aa660533b50b01500000000000000000000000055d398326f99059ff775485246999027b3197955000000000000000000000000000000000000000000000005b12aefafa80400000000000000000000000000000000000000000000000000000b230eea8c535044000000000000000000000000000000000000000000000000000000006a047e83c0", + "from": "0x15B83ed7605BA980Ca8D63823188A3eAb1Fba785", + "txHash": "0xd9333962fc2baebb9445f687751c6544d4c72d0c8c4c4e0b2653cffdba9ef841", + "expected": { + "intent": "Limit Buy GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Token", + "value": "ENLVon" + }, + { + "label": "Spend Amount", + "value": "105 USDT" + }, + { + "label": "Max Price", + "value": "0.80250155914148666USD" + }, + { + "label": "Order Expires", + "value": "2026-05-13 13:37:07Z" + } + ], + "interpolatedIntent": "Buy ENLVon for up to 105 USDT at max 0.80250155914148666USD" + } + }, + { + "description": "Limit sell 10 SLVon at min 79.475236067605668018 USD on BSC", + "rawTx": "0xf8cb8203ed8402faf08083050f939496b525b1a93f31e65f4aaf18c53842ed28525d4880b8a4dab2b7780000000000000000000000008b872732b07be325a8803cdb480d9d20b6f8d11b00000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000044ef0c22029f2e0b2000000000000000000000000000000000000000000000000000000006a048dd4388080", + "from": "0x43D3a12F2BF684E139dd972d2B8209EE6740Dafc", + "txHash": "0xce0a3853ff6fb6f4e4694dd62032b91169dd574f51b8983669e8d4673a193e1a", + "expected": { + "intent": "Limit Sell GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Amount to Sell", + "value": "10 SLVon" + }, + { + "label": "Receive Token", + "value": "USDT" + }, + { + "label": "Min Price", + "value": "79.475236067605668018USD" + }, + { + "label": "Order Expires", + "value": "2026-05-13 14:42:28Z" + } + ], + "interpolatedIntent": "Sell 10 SLVon for USDT at min 79.475236067605668018USD" + } + }, + { + "description": "Limit buy (Exact Out) 0.001 MSFTon at max 100 USD on Ethereum", + "rawTx": "0x02f8cc0101830f4240840f26c00683035fab94f0bc39fc911f6437c84d16188dd8294f7110f45180b8a451fc884c000000000000000000000000b812837b81a3a6b81d7cd74cfb19a7f2784555e5000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000038d7ea4c680000000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000000000000000000000000000000000006a04f1d6c0", + "from": "0xE54e94996483c01a020a55641D32f409dF6fe5cd", + "txHash": "0x27981cfbdb7232ac7890a31b0211ac562264a3c2d7b71e6a41d60749fdeedddd", + "expected": { + "intent": "Limit Buy GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Amount to Buy", + "value": "0.001 MSFTon" + }, + { + "label": "Quote Token", + "value": "USDC" + }, + { + "label": "Max Price", + "value": "100USD" + }, + { + "label": "Order Expires", + "value": "2026-05-13 21:49:10Z" + } + ], + "interpolatedIntent": "Buy 0.001 MSFTon with USDC at max 100USD" + } + }, + { + "description": "Limit sell (Exact Out) MSFTon to receive 1 USDC at min 100 USD on Ethereum", + "rawTx": "0x02f8cc0105830f4240840fcc484483035f6694f0bc39fc911f6437c84d16188dd8294f7110f45180b8a46468f918000000000000000000000000b812837b81a3a6b81d7cd74cfb19a7f2784555e5000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000000000000000000000000000000000006a04f763c0", + "from": "0xE54e94996483c01a020a55641D32f409dF6fe5cd", + "txHash": "0x326b7a859659f08f809bea6cce74bf22df64402d25aeddbf2e5a70e74a41b558", + "expected": { + "intent": "Limit Sell GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Token", + "value": "MSFTon" + }, + { + "label": "Receive Amount", + "value": "1 USDC" + }, + { + "label": "Min Price", + "value": "100USD" + }, + { + "label": "Order Expires", + "value": "2026-05-13 22:12:51Z" + } + ], + "interpolatedIntent": "Sell MSFTon to receive 1 USDC at min 100USD" + } + }, + { + "description": "Cancel limit order on Ethereum", + "rawTx": "0x02f84a0102832dc6c08410d333a282838e94f0bc39fc911f6437c84d16188dd8294f7110f45180a4514fcac70000000000000000000000000000000000000000000000000000000000000f3fc0", + "from": "0xE54e94996483c01a020a55641D32f409dF6fe5cd", + "txHash": "0xd001507c5bbc396c3c47d080f46642f5e5417b495e61742da29ad16a3168a926", + "expected": { + "intent": "Cancel Limit Order", + "owner": "Ondo Finance", + "fields": [ + { + "label": "Order ID", + "value": "3903" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/ondo-finance/testsv2/calldata-GMTokenManager.tests.json b/registry/ondo-finance/testsv2/calldata-GMTokenManager.tests.json new file mode 100644 index 000000000..f0ac7588b --- /dev/null +++ b/registry/ondo-finance/testsv2/calldata-GMTokenManager.tests.json @@ -0,0 +1,162 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-GMTokenManager.json", + "dataProvider": { + "tokens": { + "0xB812837b81a3a6b81d7CD74CfB19A7f2784555E5": { + "symbol": "MSFTon", + "decimals": 18, + "name": "Microsoft (Ondo Tokenized)" + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xF042cfa86cf1D598a75Bdb55c3507a1F39f9493b": { + "symbol": "COINon", + "decimals": 18, + "name": "Coinbase (Ondo Tokenized)" + }, + "0x091FC7778e6932d4009B087B191D1EE3bac5729A": { + "symbol": "GOOGLon", + "decimals": 18, + "name": "Google (Ondo Tokenized)" + }, + "0x55d398326f99059fF775485246999027B3197955": { + "symbol": "USDT", + "decimals": 18, + "name": "Tether USD" + }, + "0x8b872732b07be325a8803CDB480D9d20B6f8d11B": { + "symbol": "SLVon", + "decimals": 18, + "name": "Silver (Ondo Tokenized)" + } + }, + "addressNames": { + "0xB812837b81a3a6b81d7CD74CfB19A7f2784555E5": "MSFTon", + "0xF042cfa86cf1D598a75Bdb55c3507a1F39f9493b": "COINon", + "0x091FC7778e6932d4009B087B191D1EE3bac5729A": "GOOGLon", + "0x8b872732b07be325a8803CDB480D9d20B6f8d11B": "SLVon" + } + }, + "tests": [ + { + "description": "Mint 9.258010320826351 MSFTon with 3,778.299782 USDC on Ethereum", + "rawTx": "0xf9022c824ff2840911e87f830f4240942c158bc456e027b2affccadf1bdbd9f5fc4c5c8c80b90204445df08b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000512aa3e64dfa4427ad625f6732bfdf32474d0000000000000e88de2c9ee3cae100000000000000000000000000000000000000000000000000000000b812837b81a3a6b81d7cd74cfb19a7f2784555e50000000000000000000000000000000000000000000000161fa08abec2a6d44b000000000000000000000000000000000000000000000000807b0f55f3c13d98000000000000000000000000000000000000000000000000000000006a0447fb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000e134478600000000000000000000000000000000000000000000000000000000000000418d48372c8383d8ba4264b6897e2409f58abe2af40f96bf8efc5dd5c5c0235690266cf48a04df13dc80db4b93fc54ca7af903c75b385580f72b4a26e4024d1f991b00000000000000000000000000000000000000000000000000000000000000018080", + "from": "0x1e2012e21086C96256CC32F5939Ad8b5e7489Afb", + "txHash": "0xc2bfaba1c2a85e14e8aaa00184042700ab6645a72eb33bd0e1ae7d3fc1dca38d", + "expected": { + "intent": "Mint GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Token", + "value": "MSFTon" + }, + { + "label": "GM Token Amount", + "value": "9.258010320826351 MSFTon" + }, + { + "label": "Deposit Amount", + "value": "3778.299782 USDC" + }, + { + "label": "Quote Expires", + "value": "2026-05-13 09:44:27Z" + } + ], + "interpolatedIntent": "Mint 9.258010320826351 MSFTon using 3778.299782 USDC" + } + }, + { + "description": "Redeem 11.074373021490512 COINon for at least 2,307.598294 USDC on Ethereum", + "rawTx": "0xf9022c824ffd840b3ca39d830f4240942c158bc456e027b2affccadf1bdbd9f5fc4c5c8c80b902046eefea49000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000b29f2d3c299940018a59c64f78782272474d0000000000000e88de2c9ee3cae100000000000000000000000000000000000000000000000000000000f042cfa86cf1d598a75bdb55c3507a1f39f9493b00000000000000000000000000000000000000000000000b4bc85b884f8b400000000000000000000000000000000000000000000000000099b01396a81c8080000000000000000000000000000000000000000000000000000000006a046d7a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000898b27d60000000000000000000000000000000000000000000000000000000000000041b0f96ee66e6098a280b82835566b964ae7baef90351939ee793c2d3f7372d5285bf60ddf120700aba18f0e1e598a45c84542ee4a08cf664f1bf6222391227e221c00000000000000000000000000000000000000000000000000000000000000018080", + "from": "0x1e2012e21086C96256CC32F5939Ad8b5e7489Afb", + "txHash": "0x4591c8123a7365e0e01a4f741b875c15a29ea4ac4a81f7b7eb24e91c77cf229f", + "expected": { + "intent": "Redeem GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Token", + "value": "COINon" + }, + { + "label": "GM Token Amount", + "value": "11.074373021490512 COINon" + }, + { + "label": "Min Receive Amount", + "value": "2307.598294 USDC" + }, + { + "label": "Quote Expires", + "value": "2026-05-13 12:24:26Z" + } + ], + "interpolatedIntent": "Redeem 11.074373021490512 COINon for 2307.598294 USDC+" + } + }, + { + "description": "Mint 3.109258722681446 GOOGLon with 1,237.919603566199981690 USDT on BSC", + "rawTx": "0x02f902313883011ae28402faf0808402faf080830f42409491f8aff3738825e8eb16fc6f6b1a7a4647bdb29980b90204445df08b00000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000018ed8bfc22084513973abf8af98306dc474d000000000000170ef63b56890c8000000000000000000000000000000000000000000000000000000000091fc7778e6932d4009b087b191d1ee3bac5729a000000000000000000000000000000000000000000000015954caa40e74b83310000000000000000000000000000000000000000000000002b264e55b0365e70000000000000000000000000000000000000000000000000000000006a04933d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000000000000000000000000000431b95e8aa0fbc467a0000000000000000000000000000000000000000000000000000000000000041918aa8d886cc47a7b013bcdc5f7a93fb6bff9a549c3b4fcc84fced1436769e2716aa0494384d34565a0db7916ff5d6dd1179b3a31372af4d6253ba734d9bf62c1b00000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x60Cc7D4CdBB7479fd3fd3606265f00Cd33DEa629", + "txHash": "0x32fbae5d8bea406c4b6366f91046d9a5e945b6029bf281aec7783a3aadeeefd3", + "expected": { + "intent": "Mint GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Token", + "value": "GOOGLon" + }, + { + "label": "GM Token Amount", + "value": "3.109258722681446 GOOGLon" + }, + { + "label": "Deposit Amount", + "value": "1237.91960356619998169 USDT" + }, + { + "label": "Quote Expires", + "value": "2026-05-13 15:05:33Z" + } + ], + "interpolatedIntent": "Mint 3.109258722681446 GOOGLon using 1237.91960356619998169 USDT" + } + }, + { + "description": "Redeem 1.0208 SLVon for at least 81.751666303999999999 USDT on BSC", + "rawTx": "0x02f902313883011ae78402faf0808402faf080830f42409491f8aff3738825e8eb16fc6f6b1a7a4647bdb29980b902046eefea490000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000006f099da8b1ca450fa970fb12fdb7bd7c474d000000000000170ef63b56890c80000000000000000000000000000000000000000000000000000000008b872732b07be325a8803cdb480d9d20b6f8d11b000000000000000000000000000000000000000000000004576a338bfc8f80000000000000000000000000000000000000000000000000000e2a9c310ab80000000000000000000000000000000000000000000000000000000000006a04943800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000000000000000000000000000046e88435d5630ffff000000000000000000000000000000000000000000000000000000000000004120db0722ac892bb602a5e84f09bde1c454fe9d9be496faf8dce9cd238cfadd3b5ca4e4a64736b75a817360f492aeedb3a04a630a04f6d432263f7b3cb6521dad1b00000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x60Cc7D4CdBB7479fd3fd3606265f00Cd33DEa629", + "txHash": "0x022be204f205198d49e4cce208e43261c7223d4b2a447338f0290f1f4785dc17", + "expected": { + "intent": "Redeem GM Token", + "owner": "Ondo Finance", + "fields": [ + { + "label": "GM Token", + "value": "SLVon" + }, + { + "label": "GM Token Amount", + "value": "1.0208 SLVon" + }, + { + "label": "Min Receive Amount", + "value": "81.751666303999999999 USDT" + }, + { + "label": "Quote Expires", + "value": "2026-05-13 15:09:44Z" + } + ], + "interpolatedIntent": "Redeem 1.0208 SLVon for 81.751666303999999999 USDT+" + } + } + ] +} \ No newline at end of file diff --git a/registry/ondo-finance/testsv2/calldata-OUSGInstantManager.tests.json b/registry/ondo-finance/testsv2/calldata-OUSGInstantManager.tests.json new file mode 100644 index 000000000..662506e2a --- /dev/null +++ b/registry/ondo-finance/testsv2/calldata-OUSGInstantManager.tests.json @@ -0,0 +1,62 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-OUSGInstantManager.json", + "dataProvider": { + "tokens": { + "0x1B19C19393e2d034D8Ff31ff34c81252FcBbee92": { + "symbol": "OUSG", + "decimals": 18, + "name": "Ondo Short-Term U.S. Government Bond Fund" + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "Subscribe with 70,001.493265 USDC for at least 583.5187459421566 OUSG", + "rawTx": "0x02f88d0158846259008084f536a8808309a4e79493358db73b6cd4b98d89c8f5f230e81a95c2643a80b86422d4a175000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000104c6a051100000000000000000000000000000000000000000000001fa1f307d1cfa762c0c0", + "from": "0x92f907D7f3dBa5FA290B5BBD786F07d56028E4De", + "txHash": "0x6d36d56dba94f14505f4e12c4709724ef8039e5edc8dbcf04b49f317da36a3d6", + "expected": { + "intent": "Subscribe to OUSG", + "owner": "Ondo Finance", + "fields": [ + { + "label": "Deposit Amount", + "value": "70001.493265 USDC" + }, + { + "label": "Min OUSG Received", + "value": "583.5187459421566 OUSG" + } + ], + "interpolatedIntent": "Subscribe with 70001.493265 USDC for at least 583.5187459421566 OUSG+" + } + }, + { + "description": "Redeem 217 OUSG for at least 24,002.303129 USDC", + "rawTx": "0x02f88f01820146847735940084b43f002f83097c429493358db73b6cd4b98d89c8f5f230e81a95c2643a80b864d878016100000000000000000000000000000000000000000000000bc37ade48e3c40000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000596a61499c0", + "from": "0x4D27df39254Feb7b0AEfC23A23D77b7D511B3d33", + "txHash": "0xace3ba0d6178fc08deb59a0a9d774b00fb103da76bbb6b9dfa79825b39ab9afb", + "expected": { + "intent": "Redeem OUSG", + "owner": "Ondo Finance", + "fields": [ + { + "label": "OUSG Amount", + "value": "217 OUSG" + }, + { + "label": "Min Receive Amount", + "value": "24002.303129 USDC" + } + ], + "interpolatedIntent": "Redeem 217 OUSG for at least 24002.303129 USDC+" + } + } + ] +} \ No newline at end of file diff --git a/registry/ondo-finance/testsv2/calldata-USDYInstantManager.tests.json b/registry/ondo-finance/testsv2/calldata-USDYInstantManager.tests.json new file mode 100644 index 000000000..b5c63fd3a --- /dev/null +++ b/registry/ondo-finance/testsv2/calldata-USDYInstantManager.tests.json @@ -0,0 +1,109 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-USDYInstantManager.json", + "dataProvider": { + "tokens": { + "0x96F6eF951840721AdBF46Ac996b59E0235CB985C": { + "symbol": "USDY", + "decimals": 18, + "name": "Ondo U.S. Dollar Yield" + }, + "0xaf37c1167910ebC994e266949387d2c7C326b879": { + "symbol": "rUSDY", + "decimals": 18, + "name": "Ondo U.S. Dollar Yield (Rebasing)" + }, + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + } + } + }, + "tests": [ + { + "description": "Subscribe with 500 USDC for at least 423.7796050114516 USDY", + "rawTx": "0x02f88d010184773594008480db268e830badda94a42613c243b67bf6194ac327795b926b4b491f1580b86422d4a175000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001dcd6500000000000000000000000000000000000000000000000016f91f997a32ebdc80c0", + "from": "0x2ed4af8145DDdb02322D14F971986EdC659ec06B", + "txHash": "0x5c435aa00692be3e73e05bf2ef7b995684b1bfc771d3ec3d4d016ac22d79e6a5", + "expected": { + "intent": "Subscribe to USDY", + "owner": "Ondo Finance", + "fields": [ + { + "label": "Deposit Amount", + "value": "500 USDC" + }, + { + "label": "Min USDY Received", + "value": "423.7796050114516 USDY" + } + ], + "interpolatedIntent": "Subscribe with 500 USDC for at least 423.7796050114516 USDY+" + } + }, + { + "description": "Redeem 746.328660584049718838 USDY for at least 811.526186 USDC", + "rawTx": "0xf88b82046e8413c80fc9830828da94a42613c243b67bf6194ac327795b926b4b491f1580b864d878016100000000000000000000000000000000000000000000002875640a951d5cb636000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000305ee82a018080", + "from": "0x0012389d4b1F93F5Fc6efF53216AfC73FF0b3dD9", + "txHash": "0x10cdae00754c8f9e7cfaf1e92530a2542de28ad91cc69ce5534cf1fc90992568", + "expected": { + "intent": "Redeem USDY", + "owner": "Ondo Finance", + "fields": [ + { + "label": "USDY Amount", + "value": "746.328660584049718838 USDY" + }, + { + "label": "Min Receive Amount", + "value": "811.526186 USDC" + } + ], + "interpolatedIntent": "Redeem 746.328660584049718838 USDY for at least 811.526186 USDC+" + } + }, + { + "description": "Subscribe rebasing with 5,000 USDC for at least 4,800 rUSDY", + "rawTx": "0x02f88f01820613848f0d180084d9054040830f215794a42613c243b67bf6194ac327795b926b4b491f1580b8648133067e000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000012a05f2000000000000000000000000000000000000000000000001043561a88293000000c0", + "from": "0xC396e325afEF0E49d7712A223208c8440c1b9AfE", + "txHash": "0x6d7bc1eb5e6250fe0dff3f179145092d980426106019a02124547e3c29fb45df", + "expected": { + "intent": "Subscribe to rUSDY", + "owner": "Ondo Finance", + "fields": [ + { + "label": "Deposit Amount", + "value": "5000 USDC" + }, + { + "label": "Min rUSDY Received", + "value": "4800 rUSDY" + } + ], + "interpolatedIntent": "Subscribe with 5000 USDC for at least 4800 rUSDY+" + } + }, + { + "description": "Redeem rebasing 1.12866587 rUSDY for at least 0.96 USDC", + "rawTx": "0x02f88f018202ab8477359400847f90ed47830d3b4e94a42613c243b67bf6194ac327795b926b4b491f1580b86416762d7a0000000000000000000000000000000000000000000000000fa9d3a0fb750c00000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000ea600c0", + "from": "0xAc8AD47Eba6e90815Ea57D4eb3F85574412Be007", + "txHash": "0x601ae27b389f53f574ca018b3b5b5188acac77b99eeb8f6297878160427c8298", + "expected": { + "intent": "Redeem rUSDY", + "owner": "Ondo Finance", + "fields": [ + { + "label": "rUSDY Amount", + "value": "1.12866587 rUSDY" + }, + { + "label": "Min Receive Amount", + "value": "0.96 USDC" + } + ], + "interpolatedIntent": "Redeem 1.12866587 rUSDY for at least 0.96 USDC+" + } + } + ] +} \ No newline at end of file diff --git a/registry/opensea/testsv2/eip712-opensea.tests.json b/registry/opensea/testsv2/eip712-opensea.tests.json new file mode 100644 index 000000000..373c9f6fe --- /dev/null +++ b/registry/opensea/testsv2/eip712-opensea.tests.json @@ -0,0 +1,180 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-opensea.json", + "tests": [ + { + "description": "OpenSea Listing", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Order": [ + { + "name": "exchange", + "type": "address" + }, + { + "name": "maker", + "type": "address" + }, + { + "name": "taker", + "type": "address" + }, + { + "name": "makerRelayerFee", + "type": "uint256" + }, + { + "name": "takerRelayerFee", + "type": "uint256" + }, + { + "name": "makerProtocolFee", + "type": "uint256" + }, + { + "name": "takerProtocolFee", + "type": "uint256" + }, + { + "name": "feeRecipient", + "type": "address" + }, + { + "name": "feeMethod", + "type": "uint8" + }, + { + "name": "side", + "type": "uint8" + }, + { + "name": "saleKind", + "type": "uint8" + }, + { + "name": "target", + "type": "address" + }, + { + "name": "howToCall", + "type": "uint8" + }, + { + "name": "calldata", + "type": "bytes" + }, + { + "name": "replacementPattern", + "type": "bytes" + }, + { + "name": "staticTarget", + "type": "address" + }, + { + "name": "staticExtradata", + "type": "bytes" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "basePrice", + "type": "uint256" + }, + { + "name": "extra", + "type": "uint256" + }, + { + "name": "listingTime", + "type": "uint256" + }, + { + "name": "expirationTime", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + } + ] + }, + "primaryType": "Order", + "domain": { + "name": "Wyvern Exchange Contract", + "version": "2.3", + "chainId": 1, + "verifyingContract": "0x7f268357A8c2552623316e2562D90e642bB538E5" + }, + "message": { + "exchange": "0x7f268357A8c2552623316e2562D90e642bB538E5", + "maker": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "taker": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "makerRelayerFee": "250", + "takerRelayerFee": "0", + "makerProtocolFee": "0", + "takerProtocolFee": "0", + "feeRecipient": "0x5b3256965E7C3CF26E11FcAF296dFfC8807C0107", + "feeMethod": 1, + "side": 1, + "saleKind": 0, + "target": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D", + "howToCall": 0, + "calldata": "0x23b872dd000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e00000000000000000000000000000000000000000000000000000000000004d2", + "replacementPattern": "0x", + "staticTarget": "0x7f268357A8c2552623316e2562D90e642bB538E5", + "staticExtradata": "0x", + "paymentToken": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "basePrice": "7500000000000000000", + "extra": "0", + "listingTime": "1773964800", + "expirationTime": "1775174400", + "salt": "8374923847239482734923847239482734", + "nonce": "7" + } + }, + "expected": { + "intent": "OpenSea Listing", + "owner": "Wyvern Exchange Contract", + "fields": [ + { + "label": "Contract address", + "value": "0x7f268357A8c2552623316e2562D90e642bB538E5" + }, + { + "label": "Price", + "value": "7500000000000000000" + }, + { + "label": "Offer expiration", + "value": "1775174400" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/p2p/testsv2/calldata-EigenPodManager.tests.json b/registry/p2p/testsv2/calldata-EigenPodManager.tests.json new file mode 100644 index 000000000..d94304448 --- /dev/null +++ b/registry/p2p/testsv2/calldata-EigenPodManager.tests.json @@ -0,0 +1,16 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-EigenPodManager.json", + "tests": [ + { + "description": "Create EigenLayerPod - chain 1", + "rawTx": "0x02ec01298477359400848141c16e83082ace9491e677b07f7af907ec9a428aafa9fc14a0d3a338808484d81062c0", + "txHash": "0xd0c9f8395628b1fe96cb520cd87a807e54252d2aa866e92b200cbdb2a2c358f6", + "expected": { + "intent": "Create EigenLayerPod", + "owner": "Eigen Labs, Inc.", + "fields": [] + } + } + ] +} \ No newline at end of file diff --git a/registry/p2p/testsv2/calldata-P2pMessageSender.tests.json b/registry/p2p/testsv2/calldata-P2pMessageSender.tests.json new file mode 100644 index 000000000..96a1f858e --- /dev/null +++ b/registry/p2p/testsv2/calldata-P2pMessageSender.tests.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-P2pMessageSender.json", + "tests": [ + { + "description": "Withdrawal message - chain 1", + "rawTx": "0x02f9022e013484374524e0843da1f64a83013752944e1224f513048e18e7a1883985b45dc0fe1d917e80b9020466792ba1000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001b57b22616374696f6e223a227769746864726177222c227075626b657973223a5b223078613961363461323764636630633839663631313564323535343262363139303066376465336633323938623139643132663137393763353130353936616564383534646631383236646339656338633639343131393937316331343731383038222c223078393237316663343963663033356632636161623030333962376232653030663963363635353564663062306361363266663130373734393933623630353634393864653633366337393263653861323430643663613965316362643138636632222c223078613337383562333430383363633563613437633438616234363064663562616231613032396136376437363030336537623762633263613331386232313262633137663432656139323130303762393232336566393938626165333237333931222c223078393563346435356361323833636435633932643761643230353935343737636430663461646366343339373331623061356132333863346330653037633064666639306361356561643130653239383234656261373637356236643263343435225d7d0000000000000000000000c0", + "txHash": "0xdc4098539c03dd194a3f0c4e7ce40a78a5619906def3b1a6535f6855bf8c310a", + "expected": { + "intent": "Withdrawal message", + "owner": "P2P Staking", + "fields": [ + { + "label": "Public keys", + "value": "{\"action\":\"withdraw\",\"pubkeys\":[\"0xa9a64a27dcf0c89f6115d25542b61900f7de3f3298b19d12f1797c510596aed854df1826dc9ec8c694119971c1471808\",\"0x9271fc49cf035f2caab0039b7b2e00f9c66555df0b0ca62ff10774993b6056498de636c792ce8a240d6ca9e1cbd18cf2\",\"0xa3785b34083cc5ca47c48ab460df5bab1a029a67d76003e7b7bc2ca318b212bc17f42ea921007b9223ef998bae327391\",\"0x95c4d55ca283cd5c92d7ad20595477cd0f4adcf439731b0a5a238c4c0e07c0dff90ca5ead10e29824eba7675b6d2c445\"]}" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/p2p/testsv2/calldata-P2pOrgUnlimitedEthDepositor.tests.json b/registry/p2p/testsv2/calldata-P2pOrgUnlimitedEthDepositor.tests.json new file mode 100644 index 000000000..f9fc42360 --- /dev/null +++ b/registry/p2p/testsv2/calldata-P2pOrgUnlimitedEthDepositor.tests.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-P2pOrgUnlimitedEthDepositor.json", + "tests": [ + { + "description": "Stake ETH - chain 1", + "rawTx": "0x02f901f601018477359400847d1e779882fcc09423be839a14cec3d6d716d904f09368bbf9c750eb8908ac7230489e800000b901c4a49b131b010000000000000000000000b7f6e11aff1c4948a3a940fa71d3a18a4abcb5ff000000000000000000000000000000000000000000000001bc16d674ec8000000000000000000000000000003fcd8d9acac042095dfba53f4c40c74d19e2e9d9000000000000000000000000000000000000000000000000000000000000251c000000000000000000000000b7f6e11aff1c4948a3a940fa71d3a18a4abcb5ff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000008a2ddb4ecc9b4e5b6c36ecdf33ba23dcc5e8f57df537343a7a69ae8e1a57485aec3fd4ee100bf9e91500fd4938df97e726ee1f525c90f8f44d20e2e1f5d0a159c0931405c89a04ab76429336829113f52fbf4b4994d64a0cbdc7863040e4ad170ca59f43d2b329b0da3754cb0d072065787ebd1e8f62b3deb8fc31ea6be2349a9ff59d94b2cb857340722700000000000000000000000000000000000000000000c0", + "txHash": "0x1962d6e8a8cb53c189934ddeab3e9ecb3b7f7851f284683aec8f2c9a6c2a4d71", + "expected": { + "intent": "Stake ETH", + "owner": "P2P Staking", + "fields": [ + { + "label": "Withdraw credentials", + "value": "0x010000000000000000000000b7f6e11aff1c4948a3a940fa71d3a18a4abcb5ff" + }, + { + "label": "ETH per validator", + "value": "32 ETH" + }, + { + "label": "Amount to deposit", + "value": "160 ETH" + }, + { + "label": "Fee Distributor", + "value": "0x3Fcd8D9aCAc042095dFbA53f4C40C74d19E2e9D9" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/p2p/testsv2/calldata-P2pSsvProxyFactory.tests.json b/registry/p2p/testsv2/calldata-P2pSsvProxyFactory.tests.json new file mode 100644 index 000000000..0ceda207f --- /dev/null +++ b/registry/p2p/testsv2/calldata-P2pSsvProxyFactory.tests.json @@ -0,0 +1,37 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-P2pSsvProxyFactory.json", + "tests": [ + { + "description": "Stake ETH with SSV - chain 1", + "rawTx": "0x02f901d7012484056f7082841723af748306d16e945ed861aec31ccb496689fd2e0a1a3f8e8d7b88248903d952abd36cbc0000b901a4746bd1000200000000000000000000006717f57a7e18c4758f0e83e786e08ce538e0436c000000000000000000000000000000000000000000000003d952abd36cbc000000000000000000000000000000000000000000000000000000000000000024540000000000000000000000006717f57a7e18c4758f0e83e786e08ce538e0436c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000008fb9ee4eecbe69b5b8617eb0197cde82b48735cceccc1b30aa30e1c27a53493ff5c975af50d5a453bb1e66668500cc5fd42271d2d42e3461a0b9a63f121c1f55ddd2dbd358e9701a8a464e94e3f88351072710127cda7f7442d0360d02d9d1a715f751a0f4f6370bbb1159bc8cb93a18fed4b47002d9fb8991ece35f4444e8cc68c3ebf767977b529e783fff6c5d19010000000000000000000000000000000000c0", + "txHash": "0x61789a38518f9a309ecb1c147596698bfbef69b2fa195dff64a5fb487b87d01b", + "expected": { + "intent": "Stake ETH with SSV", + "owner": "P2P Staking", + "fields": [ + { + "label": "Withdraw credentials", + "value": "0x0200000000000000000000006717f57a7e18c4758f0e83e786e08ce538e0436c" + }, + { + "label": "ETH per validator", + "value": "71 ETH" + }, + { + "label": "Amount to deposit", + "value": "71 ETH" + }, + { + "label": "Client recipient", + "value": "0x6717F57a7E18c4758f0E83E786E08cE538e0436C" + }, + { + "label": "Client fee (bps)", + "value": "9300bps" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/paraswap/testsv2/calldata-AugustusSwapper-v6.2.tests.json b/registry/paraswap/testsv2/calldata-AugustusSwapper-v6.2.tests.json new file mode 100644 index 000000000..9259be2b3 --- /dev/null +++ b/registry/paraswap/testsv2/calldata-AugustusSwapper-v6.2.tests.json @@ -0,0 +1,271 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-AugustusSwapper-v6.2.json", + "dataProvider": { + "tokens": { + "0x38b0e3a59183814957d83df2a97492aed1f003e2": { + "symbol": "ANML", + "decimals": 18, + "name": "Animal Concerts Token" + }, + "0x4ba01f22827018b4772cd326c7627fb4956a7c00": { + "symbol": "msUSD", + "decimals": 18, + "name": "msUSD" + }, + "0x5ea630e00d6ee438d3dea1556a110359acdc10a9": { + "symbol": "sdPENDLE", + "decimals": 18, + "name": "Stake DAO PENDLE" + }, + "0x808507121b80c02388fad14726482e061b8da827": { + "symbol": "PENDLE", + "decimals": 18, + "name": "Pendle" + }, + "0x890a5122aa1da30fec4286de7904ff808f0bd74a": { + "symbol": "msY", + "decimals": 18, + "name": "msY" + }, + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "symbol": "USDT", + "decimals": 6, + "name": "Tether USD" + }, + "0x45804880de22913dafe09f4980848ece6ecbaf78": { + "symbol": "PAXG", + "decimals": 18, + "name": "Paxos Gold" + } + } + }, + "tests": [ + { + "description": "Swap - chain 1 (1)", + "rawTx": "0x02f903cd0106834c4b40840fea18c08303b45a946a000f20005980200259b80c510200304000106880b903a4e3ead59e000000000000000000000000000010036c0190e009a000d0fc3541100a07380a000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000002f747000000000000000000000000000000000000000000000000000000000002f4fb600000000000000000000000000000000000000000000000000000000002f7428628494839e92450ba5ffff0dd650218d0000000000000000000000000178c83c000000000000000000000000000000000000000000000000000000000000000008a3c2a819e3de7aca384c798269b3ce1cd0e437900000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000200bbcb91440523216e2b87052a99f69c604a7b6e00000001a00084000000000003000000000000000000000000000000000000000000000000000000007fc9d4ad000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000002f747000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006a000f20005980200259b80c510200304000106800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0x50fb51449c9e5da0841d358615adadb65fdd692e2a8a7de6eb7620b1336f2026", + "expected": { + "intent": "Swap", + "owner": "Velora", + "fields": [ + { + "label": "Amount to Send", + "value": "3.11 USDC" + }, + { + "label": "Minimum to Receive", + "value": "3.100598 USDT" + }, + { + "label": "Beneficiary", + "value": "Sender" + } + ] + } + }, + { + "description": "Swap - chain 1 (2)", + "rawTx": "0x02f905cf018201598318cba884101f80a083095205946a000f20005980200259b80c510200304000106880b905a47f4576750000000000000000000000000e5891850bb3f03090f03010000806f080040100000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000009464273e000000000000000000000000000000000000000000000000106033bf82f600000000000000000000000000000000000000000000000000000000000094512b30dbde46e45ac54818b8c61d514edffd150000000000000000000000000178c7d1000000000000000000000000000000000000000000000000000000000000000008a3c2a819e3de7aca384c798269b3ce1cd0e4379000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004200000018000000000000000000000016c00000000000001370000000000001388e592427a0aece92de3edee1f18e0157c058615640160008400a400d80000000b00000000000000000000000000000000000000000000000000000000f28c0498000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000e5891850bb3f03090f03010000806f0800401000000000000000000000000000000000000000000000000000000000069c55cc6000000000000000000000000000000000000000000000000083019dfc17b0000000000000000000000000000000000000000000000000000000000004a277fa7000000000000000000000000000000000000000000000000000000000000002bc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000064a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000020000000000000000000000018c000000000000014e0000000000001388e592427a0aece92de3edee1f18e0157c058615640180008400a400d80000000b00000000000000000000000000000000000000000000000000000000f28c0498000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000e5891850bb3f03090f03010000806f0800401000000000000000000000000000000000000000000000000000000000069c55cc6000000000000000000000000000000000000000000000000083019dfc17b0000000000000000000000000000000000000000000000000000000000004a29ab890000000000000000000000000000000000000000000000000000000000000042c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000064dac17f958d2ee523a2206206994597c13d831ec7000064a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec02aaa39b223fe8d0a0e5c4f27ead9083c756cc2004000240004000000000007000000000000000000000000000000000000000000000000000000002e1a7d4d000000000000000000000000000000000000000000000000106033bf82f60000c0", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0xc78fe415148955349496c1d325469eeaa4aedd66be685f1f76bbc050470fe166", + "expected": { + "intent": "Swap", + "owner": "Velora", + "fields": [ + { + "label": "Maximum to Send", + "value": "2489.591614 USDC" + }, + { + "label": "Amount to Receive", + "value": "1.18 ETH" + }, + { + "label": "Beneficiary", + "value": "Sender" + } + ] + } + }, + { + "description": "Swap - chain 1 (3)", + "rawTx": "0x02f902100182106a840e4e1c00842b9f80f2831e8480946a000f20005980200259b80c510200304000106880b901e4e8bb3b6c0000000000000000000000000000000000000000000000000000000000000060c85f5d432b7fa25287c7e0cb88139a1a4c37f56510000000000000000000000f00000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000038b0e3a59183814957d83df2a97492aed1f003e2000000000000000000000000000000000000000000000000006a94d74f43000000000000000000000000000000000000000000000009498591987438b4cafd3d000000000000000000000000000000000000000000095d8a8d877fbeebd4b6d516ce0d616fa4497dbaa4aa4291a483fc0000000000000000000000000178c7e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000004038b0e3a59183814957d83df2a97492aed1f003e2c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0x6ddfb3f11e9c98506c44dbc07a58e5799570d712388d28d62e4c771b938e875d", + "expected": { + "intent": "Swap", + "owner": "Velora", + "fields": [ + { + "label": "Amount to Send", + "value": "0.03 WETH" + }, + { + "label": "Minimum to Receive", + "value": "11227529.038006068903083325 ANML" + }, + { + "label": "Beneficiary", + "value": "Sender" + } + ] + } + }, + { + "description": "Swap - chain 1 (4)", + "rawTx": "0x02f9023001820176842faf080084423883c083030f96946a000f20005980200259b80c510200304000106880b90204876a02f6000000000000000000000000000000000000000000000000000000000000006008a3c2a819e3de7aca384c798269b3ce1cd0e43790000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000004ba01f22827018b4772cd326c7627fb4956a7c00000000000000000000000000890a5122aa1da30fec4286de7904ff808f0bd74a0000000000000000000000000000000000000000000000018493fba64ef0000000000000000000000000000000000000000000000000000177f69745802d7f5f0000000000000000000000000000000000000000000000017809d8152c109fc30c8c89637b93407fb703cfb6b52fa2940000000000000000000000000178c81c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000608000000000000000000000004ba01f22827018b4772cd326c7627fb4956a7c00000000000000000000000000890a5122aa1da30fec4286de7904ff808f0bd74a00000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0x921ddffe7ea18848d96c5c444771cb9c69c5bdf22ec25108efb31f235bc27b30", + "expected": { + "intent": "Swap", + "owner": "Velora", + "fields": [ + { + "label": "Amount to Send", + "value": "28 msUSD" + }, + { + "label": "Minimum to Receive", + "value": "27.091006933252800351 msY" + }, + { + "label": "Beneficiary", + "value": "Sender" + } + ] + } + }, + { + "description": "Swap - chain 1 (5)", + "rawTx": "0x02f9023601088477359400848a17509683049d3a946a000f20005980200259b80c51020030400010688801f9e64707cf1449b902045e94e28d000000000000000000000000000000000000000000000000000000000000006008a3c2a819e3de7aca384c798269b3ce1cd0e43790000000000000000000000000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000001f9e64707cf14490000000000000000000000000000000000000000000000000000000011e1a30000000000000000000000000000000000000000000000000001f862e8a2f7cecc3ea54657ea5b40dcb515a2cc510340630000000000000000000000000178c707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0x9bfa47389b2bce3688203dab8fc86eb500b544c60afcf4076dc61cdb08f7707b", + "expected": { + "intent": "Swap", + "owner": "Velora", + "fields": [ + { + "label": "Maximum to Send", + "value": "0.142398055986959433 ETH" + }, + { + "label": "Amount to Receive", + "value": "300 USDC" + }, + { + "label": "Beneficiary", + "value": "Sender" + } + ] + } + }, + { + "description": "Swap - chain 1 (6)", + "rawTx": "0x02f901ae0181d583bfa68084121eac008303ccbf946a000f20005980200259b80c510200304000106880b901841a01c53200000000000000000000000026f3f26f46cbee59d1f8860865e13aa39e36a8c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000808507121b80c02388fad14726482e061b8da8270000000000000000000000005ea630e00d6ee438d3dea1556a110359acdc10a9000000000000000000000000000000000000000000000000de0164b97aeb27bc000000000000000000000000000000000000000000000000e8ce8b99a0bed913000000000000000000000000000000000000000000000000e981e102da3b7139c13b3dff0cd14a7bbbb7e0fcbfded0bb0000000000000000000000000178c75e000000000000000000000000000000000000000000000000000000000000000008a3c2a819e3de7aca384c798269b3ce1cd0e43790000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0xaba4bb3fdaada6751405f3a58cb7cbdd7c55cf8097721b18c64764d99fb658c6", + "expected": { + "intent": "Swap", + "owner": "Velora", + "fields": [ + { + "label": "Amount to Send", + "value": "15.997178099190671292 PENDLE" + }, + { + "label": "Minimum to Receive", + "value": "16.775499153944795411 sdPENDLE" + }, + { + "label": "Beneficiary", + "value": "Sender" + } + ] + } + }, + { + "description": "Swap - chain 1 (7)", + "rawTx": "0x02f903ae010184773594008484f9452883047e50946a000f20005980200259b80c510200304000106880b90384da35bb0d000000000000000000000000000000000000000000000000000000011338bbbd0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000083c132f647e1c415cacbf8d4a9484f3540000000000000000000000000178c7a3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000204af2e386c642be3bb5965a6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069bc209800000000000000000000000045804880de22913dafe09f4980848ece6ecbaf78000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000009ba0cf1588e1dfa905ec948f7fe5104dd40eda310000000000000000000000006a000f20005980200259b80c51020030400010680000000000000000000000000000000000000000000000000de111a6b7de40000000000000000000000000000000000000000000000000000000000112f962b900000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000112f962b90000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000411c38f548e52f46071cb5766310552912d16db57f75f60d6f9d5709c7b0dcf82586121358f0ddd500c730126abde20c905f67d20cf13fbd0884be0ccac2b475712100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0xec872311d7dd0572c08e4aed9452c22a6bb957282c0e1a4c5a246d9e7a6d78d8", + "expected": { + "intent": "Swap", + "owner": "Velora", + "fields": [ + { + "label": "Amount to Send", + "value": "4617.452477 USDC" + }, + { + "label": "Minimum to Receive", + "value": "1 PAXG" + }, + { + "label": "Beneficiary", + "value": "Sender" + } + ] + } + }, + { + "description": "Swap - chain 1 (8)", + "rawTx": "0x02f902f5014d840501bd00842c1b81008303c7dd946a000f20005980200259b80c510200304000106887038d7ea4c68000b902c40d893d62000000000000000000000000000010036c0190e009a000d0fc3541100a07380a000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000002074bb0000000000000000000000000000000000000000000000000000000000209e7c2b010b0f931240098cd14b70751ff81c0000000000000000000000000178208b0000000000000000000000000000000000000000000000000000000000000000eff718a201ccf1ceb5602d807f5acbb722a97c1410000000000000000000005a000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000120d26f20001a72a18c002b00e6710000d68700ce00000000c000a50000ff00001200000000000000000000000000000000000000000000000000000000ce0802440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000020c49ba5e353f88000137c000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000006a000f20005980200259b80c5102003040001068c0", + "from": "0x75C94990D2Ad92D8da4E0a238d872D09ec16706E", + "txHash": "0xecd12564b81949fe4ca52a577ca1b804f5573cc885fcb2849e0ae59c91e3918f", + "expected": { + "intent": "Swap", + "owner": "Velora", + "fields": [ + { + "label": "Amount to Send", + "value": "0.001 ETH" + }, + { + "label": "Minimum to Receive", + "value": "2.127035 USDC" + }, + { + "label": "Beneficiary", + "value": "Sender" + } + ] + } + }, + { + "description": "Swap - chain 1 (9)", + "rawTx": "0x02f90335014e840501bd008430479e808303baa3946a000f20005980200259b80c51020030400010688701ae8df7fd8b96b9030444224add0000000000000000000000000e5891850bb3f03090f03010000806f080040100000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000001ae8df7fd8b9600000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000001ac6999c810a0726cc6402037431b9232011c7cc770200000000000000000000000000178208f0000000000000000000000000000000000000000000000000000000000000000eff718a201ccf1ceb5602d807f5acbb722a97c1410000000000000000000005a0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000010000000000000000000000006c00000000000000ec0000000000002710d26f20001a72a18c002b00e6710000d68700ce0000e000c500c500000000001200000000000000000000000000000000000000000000000000000000ce0802440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000020c49ba5e353f88000137c000000000000000000000000fffffffffffffffffffffffffff0bdc0800000000000000000000000000000000e5891850bb3f03090f03010000806f080040100000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec0", + "from": "0x75C94990D2Ad92D8da4E0a238d872D09ec16706E", + "txHash": "0x7c0016b2b5b74ea37d5165a727359adeb910a51ffc24bcc8de0bc1e276d702b4", + "expected": { + "intent": "Swap", + "owner": "Velora", + "fields": [ + { + "label": "Maximum to Send", + "value": "0.00047339975092111 ETH" + }, + { + "label": "Amount to Receive", + "value": "1 USDC" + }, + { + "label": "Beneficiary", + "value": "Sender" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/paraswap/testsv2/eip712-Velora-DeltaV2.tests.json b/registry/paraswap/testsv2/eip712-Velora-DeltaV2.tests.json new file mode 100644 index 000000000..378af0f25 --- /dev/null +++ b/registry/paraswap/testsv2/eip712-Velora-DeltaV2.tests.json @@ -0,0 +1,180 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-Velora-DeltaV2.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + } + } + }, + "tests": [ + { + "description": "Swap order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Bridge": [ + { + "name": "protocolSelector", + "type": "bytes4" + }, + { + "name": "destinationChainId", + "type": "uint256" + }, + { + "name": "outputToken", + "type": "address" + }, + { + "name": "scalingFactor", + "type": "int8" + }, + { + "name": "protocolData", + "type": "bytes" + } + ], + "Order": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "beneficiary", + "type": "address" + }, + { + "name": "srcToken", + "type": "address" + }, + { + "name": "destToken", + "type": "address" + }, + { + "name": "srcAmount", + "type": "uint256" + }, + { + "name": "destAmount", + "type": "uint256" + }, + { + "name": "expectedAmount", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "kind", + "type": "uint8" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "partnerAndFee", + "type": "uint256" + }, + { + "name": "permit", + "type": "bytes" + }, + { + "name": "metadata", + "type": "bytes" + }, + { + "name": "bridge", + "type": "Bridge" + } + ] + }, + "primaryType": "Order", + "domain": { + "name": "Velora", + "version": "1", + "chainId": 1, + "verifyingContract": "0x0000000000bbf5c5fd284e657f01bd000933c96d" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "beneficiary": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "srcToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "destToken": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "srcAmount": "2500000000", + "destAmount": "780000000000000000", + "expectedAmount": "790000000000000000", + "deadline": "1776729600", + "kind": "0", + "nonce": "874523901245", + "partnerAndFee": "0", + "permit": "0x", + "metadata": "0x", + "bridge": { + "protocolSelector": "0x00000000", + "destinationChainId": "1", + "outputToken": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "scalingFactor": "0", + "protocolData": "0x" + } + } + }, + "expected": { + "intent": "Swap order", + "owner": "Velora", + "fields": [ + { + "label": "Amount to send", + "value": "2500 USDC" + }, + { + "label": "Minimum to receive", + "value": "0.78 WETH" + }, + { + "label": "Destination chain ID", + "value": "1" + }, + { + "label": "Beneficiary", + "value": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" + }, + { + "label": "Expiration time", + "value": "2026-04-21 00:00:00Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/paraswap/testsv2/eip712-paraswap.tests.json b/registry/paraswap/testsv2/eip712-paraswap.tests.json new file mode 100644 index 000000000..a5cd5ed6a --- /dev/null +++ b/registry/paraswap/testsv2/eip712-paraswap.tests.json @@ -0,0 +1,252 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-paraswap.json", + "tests": [ + { + "description": "AugustusRFQ ERC20 order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Order": [ + { + "name": "nonceAndMeta", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint128" + }, + { + "name": "makerAsset", + "type": "address" + }, + { + "name": "takerAsset", + "type": "address" + }, + { + "name": "maker", + "type": "address" + }, + { + "name": "taker", + "type": "address" + }, + { + "name": "makerAmount", + "type": "uint256" + }, + { + "name": "takerAmount", + "type": "uint256" + } + ] + }, + "primaryType": "Order", + "domain": { + "name": "AUGUSTUS RFQ", + "version": "1", + "chainId": 1, + "verifyingContract": "0xe92b586627ccA7a83dC919cc7127196d70f55a06" + }, + "message": { + "nonceAndMeta": "123456789", + "expiry": "1774540800", + "makerAsset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "takerAsset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "maker": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "taker": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "makerAmount": "3000000000", + "takerAmount": "1000000000000000000" + } + }, + "expected": { + "intent": "AugustusRFQ ERC20 order", + "owner": "AugustusRFQ", + "fields": [ + { + "label": "Nonce and metadata", + "value": "123456789" + }, + { + "label": "Expiration time", + "value": "1774540800" + }, + { + "label": "Maker asset address", + "value": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + { + "label": "Taker asset address", + "value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + }, + { + "label": "Maker address", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Taker address", + "value": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" + }, + { + "label": "Maker amount", + "value": "3000000000" + }, + { + "label": "Taker amount", + "value": "1000000000000000000" + } + ] + } + }, + { + "description": "AugustusRFQ NFT order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "OrderNFT": [ + { + "name": "nonceAndMeta", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint128" + }, + { + "name": "makerAsset", + "type": "uint256" + }, + { + "name": "makerAssetId", + "type": "uint256" + }, + { + "name": "takerAsset", + "type": "uint256" + }, + { + "name": "takerAssetId", + "type": "uint256" + }, + { + "name": "maker", + "type": "address" + }, + { + "name": "taker", + "type": "address" + }, + { + "name": "makerAmount", + "type": "uint256" + }, + { + "name": "takerAmount", + "type": "uint256" + } + ] + }, + "primaryType": "OrderNFT", + "domain": { + "name": "AUGUSTUS RFQ", + "version": "1", + "chainId": 1, + "verifyingContract": "0xe92b586627cca7a83dc919cc7127196d70f55a06" + }, + "message": { + "nonceAndMeta": "281474976776193", + "expiry": "1776530030", + "makerAsset": "2536500777716045908446414720245124845575819686205", + "makerAssetId": "8817", + "takerAsset": "1097077688018008265106216665536940668749033598146", + "takerAssetId": "0", + "maker": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "taker": "0xF977814e90dA44bFA03b6295A0616a897441aceC", + "makerAmount": "1", + "takerAmount": "15000000000000000000" + } + }, + "expected": { + "intent": "AugustusRFQ NFT order", + "owner": "AugustusRFQ", + "fields": [ + { + "label": "Nonce and metadata", + "value": "281474976776193" + }, + { + "label": "Expiration time", + "value": "1776530030" + }, + { + "label": "Maker asset encoded", + "value": "2536500777716045908446414720245124845575819686205" + }, + { + "label": "Maker asset NFT ID", + "value": "8817" + }, + { + "label": "Taker asset encoded", + "value": "1097077688018008265106216665536940668749033598146" + }, + { + "label": "Taker asset NFT ID", + "value": "0" + }, + { + "label": "Maker address", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Taker address", + "value": "0xF977814e90dA44bFA03b6295A0616a897441aceC" + }, + { + "label": "Maker amount", + "value": "1" + }, + { + "label": "Taker amount", + "value": "15000000000000000000" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-arb.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-arb.tests.json new file mode 100644 index 000000000..b6a197dc2 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-arb.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-arb.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Arbitrum", + "version": "1", + "chainId": 42161, + "verifyingContract": "0x912CE59144191C1204E64559FE8253A0E49E6548" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "2500000000000000000000", + "nonce": "7", + "deadline": "1776739200" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Arbitrum", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "2500 ARB" + }, + { + "label": "Valid until", + "value": "2026-04-21 02:40:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x912CE59144191C1204E64559FE8253a0e49E6548": { + "symbol": "ARB", + "decimals": 18, + "name": "Arbitrum" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-bridged-usdc.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-bridged-usdc.tests.json new file mode 100644 index 000000000..a37e73e68 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-bridged-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-bridged-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 42161, + "verifyingContract": "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "250000000", + "nonce": "12", + "deadline": "1785000000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDC (bridged)", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "250 USDC" + }, + { + "label": "Valid until", + "value": "2026-07-25 17:20:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin (Arb1)" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-dai.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-dai.tests.json new file mode 100644 index 000000000..c592f12cf --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-dai.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-dai.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Dai Stablecoin", + "version": "1", + "chainId": 42161, + "verifyingContract": "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "1500000000000000000000", + "nonce": "3", + "deadline": "1793472000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Dai Stablecoin", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "1500 DAI" + }, + { + "label": "Valid until", + "value": "2026-10-31 18:40:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1": { + "symbol": "DAI", + "decimals": 18, + "name": "Dai Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-gmx.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-gmx.tests.json new file mode 100644 index 000000000..6d993256d --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-gmx.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-gmx.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "GMX", + "version": "1", + "chainId": 42161, + "verifyingContract": "0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "150000000000000000000", + "nonce": "12", + "deadline": "1776739200" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "GMX", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "150 GMX" + }, + { + "label": "Valid until", + "value": "2026-04-21 02:40:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a": { + "symbol": "GMX", + "decimals": 18, + "name": "GMX" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-link.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-link.tests.json new file mode 100644 index 000000000..feb1743b6 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-link.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-link.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "ChainLink Token", + "version": "1", + "chainId": 42161, + "verifyingContract": "0xf97f4df75117a78c1A5a0DBb814Af92458539FB4" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "25000000000000000000", + "nonce": "12", + "deadline": "1782777600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "LINK", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "25 LINK" + }, + { + "label": "Valid until", + "value": "2026-06-30 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xf97f4df75117a78c1A5a0DBb814Af92458539FB4": { + "symbol": "LINK", + "decimals": 18, + "name": "ChainLink Token" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-rdnt.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-rdnt.tests.json new file mode 100644 index 000000000..d9005e91d --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-rdnt.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-rdnt.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Radiant", + "version": "1", + "chainId": 42161, + "verifyingContract": "0x3082CC23568eA640225c2467653dB90e9250AaA0" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x794a61358D6845594F94dc1DB02A252b5b4814aD", + "value": "2500000000000000000000", + "nonce": "7", + "deadline": "1776729600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Radiant", + "fields": [ + { + "label": "Spender", + "value": "0x794a61358D6845594F94dc1DB02A252b5b4814aD" + }, + { + "label": "Max spending amount", + "value": "2500 RDNT" + }, + { + "label": "Valid until", + "value": "2026-04-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x3082CC23568eA640225c2467653dB90e9250AaA0": { + "symbol": "RDNT", + "decimals": 18, + "name": "Radiant" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-usdc.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-usdc.tests.json new file mode 100644 index 000000000..734d42c3d --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 42161, + "verifyingContract": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "250000000", + "nonce": "7", + "deadline": "1780000000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDC", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "250 USDC" + }, + { + "label": "Valid until", + "value": "2026-05-28 20:26:40Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-usds.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-usds.tests.json new file mode 100644 index 000000000..ec2c45a9d --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-usds.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-usds.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Gains Network", + "version": "1", + "chainId": 42161, + "verifyingContract": "0x6491c05A82219b8D1479057361ff1654749b876b" + }, + "message": { + "owner": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826", + "spender": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4", + "value": "2500000000000000000000", + "nonce": 12, + "deadline": 1781913600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDS", + "fields": [ + { + "label": "Spender", + "value": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4" + }, + { + "label": "Max spending amount", + "value": "2500 USDS" + }, + { + "label": "Valid until", + "value": "2026-06-20 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x6491c05A82219b8D1479057361ff1654749b876b": { + "symbol": "USDS", + "decimals": 18, + "name": "USDS Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-usdt.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-usdt.tests.json new file mode 100644 index 000000000..418bb0b41 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-usdt.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-usdt.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Tether USD", + "version": "1", + "chainId": 42161, + "verifyingContract": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": 250000000, + "nonce": 12, + "deadline": 1798761600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDT", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "250 USD\u20ae0" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": { + "symbol": "USD\u20ae0", + "decimals": 6, + "name": "USD\u20ae0" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-wbtc.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-wbtc.tests.json new file mode 100644 index 000000000..be87dd699 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-wbtc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-wbtc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped BTC", + "version": "1", + "chainId": 42161, + "verifyingContract": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "25000000", + "nonce": "3", + "deadline": "1779475200" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Wrapped BTC", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "0.25 WBTC" + }, + { + "label": "Valid until", + "value": "2026-05-22 18:40:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f": { + "symbol": "WBTC", + "decimals": 8, + "name": "Wrapped BTC" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-weth.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-weth.tests.json new file mode 100644 index 000000000..613dff806 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-weth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-weth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped Ether", + "version": "1", + "chainId": 42161, + "verifyingContract": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1" + }, + "message": { + "owner": "0xF977814e90dA44bFA03b6295A0616a897441aceC", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "250000000000000000", + "nonce": "7", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "WETH", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "0.25 WETH" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-arbitrum-wsteth.tests.json b/registry/permit/testsv2/eip712-permit-arbitrum-wsteth.tests.json new file mode 100644 index 000000000..0606ff437 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-arbitrum-wsteth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-arbitrum-wsteth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped stETH", + "version": "1", + "chainId": 42161, + "verifyingContract": "0x9cfB13E6c11054ac9fcB92BA89644F30775436e4" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "value": "500000000000000000", + "nonce": "12", + "deadline": "1779494400" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Wrapped liquid staked Ether 2.0", + "fields": [ + { + "label": "Spender", + "value": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + { + "label": "Max spending amount", + "value": "0.5 axl-wstETH" + }, + { + "label": "Valid until", + "value": "2026-05-23 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x9cfB13E6c11054ac9fcB92BA89644F30775436e4": { + "symbol": "axl-wstETH", + "decimals": 18, + "name": "Axelar Wrapped wstETH" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-avalanche_c_chain-joe.tests.json b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-joe.tests.json new file mode 100644 index 000000000..556ae091b --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-joe.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-avalanche_c_chain-joe.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "JoeToken", + "version": "1", + "chainId": 43114, + "verifyingContract": "0x6e84a6216eA6dACC71eE8E6b0a5B7322EEbC0fDd" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x60aE616a2155Ee3d9A68541Ba4544862310933d4", + "value": "2500000000000000000000", + "nonce": "7", + "deadline": "1789689600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "JoeToken", + "fields": [ + { + "label": "Spender", + "value": "0x60aE616a2155Ee3d9A68541Ba4544862310933d4" + }, + { + "label": "Max spending amount", + "value": "2500 JOE" + }, + { + "label": "Valid until", + "value": "2026-09-18 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x6e84a6216eA6dACC71eE8E6b0a5B7322EEbC0fDd": { + "symbol": "JOE", + "decimals": 18, + "name": "JoeToken" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-avalanche_c_chain-link.tests.json b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-link.tests.json new file mode 100644 index 000000000..4a15d38b4 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-link.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-avalanche_c_chain-link.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "ChainLink Token", + "version": "1", + "chainId": 43114, + "verifyingContract": "0x5947BB275c521040051D82396192181b413227A3" + }, + "message": { + "owner": "0xF977814e90dA44bFA03b6295A0616a897441aceC", + "spender": "0x60aE616a2155Ee3d9A68541Ba4544862310933d4", + "value": "150000000000000000000", + "nonce": "12", + "deadline": 1776816000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Chainlink Token (bridged)", + "fields": [ + { + "label": "Spender", + "value": "0x60aE616a2155Ee3d9A68541Ba4544862310933d4" + }, + { + "label": "Max spending amount", + "value": "150 LINK.e" + }, + { + "label": "Valid until", + "value": "2026-04-22 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x5947BB275c521040051D82396192181b413227A3": { + "symbol": "LINK.e", + "decimals": 18, + "name": "Chainlink Token" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-avalanche_c_chain-pangolin.tests.json b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-pangolin.tests.json new file mode 100644 index 000000000..ca83f3078 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-pangolin.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-avalanche_c_chain-pangolin.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Pangolin", + "version": "1", + "chainId": 43114, + "verifyingContract": "0x60781c2586d68229fde47564546784ab3faca982" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "500000000000000000000", + "nonce": "12", + "deadline": "1777689600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Pangolin", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "500 PNG" + }, + { + "label": "Valid until", + "value": "2026-05-02 02:40:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x60781C2586D68229fde47564546784ab3fACA982": { + "symbol": "PNG", + "decimals": 18, + "name": "Pangolin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-avalanche_c_chain-savax.tests.json b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-savax.tests.json new file mode 100644 index 000000000..d0fd68582 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-savax.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-avalanche_c_chain-savax.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Staked AVAX", + "version": "1", + "chainId": 43114, + "verifyingContract": "0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "250000000000000000000", + "nonce": 7, + "deadline": 1777680000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Staked AVAX", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "250 sAVAX" + }, + { + "label": "Valid until", + "value": "2026-05-02 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE": { + "symbol": "sAVAX", + "decimals": 18, + "name": "Staked AVAX" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-avalanche_c_chain-usdc.tests.json b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-usdc.tests.json new file mode 100644 index 000000000..9f444aa5f --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-avalanche_c_chain-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 43114, + "verifyingContract": "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x60aE616a2155Ee3d9A68541Ba4544862310933d4", + "value": "2500000000", + "nonce": "7", + "deadline": "1776729600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDC", + "fields": [ + { + "label": "Spender", + "value": "0x60aE616a2155Ee3d9A68541Ba4544862310933d4" + }, + { + "label": "Max spending amount", + "value": "2500 USDC" + }, + { + "label": "Valid until", + "value": "2026-04-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-avalanche_c_chain-usdt.tests.json b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-usdt.tests.json new file mode 100644 index 000000000..5d47df675 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-usdt.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-avalanche_c_chain-usdt.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Tether USD", + "version": "1", + "chainId": 43114, + "verifyingContract": "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "2500000000", + "nonce": "3", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDT", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "2500 USDt" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7": { + "symbol": "USDt", + "decimals": 6, + "name": "TetherToken" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-avalanche_c_chain-wbtc.tests.json b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-wbtc.tests.json new file mode 100644 index 000000000..c5eae2132 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-wbtc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-avalanche_c_chain-wbtc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Bitcoin", + "version": "1", + "chainId": 43114, + "verifyingContract": "0x152b9d0FdC40C096757F570A51E494bd4b943E50" + }, + "message": { + "owner": "0x52908400098527886E0F7030069857D2E4169EE7", + "spender": "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7", + "value": 2500000, + "nonce": 7, + "deadline": 1777000000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "BTC.b", + "fields": [ + { + "label": "Spender", + "value": "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7" + }, + { + "label": "Max spending amount", + "value": "0.025 BTC.b" + }, + { + "label": "Valid until", + "value": "2026-04-24 03:06:40Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x152b9d0FdC40C096757F570A51E494bd4b943E50": { + "symbol": "BTC.b", + "decimals": 8, + "name": "Bitcoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-avalanche_c_chain-weth.tests.json b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-weth.tests.json new file mode 100644 index 000000000..5b1b549db --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-weth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-avalanche_c_chain-weth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped Ether", + "version": "1", + "chainId": 43114, + "verifyingContract": "0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x111111125421cA6dC452d289314280a0f8842A65", + "value": "2500000000000000000", + "nonce": "7", + "deadline": "1776816000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "WETH.e", + "fields": [ + { + "label": "Spender", + "value": "0x111111125421cA6dc452d289314280a0f8842A65" + }, + { + "label": "Max spending amount", + "value": "2.5 WETH.e" + }, + { + "label": "Valid until", + "value": "2026-04-22 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB": { + "symbol": "WETH.e", + "decimals": 18, + "name": "Wrapped Ether" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-avalanche_c_chain-yetiswap.tests.json b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-yetiswap.tests.json new file mode 100644 index 000000000..a6d19cc61 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-avalanche_c_chain-yetiswap.tests.json @@ -0,0 +1,93 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-avalanche_c_chain-yetiswap.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "YetiSwap", + "chainId": 43114, + "verifyingContract": "0x488f73cddda1de3664775ffd91623637383d6404" + }, + "message": { + "owner": "0x1111111111111111111111111111111111111111", + "spender": "0x1111111111111111111111111111111111111111", + "value": "1000000000000000000", + "nonce": "1000000000000000000", + "deadline": 1782864000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "YetiSwap", + "fields": [ + { + "label": "Spender", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Max spending amount", + "value": "1 YTS" + }, + { + "label": "Valid until", + "value": "2026-07-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x488F73cddDA1DE3664775fFd91623637383D6404": { + "symbol": "YTS", + "decimals": 18, + "name": "YetiSwap" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-aero.tests.json b/registry/permit/testsv2/eip712-permit-base-aero.tests.json new file mode 100644 index 000000000..e9fead480 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-aero.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-aero.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Aero", + "version": "1", + "chainId": 8453, + "verifyingContract": "0x940181a94A35A4569E4529A3CDfB74e38FD98631" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "value": "2500000000000000000000", + "nonce": "7", + "deadline": 1798761600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "AERO", + "fields": [ + { + "label": "Spender", + "value": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + { + "label": "Max spending amount", + "value": "2500 AERO" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x940181a94A35A4569E4529A3CDfB74e38FD98631": { + "symbol": "AERO", + "decimals": 18, + "name": "Aerodrome" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-brett.tests.json b/registry/permit/testsv2/eip712-permit-base-brett.tests.json new file mode 100644 index 000000000..d7b5a7bb3 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-brett.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-brett.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Brett", + "version": "1", + "chainId": 8453, + "verifyingContract": "0x532f27101965dd16442E59d40670FaF5eBB142E4" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "value": "250000000000000000000000", + "nonce": "12", + "deadline": "1782000000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "BRETT", + "fields": [ + { + "label": "Spender", + "value": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + { + "label": "Max spending amount", + "value": "250000 BRETT" + }, + { + "label": "Valid until", + "value": "2026-06-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x532f27101965dd16442E59d40670FaF5eBB142E4": { + "symbol": "BRETT", + "decimals": 18, + "name": "BRETT" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-cbeth.tests.json b/registry/permit/testsv2/eip712-permit-base-cbeth.tests.json new file mode 100644 index 000000000..92ef2acc4 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-cbeth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-cbeth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Coinbase Wrapped Staked ETH", + "version": "1", + "chainId": 8453, + "verifyingContract": "0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "value": "250000000000000000", + "nonce": "7", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Coinbase Wrapped Staked ETH", + "fields": [ + { + "label": "Spender", + "value": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + { + "label": "Max spending amount", + "value": "0.25 cbETH" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22": { + "symbol": "cbETH", + "decimals": 18, + "name": "Coinbase Wrapped Staked ETH" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-dai.tests.json b/registry/permit/testsv2/eip712-permit-base-dai.tests.json new file mode 100644 index 000000000..3d5de8fd5 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-dai.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-dai.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Dai Stablecoin", + "version": "1", + "chainId": 8453, + "verifyingContract": "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "2500000000000000000000", + "nonce": "12", + "deadline": "1776810000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Dai Stablecoin", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "2500 DAI" + }, + { + "label": "Valid until", + "value": "2026-04-21 22:20:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb": { + "symbol": "DAI", + "decimals": 18, + "name": "Dai Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-degen.tests.json b/registry/permit/testsv2/eip712-permit-base-degen.tests.json new file mode 100644 index 000000000..2113d76f9 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-degen.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-degen.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Degen", + "version": "1", + "chainId": 8453, + "verifyingContract": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "value": "125000000000000000000000", + "nonce": "7", + "deadline": "1776816000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "DEGEN", + "fields": [ + { + "label": "Spender", + "value": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + { + "label": "Max spending amount", + "value": "125000 DEGEN" + }, + { + "label": "Valid until", + "value": "2026-04-22 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed": { + "symbol": "DEGEN", + "decimals": 18, + "name": "DEGEN" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-toshi.tests.json b/registry/permit/testsv2/eip712-permit-base-toshi.tests.json new file mode 100644 index 000000000..0c1632246 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-toshi.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-toshi.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Toshi", + "version": "1", + "chainId": 8453, + "verifyingContract": "0xAC1Bd2486aAf3B5C0fc3Fd868558b082a531B2B4" + }, + "message": { + "owner": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826", + "spender": "0x52908400098527886E0F7030069857D2E4169EE7", + "value": "1500000000000000000000", + "nonce": 12, + "deadline": 1798761600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Toshi", + "fields": [ + { + "label": "Spender", + "value": "0x52908400098527886E0F7030069857D2E4169EE7" + }, + { + "label": "Max spending amount", + "value": "1500 TOSHI" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xAC1Bd2486aAf3B5C0fc3Fd868558b082a531B2B4": { + "symbol": "TOSHI", + "decimals": 18, + "name": "Toshi" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-usdc.tests.json b/registry/permit/testsv2/eip712-permit-base-usdc.tests.json new file mode 100644 index 000000000..46a934cac --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 8453, + "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "250000000", + "nonce": "7", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDC", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "250 USDC" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-usds.tests.json b/registry/permit/testsv2/eip712-permit-base-usds.tests.json new file mode 100644 index 000000000..8b8bb1a3a --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-usds.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-usds.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USDS Stablecoin", + "version": "1", + "chainId": 8453, + "verifyingContract": "0x820C137fa70C8691f0e44Dc420a5e53c168921Dc" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "1500000000000000000000", + "nonce": "7", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDS", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "1500 USDS" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x820C137fa70C8691f0e44Dc420a5e53c168921Dc": { + "symbol": "USDS", + "decimals": 18, + "name": "USDS Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-usdt.tests.json b/registry/permit/testsv2/eip712-permit-base-usdt.tests.json new file mode 100644 index 000000000..a405580c9 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-usdt.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-usdt.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Tether USD", + "version": "1", + "chainId": 8453, + "verifyingContract": "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "2500000000000000000", + "nonce": 7, + "deadline": 1798761600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Tether USD", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "2500000000000 USDT" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2": { + "symbol": "USDT", + "decimals": 6, + "name": "Tether USD" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-base-wsteth.tests.json b/registry/permit/testsv2/eip712-permit-base-wsteth.tests.json new file mode 100644 index 000000000..e85b2f3e2 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-base-wsteth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-base-wsteth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped liquid staked Ether 2.0", + "version": "1", + "chainId": 8453, + "verifyingContract": "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x2626664c2603336E57B271c5C0b26F421741e481", + "value": "250000000000000000", + "nonce": "7", + "deadline": "1782000000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Wrapped liquid staked Ether 2.0", + "fields": [ + { + "label": "Spender", + "value": "0x2626664c2603336E57B271c5C0b26F421741e481" + }, + { + "label": "Max spending amount", + "value": "0.25 wstETH" + }, + { + "label": "Valid until", + "value": "2026-06-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452": { + "symbol": "wstETH", + "decimals": 18, + "name": "Wrapped liquid staked Ether 2.0" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-bsc-1inch-token.tests.json b/registry/permit/testsv2/eip712-permit-bsc-1inch-token.tests.json new file mode 100644 index 000000000..0c8a85465 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-bsc-1inch-token.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-bsc-1inch-token.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "1INCH Token", + "version": "1", + "chainId": 56, + "verifyingContract": "0x111111111117dC0aa78b770fA6A738034120C302" + }, + "message": { + "owner": "0xF977814e90dA44bFA03b6295A0616a897441aceC", + "spender": "0x10ED43C718714eb63d5aA57B78B54704E256024E", + "value": "250000000000000000000", + "nonce": 7, + "deadline": 1776729600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "1INCH Token", + "fields": [ + { + "label": "Spender", + "value": "0x10ED43C718714eb63d5aA57B78B54704E256024E" + }, + { + "label": "Max spending amount", + "value": "250 1INCH" + }, + { + "label": "Valid until", + "value": "2026-04-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x111111111117dC0aa78b770fA6A738034120C302": { + "symbol": "1INCH", + "decimals": 18, + "name": "1INCH Token" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-bsc-cake.tests.json b/registry/permit/testsv2/eip712-permit-bsc-cake.tests.json new file mode 100644 index 000000000..cc2a54bc3 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-bsc-cake.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-bsc-cake.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "PancakeSwap Token", + "version": "1", + "chainId": 56, + "verifyingContract": "0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x10ED43C718714eb63d5aA57B78B54704E256024E", + "value": "25000000000000000000", + "nonce": "12", + "deadline": "1782864000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Cake", + "fields": [ + { + "label": "Spender", + "value": "0x10ED43C718714eb63d5aA57B78B54704E256024E" + }, + { + "label": "Max spending amount", + "value": "25 Cake" + }, + { + "label": "Valid until", + "value": "2026-07-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82": { + "symbol": "Cake", + "decimals": 18, + "name": "PancakeSwap Token" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-bsc-eth.tests.json b/registry/permit/testsv2/eip712-permit-bsc-eth.tests.json new file mode 100644 index 000000000..419d8deff --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-bsc-eth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-bsc-eth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Ethereum Token", + "version": "1", + "chainId": 56, + "verifyingContract": "0x2170Ed0880ac9A755fd29B2688956BD959F933F8" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x10ED43C718714eb63d5aA57B78B54704E256024E", + "value": "500000000000000000", + "nonce": "7", + "deadline": "1776811425" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "ETH", + "fields": [ + { + "label": "Spender", + "value": "0x10ED43C718714eb63d5aA57B78B54704E256024E" + }, + { + "label": "Max spending amount", + "value": "0.5 ETH" + }, + { + "label": "Valid until", + "value": "2026-04-21 22:43:45Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x2170Ed0880ac9A755fd29B2688956BD959F933F8": { + "symbol": "ETH", + "decimals": 18, + "name": "Ethereum Token" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-bsc-polkastarter-token.tests.json b/registry/permit/testsv2/eip712-permit-bsc-polkastarter-token.tests.json new file mode 100644 index 000000000..fde85469e --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-bsc-polkastarter-token.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-bsc-polkastarter-token.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "PolkastarterToken", + "version": "1", + "chainId": 56, + "verifyingContract": "0x7e624FA0E1c4AbFD309cC15719b7E2580887f570" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x10ED43C718714eb63d5aA57B78B54704E256024E", + "value": "2500000000000000000000", + "nonce": 12, + "deadline": 1799999999 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "PolkastarterToken", + "fields": [ + { + "label": "Spender", + "value": "0x10ED43C718714eb63d5aA57B78B54704E256024E" + }, + { + "label": "Max spending amount", + "value": "2500 POLS" + }, + { + "label": "Valid until", + "value": "2027-01-15 07:59:59Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x7e624FA0E1c4AbFD309cC15719b7E2580887f570": { + "symbol": "POLS", + "decimals": 18, + "name": "PolkastarterToken" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-bsc-usdc.tests.json b/registry/permit/testsv2/eip712-permit-bsc-usdc.tests.json new file mode 100644 index 000000000..cc75b7b10 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-bsc-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-bsc-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 56, + "verifyingContract": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x10ED43C718714eb63d5aA57B78B54704E256024E", + "value": "25000000000000000000", + "nonce": "7", + "deadline": "1782864000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDC", + "fields": [ + { + "label": "Spender", + "value": "0x10ED43C718714eb63d5aA57B78B54704E256024E" + }, + { + "label": "Max spending amount", + "value": "25 USDC" + }, + { + "label": "Valid until", + "value": "2026-07-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d": { + "symbol": "USDC", + "decimals": 18, + "name": "USD Coin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-ethereum-aave.tests.json b/registry/permit/testsv2/eip712-permit-ethereum-aave.tests.json new file mode 100644 index 000000000..e0af3494b --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-ethereum-aave.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-ethereum-aave.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Aave Token", + "version": "1", + "chainId": 1, + "verifyingContract": "0x7Fc66500c84A76Ad7e9C93437bFc5Ac33E2DdAe9" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "25000000000000000000", + "nonce": "3", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Aave", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "25 AAVE" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9": { + "symbol": "AAVE", + "decimals": 18, + "name": "Aave Token" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-ethereum-dai.tests.json b/registry/permit/testsv2/eip712-permit-ethereum-dai.tests.json new file mode 100644 index 000000000..4f04f889e --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-ethereum-dai.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-ethereum-dai.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Dai Stablecoin", + "version": "1", + "chainId": 1, + "verifyingContract": "0x6B175474E89094C44Da98b954EedeAC495271d0F" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D", + "value": "2500000000000000000000", + "nonce": "12", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Dai Stablecoin v2.0", + "fields": [ + { + "label": "Spender", + "value": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D" + }, + { + "label": "Max spending amount", + "value": "2500 DAI" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x6B175474E89094C44Da98b954EedeAC495271d0F": { + "symbol": "DAI", + "decimals": 18, + "name": "Dai Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-ethereum-lido-steth.tests.json b/registry/permit/testsv2/eip712-permit-ethereum-lido-steth.tests.json new file mode 100644 index 000000000..95e4173fe --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-ethereum-lido-steth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-ethereum-lido-steth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Liquid staked Ether 2.0", + "version": "2", + "chainId": 1, + "verifyingContract": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "2000000000000000000", + "nonce": "7", + "deadline": "1780000000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Lido DAO", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "2 stETH" + }, + { + "label": "Valid until", + "value": "2026-05-28 20:26:40Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84": { + "symbol": "stETH", + "decimals": 18, + "name": "Liquid staked Ether 2.0" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-ethereum-lido-wsteth.tests.json b/registry/permit/testsv2/eip712-permit-ethereum-lido-wsteth.tests.json new file mode 100644 index 000000000..82a6250af --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-ethereum-lido-wsteth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-ethereum-lido-wsteth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped stETH", + "version": "1", + "chainId": 1, + "verifyingContract": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x111111125421cA6dc452d289314280a0f8842A65", + "value": "500000000000000000", + "nonce": "7", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Lido DAO", + "fields": [ + { + "label": "Spender", + "value": "0x111111125421cA6dc452d289314280a0f8842A65" + }, + { + "label": "Max spending amount", + "value": "0.5 wstETH" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": { + "symbol": "wstETH", + "decimals": 18, + "name": "Wrapped liquid staked Ether 2.0" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-ethereum-link.tests.json b/registry/permit/testsv2/eip712-permit-ethereum-link.tests.json new file mode 100644 index 000000000..f308b7acd --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-ethereum-link.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-ethereum-link.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "ChainLink Token", + "version": "1", + "chainId": 1, + "verifyingContract": "0x514910771AF9Ca656af840dff83E8264EcF986CA" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "250000000000000000000", + "nonce": "7", + "deadline": "1774216522" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "LINK", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "250 LINK" + }, + { + "label": "Valid until", + "value": "2026-03-22 21:55:22Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x514910771AF9Ca656af840dff83E8264EcF986CA": { + "symbol": "LINK", + "decimals": 18, + "name": "ChainLink Token" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-ethereum-usdc.tests.json b/registry/permit/testsv2/eip712-permit-ethereum-usdc.tests.json new file mode 100644 index 000000000..75168266b --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-ethereum-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-ethereum-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 1, + "verifyingContract": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": 2500000000, + "nonce": 12, + "deadline": 1782864000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDC", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "2500 USDC" + }, + { + "label": "Valid until", + "value": "2026-07-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-ethereum-usds.tests.json b/registry/permit/testsv2/eip712-permit-ethereum-usds.tests.json new file mode 100644 index 000000000..ad64837ab --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-ethereum-usds.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-ethereum-usds.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USDe", + "version": "1", + "chainId": 1, + "verifyingContract": "0xdC035D45d973E3EC169d2276DDab16f1e407384F" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "value": "100000000000000000000", + "nonce": "12", + "deadline": "1779321600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDS", + "fields": [ + { + "label": "Spender", + "value": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + { + "label": "Max spending amount", + "value": "100 USDS" + }, + { + "label": "Valid until", + "value": "2026-05-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xdC035D45d973E3EC169d2276DDab16f1e407384F": { + "symbol": "USDS", + "decimals": 18, + "name": "USDS Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-fantom-mimatic.tests.json b/registry/permit/testsv2/eip712-permit-fantom-mimatic.tests.json new file mode 100644 index 000000000..10c920ef6 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-fantom-mimatic.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-fantom-mimatic.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Beefy", + "version": "1", + "chainId": 250, + "verifyingContract": "0xfb98b335551a418cd0737375a2ea0ded62ea213b" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "2500000000000000000000", + "nonce": "7", + "deadline": "1793472000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "miMATIC", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "2500 miMATIC" + }, + { + "label": "Valid until", + "value": "2026-10-31 18:40:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xfB98B335551a418cD0737375a2ea0ded62Ea213b": { + "symbol": "miMATIC", + "decimals": 18, + "name": "miMATIC" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-fantom-wootrade.tests.json b/registry/permit/testsv2/eip712-permit-fantom-wootrade.tests.json new file mode 100644 index 000000000..c3bd0fb68 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-fantom-wootrade.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-fantom-wootrade.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Geist Finance", + "version": "1", + "chainId": 250, + "verifyingContract": "0x6626c47c00f1d87902fc13eecfac3ed06d5e8d8a" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xF491e7B69E4244ad4002BC14e878a34207E38c29", + "value": "250000000000000000000", + "nonce": 7, + "deadline": 1781913600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Wootrade Network", + "fields": [ + { + "label": "Spender", + "value": "0xF491e7B69E4244ad4002BC14e878a34207E38c29" + }, + { + "label": "Max spending amount", + "value": "250 WOO" + }, + { + "label": "Valid until", + "value": "2026-06-20 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x6626c47c00F1D87902fc13EECfaC3ed06D5E8D8a": { + "symbol": "WOO", + "decimals": 18, + "name": "Wootrade Network" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-linea-dai.tests.json b/registry/permit/testsv2/eip712-permit-linea-dai.tests.json new file mode 100644 index 000000000..79f689f01 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-linea-dai.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-linea-dai.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Dai Stablecoin", + "version": "1", + "chainId": 59144, + "verifyingContract": "0x4AF15ec2A0BD43Db75dd04E62FAA3B8EF36b00d5" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "250000000000000000000", + "nonce": 12, + "deadline": 1776729600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Dai Stablecoin", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "250 DAI" + }, + { + "label": "Valid until", + "value": "2026-04-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x4AF15ec2A0BD43Db75dd04E62FAA3B8EF36b00d5": { + "symbol": "DAI", + "decimals": 18, + "name": "Dai Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-linea-frax.tests.json b/registry/permit/testsv2/eip712-permit-linea-frax.tests.json new file mode 100644 index 000000000..81fb03de7 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-linea-frax.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-linea-frax.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Frax USD", + "version": "1.1.0", + "chainId": 59144, + "verifyingContract": "0xc7346783f5e645aa998b106ef9e7f499528673d8" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "2500000000000000000000", + "nonce": 7, + "deadline": 1798761600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Frax USD", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "2500 frxUSD" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xC7346783f5e645aa998B106Ef9E7f499528673D8": { + "symbol": "frxUSD", + "decimals": 18, + "name": "Frax USD" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-linea-lusd.tests.json b/registry/permit/testsv2/eip712-permit-linea-lusd.tests.json new file mode 100644 index 000000000..c89d18de7 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-linea-lusd.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-linea-lusd.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Axelar Wrapped USDC", + "version": "1", + "chainId": 59144, + "verifyingContract": "0xEB466342C4d449BC9f53A865D5Cb90586f405215" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x111111125421cA6dc452d289314280a0f8842A65", + "value": 250000000, + "nonce": 7, + "deadline": 1779494400 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Axelar Wrapped USDC", + "fields": [ + { + "label": "Spender", + "value": "0x111111125421cA6dc452d289314280a0f8842A65" + }, + { + "label": "Max spending amount", + "value": "250 axlUSDC" + }, + { + "label": "Valid until", + "value": "2026-05-23 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xEB466342C4d449BC9f53A865D5Cb90586f405215": { + "symbol": "axlUSDC", + "decimals": 6, + "name": "Axelar Wrapped USDC" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-linea-usdc.tests.json b/registry/permit/testsv2/eip712-permit-linea-usdc.tests.json new file mode 100644 index 000000000..bf554913f --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-linea-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-linea-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "1", + "chainId": 59144, + "verifyingContract": "0x176211869cA2b568f2A7D4EE941E073a821EE1ff" + }, + "message": { + "owner": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826", + "spender": "0x8617E340B3D01FA5F11F306F4090FD50E238070D", + "value": "250000000", + "nonce": "12", + "deadline": "1776729600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USD Coin", + "fields": [ + { + "label": "Spender", + "value": "0x8617E340B3D01FA5F11F306F4090FD50E238070D" + }, + { + "label": "Max spending amount", + "value": "250 USDC" + }, + { + "label": "Valid until", + "value": "2026-04-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x176211869cA2b568f2A7D4EE941E073a821EE1ff": { + "symbol": "USDC", + "decimals": 6, + "name": "USDC" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-linea-usdt.tests.json b/registry/permit/testsv2/eip712-permit-linea-usdt.tests.json new file mode 100644 index 000000000..e3b72328c --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-linea-usdt.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-linea-usdt.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Tether USD", + "version": "2", + "chainId": 59144, + "verifyingContract": "0xA219439258ca9da29E9Cc4cE5596924745e12B93" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": 250000000, + "nonce": 12, + "deadline": 1776816000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Tether USD", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "250 USDT" + }, + { + "label": "Valid until", + "value": "2026-04-22 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xA219439258ca9da29E9Cc4cE5596924745e12B93": { + "symbol": "USDT", + "decimals": 6, + "name": "Tether USD" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-linea-wbtc.tests.json b/registry/permit/testsv2/eip712-permit-linea-wbtc.tests.json new file mode 100644 index 000000000..fbdd189c3 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-linea-wbtc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-linea-wbtc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped BTC", + "version": "1", + "chainId": 59144, + "verifyingContract": "0x3aAB2285ddcDdaD8edf438C1bAB47e1a9D05a9b4" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": 12500000, + "nonce": 12, + "deadline": 1776816000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Wrapped BTC", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "0.125 WBTC" + }, + { + "label": "Valid until", + "value": "2026-04-22 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x3aAB2285ddcDdaD8edf438C1bAB47e1a9D05a9b4": { + "symbol": "WBTC", + "decimals": 8, + "name": "Wrapped BTC" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-linea-weth.tests.json b/registry/permit/testsv2/eip712-permit-linea-weth.tests.json new file mode 100644 index 000000000..268234a69 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-linea-weth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-linea-weth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped Ether", + "version": "1", + "chainId": 59144, + "verifyingContract": "0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": 5000000000000000, + "nonce": 9, + "deadline": 1776816000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Wrapped Ether", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "0.005 WETH" + }, + { + "label": "Valid until", + "value": "2026-04-22 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-linea-wsteth.tests.json b/registry/permit/testsv2/eip712-permit-linea-wsteth.tests.json new file mode 100644 index 000000000..50cf39b7d --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-linea-wsteth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-linea-wsteth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped liquid staked Ether 2.0", + "version": "1", + "chainId": 59144, + "verifyingContract": "0xB5beDd42000b71FddE22D3eE8a79Bd49A568fC8F" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "750000000000000000", + "nonce": "12", + "deadline": "1782691200" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Wrapped liquid staked Ether 2.0", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "0.75 wstETH" + }, + { + "label": "Valid until", + "value": "2026-06-29 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xB5beDd42000b71FddE22D3eE8a79Bd49A568fC8F": { + "symbol": "wstETH", + "decimals": 18, + "name": "Wrapped liquid staked Ether 2.0" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-bob.tests.json b/registry/permit/testsv2/eip712-permit-optimism-bob.tests.json new file mode 100644 index 000000000..2e9c7cb0e --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-bob.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-bob.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "BOB", + "version": "1", + "chainId": 10, + "verifyingContract": "0xb0b195aefa3650a6908f15cdac7d92f8a5791b0b" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "50000000000000000000", + "nonce": 3, + "deadline": 1775000000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "BOB", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "50 BOB" + }, + { + "label": "Valid until", + "value": "2026-03-31 23:33:20Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xB0B195aEFA3650A6908f15CdaC7D92F8a5791B0B": { + "symbol": "BOB", + "decimals": 18, + "name": "BOB" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-dai.tests.json b/registry/permit/testsv2/eip712-permit-optimism-dai.tests.json new file mode 100644 index 000000000..d369ed36f --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-dai.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-dai.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Dai Stablecoin", + "version": "1", + "chainId": 10, + "verifyingContract": "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "2500000000000000000000", + "nonce": "7", + "deadline": "1776748800" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Dai Stablecoin", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "2500 DAI" + }, + { + "label": "Valid until", + "value": "2026-04-21 05:20:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1": { + "symbol": "DAI", + "decimals": 18, + "name": "Dai Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-lusd.tests.json b/registry/permit/testsv2/eip712-permit-optimism-lusd.tests.json new file mode 100644 index 000000000..e9cddbcf8 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-lusd.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-lusd.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "LUSD Stablecoin", + "version": "1", + "chainId": 10, + "verifyingContract": "0xc40F949F8a4e094D1b49a23ea9241D289B7b2819" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "1000000000000000000000", + "nonce": "7", + "deadline": "1777000000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "LUSD Stablecoin", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "1000 LUSD" + }, + { + "label": "Valid until", + "value": "2026-04-24 03:06:40Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xc40F949F8a4e094D1b49a23ea9241D289B7b2819": { + "symbol": "LUSD", + "decimals": 18, + "name": "LUSD Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-op.tests.json b/registry/permit/testsv2/eip712-permit-optimism-op.tests.json new file mode 100644 index 000000000..341120671 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-op.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-op.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Optimism", + "version": "1", + "chainId": 10, + "verifyingContract": "0x4200000000000000000000000000000000000042" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "250000000000000000000", + "nonce": "7", + "deadline": "1775001600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Optimism", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "250 OP" + }, + { + "label": "Valid until", + "value": "2026-04-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x4200000000000000000000000000000000000042": { + "symbol": "OP", + "decimals": 18, + "name": "Optimism" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-snx.tests.json b/registry/permit/testsv2/eip712-permit-optimism-snx.tests.json new file mode 100644 index 000000000..82412ff58 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-snx.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-snx.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Synthetix Network Token", + "version": "1", + "chainId": 10, + "verifyingContract": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45", + "value": "250000000000000000000", + "nonce": "7", + "deadline": "1776816000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Synthetix Network Token", + "fields": [ + { + "label": "Spender", + "value": "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45" + }, + { + "label": "Max spending amount", + "value": "250 SNX" + }, + { + "label": "Valid until", + "value": "2026-04-22 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4": { + "symbol": "SNX", + "decimals": 18, + "name": "Synthetix Network Token" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-usdc.tests.json b/registry/permit/testsv2/eip712-permit-optimism-usdc.tests.json new file mode 100644 index 000000000..6c515202d --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 10, + "verifyingContract": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "250000000", + "nonce": "12", + "deadline": "1776748800" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USD Coin", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "250 USDC" + }, + { + "label": "Valid until", + "value": "2026-04-21 05:20:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-usdt.tests.json b/registry/permit/testsv2/eip712-permit-optimism-usdt.tests.json new file mode 100644 index 000000000..bf2e0eeda --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-usdt.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-usdt.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Tether USD", + "version": "1", + "chainId": 10, + "verifyingContract": "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "250000000", + "nonce": "12", + "deadline": "1780000000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Tether USD", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "250 USDT" + }, + { + "label": "Valid until", + "value": "2026-05-28 20:26:40Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58": { + "symbol": "USDT", + "decimals": 6, + "name": "Tether USD" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-velo.tests.json b/registry/permit/testsv2/eip712-permit-optimism-velo.tests.json new file mode 100644 index 000000000..50e07ef7d --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-velo.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-velo.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "VelodromeV2", + "version": "1", + "chainId": 10, + "verifyingContract": "0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "2500000000000000000000", + "nonce": "7", + "deadline": "1776816000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "VelodromeV2", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "2500 VELO" + }, + { + "label": "Valid until", + "value": "2026-04-22 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db": { + "symbol": "VELO", + "decimals": 18, + "name": "VelodromeV2" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-wbtc.tests.json b/registry/permit/testsv2/eip712-permit-optimism-wbtc.tests.json new file mode 100644 index 000000000..10fa6bb18 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-wbtc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-wbtc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped BTC", + "version": "1", + "chainId": 10, + "verifyingContract": "0x68f180fcCe6836688e9084f035309E29Bf0A2095" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": 15000000, + "nonce": 2, + "deadline": 1798761600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Wrapped BTC", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "0.15 WBTC" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x68f180fcCe6836688e9084f035309E29Bf0A2095": { + "symbol": "WBTC", + "decimals": 8, + "name": "Wrapped BTC" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-optimism-wsteth.tests.json b/registry/permit/testsv2/eip712-permit-optimism-wsteth.tests.json new file mode 100644 index 000000000..5564b1bb6 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-optimism-wsteth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-optimism-wsteth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped stETH", + "version": "1", + "chainId": 10, + "verifyingContract": "0x9cfB13E6c11054ac9fcB92BA89644F30775436e4" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "value": "500000000000000000", + "nonce": "12", + "deadline": "1779494400" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Wrapped liquid staked Ether 2.0", + "fields": [ + { + "label": "Spender", + "value": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + { + "label": "Max spending amount", + "value": "0.5 axl-wstETH" + }, + { + "label": "Valid until", + "value": "2026-05-23 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x9cfB13E6c11054ac9fcB92BA89644F30775436e4": { + "symbol": "axl-wstETH", + "decimals": 18, + "name": "Axelar Wrapped wstETH" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-aave-dai.tests.json b/registry/permit/testsv2/eip712-permit-polygon-aave-dai.tests.json new file mode 100644 index 000000000..73913d4e1 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-aave-dai.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-aave-dai.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Aave Matic Market DAI", + "version": "1", + "chainId": 137, + "verifyingContract": "0x27f8d03b3a2196956ed754badc28d73be8830a6e" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "2500000000000000000000", + "nonce": "7", + "deadline": "1782864000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Aave Matic Market DAI", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "2500 amDAI" + }, + { + "label": "Valid until", + "value": "2026-07-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x27F8D03b3a2196956ED754baDc28D73be8830A6e": { + "symbol": "amDAI", + "decimals": 18, + "name": "Aave Matic Market DAI" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-aave-weth.tests.json b/registry/permit/testsv2/eip712-permit-polygon-aave-weth.tests.json new file mode 100644 index 000000000..be006d450 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-aave-weth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-aave-weth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Aave Matic Market WETH", + "version": "1", + "chainId": 137, + "verifyingContract": "0x28424507fefb6f7f8e9d3860f56504e4e5f5f390" + }, + "message": { + "owner": "0x1111111111111111111111111111111111111111", + "spender": "0x1111111111111111111111111111111111111111", + "value": "1000000000000000000", + "nonce": "1000000000000000000", + "deadline": 1782864000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Aave Matic Market WETH", + "fields": [ + { + "label": "Spender", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Max spending amount", + "value": "1 amWETH" + }, + { + "label": "Valid until", + "value": "2026-07-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x28424507fefb6f7f8E9D3860F56504E4e5f5f390": { + "symbol": "amWETH", + "decimals": 18, + "name": "Aave Matic Market WETH" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-bridged-usdc.tests.json b/registry/permit/testsv2/eip712-permit-polygon-bridged-usdc.tests.json new file mode 100644 index 000000000..fb9ea22b1 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-bridged-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-bridged-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 137, + "verifyingContract": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174" + }, + "message": { + "owner": "0x52908400098527886E0F7030069857D2E4169EE7", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "250000000", + "nonce": 12, + "deadline": 1779331200 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USD Coin (PoS)", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "250 USDC" + }, + { + "label": "Valid until", + "value": "2026-05-21 02:40:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin (PoS)" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-dai.tests.json b/registry/permit/testsv2/eip712-permit-polygon-dai.tests.json new file mode 100644 index 000000000..9d832a01f --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-dai.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-dai.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Dai Stablecoin", + "version": "1", + "chainId": 137, + "verifyingContract": "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "2500000000000000000000", + "nonce": "12", + "deadline": "1789699200" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "(PoS) Dai Stablecoin", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "2500 DAI" + }, + { + "label": "Valid until", + "value": "2026-09-18 02:40:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063": { + "symbol": "DAI", + "decimals": 18, + "name": "(PoS) Dai Stablecoin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-link.tests.json b/registry/permit/testsv2/eip712-permit-polygon-link.tests.json new file mode 100644 index 000000000..a8fb4140c --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-link.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-link.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "ChainLink Token", + "version": "1", + "chainId": 137, + "verifyingContract": "0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "value": "250000000000000000000", + "nonce": 7, + "deadline": 1782864000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "ChainLink Token", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Max spending amount", + "value": "250 LINK" + }, + { + "label": "Valid until", + "value": "2026-07-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39": { + "symbol": "LINK", + "decimals": 18, + "name": "ChainLink Token" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-quick.tests.json b/registry/permit/testsv2/eip712-permit-polygon-quick.tests.json new file mode 100644 index 000000000..8a87524b2 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-quick.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-quick.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Quickswap", + "version": "1", + "chainId": 137, + "verifyingContract": "0xB5C064F955D8e7F38fE0460C556a72987494eE17" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "2500000000000000000000", + "nonce": 7, + "deadline": 1776729600 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "QuickSwap", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "2500 QUICK" + }, + { + "label": "Valid until", + "value": "2026-04-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xB5C064F955D8e7F38fE0460C556a72987494eE17": { + "symbol": "QUICK", + "decimals": 18, + "name": "QuickSwap" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-stmatic.tests.json b/registry/permit/testsv2/eip712-permit-polygon-stmatic.tests.json new file mode 100644 index 000000000..c4a66d6af --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-stmatic.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-stmatic.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "stMATIC", + "version": "1", + "chainId": 137, + "verifyingContract": "0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "5000000000000000000", + "nonce": 3, + "deadline": 1782864000 + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Staked MATIC (PoS)", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "5 stMATIC" + }, + { + "label": "Valid until", + "value": "2026-07-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4": { + "symbol": "stMATIC", + "decimals": 18, + "name": "Staked MATIC (PoS)" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-usdc.tests.json b/registry/permit/testsv2/eip712-permit-polygon-usdc.tests.json new file mode 100644 index 000000000..a97553653 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-usdc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-usdc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "USD Coin", + "version": "2", + "chainId": 137, + "verifyingContract": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45", + "value": "250000000", + "nonce": "7", + "deadline": "1779321600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDC", + "fields": [ + { + "label": "Spender", + "value": "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45" + }, + { + "label": "Max spending amount", + "value": "250 USDC" + }, + { + "label": "Valid until", + "value": "2026-05-21 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-usdt.tests.json b/registry/permit/testsv2/eip712-permit-polygon-usdt.tests.json new file mode 100644 index 000000000..62592bbb7 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-usdt.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-usdt.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Tether USD", + "version": "1", + "chainId": 137, + "verifyingContract": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "250000000", + "nonce": "12", + "deadline": "1785369600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "USDT", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "250 USDT0" + }, + { + "label": "Valid until", + "value": "2026-07-30 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0xc2132D05D31c914a87C6611C10748AEb04B58e8F": { + "symbol": "USDT0", + "decimals": 6, + "name": "USDT0" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-wbtc.tests.json b/registry/permit/testsv2/eip712-permit-polygon-wbtc.tests.json new file mode 100644 index 000000000..463c403c4 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-wbtc.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-wbtc.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped BTC", + "version": "1", + "chainId": 137, + "verifyingContract": "0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6" + }, + "message": { + "owner": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "25000000", + "nonce": "7", + "deadline": "1798761600" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "WBTC", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "0.25 WBTC" + }, + { + "label": "Valid until", + "value": "2027-01-01 00:00:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6": { + "symbol": "WBTC", + "decimals": 8, + "name": "(PoS) Wrapped BTC" + } + } + } +} \ No newline at end of file diff --git a/registry/permit/testsv2/eip712-permit-polygon-weth.tests.json b/registry/permit/testsv2/eip712-permit-polygon-weth.tests.json new file mode 100644 index 000000000..a1f30cda4 --- /dev/null +++ b/registry/permit/testsv2/eip712-permit-polygon-weth.tests.json @@ -0,0 +1,94 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-permit-polygon-weth.json", + "tests": [ + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Permit": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + } + ] + }, + "primaryType": "Permit", + "domain": { + "name": "Wrapped Ether", + "version": "1", + "chainId": 137, + "verifyingContract": "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619" + }, + "message": { + "owner": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "spender": "0x1111111254EEB25477B68fb85Ed929f73A960582", + "value": "500000000000000000", + "nonce": "7", + "deadline": "1772448000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "WETH", + "fields": [ + { + "label": "Spender", + "value": "0x1111111254EEB25477B68fb85Ed929f73A960582" + }, + { + "label": "Max spending amount", + "value": "0.5 WETH" + }, + { + "label": "Valid until", + "value": "2026-03-02 10:40:00Z" + } + ] + } + } + ], + "dataProvider": { + "tokens": { + "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + } + } +} \ No newline at end of file diff --git a/registry/poap/testsv2/calldata-PoapBridge.tests.json b/registry/poap/testsv2/calldata-PoapBridge.tests.json new file mode 100644 index 000000000..446b13163 --- /dev/null +++ b/registry/poap/testsv2/calldata-PoapBridge.tests.json @@ -0,0 +1,33 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-PoapBridge.json", + "tests": [ + { + "description": "Mint POAP token", + "rawTx": "0x02f9014e01698477359400847d33886e830493e0940bb4d3e88243f4a057db77341e6916b0e449b15880b90124af68b302000000000000000000000000000000000000000000000000000000000000022900000000000000000000000000000000000000000000000000000000000089b900000000000000000000000078d54d36e108b361a0f1a7010e8b29ccfa33dec7000000000000000000000000000000000000000000000000000000006961104300000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000041d97de230c0e8ac3bd72f346729d672b10e7a6d8df616fdeae938b02cd2c98fae066fd70be75e3e6adaf9bf5586bf5c8d2a90e0c649f345a1ca789bd67dd701de1b00000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x78D54D36E108B361A0f1A7010e8B29CCfA33dEc7", + "expected": { + "intent": "Mint POAP", + "owner": "Proof of Attendance Protocol", + "fields": [ + { + "label": "Token Id", + "value": "35257" + }, + { + "label": "Receiver", + "value": "0x78D54D36E108B361A0f1A7010e8B29CCfA33dEc7" + }, + { + "label": "Expiration Time", + "value": "2026-01-09 14:27:15Z" + }, + { + "label": "Migration Fee", + "value": "0 ETH" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/rarible/testsv2/eip712-rarible-erc-1155.tests.json b/registry/rarible/testsv2/eip712-rarible-erc-1155.tests.json new file mode 100644 index 000000000..1f9d844d0 --- /dev/null +++ b/registry/rarible/testsv2/eip712-rarible-erc-1155.tests.json @@ -0,0 +1,154 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-rarible-erc-1155.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "symbol": "USDC", + "decimals": 6, + "name": "USD Coin" + } + } + }, + "tests": [ + { + "description": "Lazy Mint ERC-1155", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Part": [ + { + "name": "account", + "type": "address" + }, + { + "name": "value", + "type": "uint96" + } + ], + "Mint1155": [ + { + "name": "tokenId", + "type": "uint256" + }, + { + "name": "supply", + "type": "uint256" + }, + { + "name": "tokenURI", + "type": "string" + }, + { + "name": "creators", + "type": "Part[]" + }, + { + "name": "royalties", + "type": "Part[]" + } + ] + }, + "primaryType": "Mint1155", + "domain": { + "name": "Rarible", + "version": "2", + "chainId": 1, + "verifyingContract": "0xb66a603f4cfe17e3d27b87a8bfcad319856518b8" + }, + "message": { + "tokenId": "100120000000000000000001", + "supply": "250", + "tokenURI": "ipfs://bafybeifx2x5h2x6r3wz4q5f6n7m8p9t0v1w2x3y4z5a6b7c8d9e0f1g2h/1155/100120000000000000000001.json", + "creators": [ + { + "account": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "value": 8500 + }, + { + "account": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "value": 1500 + } + ], + "royalties": [ + { + "account": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "value": 500 + }, + { + "account": "0xA0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "value": 250 + } + ] + } + }, + "expected": { + "intent": "Lazy Mint ERC-1155", + "owner": "Rarible ERC-1155 Collection", + "fields": [ + { + "label": "Token ID", + "value": "100120000000000000000001" + }, + { + "label": "Token URI", + "value": "ipfs://bafybeifx2x5h2x6r3wz4q5f6n7m8p9t0v1w2x3y4z5a6b7c8d9e0f1g2h/1155/100120000000000000000001.json" + }, + { + "label": "Token Supply", + "value": "250" + }, + { + "label": "Creator account address", + "value": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" + }, + { + "label": "Creator account address", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Creator value (10000 = 100%)", + "value": "8500" + }, + { + "label": "Creator value (10000 = 100%)", + "value": "1500" + }, + { + "label": "Royalties account address", + "value": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" + }, + { + "label": "Royalties account address", + "value": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + { + "label": "Royalties value (10000 = 100%)", + "value": "500" + }, + { + "label": "Royalties value (10000 = 100%)", + "value": "250" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/rarible/testsv2/eip712-rarible-erc-721.tests.json b/registry/rarible/testsv2/eip712-rarible-erc-721.tests.json new file mode 100644 index 000000000..2a5b7d342 --- /dev/null +++ b/registry/rarible/testsv2/eip712-rarible-erc-721.tests.json @@ -0,0 +1,115 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-rarible-erc-721.json", + "dataProvider": { + "tokens": {} + }, + "tests": [ + { + "description": "Lazy Mint ERC-721", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Part": [ + { + "name": "account", + "type": "address" + }, + { + "name": "value", + "type": "uint96" + } + ], + "Mint721": [ + { + "name": "tokenId", + "type": "uint256" + }, + { + "name": "tokenURI", + "type": "string" + }, + { + "name": "creators", + "type": "Part[]" + }, + { + "name": "royalties", + "type": "Part[]" + } + ] + }, + "primaryType": "Mint721", + "domain": { + "name": "Rarible", + "version": "2", + "chainId": 1, + "verifyingContract": "0xc9154424b823b10579895ccbe442d41b9abd96ed" + }, + "message": { + "tokenId": "145230987654321", + "tokenURI": "ipfs://bafybeigdyrzt5xq6x6n4m4n37r2v6q6t6v6m3k2y5xq7u5h3n2j4wq5x7e/145230987654321.json", + "creators": [ + { + "account": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "value": 10000 + } + ], + "royalties": [ + { + "account": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "value": 750 + } + ] + } + }, + "expected": { + "intent": "Lazy Mint ERC-721", + "owner": "Rarible ERC-721 Collection", + "fields": [ + { + "label": "Token ID", + "value": "145230987654321" + }, + { + "label": "Token URI", + "value": "ipfs://bafybeigdyrzt5xq6x6n4m4n37r2v6q6t6v6m3k2y5xq7u5h3n2j4wq5x7e/145230987654321.json" + }, + { + "label": "Creator account address", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Creator value (10000 = 100%)", + "value": "10000" + }, + { + "label": "Royalties account address", + "value": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" + }, + { + "label": "Royalties value (10000 = 100%)", + "value": "750" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/rarible/testsv2/eip712-rarible-exchange-v2-meta-tx.tests.json b/registry/rarible/testsv2/eip712-rarible-exchange-v2-meta-tx.tests.json new file mode 100644 index 000000000..0fa687769 --- /dev/null +++ b/registry/rarible/testsv2/eip712-rarible-exchange-v2-meta-tx.tests.json @@ -0,0 +1,74 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-rarible-exchange-v2-meta-tx.json", + "dataProvider": { + "tokens": {} + }, + "tests": [ + { + "description": "Meta Transaction", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "verifyingContract", + "type": "address" + }, + { + "name": "salt", + "type": "bytes32" + } + ], + "MetaTransaction": [ + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "from", + "type": "address" + }, + { + "name": "functionSignature", + "type": "bytes" + } + ] + }, + "primaryType": "MetaTransaction", + "domain": { + "name": "Rarible", + "version": "1", + "verifyingContract": "0x7f19564c35c681099c0c857a7141836cf7edaa53", + "salt": "0x0000000000000000000000000000000000000000000000000000000000000089" + }, + "message": { + "nonce": 42, + "from": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "functionSignature": "0xa9059cbb0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582000000000000000000000000000000000000000000000000000000000ee6b280" + } + }, + "expected": { + "intent": "Meta Transaction", + "owner": "Rarible ExchangeV2", + "fields": [ + { + "label": "User Address", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Meta Transaction Nonce", + "value": "42" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/rarible/testsv2/eip712-rarible-exchange-v2.tests.json b/registry/rarible/testsv2/eip712-rarible-exchange-v2.tests.json new file mode 100644 index 000000000..1033e06e7 --- /dev/null +++ b/registry/rarible/testsv2/eip712-rarible-exchange-v2.tests.json @@ -0,0 +1,152 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-rarible-exchange-v2.json", + "dataProvider": { + "tokens": {} + }, + "tests": [ + { + "description": "List Order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "AssetType": [ + { + "name": "assetClass", + "type": "bytes4" + }, + { + "name": "data", + "type": "bytes" + } + ], + "Asset": [ + { + "name": "assetType", + "type": "AssetType" + }, + { + "name": "value", + "type": "uint256" + } + ], + "Order": [ + { + "name": "maker", + "type": "address" + }, + { + "name": "makeAsset", + "type": "Asset" + }, + { + "name": "taker", + "type": "address" + }, + { + "name": "takeAsset", + "type": "Asset" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "start", + "type": "uint256" + }, + { + "name": "end", + "type": "uint256" + }, + { + "name": "dataType", + "type": "bytes4" + }, + { + "name": "data", + "type": "bytes" + } + ] + }, + "primaryType": "Order", + "domain": { + "name": "Rarible", + "version": "2", + "chainId": 1, + "verifyingContract": "0x9757f2d2b135150bbeb65308d4a91804107cd8d6" + }, + "message": { + "maker": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "makeAsset": { + "assetType": { + "assetClass": "0x73ad2146", + "data": "0x000000000000000000000000bc4ca0eda7647a8ab7c2061c2e118a18a936f13d00000000000000000000000000000000000000000000000000000000000004d2" + }, + "value": "1" + }, + "taker": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "takeAsset": { + "assetType": { + "assetClass": "0x8ae85d84", + "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "value": "2500000000" + }, + "salt": "98452730198273409182374019283740192837401928374019283", + "start": 1774041600, + "end": 1776643200, + "dataType": "0xffffffff", + "data": "0x" + } + }, + "expected": { + "intent": "List Order", + "owner": "Rarible ExchangeV2", + "fields": [ + { + "label": "Order maker address", + "value": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" + }, + { + "label": "Order make asset value", + "value": "1" + }, + { + "label": "Order taker address", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Order take asset value", + "value": "2500000000" + }, + { + "label": "Order start time", + "value": "1774041600" + }, + { + "label": "Order end time", + "value": "1776643200" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/rarible/testsv2/eip712-rarible-exchange-wrapper.tests.json b/registry/rarible/testsv2/eip712-rarible-exchange-wrapper.tests.json new file mode 100644 index 000000000..809a19abd --- /dev/null +++ b/registry/rarible/testsv2/eip712-rarible-exchange-wrapper.tests.json @@ -0,0 +1,152 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-rarible-exchange-wrapper.json", + "dataProvider": { + "tokens": {} + }, + "tests": [ + { + "description": "List Order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "AssetType": [ + { + "name": "assetClass", + "type": "bytes4" + }, + { + "name": "data", + "type": "bytes" + } + ], + "Asset": [ + { + "name": "assetType", + "type": "AssetType" + }, + { + "name": "value", + "type": "uint256" + } + ], + "Order": [ + { + "name": "maker", + "type": "address" + }, + { + "name": "makeAsset", + "type": "Asset" + }, + { + "name": "taker", + "type": "address" + }, + { + "name": "takeAsset", + "type": "Asset" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "start", + "type": "uint256" + }, + { + "name": "end", + "type": "uint256" + }, + { + "name": "dataType", + "type": "bytes4" + }, + { + "name": "data", + "type": "bytes" + } + ] + }, + "primaryType": "Order", + "domain": { + "name": "Rarible", + "version": "2", + "chainId": 1, + "verifyingContract": "0x7f19564c35c681099c0c857a7141836cf7edaa53" + }, + "message": { + "maker": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", + "makeAsset": { + "assetType": { + "assetClass": "0x73ad2146", + "data": "0x000000000000000000000000bc4ca0eda7647a8ab7c2061c2e118a18a936f13d00000000000000000000000000000000000000000000000000000000000004d2" + }, + "value": "1" + }, + "taker": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "takeAsset": { + "assetType": { + "assetClass": "0x8ae85d84", + "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "value": "2500000000" + }, + "salt": "98452730198273409182374019283740192837401928374019283", + "start": 1775001600, + "end": 1777680000, + "dataType": "0xffffffff", + "data": "0x" + } + }, + "expected": { + "intent": "List Order", + "owner": "RaribleExchangeWrapper", + "fields": [ + { + "label": "Order maker address", + "value": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" + }, + { + "label": "Order make asset value", + "value": "1" + }, + { + "label": "Order taker address", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Order take asset value", + "value": "2500000000" + }, + { + "label": "Order start time", + "value": "1775001600" + }, + { + "label": "Order end time", + "value": "1777680000" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/safe/testsv2/calldata-Safe-1.3.0.tests.json b/registry/safe/testsv2/calldata-Safe-1.3.0.tests.json new file mode 100644 index 000000000..da7008649 --- /dev/null +++ b/registry/safe/testsv2/calldata-Safe-1.3.0.tests.json @@ -0,0 +1,63 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Safe-1.3.0.json", + "tests": [ + { + "description": "Add signer - chain 1", + "rawTx": "0x02f86f01820292843b9aca00843f0f9ebe83015f9094d9db270c1b5e3bd161e8c8503c55ceabee70955280b8440d582f130000000000000000000000002e0ece61d3f2353a851b268f34dca0bc3904df2a0000000000000000000000000000000000000000000000000000000000000001c0", + "txHash": "0x93620871fc37c91971bcbc3342cca1b1d5603ecc58c00e57227bc4ef6e0496ed", + "expected": { + "intent": "Add signer", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Signer", + "value": "0x2e0Ece61D3f2353A851b268f34DCa0bC3904DF2A" + }, + { + "label": "New threshold", + "value": "1" + } + ] + } + }, + { + "description": "Remove signer - chain 1", + "rawTx": "0x02f88d0102843b9aca008451595220830dbba094d9db270c1b5e3bd161e8c8503c55ceabee70955280b864f8dc5dd9000000000000000000000000546034ddf449affc36ec17ba6d8f9d301b224ec400000000000000000000000077e2c5f3f2625abff5f217dc4d0004b404c3d6250000000000000000000000000000000000000000000000000000000000000001c0", + "txHash": "0xe1aa5afd8d8aa3f1e35dc6e6a5fc01bcdbcaa3a8fe69ed8318729a6fac83b16b", + "expected": { + "intent": "Remove signer", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Signer", + "value": "0x77E2c5f3f2625aBff5F217DC4d0004B404C3d625" + }, + { + "label": "New threshold", + "value": "1" + } + ] + } + }, + { + "description": "Swap signer - chain 1", + "rawTx": "0x02f88f01820291843b9aca00843f3597f783015f9094d9db270c1b5e3bd161e8c8503c55ceabee70955280b864e318b52b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000005be9a4959308a0d0c7bc0870e319314d8d957dbb0000000000000000000000002e0ece61d3f2353a851b268f34dca0bc3904df2ac0", + "txHash": "0x9655bedfa746b3a5c19cfb97269dd6c8ed9a1e41c1000a1405d7e82da01bf8e7", + "expected": { + "intent": "Swap signer", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Old signer", + "value": "0x5be9a4959308A0D0c7bC0870E319314d8D957dBB" + }, + { + "label": "New signer", + "value": "0x2e0Ece61D3f2353A851b268f34DCa0bC3904DF2A" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/safe/testsv2/calldata-Safe-1.4.1.tests.json b/registry/safe/testsv2/calldata-Safe-1.4.1.tests.json new file mode 100644 index 000000000..0e8f66e8f --- /dev/null +++ b/registry/safe/testsv2/calldata-Safe-1.4.1.tests.json @@ -0,0 +1,59 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Safe-1.4.1.json", + "dataProvider": { + "tokens": { + "0x0000000000000000000000000000000000000000": { + "symbol": "ETH", + "decimals": 18, + "name": "Ether" + } + } + }, + "tests": [ + { + "description": "Setup Safe - chain 1", + "rawTx": "0x02f901cd0117830186a084101cd7828303d0909441675c099f32341bf84bfc5382af534df5c7461a80b901a4b63e800d00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000bd89a1ce4dde368ffab0ec35506eece0b1ffdc540000000000000000000000000000000000000000000000000000000000000140000000000000000000000000fd0732dc9e303f09fcef3a7388ad10a83459ec99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005afe7a11e70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000926fca433d7316e8b2a340baceaec0b4e2f454f80000000000000000000000000000000000000000000000000000000000000024fe51f64300000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c76200000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x1b47aa3ab769701d473af3a77755919b196c8cea851bd6c78b6999d9ab9d2ff1", + "expected": { + "intent": "Setup Safe", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Signer", + "value": "0x926fCA433D7316e8B2a340BAceaEC0B4e2f454f8" + }, + { + "label": "Threshold", + "value": "1" + }, + { + "label": "Fallback handler", + "value": "0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99" + }, + { + "label": "Payment", + "value": "0 ETH" + }, + { + "label": "Payment receiver", + "value": "0x5afe7A11E7000000000000000000000000000000" + }, + { + "label": "Module", + "value": { + "intent": "Setup Safe L2", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Module", + "value": "0x29fcB43b46531BcA003ddC8FCB67FFE91900C762" + } + ] + } + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/safe/testsv2/calldata-SafeL2-1.3.0.tests.json b/registry/safe/testsv2/calldata-SafeL2-1.3.0.tests.json new file mode 100644 index 000000000..a8d6b0d45 --- /dev/null +++ b/registry/safe/testsv2/calldata-SafeL2-1.3.0.tests.json @@ -0,0 +1,112 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-SafeL2-1.3.0.json", + "dataProvider": { + "tokens": { + "0x0000000000000000000000000000000000000000": { + "symbol": "ETH", + "decimals": 18, + "name": "Ether" + } + }, + "addressNames": { + "0x3e5c63644e683549055b9be8653de26e0b4cd36e": "Safe L2 1.3.0" + } + }, + "tests": [ + { + "description": "Setup Safe - chain 1", + "rawTx": "0x02f9018f0104841dcd6500850610794c64830186a0943e5c63644e683549055b9be8653de26e0b4cd36e80b90164b63e800d00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000001ac114c2099afaf5261731655dc6c306bfcd4dbd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000dc5a59a8d2aa93359dcd99f839d2d6cbd386e2ac0000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x636e41d7416fc15b18237d95d7c4821329db286d9ebcadc4f4d2cf81fc9402b7", + "expected": { + "intent": "Setup Safe", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Signer", + "value": "0xDC5a59A8D2aA93359DcD99f839D2d6cbD386e2AC" + }, + { + "label": "Threshold", + "value": "1" + }, + { + "label": "Fallback handler", + "value": "0x1AC114C2099aFAf5261731655Dc6c306bFcd4Dbd" + }, + { + "label": "Payment", + "value": "0 ETH" + }, + { + "label": "Payment receiver", + "value": "0x0000000000000000000000000000000000000000" + }, + { + "label": "Module", + "value": "0x" + } + ] + } + }, + { + "description": "sign multisig operation - chain 1", + "rawTx": "0x02f9026d011c83069b44842953effa8307a120943e5c63644e683549055b9be8653de26e0b4cd36e80b902446a761202000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000014c30d9139cbbca09e8232938fe265fbf120eaaa00000000000000000000000000000000000000000000000000000006fc23ac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf", + "txHash": "0x56871793006ace9d91b0bc39ee7036ad106ed7b5e7d7cdf790fe2cf0f469beec", + "expected": { + "intent": "sign multisig operation", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Operation type", + "value": "Call" + }, + { + "label": "From Safe", + "value": "Safe L2 1.3.0" + }, + { + "label": "Execution signer", + "value": "0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf" + }, + { + "label": "Transaction", + "value": "0xa9059cbb00000000000000000000000014c30d9139cbbca09e8232938fe265fbf120eaaa00000000000000000000000000000000000000000000000000000006fc23ac00" + }, + { + "label": "Gas amount", + "value": "0" + }, + { + "label": "Gas price", + "value": "0 ETH" + }, + { + "label": "Gas receiver", + "value": "0x0000000000000000000000000000000000000000" + } + ] + } + }, + { + "description": "Add signer - chain 1", + "rawTx": "0x02f86c010c83092e008427922478830493e0943e5c63644e683549055b9be8653de26e0b4cd36e80b8440d582f1300000000000000000000000014c30d9139cbbca09e8232938fe265fbf120eaaa0000000000000000000000000000000000000000000000000000000000000001c0", + "txHash": "0x536330d772ee90614244821c33b9a28f7e4b3965128514eb62091c947948df1c", + "expected": { + "intent": "Add signer", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Signer", + "value": "0x14c30D9139CBbCA09e8232938Fe265FBF120eaAA" + }, + { + "label": "New threshold", + "value": "1" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/safe/testsv2/calldata-SafeProxyFactory-1.3.0.tests.json b/registry/safe/testsv2/calldata-SafeProxyFactory-1.3.0.tests.json new file mode 100644 index 000000000..48018147a --- /dev/null +++ b/registry/safe/testsv2/calldata-SafeProxyFactory-1.3.0.tests.json @@ -0,0 +1,58 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-SafeProxyFactory-1.3.0.json", + "tests": [ + { + "description": "Create Safe - chain 1", + "rawTx": "0x02f9028e0103840f2f16ee8411807b358304972694a6b71e26c5e0845f74c812102ca7114b6a896ab280b90264d18af54d0000000000000000000000003e5c63644e683549055b9be8653de26e0b4cd36e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000069c2572d0000000000000000000000008a95ce6ff5bc8a13629577a886f7b00b1c0b7c0500000000000000000000000000000000000000000000000000000000000001a4b63e800d000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000abc436132ba2b7b9836ab8fda8f38110e9fbfd17000000000000000000000000433e3c4ebb9b3fede2313121c40261c83dce582100000000000000000000000059b85e8d306f2255aaa079aa759e6381483b76fb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x1a78c3ff7a875ca81ee09f1ac360ab3197ccc2ad23573c530f6fb1e5088ac62b", + "expected": { + "intent": "Create Safe", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Account setup", + "value": { + "intent": "Setup Safe", + "owner": "Safe{Wallet}", + "fields": [ + { + "label": "Signer", + "value": "0xaBC436132ba2b7b9836ab8fda8F38110e9FBfd17" + }, + { + "label": "Signer", + "value": "0x433e3C4EbB9B3feDE2313121C40261c83DCe5821" + }, + { + "label": "Signer", + "value": "0x59B85E8d306f2255AAA079aA759E6381483b76Fb" + }, + { + "label": "Threshold", + "value": "2" + }, + { + "label": "Fallback handler", + "value": "0x0000000000000000000000000000000000000000" + }, + { + "label": "Payment", + "value": "0 ETH" + }, + { + "label": "Payment receiver", + "value": "0x0000000000000000000000000000000000000000" + }, + { + "label": "Module", + "value": "0x" + } + ] + } + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/serenita/testsv2/calldata-EthVault.tests.json b/registry/serenita/testsv2/calldata-EthVault.tests.json new file mode 100644 index 000000000..17ed677d4 --- /dev/null +++ b/registry/serenita/testsv2/calldata-EthVault.tests.json @@ -0,0 +1,73 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-EthVault.json", + "tests": [ + { + "description": "claim exited assets - chain 1", + "rawTx": "0x02f88d010b8477359400849ae6640b830117ff94b36fc5e542cb4fc562a624912f55da275899811380b8648697d2c200000000000000000000000000000000000000000000012438bbbd73dccbbe020000000000000000000000000000000000000000000000000000000069a21277000000000000000000000000000000000000000000000000000000000000007bc0", + "txHash": "0x730c60ec0b7b5b780f648dc8c32e7ee3c089bee8cd56cf43f9f5821934358494", + "expected": { + "intent": "claim exited assets", + "owner": "Serenita B.V.", + "fields": [] + } + }, + { + "description": "Stake ETH - chain 1", + "rawTx": "0x02f8740137831312d0846286b16082cbb394b36fc5e542cb4fc562a624912f55da2758998113890813ca56906d340000b844f9609f08000000000000000000000000bd860737f32b7a43e197370606f7eb32c5cad3470000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xfe75de132fb8e024580e8f42c9181f887f21be151ac5f0d466e1e9a3219f3b65", + "expected": { + "intent": "Stake ETH", + "owner": "Serenita B.V.", + "fields": [ + { + "label": "Rewards receiver", + "value": "0xbd860737F32b7a43e197370606f7eb32c5caD347" + }, + { + "label": "Amount to stake", + "value": "149 ETH" + } + ] + } + }, + { + "description": "enter exit queue - chain 1", + "rawTx": "0x02f86c011f830186a084025a56528301d75794b36fc5e542cb4fc562a624912f55da275899811380b8448ceab9aa00000000000000000000000000000000000000000000000010b15037e1f67838000000000000000000000000f0bee57fb9b653281a1f9dcd8215481a49f69e30c0", + "txHash": "0x03f4eed7f9ea2c396357dc001dab7b4a28d038220aa24d1acf6e3aa6916d4635", + "expected": { + "intent": "enter exit queue", + "owner": "Serenita B.V.", + "fields": [ + { + "label": "Shares to lock", + "value": "1202830776429082680" + }, + { + "label": "Receiver", + "value": "0xf0bEE57FB9b653281a1F9dcd8215481A49F69E30" + } + ] + } + }, + { + "description": "Update & Deposit - chain 1", + "rawTx": "0x02f901f601098477359400848101126b83021f3d94b36fc5e542cb4fc562a624912f55da275899811388a5254af37b260000b901c418f7295000000000000000000000000064ebcb80cec751aca0d717ba9bdc0ccce00ffe6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000601f93b29f6d451289a9893b126cc6fe3ed794bbb855f88cf7d50721b27a1a77c500000000000000000000000000000000000000000000000a2b9647c3b5cc2ba70000000000000000000000000000000000000000000000012b63346af520ab2200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000006a97889d65383e526f54e9aa0c45b232c5f3f9de2855b82c3937e96d73cc90191b20f52d2ea34f4737876593d0e01864c9aebf613c8e1d43bfbe047881ead1b25f9e5df5e24d94edde8df078cfded838e92f2be0f259e797c6d25bab7cfd222f1e83174e8f212087c48e8cc26a25895e51015b87182700a4568f5292cd2030e9798e89e477dc8f0e0bdd2f7e356dcc8d427a377546bce3932932eebb8c3d5e079ca683b7df05fbae908faa5f3f9348067e2419fc2466c04f800f0caabba0cd8b4c0", + "txHash": "0x17ce2c4fdf7aee614fef11291a1ffd024e427a73d517bc287bf9a0283d35267d", + "expected": { + "intent": "Update & Deposit", + "owner": "Serenita B.V.", + "fields": [ + { + "label": "Rewards receiver", + "value": "0x64ebCb80cEc751acA0d717ba9BdC0CcCe00Ffe6c" + }, + { + "label": "Amount to stake", + "value": "11.9 ETH" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/smartcredit/testsv2/eip712-smartcredit.tests.json b/registry/smartcredit/testsv2/eip712-smartcredit.tests.json new file mode 100644 index 000000000..a81187a59 --- /dev/null +++ b/registry/smartcredit/testsv2/eip712-smartcredit.tests.json @@ -0,0 +1,111 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-smartcredit.json", + "tests": [ + { + "description": "SmartCredit.io", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "LoanRequest": [ + { + "name": "collateralAddress", + "type": "address" + }, + { + "name": "initialCollateralAmount", + "type": "uint256" + }, + { + "name": "loanAmount", + "type": "uint256" + }, + { + "name": "loanId", + "type": "bytes32" + }, + { + "name": "loanInterestRate", + "type": "uint64" + }, + { + "name": "loanTerm", + "type": "uint64" + }, + { + "name": "underlyingAddress", + "type": "address" + } + ] + }, + "primaryType": "LoanRequest", + "domain": { + "name": "Credit Line", + "version": "1.0.0", + "chainId": 1, + "verifyingContract": "0x72e9d9038ce484ee986fea183f8d8df93f9ada13" + }, + "message": { + "collateralAddress": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "initialCollateralAmount": "2500000000000000000", + "loanAmount": "4000000000", + "loanId": "0x5b3e7d9a11c4f2a8e6d94f7b2c1a8d3e4f6b7c8d9e0a1b2c3d4e5f60718293ab", + "loanInterestRate": "850", + "loanTerm": "1777680000", + "underlyingAddress": "0xA0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + } + }, + "expected": { + "intent": "SmartCredit.io", + "owner": "SMARTCREDIT", + "fields": [ + { + "label": "Collateral address", + "value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + }, + { + "label": "Initial Collateral Amount", + "value": "2500000000000000000" + }, + { + "label": "Loan Amount", + "value": "4000000000" + }, + { + "label": "Loan ID", + "value": "0x5b3e7d9a11c4f2a8e6d94f7b2c1a8d3e4f6b7c8d9e0a1b2c3d4e5f60718293ab" + }, + { + "label": "Loan interest rate", + "value": "850" + }, + { + "label": "Load Term", + "value": "1777680000" + }, + { + "label": "Underlying Address", + "value": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/starkgate/testsv2/calldata-StarkGate-STRK.tests.json b/registry/starkgate/testsv2/calldata-StarkGate-STRK.tests.json new file mode 100644 index 000000000..f1dc4d3c4 --- /dev/null +++ b/registry/starkgate/testsv2/calldata-StarkGate-STRK.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-StarkGate-STRK.json", + "dataProvider": { + "tokens": { + "0xca14007eff0db1f8135f4c25b34de49ab0d42766": { + "symbol": "STRK", + "decimals": 18, + "name": "StarkNet Token" + } + } + }, + "tests": [ + { + "description": "Bridge - chain 1", + "rawTx": "0x02f8940181fd847735940084817274488302e5a994ce5485cfb26914c5dce00b9baf0580364dafc7a4861424e1145dc5b8640efe6a8b000000000000000000000000ca14007eff0db1f8135f4c25b34de49ab0d4276600000000000000000000000000000000000000000000cf85e80d39783c80000005c8d9a7d34afb96d69422539f8dbf1aa85a5ac7276b9e46f6897bf0f210dd01c0", + "txHash": "0x7814c1365a9ea8d7754c2b988b3b09b761eebc8ea8b94d8c88ce6048114cfc2a", + "expected": { + "intent": "Bridge", + "owner": "StarkWare", + "fields": [ + { + "label": "Amount to deposit", + "value": "980000 STRK" + }, + { + "label": "Recipient", + "value": "2616435859392095438933830530918590163965998318332799566221709688513359830273" + }, + { + "label": "Deposit fee", + "value": "0.000022148627586501 ETH" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/swell/testsv2/calldata-swell.tests.json b/registry/swell/testsv2/calldata-swell.tests.json new file mode 100644 index 000000000..532e7b8a4 --- /dev/null +++ b/registry/swell/testsv2/calldata-swell.tests.json @@ -0,0 +1,53 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-swell.json", + "dataProvider": { + "tokens": { + "0xfae103dc9cf190ed75350761e95403b7b8afa6c0": { + "symbol": "rswETH", + "decimals": 18, + "name": "rswETH" + } + } + }, + "tests": [ + { + "description": "Approve spender - chain 1", + "rawTx": "0x02f86d0181ba830493e08403c7dd7083013ec694fae103dc9cf190ed75350761e95403b7b8afa6c080b844095ea7b30000000000000000000000006a000f20005980200259b80c510200304000106800000000000000000000000000000000000000000000000003782dace9d90000c0", + "txHash": "0x1f6f7f487bc0f802a2667414ff0818c18671269ff06127a4f49b7bb25428b197", + "expected": { + "intent": "Approve spender", + "owner": "Swell", + "fields": [ + { + "label": "Spender", + "value": "0x6A000F20005980200259B80c5102003040001068" + }, + { + "label": "Amount", + "value": "0.25 rswETH" + } + ] + } + }, + { + "description": "Transfer Tokens - chain 1", + "rawTx": "0x02f86e0181b68405991bd8840f79953b83015d1494fae103dc9cf190ed75350761e95403b7b8afa6c080b844a9059cbb0000000000000000000000007e702f7a8299b51d3eb0a3e8107ce64f7d7269660000000000000000000000000000000000000000000000000c4a488205160000c0", + "txHash": "0x67a7415dcf9a779b0725f6f46c74b8463f0074d597dc87df19c1744c5a6f5762", + "expected": { + "intent": "Transfer Tokens", + "owner": "Swell", + "fields": [ + { + "label": "To", + "value": "0x7e702F7A8299b51D3Eb0A3E8107Ce64f7D726966" + }, + { + "label": "Amount", + "value": "0.8856 rswETH" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/swissborg/testsv2/calldata-ChsbToBorgMigrator.tests.json b/registry/swissborg/testsv2/calldata-ChsbToBorgMigrator.tests.json new file mode 100644 index 000000000..70b162005 --- /dev/null +++ b/registry/swissborg/testsv2/calldata-ChsbToBorgMigrator.tests.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-ChsbToBorgMigrator.json", + "dataProvider": { + "tokens": { + "0xba9d4199fab4f26efe3551d490e3821486f135ba": { + "symbol": "CHSB", + "decimals": 8, + "name": "SwissBorg Token" + } + } + }, + "tests": [ + { + "description": "Migrate CHSB to BORG - chain 1", + "rawTx": "0x02f84c01748402be8423840cc98e82830328ed94aa854688caab725fe17b7d21b46fda5af365985a80a4454b0608000000000000000000000000000000000000000000000000000000438558d400c0", + "txHash": "0x6d1d42a01cd3b3c58e0e69f9172461c035a336801c199a31014cc1748c00b4f8", + "expected": { + "intent": "Migrate CHSB to BORG", + "owner": "SwissBorg", + "fields": [ + { + "label": "CHSB Amount", + "value": "2900 CHSB" + } + ], + "interpolatedIntent": "Migrate 2900 CHSB to BORG" + } + } + ] +} \ No newline at end of file diff --git a/registry/swissborg/testsv2/calldata-NttManager.tests.json b/registry/swissborg/testsv2/calldata-NttManager.tests.json new file mode 100644 index 000000000..387a0d573 --- /dev/null +++ b/registry/swissborg/testsv2/calldata-NttManager.tests.json @@ -0,0 +1,55 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-NttManager.json", + "dataProvider": { + "tokens": { + "0x64d0f55cd8c7133a9d7102b13987235f486f2224": { + "symbol": "BORG", + "decimals": 18, + "name": "SwissBorg" + } + } + }, + "tests": [ + { + "description": "Bridge BORG - chain 1", + "rawTx": "0x02f9012d01830179f00f84060761578307a1209466a28b080918184851774a89ab94850a41f6a1e580b90104b293f97f0000000000000000000000000000000000000000000000354b199b8777b7780000000000000000000000000000000000000000000000000000000000000000018bae41978caf0bd117cd27c0e6b7600ed28053b282204769185ea34729d20a558bae41978caf0bd117cd27c0e6b7600ed28053b282204769185ea34729d20a55000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000040100010100000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x6913ad8346c101b0dcaff8f4395596872e0345d9a66cdb9ed519720d05ea52a4", + "expected": { + "intent": "Bridge BORG", + "owner": "SwissBorg", + "fields": [ + { + "label": "Amount", + "value": "983.08896334 BORG" + }, + { + "label": "Destination Chain", + "value": "1" + }, + { + "label": "Destination Address", + "value": "0x8bae41978caf0bd117cd27c0e6b7600ed28053b282204769185ea34729d20a55" + }, + { + "label": "Refund Address", + "value": "0x8bae41978caf0bd117cd27c0e6b7600ed28053b282204769185ea34729d20a55" + }, + { + "label": "Should Queue", + "value": "false" + }, + { + "label": "Instructions", + "value": "0x01000101" + }, + { + "label": "Relaying Fee", + "value": "0 ETH" + } + ], + "interpolatedIntent": "Bridge 983.08896334 BORG BORG" + } + } + ] +} \ No newline at end of file diff --git a/registry/swissborg/testsv2/calldata-WormholeTransceiver.tests.json b/registry/swissborg/testsv2/calldata-WormholeTransceiver.tests.json new file mode 100644 index 000000000..ce0a81fc7 --- /dev/null +++ b/registry/swissborg/testsv2/calldata-WormholeTransceiver.tests.json @@ -0,0 +1,22 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-WormholeTransceiver.json", + "tests": [ + { + "description": "Receive Bridged BORG - chain 1", + "rawTx": "0x02f904ed01830176e50a84054101a68307a1209445e581d6841f0a99fc34f70871ef56b353813ddb80b904c4f953cec70000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000046c01000000050d01dc707c73a3a85c3f3f6697a7bbc7393df92a82dcfee5f0f2fe0fe4dfc7e9c73a7989f0432d82bf02b429b3ce28efb02ba90a22fd8882bd1bfc604cbb9396823501021402ab3c5d48a8cb3b2471e0b7be0dbcf9b19034c665c01376ad32d592450afd6954670cc48a51ba061b41fe583b104613fa270528f76d106f651b7fb708c233000675cf960c8f5f9dd4f4173a39b160ce1d12003be05e45e4b68f22d8e60f3d3f3f07be6b9df45a70b6afaa2611065d2e470ee66274caa94d0d63b76706468bb1e50007f1bc4b8a6a0420071536beabdda142b2eeb3f8e6876a3d1ba554ea4464851d063df674038fabfe65c7462a4db3318cc8479912116f62f48b27356c26518fe9db0008a831b599849b7224ca0ff073650e22c93ce3f1164a7e642faa9ede52b0165e49453b627ee8b3caeabceb9818ffaf65bba4ee6452bc0d34ad2e171aef2467329501098ce51bae034e05b26a7e913a3794932f59904636a3ab147c06dcfaa2271ef6f504d95662d169868206d9c2b52a3f53ee42bb9d1b9235b5f939d881137c5a398e010a8c6d22931824094e4a7f4b0882e98b33a7c49d0d3a83bda1bbfa6b0a6f99c3f771ff2f43ff3efe1ce92c20cb5670b207a4e08bde4917832cac6bf8ad35f2a829010b3df5fb4257677d0a2018f8a1f82a14e03d5075e367996051626097a2d15288d543418fd1d1a87ef49b7537189fa326c278fd43ae1e3d62bec5ede85fe80cb325000c080365356d3a27216ca9e6a470cfedf71a344af323c4bebb5ed72802b053033a0761dcd5d035ffd2eb3d9e553e7909a3e3e43dcfac475988e9be823821205910000d57064e41865b184c09be73f832e3203f4381c66e33ce45b5d68317bee4102d8a4a0c175dae476a3522bab821d72df00c878e0369bd0b072c74452f27b821c00e010e852b2d1f257a82c5e8c50fe35273e12ffeb2c3945e448b582cadfad49842745103422f6f1313f98bf51f4e73e015d5f0249a9a381938611c4489de9e5218135b010f22c7fd682f3644ecd2c26768478234f8e61cfea97736ece7d3c270f2ac6930662986e333c6fb65e6b821afca827dfe25dbf2fccd8c3cbe0e3db0f0a6753a84a200126850b1b32dabd934cfcaf81d3441c1de135851889f58be17ae076d134d937f11712462073723cf8b574e1c2ad054ba4af2057e28dc0f63635a1c96d088e90dda0169ba2b520000000000011fee66965099e8849e37bf847c72c6a42cee556fc4ca2769ff2795f8041b5cb100000000000005e8209945ff10059bdc58d07182786b833874a379a6d5fccc99045bc9157613d5992ce2b7a32800000000000000000000000066a28b080918184851774a89ab94850a41f6a1e5009140123fbb43e22e0d42eca7423585db7995a58d13960a910d9992dacf3ec3bc1f8bae41978caf0bd117cd27c0e6b7600ed28053b282204769185ea34729d20a55004f994e545408000000159fab9581270ad0028e970df757d5f14f8cbb6a6810e48139125608ea958b718eb294492000000000000000000000000049719d256a5ea16bfa579ea16e95bea9fa41a452000200000000000000000000000000000000000000000000c0", + "txHash": "0x9e28f4745574365a33cfae94b13e365523905ff22b789e65c397ddf46001ab29", + "expected": { + "intent": "Receive Bridged BORG", + "owner": "SwissBorg", + "fields": [ + { + "label": "Encoded Message", + "value": "0x01000000050d01dc707c73a3a85c3f3f6697a7bbc7393df92a82dcfee5f0f2fe0fe4dfc7e9c73a7989f0432d82bf02b429b3ce28efb02ba90a22fd8882bd1bfc604cbb9396823501021402ab3c5d48a8cb3b2471e0b7be0dbcf9b19034c665c01376ad32d592450afd6954670cc48a51ba061b41fe583b104613fa270528f76d106f651b7fb708c233000675cf960c8f5f9dd4f4173a39b160ce1d12003be05e45e4b68f22d8e60f3d3f3f07be6b9df45a70b6afaa2611065d2e470ee66274caa94d0d63b76706468bb1e50007f1bc4b8a6a0420071536beabdda142b2eeb3f8e6876a3d1ba554ea4464851d063df674038fabfe65c7462a4db3318cc8479912116f62f48b27356c26518fe9db0008a831b599849b7224ca0ff073650e22c93ce3f1164a7e642faa9ede52b0165e49453b627ee8b3caeabceb9818ffaf65bba4ee6452bc0d34ad2e171aef2467329501098ce51bae034e05b26a7e913a3794932f59904636a3ab147c06dcfaa2271ef6f504d95662d169868206d9c2b52a3f53ee42bb9d1b9235b5f939d881137c5a398e010a8c6d22931824094e4a7f4b0882e98b33a7c49d0d3a83bda1bbfa6b0a6f99c3f771ff2f43ff3efe1ce92c20cb5670b207a4e08bde4917832cac6bf8ad35f2a829010b3df5fb4257677d0a2018f8a1f82a14e03d5075e367996051626097a2d15288d543418fd1d1a87ef49b7537189fa326c278fd43ae1e3d62bec5ede85fe80cb325000c080365356d3a27216ca9e6a470cfedf71a344af323c4bebb5ed72802b053033a0761dcd5d035ffd2eb3d9e553e7909a3e3e43dcfac475988e9be823821205910000d57064e41865b184c09be73f832e3203f4381c66e33ce45b5d68317bee4102d8a4a0c175dae476a3522bab821d72df00c878e0369bd0b072c74452f27b821c00e010e852b2d1f257a82c5e8c50fe35273e12ffeb2c3945e448b582cadfad49842745103422f6f1313f98bf51f4e73e015d5f0249a9a381938611c4489de9e5218135b010f22c7fd682f3644ecd2c26768478234f8e61cfea97736ece7d3c270f2ac6930662986e333c6fb65e6b821afca827dfe25dbf2fccd8c3cbe0e3db0f0a6753a84a200126850b1b32dabd934cfcaf81d3441c1de135851889f58be17ae076d134d937f11712462073723cf8b574e1c2ad054ba4af2057e28dc0f63635a1c96d088e90dda0169ba2b520000000000011fee66965099e8849e37bf847c72c6a42cee556fc4ca2769ff2795f8041b5cb100000000000005e8209945ff10059bdc58d07182786b833874a379a6d5fccc99045bc9157613d5992ce2b7a32800000000000000000000000066a28b080918184851774a89ab94850a41f6a1e5009140123fbb43e22e0d42eca7423585db7995a58d13960a910d9992dacf3ec3bc1f8bae41978caf0bd117cd27c0e6b7600ed28053b282204769185ea34729d20a55004f994e545408000000159fab9581270ad0028e970df757d5f14f8cbb6a6810e48139125608ea958b718eb294492000000000000000000000000049719d256a5ea16bfa579ea16e95bea9fa41a45200020000" + } + ], + "interpolatedIntent": "Receive Bridged BORG" + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-arbitrum-arb-token.tests.json b/registry/tally/testsv2/eip712-tally-arbitrum-arb-token.tests.json new file mode 100644 index 000000000..ec2e8543f --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-arbitrum-arb-token.tests.json @@ -0,0 +1,75 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-arbitrum-arb-token.json", + "tests": [ + { + "description": "ARB token", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Delegation": [ + { + "name": "delegatee", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint256" + } + ] + }, + "primaryType": "Delegation", + "domain": { + "name": "Arbitrum", + "version": "1", + "chainId": 42161, + "verifyingContract": "0x912CE59144191C1204E64559FE8253A0E49E6548" + }, + "message": { + "delegatee": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": 7, + "expiry": 1790000000 + } + }, + "expected": { + "intent": "ARB token", + "owner": "Arbitrum", + "fields": [ + { + "label": "Delegatee", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Nonce", + "value": "7" + }, + { + "label": "Expiry", + "value": "1790000000" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-arbitrum-core-governor.tests.json b/registry/tally/testsv2/eip712-tally-arbitrum-core-governor.tests.json new file mode 100644 index 000000000..7d9c2ac94 --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-arbitrum-core-governor.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-arbitrum-core-governor.json", + "tests": [ + { + "description": "Arbitrum Foundation: Core Governor", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Ballot": [ + { + "name": "proposalId", + "type": "uint256" + }, + { + "name": "support", + "type": "uint8" + } + ] + }, + "primaryType": "Ballot", + "domain": { + "name": "L2ArbitrumGovernor", + "version": "1", + "chainId": 42161, + "verifyingContract": "0xf07ded9dc292157749b6fd268e37df6ea38395b9" + }, + "message": { + "proposalId": "65188298694973145982045139804621336162807822964285913299589753047294933677132", + "support": 1 + } + }, + "expected": { + "intent": "Arbitrum Foundation: Core Governor", + "owner": "L2ArbitrumGovernor", + "fields": [ + { + "label": "Proposal id", + "value": "65188298694973145982045139804621336162807822964285913299589753047294933677132" + }, + { + "label": "Support", + "value": "1" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-arbitrum-treasury-governor.tests.json b/registry/tally/testsv2/eip712-tally-arbitrum-treasury-governor.tests.json new file mode 100644 index 000000000..90f26b26a --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-arbitrum-treasury-governor.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-arbitrum-treasury-governor.json", + "tests": [ + { + "description": "Arbitrum Foundation: Treasury Governor", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Ballot": [ + { + "name": "proposalId", + "type": "uint256" + }, + { + "name": "support", + "type": "uint8" + } + ] + }, + "primaryType": "Ballot", + "domain": { + "name": "L2ArbitrumGovernor", + "version": "1", + "chainId": 42161, + "verifyingContract": "0x789fc99093b09ad01c34dc7251d0c89ce743e5a4" + }, + "message": { + "proposalId": "87060200128729345015202003502732272248659485483823317618429660977840962607811", + "support": 1 + } + }, + "expected": { + "intent": "Arbitrum Foundation: Treasury Governor", + "owner": "L2ArbitrumGovernor", + "fields": [ + { + "label": "Proposal id", + "value": "87060200128729345015202003502732272248659485483823317618429660977840962607811" + }, + { + "label": "Support", + "value": "1" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-bitcoin-governor.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-bitcoin-governor.tests.json new file mode 100644 index 000000000..0498cc95b --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-bitcoin-governor.tests.json @@ -0,0 +1,61 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-bitcoin-governor.json", + "tests": [ + { + "description": "Gitcoin Governor", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Ballot": [ + { + "name": "proposalId", + "type": "uint256" + }, + { + "name": "support", + "type": "bool" + } + ] + }, + "primaryType": "Ballot", + "domain": { + "name": "GTC Governor Alpha", + "chainId": 1, + "verifyingContract": "0xdbd27635a534a3d3169ef0498beb56fb9c937489" + }, + "message": { + "proposalId": "47", + "support": true + } + }, + "expected": { + "intent": "Gitcoin Governor", + "owner": "GTC Governor Alpha", + "fields": [ + { + "label": "Proposal id", + "value": "47" + }, + { + "label": "Support", + "value": "true" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-bravo-governor.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-bravo-governor.tests.json new file mode 100644 index 000000000..93056eead --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-bravo-governor.tests.json @@ -0,0 +1,61 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-bravo-governor.json", + "tests": [ + { + "description": "Uniswap Governor", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Ballot": [ + { + "name": "proposalId", + "type": "uint256" + }, + { + "name": "support", + "type": "uint8" + } + ] + }, + "primaryType": "Ballot", + "domain": { + "name": "Uniswap Governor Bravo", + "chainId": 1, + "verifyingContract": "0x408ed6354d4973f66138c91495f2f2fcbd8724c3" + }, + "message": { + "proposalId": 178, + "support": 1 + } + }, + "expected": { + "intent": "Uniswap Governor", + "owner": "Uniswap Governor Bravo", + "fields": [ + { + "label": "Proposal id", + "value": "178" + }, + { + "label": "Support", + "value": "1" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-ens-governor.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-ens-governor.tests.json new file mode 100644 index 000000000..d112b2905 --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-ens-governor.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-ens-governor.json", + "tests": [ + { + "description": "ENS Governor", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Ballot": [ + { + "name": "proposalId", + "type": "uint256" + }, + { + "name": "support", + "type": "uint8" + } + ] + }, + "primaryType": "Ballot", + "domain": { + "name": "ENS Governor", + "version": "1", + "chainId": 1, + "verifyingContract": "0x323a76393544d5ecca80cd6ef2a560c6a395b7e3" + }, + "message": { + "proposalId": "65124996456969240058970412761127463646733711243818620698023168930879474320148", + "support": 1 + } + }, + "expected": { + "intent": "ENS Governor", + "owner": "ENS Governor", + "fields": [ + { + "label": "Proposal id", + "value": "65124996456969240058970412761127463646733711243818620698023168930879474320148" + }, + { + "label": "Support", + "value": "1" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-ens-token.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-ens-token.tests.json new file mode 100644 index 000000000..5eba25682 --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-ens-token.tests.json @@ -0,0 +1,75 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-ens-token.json", + "tests": [ + { + "description": "ENS token", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Delegation": [ + { + "name": "delegatee", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint256" + } + ] + }, + "primaryType": "Delegation", + "domain": { + "name": "Ethereum Name Service", + "version": "1", + "chainId": 1, + "verifyingContract": "0xC18360217D8F7Ab5e7c516566761Ea12Ce7f9D72" + }, + "message": { + "delegatee": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": 42, + "expiry": 1798761600 + } + }, + "expected": { + "intent": "ENS token", + "owner": "Ethereum Name Service", + "fields": [ + { + "label": "Delegatee", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Nonce", + "value": "42" + }, + { + "label": "Expiry", + "value": "1798761600" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-gtk-token.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-gtk-token.tests.json new file mode 100644 index 000000000..215cb7bf5 --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-gtk-token.tests.json @@ -0,0 +1,70 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-gtk-token.json", + "tests": [ + { + "description": "GTK token", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Delegation": [ + { + "name": "delegatee", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint256" + } + ] + }, + "primaryType": "Delegation", + "domain": { + "name": "Gitcoin", + "chainId": 1, + "verifyingContract": "0xDe30Da39c46104798Bb5Aa3fE8B9e0E1f348163F" + }, + "message": { + "delegatee": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": 42, + "expiry": 1798761600 + } + }, + "expected": { + "intent": "GTK token", + "owner": "Gitcoin", + "fields": [ + { + "label": "Delegatee", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Nonce", + "value": "42" + }, + { + "label": "Expiry", + "value": "1798761600" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-hop-governor.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-hop-governor.tests.json new file mode 100644 index 000000000..0fe489972 --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-hop-governor.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-hop-governor.json", + "tests": [ + { + "description": "Hop Governor", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Ballot": [ + { + "name": "proposalId", + "type": "uint256" + }, + { + "name": "support", + "type": "uint8" + } + ] + }, + "primaryType": "Ballot", + "domain": { + "name": "HOP Governor", + "version": "1", + "chainId": 1, + "verifyingContract": "0xed8bdb5895b8b7f9fdb3c087628fd8410e853d48" + }, + "message": { + "proposalId": 128, + "support": 1 + } + }, + "expected": { + "intent": "Hop Governor", + "owner": "HOP Governor", + "fields": [ + { + "label": "Proposal id", + "value": "128" + }, + { + "label": "Support", + "value": "1" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-hop-token.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-hop-token.tests.json new file mode 100644 index 000000000..63ef2683b --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-hop-token.tests.json @@ -0,0 +1,75 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-hop-token.json", + "tests": [ + { + "description": "HOP token", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "version", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Delegation": [ + { + "name": "delegatee", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint256" + } + ] + }, + "primaryType": "Delegation", + "domain": { + "name": "Hop", + "version": "1", + "chainId": 1, + "verifyingContract": "0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC" + }, + "message": { + "delegatee": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": 12, + "expiry": 1776816000 + } + }, + "expected": { + "intent": "HOP token", + "owner": "Hop", + "fields": [ + { + "label": "Delegatee", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Nonce", + "value": "12" + }, + { + "label": "Expiry", + "value": "1776816000" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-pool-token.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-pool-token.tests.json new file mode 100644 index 000000000..16f401fba --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-pool-token.tests.json @@ -0,0 +1,70 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-pool-token.json", + "tests": [ + { + "description": "POOL token", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Delegation": [ + { + "name": "delegatee", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint256" + } + ] + }, + "primaryType": "Delegation", + "domain": { + "name": "PoolTogether", + "chainId": 1, + "verifyingContract": "0x0cec1a9154ff802e7934fc916ed7ca50bde6844e" + }, + "message": { + "delegatee": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": 18, + "expiry": 1784678400 + } + }, + "expected": { + "intent": "POOL token", + "owner": "PoolTogether", + "fields": [ + { + "label": "Delegatee", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Nonce", + "value": "18" + }, + { + "label": "Expiry", + "value": "1784678400" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-pooltogether-governor.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-pooltogether-governor.tests.json new file mode 100644 index 000000000..fde78dfa0 --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-pooltogether-governor.tests.json @@ -0,0 +1,61 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-pooltogether-governor.json", + "tests": [ + { + "description": "PoolTogether Governor Alpha", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Ballot": [ + { + "name": "proposalId", + "type": "uint256" + }, + { + "name": "support", + "type": "bool" + } + ] + }, + "primaryType": "Ballot", + "domain": { + "name": "PoolTogether Governor Alpha", + "chainId": 1, + "verifyingContract": "0xb3a87172f555ae2a2ab79be60b336d2f7d0187f0" + }, + "message": { + "proposalId": 3, + "support": true + } + }, + "expected": { + "intent": "PoolTogether Governor Alpha", + "owner": "PoolTogether Governor Alpha", + "fields": [ + { + "label": "Proposal id", + "value": "3" + }, + { + "label": "Support", + "value": "true" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/tally/testsv2/eip712-tally-ethereum-uni-token.tests.json b/registry/tally/testsv2/eip712-tally-ethereum-uni-token.tests.json new file mode 100644 index 000000000..a242c07e3 --- /dev/null +++ b/registry/tally/testsv2/eip712-tally-ethereum-uni-token.tests.json @@ -0,0 +1,70 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-tally-ethereum-uni-token.json", + "tests": [ + { + "description": "UNI token", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "Delegation": [ + { + "name": "delegatee", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "expiry", + "type": "uint256" + } + ] + }, + "primaryType": "Delegation", + "domain": { + "name": "Uniswap", + "chainId": 1, + "verifyingContract": "0x1f9840A85d5aF5bf1D1762F925BDADdC4201F984" + }, + "message": { + "delegatee": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": 12, + "expiry": 1798761600 + } + }, + "expected": { + "intent": "UNI token", + "owner": "Uniswap", + "fields": [ + { + "label": "Delegatee", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Nonce", + "value": "12" + }, + { + "label": "Expiry", + "value": "1798761600" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-Bridge.tests.json b/registry/threshold/testsv2/calldata-Bridge.tests.json new file mode 100644 index 000000000..acf65fcd8 --- /dev/null +++ b/registry/threshold/testsv2/calldata-Bridge.tests.json @@ -0,0 +1,142 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-Bridge.json", + "tests": [ + { + "description": "Reveal a canonical L1 tBTC deposit", + "rawTx": "0x02f9024e010a8405f5e10084773594008303d090945e4861a80b55f035d899f66772117f00fa0e8e7b80b90224fca4ba4c00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000011223344556677880000000000000000000000000000000000000000000000001111111111111111111111111111111111111111000000000000000000000000222222222222222222222222222222222222222200000000000000000000000065f1d480000000000000000000000000000000000000000000000000000000000000000000000000000000009c070027cdc9dc8f82416b2e5314e11dfb4fe3cd0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a01f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f800000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0000000000000000000000000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x9c1fc42116ef45e77b7251ec58cd6b15580e32ed25738c631576f80fdf407041", + "expected": { + "intent": "Reveal tBTC deposit", + "owner": "Threshold Network", + "fields": [ + { + "label": "Funding output", + "value": "0" + }, + { + "label": "Wallet pubkey hash", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Refund pubkey hash", + "value": "0x2222222222222222222222222222222222222222" + }, + { + "label": "Refund locktime", + "value": "0x65f1d480" + }, + { + "label": "Vault", + "value": "0x9C070027cdC9dc8F82416B2e5314E11DFb4FE3CD" + }, + { + "label": "Bitcoin tx version", + "value": "0x01000000" + }, + { + "label": "Bitcoin inputs", + "value": "0x01f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f800000000000ffffffff" + }, + { + "label": "Bitcoin outputs", + "value": "0x01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" + }, + { + "label": "Bitcoin locktime", + "value": "0x00000000" + } + ] + } + }, + { + "description": "Reveal a cross-chain tBTC deposit with destination owner data", + "rawTx": "0x02f9026e010b8405f5e10084773594008303d090945e4861a80b55f035d899f66772117f00fa0e8e7b80b9024486f014390000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000011223344556677880000000000000000000000000000000000000000000000001111111111111111111111111111111111111111000000000000000000000000222222222222222222222222222222222222222200000000000000000000000065f1d480000000000000000000000000000000000000000000000000000000000000000000000000000000009c070027cdc9dc8f82416b2e5314e11dfb4fe3cd0000000000000000000000005c72f3cbff4a6d323b405fef09c1a0a73e61f4bc0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a01f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f800000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0000000000000000000000000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x0c9749ea4d32762a79f9cd4e7593908841dda5a096b152fff8ebb2a2c48b6b7e", + "expected": { + "intent": "Reveal cross-chain deposit", + "owner": "Threshold Network", + "fields": [ + { + "label": "Funding output", + "value": "0" + }, + { + "label": "Wallet pubkey hash", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Refund pubkey hash", + "value": "0x2222222222222222222222222222222222222222" + }, + { + "label": "Refund locktime", + "value": "0x65f1d480" + }, + { + "label": "Vault", + "value": "0x9C070027cdC9dc8F82416B2e5314E11DFb4FE3CD" + }, + { + "label": "Deposit owner data", + "value": "0x0000000000000000000000005c72f3cbff4a6d323b405fef09c1a0a73e61f4bc" + }, + { + "label": "Bitcoin tx version", + "value": "0x01000000" + }, + { + "label": "Bitcoin inputs", + "value": "0x01f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f800000000000ffffffff" + }, + { + "label": "Bitcoin outputs", + "value": "0x01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" + }, + { + "label": "Bitcoin locktime", + "value": "0x00000000" + } + ] + } + }, + { + "description": "Request a direct bridge redemption", + "rawTx": "0x02f9012e010c8405f5e10084773594008303d090945e4861a80b55f035d899f66772117f00fa0e8e7b80b90104d6eccdf01111111111111111111111111111111111111111000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000002faf08000000000000000000000000000000000000000000000000000000000000000171600143bde42dcca7a1b985b7d2272ddce5b66d113feab000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x4b2a6820e128e9b29aab0d5e07598ca8e656cad9749f5ae647ea47f9db7baf6d", + "expected": { + "intent": "Request tBTC redemption", + "owner": "Threshold Network", + "fields": [ + { + "label": "Amount", + "value": "0.5BTC" + }, + { + "label": "Wallet pubkey hash", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "BTC output script", + "value": "0x1600143bde42dcca7a1b985b7d2272ddce5b66d113feab" + }, + { + "label": "Main UTXO tx", + "value": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + { + "label": "Main UTXO index", + "value": "1" + }, + { + "label": "Main UTXO value", + "value": "1BTC" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-L1BitcoinDepositor-address.tests.json b/registry/threshold/testsv2/calldata-L1BitcoinDepositor-address.tests.json new file mode 100644 index 000000000..764c69488 --- /dev/null +++ b/registry/threshold/testsv2/calldata-L1BitcoinDepositor-address.tests.json @@ -0,0 +1,59 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-L1BitcoinDepositor-address.json", + "dataProvider": {}, + "tests": [ + { + "description": "Initialize a Sepolia Base-bound L1 Bitcoin deposit with an EVM owner", + "rawTx": "0x02f9027183aa36a71f8405f5e10084773594008303d0909459fae614867b66421b44d1ed3461e6b6a4b5010680b90244642dc0330000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000111223344556677880000000000000000000000000000000000000000000000001111111111111111111111111111111111111111000000000000000000000000222222222222222222222222222222222222222200000000000000000000000065f1d48000000000000000000000000000000000000000000000000000000000000000000000000000000000b5679de944a79732a75ce556191df11f489448d500000000000000000000000079e21e5e86a61a6702814a2359f2fb333ff8f91c0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000291f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f80000000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0000000000000000000000000000000000000000c0", + "from": "0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A", + "txHash": "0x0c4d2c840d15ab5c1e5a3d47a6a451c6db9eb8822bc8286705fbe1aaf1501fb2", + "expected": { + "intent": "Initialize tBTC deposit", + "owner": "Threshold Network", + "fields": [ + { + "label": "L2 deposit owner", + "value": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c" + }, + { + "label": "Funding output", + "value": "1" + }, + { + "label": "Wallet pubkey hash", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Refund pubkey hash", + "value": "0x2222222222222222222222222222222222222222" + }, + { + "label": "Refund locktime", + "value": "0x65f1d480" + }, + { + "label": "Vault", + "value": "0xB5679dE944A79732A75CE556191DF11F489448d5" + }, + { + "label": "Bitcoin tx version", + "value": "0x01000000" + }, + { + "label": "Bitcoin inputs", + "value": "0x1f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f80000000000ffffffff" + }, + { + "label": "Bitcoin outputs", + "value": "0x01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" + }, + { + "label": "Bitcoin locktime", + "value": "0x00000000" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-L1BitcoinDepositor-bytes32.tests.json b/registry/threshold/testsv2/calldata-L1BitcoinDepositor-bytes32.tests.json new file mode 100644 index 000000000..c52f27af7 --- /dev/null +++ b/registry/threshold/testsv2/calldata-L1BitcoinDepositor-bytes32.tests.json @@ -0,0 +1,58 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-L1BitcoinDepositor-bytes32.json", + "tests": [ + { + "description": "Initialize a Base-bound L1 Bitcoin deposit", + "rawTx": "0x02f9026e011e8405f5e10084773594008303d09094186d048097c7406c64efb0537886e3cae100a1fe80b902446da5658a0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000011223344556677880000000000000000000000000000000000000000000000001111111111111111111111111111111111111111000000000000000000000000222222222222222222222222222222222222222200000000000000000000000065f1d480000000000000000000000000000000000000000000000000000000000000000000000000000000009c070027cdc9dc8f82416b2e5314e11dfb4fe3cd0000000000000000000000005c72f3cbff4a6d323b405fef09c1a0a73e61f4bc0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a01f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f800000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0000000000000000000000000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x0cdbfe9a7f69c5328618df88659b7609ce74ea67a0ac7d2d3b8f8159bde7be6a", + "expected": { + "intent": "Initialize tBTC deposit", + "owner": "Threshold Network", + "fields": [ + { + "label": "Funding output", + "value": "0" + }, + { + "label": "Wallet pubkey hash", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Refund pubkey hash", + "value": "0x2222222222222222222222222222222222222222" + }, + { + "label": "Refund locktime", + "value": "0x65f1d480" + }, + { + "label": "Vault", + "value": "0x9C070027cdC9dc8F82416B2e5314E11DFb4FE3CD" + }, + { + "label": "Destination owner", + "value": "0x0000000000000000000000005c72f3cbff4a6d323b405fef09c1a0a73e61f4bc" + }, + { + "label": "Bitcoin tx version", + "value": "0x01000000" + }, + { + "label": "Bitcoin inputs", + "value": "0x01f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f800000000000ffffffff" + }, + { + "label": "Bitcoin outputs", + "value": "0x01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" + }, + { + "label": "Bitcoin locktime", + "value": "0x00000000" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-L1BitcoinRedeemer.tests.json b/registry/threshold/testsv2/calldata-L1BitcoinRedeemer.tests.json new file mode 100644 index 000000000..bc063ae17 --- /dev/null +++ b/registry/threshold/testsv2/calldata-L1BitcoinRedeemer.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-L1BitcoinRedeemer.json", + "tests": [ + { + "description": "L1 Bitcoin redeemer request for a cross-chain redemption", + "rawTx": "0x02f9014e01328405f5e10084773594008303d090945d4d83aab53b7e7ca915aeb2d4d3f4e03823dbde80b90124b6e920151111111111111111111111111111111111111111000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000004901000000000100abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab0000000000000000000000000000000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x4791b476ab7580ce02c9cfe9853d068cf214a0400074b32ed2700058f78de27e", + "expected": { + "intent": "Request cross-chain redemption", + "owner": "Threshold Network", + "fields": [ + { + "label": "Wallet pubkey hash", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Wormhole message", + "value": "0x01000000000100abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab" + }, + { + "label": "Main UTXO tx", + "value": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + { + "label": "Main UTXO index", + "value": "1" + }, + { + "label": "Main UTXO value", + "value": "1BTC" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-L2BitcoinDepositor.tests.json b/registry/threshold/testsv2/calldata-L2BitcoinDepositor.tests.json new file mode 100644 index 000000000..b33c05fbb --- /dev/null +++ b/registry/threshold/testsv2/calldata-L2BitcoinDepositor.tests.json @@ -0,0 +1,59 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-L2BitcoinDepositor.json", + "dataProvider": {}, + "tests": [ + { + "description": "Initialize a Base L2 Bitcoin deposit", + "rawTx": "0x02f90270822105288405f5e10084773594008303d09094a2a81d9445b4f898b028c96d164bcd6c8c8c512e80b90244642dc0330000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000011223344556677880000000000000000000000000000000000000000000000001111111111111111111111111111111111111111000000000000000000000000222222222222222222222222222222222222222200000000000000000000000065f1d480000000000000000000000000000000000000000000000000000000000000000000000000000000009c070027cdc9dc8f82416b2e5314e11dfb4fe3cd00000000000000000000000079e21e5e86a61a6702814a2359f2fb333ff8f91c0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a01f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f800000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0000000000000000000000000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x577b77f89ebc6e12ad319739f15a86f24a465f70a1dad6a96cc6c2e132f2fd51", + "expected": { + "intent": "Initialize L2 tBTC deposit", + "owner": "Threshold Network", + "fields": [ + { + "label": "L2 deposit owner", + "value": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c" + }, + { + "label": "Funding output", + "value": "0" + }, + { + "label": "Wallet pubkey hash", + "value": "0x1111111111111111111111111111111111111111" + }, + { + "label": "Refund pubkey hash", + "value": "0x2222222222222222222222222222222222222222" + }, + { + "label": "Refund locktime", + "value": "0x65f1d480" + }, + { + "label": "Vault", + "value": "0x9C070027cdC9dc8F82416B2e5314E11DFb4FE3CD" + }, + { + "label": "Bitcoin inputs", + "value": "0x01f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f800000000000ffffffff" + }, + { + "label": "Bitcoin tx version", + "value": "0x01000000" + }, + { + "label": "Bitcoin outputs", + "value": "0x01a0860100000000002200200123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" + }, + { + "label": "Bitcoin locktime", + "value": "0x00000000" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-L2BitcoinRedeemer.tests.json b/registry/threshold/testsv2/calldata-L2BitcoinRedeemer.tests.json new file mode 100644 index 000000000..d70a123bc --- /dev/null +++ b/registry/threshold/testsv2/calldata-L2BitcoinRedeemer.tests.json @@ -0,0 +1,38 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-L2BitcoinRedeemer.json", + "tests": [ + { + "description": "Base L2 tBTC redemption request to Bitcoin", + "rawTx": "0x02f8f58221053c8405f5e10084773594008303d09094e931f1ac6b00400e1dad153e184afee164d2d88b865af3107a4000b8c4380faf5300000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000303900000000000000000000000000000000000000000000000000000000000000171600143bde42dcca7a1b985b7d2272ddce5b66d113feab000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x0fff53834a4b0e526da05c11dd4d102be5f8ba423aabf6c8daf3413cd38d0646", + "expected": { + "intent": "Redeem L2 tBTC to Bitcoin", + "owner": "Threshold Network", + "fields": [ + { + "label": "Amount", + "value": "0.5tBTC" + }, + { + "label": "Recipient chain", + "value": "Ethereum" + }, + { + "label": "BTC output script", + "value": "0x1600143bde42dcca7a1b985b7d2272ddce5b66d113feab" + }, + { + "label": "Nonce", + "value": "12345" + }, + { + "label": "Wormhole message fee", + "value": "0.0001 ETH" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-L2WormholeGateway.tests.json b/registry/threshold/testsv2/calldata-L2WormholeGateway.tests.json new file mode 100644 index 000000000..540953387 --- /dev/null +++ b/registry/threshold/testsv2/calldata-L2WormholeGateway.tests.json @@ -0,0 +1,58 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-L2WormholeGateway.json", + "tests": [ + { + "description": "Bridge native tBTC from Base to Ethereum", + "rawTx": "0x02f8d5822105468405f5e10084773594008303d0909409959798b95d00a3183d20fac298e4594e599eab865af3107a4000b8a4f69785f300000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000309c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x1614cee6d1a64deae8481693d4c52f1cb0487662bffc71b12227659cf97f63d8", + "expected": { + "intent": "Bridge tBTC", + "owner": "Threshold Network", + "fields": [ + { + "label": "Amount", + "value": "0.25tBTC" + }, + { + "label": "Destination chain", + "value": "Ethereum" + }, + { + "label": "Recipient", + "value": "0x000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44e" + }, + { + "label": "Arbiter fee", + "value": "0tBTC" + }, + { + "label": "Nonce", + "value": "777" + }, + { + "label": "Wormhole message fee", + "value": "0.0001 ETH" + } + ] + } + }, + { + "description": "Claim bridged tBTC through the L2 Wormhole Gateway", + "rawTx": "0x02f8cf822105478405f5e10084773594008303d0909409959798b95d00a3183d20fac298e4594e599eab80b8a45d21a5960000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004901000000000100abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab0000000000000000000000000000000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x98b51fab0423a8f1dde0cae81bb4795e41d6c79497c387604839fbe4ebc768d1", + "expected": { + "intent": "Claim bridged tBTC", + "owner": "Threshold Network", + "fields": [ + { + "label": "Wormhole message", + "value": "0x01000000000100abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-RebateStaking.tests.json b/registry/threshold/testsv2/calldata-RebateStaking.tests.json new file mode 100644 index 000000000..bb5b801eb --- /dev/null +++ b/registry/threshold/testsv2/calldata-RebateStaking.tests.json @@ -0,0 +1,86 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-RebateStaking.json", + "tests": [ + { + "description": "Stake T for tBTC fee waivers", + "rawTx": "0x02f84c01508405f5e10084773594008303d090940184739c32edc3471d3e4860c8e39a5f3ff85a4580a461f129ad00000000000000000000000000000000000000000000003635c9adc5dea00000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x1b551a266fe2b9ed5a3c9f69c7e2cfaa56ef5c0194782592e8c65dd62773439d", + "expected": { + "intent": "Stake T", + "owner": "Threshold Network", + "fields": [ + { + "label": "Amount", + "value": "1000T" + } + ] + } + }, + { + "description": "Start unstaking T", + "rawTx": "0x02f84c01518405f5e10084773594008303d090940184739c32edc3471d3e4860c8e39a5f3ff85a4580a4aabd792a00000000000000000000000000000000000000000000001b1ae4d6e2ef500000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0xe7de389f84812e30d227d09258b2586214bfbb2164fdf3e4b86f88e3b3723c0a", + "expected": { + "intent": "Start unstaking T", + "owner": "Threshold Network", + "fields": [ + { + "label": "Amount", + "value": "500T" + } + ] + } + }, + { + "description": "Finalize unstaking T to the connected wallet", + "rawTx": "0x02f84c01528405f5e10084773594008303d090940184739c32edc3471d3e4860c8e39a5f3ff85a4580a4d5874a0200000000000000000000000079e21e5e86a61a6702814a2359f2fb333ff8f91cc0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0xe9b9bd8dde9bacec8beefe3e95241bd8c521058f727d4afd5d95671809ebd30f", + "expected": { + "intent": "Finalize T unstaking", + "owner": "Threshold Network", + "fields": [ + { + "label": "Receiver", + "value": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c" + } + ] + } + }, + { + "description": "Set a delegatee for fee waiver accounting", + "rawTx": "0x02f84c01538405f5e10084773594008303d090940184739c32edc3471d3e4860c8e39a5f3ff85a4580a4e842a64b000000000000000000000000742d35cc6634c0532925a3b844bc454e4438f44ec0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0xca0017535e0a6f2e710aaf5dbc6c1604ea4d317c46efcfa6ce922b528bd5846c", + "expected": { + "intent": "Set rebate delegatee", + "owner": "Threshold Network", + "fields": [ + { + "label": "Delegatee", + "value": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e" + } + ] + } + }, + { + "description": "Restrict fee waivers to redemptions", + "rawTx": "0x02f84c01548405f5e10084773594008303d090940184739c32edc3471d3e4860c8e39a5f3ff85a4580a420bb2e810000000000000000000000000000000000000000000000000000000000000002c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0xf26e72c0d6155f1f3d8535fd1bca48d8ada6e7f142673a2a707ad52d7d9ad0f1", + "expected": { + "intent": "Set fee waiver mode", + "owner": "Threshold Network", + "fields": [ + { + "label": "Fee waiver mode", + "value": "Redemptions only" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-TBTC.tests.json b/registry/threshold/testsv2/calldata-TBTC.tests.json new file mode 100644 index 000000000..768810f10 --- /dev/null +++ b/registry/threshold/testsv2/calldata-TBTC.tests.json @@ -0,0 +1,31 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-TBTC.json", + "dataProvider": {}, + "tests": [ + { + "description": "L1 tBTC redemption through TBTC.approveAndCall", + "rawTx": "0x02f901ae01018405f5e10084773594008303d0909418084fba666a33d37592fa2633fd49a74dd93a8880b90184cae9ca510000000000000000000000009c070027cdc9dc8f82416b2e5314e11dfb4fe3cd0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010000000000000000000000000079e21e5e86a61a6702814a2359f2fb333ff8f91c1111111111111111111111111111111111111111000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000171600143bde42dcca7a1b985b7d2272ddce5b66d113feab000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0xa654757563db8eaa50e6fc351b832841f6a65978bcd349794479c101d4482dc3", + "expected": { + "intent": "Approve and call tBTC", + "owner": "Threshold Network", + "fields": [ + { + "label": "Spender", + "value": "0x9C070027cdC9dc8F82416B2e5314E11DFb4FE3CD" + }, + { + "label": "Amount", + "value": "1000000000000000000" + }, + { + "label": "Redemption data", + "value": "0x00000000000000000000000079e21e5e86a61a6702814a2359f2fb333ff8f91c1111111111111111111111111111111111111111000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000171600143bde42dcca7a1b985b7d2272ddce5b66d113feab000000000000000000" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/threshold/testsv2/calldata-TBTCVault.tests.json b/registry/threshold/testsv2/calldata-TBTCVault.tests.json new file mode 100644 index 000000000..d52e75520 --- /dev/null +++ b/registry/threshold/testsv2/calldata-TBTCVault.tests.json @@ -0,0 +1,46 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-TBTCVault.json", + "tests": [ + { + "description": "Request optimistic mint finalization for a deposit", + "rawTx": "0x02f86d01148405f5e10084773594008303d090949c070027cdc9dc8f82416b2e5314e11dfb4fe3cd80b844820b5513bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0xf3142a7fdaa5ec766b94b98dd0fb77f25812131321f5a15e299925d715c44458", + "expected": { + "intent": "Request optimistic mint", + "owner": "Threshold Network", + "fields": [ + { + "label": "Funding tx hash", + "value": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" + }, + { + "label": "Funding output", + "value": "0" + } + ] + } + }, + { + "description": "Finalize optimistic mint for a deposit", + "rawTx": "0x02f86d01158405f5e10084773594008303d090949c070027cdc9dc8f82416b2e5314e11dfb4fe3cd80b8446abe3a6cbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0000000000000000000000000000000000000000000000000000000000000000c0", + "from": "0x79E21e5E86A61A6702814A2359F2fB333ff8f91c", + "txHash": "0x0e4881437c3576598cee1c9449279609eb3a9272f533537df3b5d9ea9cadb9de", + "expected": { + "intent": "Finalize optimistic mint", + "owner": "Threshold Network", + "fields": [ + { + "label": "Funding tx hash", + "value": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" + }, + { + "label": "Funding output", + "value": "0" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/uniswap/testsv2/calldata-UniswapV3Router02.tests.json b/registry/uniswap/testsv2/calldata-UniswapV3Router02.tests.json new file mode 100644 index 000000000..ebdd21201 --- /dev/null +++ b/registry/uniswap/testsv2/calldata-UniswapV3Router02.tests.json @@ -0,0 +1,130 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-UniswapV3Router02.json", + "dataProvider": { + "tokens": { + "0xb5d730d442e1d5b119fb4e5c843c48a64202ef92": { + "decimals": 18, + "name": "Sabai Ecoverse Token", + "symbol": "SABAI" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "decimals": 18, + "name": "Wrapped Ether", + "symbol": "WETH" + }, + "0xdac17f958d2ee523a2206206994597c13d831ec7": { + "decimals": 6, + "name": "Tether USD", + "symbol": "USDT" + }, + "0x4a220e6096b25eadb88358cb44068a3248254675": { + "decimals": 18, + "name": "Quant", + "symbol": "QNT" + } + } + }, + "tests": [ + { + "description": "Swap - chain 1 (1)", + "rawTx": "0xf9012c8225df84041aea398303d0909468b3465833fb72a70ecdf485e0e4c7bd8665fc4580b90104b858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000c0fb1c01de1148fa7b1f151a1740e52b375c47f100000000000000000000000000000000000000000000003750313fc45e9e58ac000000000000000000000000000000000000000000000000000334f5fe5f5da1000000000000000000000000000000000000000000000000000000000000002bb5d730d442e1d5b119fb4e5c843c48a64202ef92000bb8c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000018080", + "txHash": "0x731db70d0ff426d863fdc60e3f3e131b26c3f5c3a9bc1da89b5df96b25643ed5", + "expected": { + "intent": "Swap", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Amount to Send", + "value": "1020.3493939635519715 SABAI" + }, + { + "label": "Minimum to Receive", + "value": "0.000902656069426593 WETH" + }, + { + "label": "Beneficiary", + "value": "0xC0Fb1C01DE1148fa7b1f151a1740e52B375c47F1" + } + ] + } + }, + { + "description": "swap - chain 1", + "rawTx": "0x02f9010c010d83989680843b9aca008304e2009468b3465833fb72a70ecdf485e0e4c7bd8665fc4580b8e404e45aaf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000eced4025456b6c2987fac2e4c829889e681986a70000000000000000000000000000000000000000000000000016fdae8fefba690000000000000000000000000000000000000000000000000000000000d41da00000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xb25281abb3e6bbfe18c746187522c2e915aa02fdb8175082005340e00c1f0b30", + "expected": { + "intent": "swap", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Send", + "value": "0.006471375668623977 WETH" + }, + { + "label": "Minimum to Receive", + "value": "13.901216 USDT" + }, + { + "label": "Uniswap fee", + "value": "0.3%" + }, + { + "label": "Beneficiary", + "value": "0xEceD4025456B6c2987faC2e4c829889e681986a7" + } + ] + } + }, + { + "description": "Swap - chain 1 (2)", + "rawTx": "0xf9012c8233418403fa14638303d0909468b3465833fb72a70ecdf485e0e4c7bd8665fc4580b9010409b8134600000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000b7b78a8a908acf3c72a9c30c4e0a413c6b02061100000000000000000000000000000000000000000000008eea233879792ed28d000000000000000000000000000000000000000000000000000862f9d6c03253000000000000000000000000000000000000000000000000000000000000002bb5d730d442e1d5b119fb4e5c843c48a64202ef92000bb8c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000018080", + "txHash": "0xf416954ecdf9203f81f94a5f7f3dac53fc77c968bee09d012deeb0a3775bd9f6", + "expected": { + "intent": "Swap", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Maximum Amount In", + "value": "0.002360625002984019 WETH" + }, + { + "label": "Amount to Receive", + "value": "2636.309049190191649421 SABAI" + }, + { + "label": "Beneficiary", + "value": "0xB7B78a8A908Acf3c72a9C30C4e0a413c6b020611" + } + ] + } + }, + { + "description": "Swap - chain 1 (3)", + "rawTx": "0x02f9010d01138402faf080840b76e866830267139468b3465833fb72a70ecdf485e0e4c7bd8665fc4580b8e45023b4df000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000004a220e6096b25eadb88358cb44068a32482546750000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000027c3d6f0cdd49d0bae51aa920b5aa0c849f83a36000000000000000000000000000000000000000000000000002f9b3a9ffd80000000000000000000000000000000000000000000000000000001cf42f35ef2c20000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0x0738c6bc1ebf9d2d5746ffb76ebbb03c15ba6ff52f024273c6f6acf68191ff96", + "expected": { + "intent": "Swap", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Maximum Amount In", + "value": "0.000509361434587842 WETH" + }, + { + "label": "Amount to Receive", + "value": "0.0134 QNT" + }, + { + "label": "Uniswap fee", + "value": "0.3%" + }, + { + "label": "Beneficiary", + "value": "0x27C3d6f0cdd49d0bAe51aA920b5Aa0c849f83A36" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/uniswap/testsv2/eip712-UniswapX-DutchOrder.tests.json b/registry/uniswap/testsv2/eip712-UniswapX-DutchOrder.tests.json new file mode 100644 index 000000000..a7aa4e783 --- /dev/null +++ b/registry/uniswap/testsv2/eip712-UniswapX-DutchOrder.tests.json @@ -0,0 +1,215 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-UniswapX-DutchOrder.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + } + }, + "tests": [ + { + "description": "UniswapX Dutch Order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TokenPermissions": [ + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "DutchOutput": [ + { + "name": "token", + "type": "address" + }, + { + "name": "startAmount", + "type": "uint256" + }, + { + "name": "endAmount", + "type": "uint256" + }, + { + "name": "recipient", + "type": "address" + } + ], + "OrderInfo": [ + { + "name": "reactor", + "type": "address" + }, + { + "name": "swapper", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "additionalValidationContract", + "type": "address" + }, + { + "name": "additionalValidationData", + "type": "bytes" + } + ], + "DutchOrder": [ + { + "name": "info", + "type": "OrderInfo" + }, + { + "name": "decayStartTime", + "type": "uint256" + }, + { + "name": "decayEndTime", + "type": "uint256" + }, + { + "name": "inputToken", + "type": "address" + }, + { + "name": "inputStartAmount", + "type": "uint256" + }, + { + "name": "inputEndAmount", + "type": "uint256" + }, + { + "name": "outputs", + "type": "DutchOutput[]" + } + ], + "PermitWitnessTransferFrom": [ + { + "name": "permitted", + "type": "TokenPermissions" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "witness", + "type": "DutchOrder" + } + ] + }, + "primaryType": "PermitWitnessTransferFrom", + "domain": { + "name": "Permit2", + "chainId": 1, + "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + "message": { + "permitted": { + "token": "0xA0b86991c6218B36c1d19D4a2E9Eb0cE3606eB48", + "amount": "2500000000" + }, + "spender": "0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B", + "nonce": "981273451122", + "deadline": "1777500000", + "witness": { + "info": { + "reactor": "0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B", + "swapper": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": "772349105501", + "deadline": "1777456800", + "additionalValidationContract": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "additionalValidationData": "0x" + }, + "decayStartTime": "1774400400", + "decayEndTime": "1774418400", + "inputToken": "0xA0b86991c6218B36c1d19D4a2E9Eb0cE3606eB48", + "inputStartAmount": "2500000000", + "inputEndAmount": "2400000000", + "outputs": [ + { + "token": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "startAmount": "1000000000000000000", + "endAmount": "1050000000000000000", + "recipient": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ] + } + } + }, + "expected": { + "intent": "UniswapX Dutch Order", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Approve to spender", + "value": "0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B" + }, + { + "label": "Approve amount", + "value": "2500 USDC" + }, + { + "label": "Spend max", + "value": "2500 USDC" + }, + { + "label": "Minimum amounts to receive", + "value": "1.05 WETH" + }, + { + "label": "On Addresses", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Approval expire", + "value": "2026-04-29 22:00:00Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/uniswap/testsv2/eip712-UniswapX-ExclusiveDutchOrder.tests.json b/registry/uniswap/testsv2/eip712-UniswapX-ExclusiveDutchOrder.tests.json new file mode 100644 index 000000000..6eefe4cbd --- /dev/null +++ b/registry/uniswap/testsv2/eip712-UniswapX-ExclusiveDutchOrder.tests.json @@ -0,0 +1,225 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-UniswapX-ExclusiveDutchOrder.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + } + }, + "tests": [ + { + "description": "UniswapX Exclusive Dutch Order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TokenPermissions": [ + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "DutchOutput": [ + { + "name": "token", + "type": "address" + }, + { + "name": "startAmount", + "type": "uint256" + }, + { + "name": "endAmount", + "type": "uint256" + }, + { + "name": "recipient", + "type": "address" + } + ], + "OrderInfo": [ + { + "name": "reactor", + "type": "address" + }, + { + "name": "swapper", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "additionalValidationContract", + "type": "address" + }, + { + "name": "additionalValidationData", + "type": "bytes" + } + ], + "ExclusiveDutchOrder": [ + { + "name": "info", + "type": "OrderInfo" + }, + { + "name": "decayStartTime", + "type": "uint256" + }, + { + "name": "decayEndTime", + "type": "uint256" + }, + { + "name": "exclusiveFiller", + "type": "address" + }, + { + "name": "exclusivityOverrideBps", + "type": "uint256" + }, + { + "name": "inputToken", + "type": "address" + }, + { + "name": "inputStartAmount", + "type": "uint256" + }, + { + "name": "inputEndAmount", + "type": "uint256" + }, + { + "name": "outputs", + "type": "DutchOutput[]" + } + ], + "PermitWitnessTransferFrom": [ + { + "name": "permitted", + "type": "TokenPermissions" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "witness", + "type": "ExclusiveDutchOrder" + } + ] + }, + "primaryType": "PermitWitnessTransferFrom", + "domain": { + "name": "Permit2", + "chainId": 1, + "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + "message": { + "permitted": { + "token": "0xA0b86991c6218B36c1d19D4a2E9Eb0cE3606eB48", + "amount": "2550000000" + }, + "spender": "0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B", + "nonce": "981273451123", + "deadline": "1777500000", + "witness": { + "info": { + "reactor": "0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B", + "swapper": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": "772349105502", + "deadline": "1777456800", + "additionalValidationContract": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "additionalValidationData": "0x" + }, + "decayStartTime": "1774400400", + "decayEndTime": "1774418400", + "exclusiveFiller": "0xF977814e90dA44bFA03b6295A0616a897441aceC", + "exclusivityOverrideBps": "50", + "inputToken": "0xA0b86991c6218B36c1d19D4a2E9Eb0cE3606eB48", + "inputStartAmount": "2550000000", + "inputEndAmount": "2500000000", + "outputs": [ + { + "token": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "startAmount": "980000000000000000", + "endAmount": "1000000000000000000", + "recipient": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ] + } + } + }, + "expected": { + "intent": "UniswapX Exclusive Dutch Order", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Approve to spender", + "value": "0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B" + }, + { + "label": "Approve amount", + "value": "2550 USDC" + }, + { + "label": "Spend max", + "value": "2550 USDC" + }, + { + "label": "Minimum amounts to receive", + "value": "1 WETH" + }, + { + "label": "On Addresses", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Approval expire", + "value": "2026-04-29 22:00:00Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/uniswap/testsv2/eip712-UniswapX-LimitOrder.tests.json b/registry/uniswap/testsv2/eip712-UniswapX-LimitOrder.tests.json new file mode 100644 index 000000000..1910f173f --- /dev/null +++ b/registry/uniswap/testsv2/eip712-UniswapX-LimitOrder.tests.json @@ -0,0 +1,195 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-UniswapX-LimitOrder.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + } + }, + "tests": [ + { + "description": "UniswapX Limit Order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TokenPermissions": [ + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "OutputToken": [ + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "recipient", + "type": "address" + } + ], + "OrderInfo": [ + { + "name": "reactor", + "type": "address" + }, + { + "name": "swapper", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "additionalValidationContract", + "type": "address" + }, + { + "name": "additionalValidationData", + "type": "bytes" + } + ], + "LimitOrder": [ + { + "name": "info", + "type": "OrderInfo" + }, + { + "name": "inputToken", + "type": "address" + }, + { + "name": "inputAmount", + "type": "uint256" + }, + { + "name": "outputs", + "type": "OutputToken[]" + } + ], + "PermitWitnessTransferFrom": [ + { + "name": "permitted", + "type": "TokenPermissions" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "witness", + "type": "LimitOrder" + } + ] + }, + "primaryType": "PermitWitnessTransferFrom", + "domain": { + "name": "Permit2", + "chainId": 1, + "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + "message": { + "permitted": { + "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "amount": "1000000000" + }, + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "nonce": "9876543210", + "deadline": "1777600000", + "witness": { + "info": { + "reactor": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "swapper": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": "4242424242", + "deadline": "1777000000", + "additionalValidationContract": "0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B", + "additionalValidationData": "0x" + }, + "inputToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "inputAmount": "1000000000", + "outputs": [ + { + "token": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "amount": "550000000000000000", + "recipient": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + } + ] + } + } + }, + "expected": { + "intent": "UniswapX Limit Order", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Approve to spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Amount allowance", + "value": "1000 USDC" + }, + { + "label": "Send", + "value": "1000 USDC" + }, + { + "label": "Min amount to receive", + "value": "0.55 WETH" + }, + { + "label": "On Address", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Approval expire", + "value": "2026-05-01 01:46:40Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/uniswap/testsv2/eip712-uniswap-V2DutchOrder.tests.json b/registry/uniswap/testsv2/eip712-uniswap-V2DutchOrder.tests.json new file mode 100644 index 000000000..6d56b0ecb --- /dev/null +++ b/registry/uniswap/testsv2/eip712-uniswap-V2DutchOrder.tests.json @@ -0,0 +1,224 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-uniswap-V2DutchOrder.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + } + }, + "tests": [ + { + "description": "UniswapX V2 Dutch Order", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "TokenPermissions": [ + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "DutchOutput": [ + { + "name": "token", + "type": "address" + }, + { + "name": "startAmount", + "type": "uint256" + }, + { + "name": "endAmount", + "type": "uint256" + }, + { + "name": "recipient", + "type": "address" + } + ], + "OrderInfo": [ + { + "name": "reactor", + "type": "address" + }, + { + "name": "swapper", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "additionalValidationContract", + "type": "address" + }, + { + "name": "additionalValidationData", + "type": "bytes" + } + ], + "V2DutchOrder": [ + { + "name": "info", + "type": "OrderInfo" + }, + { + "name": "cosigner", + "type": "address" + }, + { + "name": "baseInputToken", + "type": "address" + }, + { + "name": "baseInputStartAmount", + "type": "uint256" + }, + { + "name": "baseInputEndAmount", + "type": "uint256" + }, + { + "name": "baseOutputs", + "type": "DutchOutput[]" + } + ], + "PermitWitnessTransferFrom": [ + { + "name": "permitted", + "type": "TokenPermissions" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "nonce", + "type": "uint256" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "witness", + "type": "V2DutchOrder" + } + ] + }, + "primaryType": "PermitWitnessTransferFrom", + "domain": { + "name": "Permit2", + "chainId": 1, + "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + "message": { + "permitted": { + "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "amount": "2500000000" + }, + "spender": "0x6000da47483062A0D734Ba3dc7576Ce6A0B645C4", + "nonce": "842119337501", + "deadline": "1776988800", + "witness": { + "info": { + "reactor": "0x6000da47483062A0D734Ba3dc7576Ce6A0B645C4", + "swapper": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "nonce": "842119337501", + "deadline": "1776902400", + "additionalValidationContract": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "additionalValidationData": "0x" + }, + "cosigner": "0x3fC91A3afd70395Cd496C647d5a6Cc9D4B2b7FAD", + "baseInputToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "baseInputStartAmount": "2500000000", + "baseInputEndAmount": "2450000000", + "baseOutputs": [ + { + "token": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "startAmount": "980000000000000000", + "endAmount": "950000000000000000", + "recipient": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "startAmount": "5000000", + "endAmount": "5000000", + "recipient": "0x3fC91A3afd70395Cd496C647d5a6Cc9D4B2b7FAD" + } + ] + } + } + }, + "expected": { + "intent": "UniswapX V2 Dutch Order", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Approve to spender", + "value": "0x6000da47483062A0D734Ba3dc7576Ce6A0B645C4" + }, + { + "label": "Approve amount", + "value": "2500 USDC" + }, + { + "label": "Spend max", + "value": "2500 USDC" + }, + { + "label": "Min amount to receive", + "value": "0.95 WETH" + }, + { + "label": "On Address", + "value": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" + }, + { + "label": "Min amount to receive", + "value": "5 USDC" + }, + { + "label": "On Address", + "value": "0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD" + }, + { + "label": "Approval expire", + "value": "2026-04-24 00:00:00Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/uniswap/testsv2/eip712-uniswap-permit2.tests.json b/registry/uniswap/testsv2/eip712-uniswap-permit2.tests.json new file mode 100644 index 000000000..4c6ba7fc0 --- /dev/null +++ b/registry/uniswap/testsv2/eip712-uniswap-permit2.tests.json @@ -0,0 +1,210 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../eip712-uniswap-permit2.json", + "dataProvider": { + "tokens": { + "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { + "decimals": 6, + "name": "USD Coin", + "symbol": "USDC" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "symbol": "WETH", + "decimals": 18, + "name": "Wrapped Ether" + } + } + }, + "tests": [ + { + "description": "Authorize spending of token", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "PermitDetails": [ + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint160" + }, + { + "name": "expiration", + "type": "uint48" + }, + { + "name": "nonce", + "type": "uint48" + } + ], + "PermitSingle": [ + { + "name": "details", + "type": "PermitDetails" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "sigDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "PermitSingle", + "domain": { + "name": "Permit2", + "chainId": 1, + "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + "message": { + "details": { + "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "amount": "2500000000", + "expiration": 1782864000, + "nonce": 7 + }, + "spender": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "sigDeadline": 1774915200 + } + }, + "expected": { + "intent": "Authorize spending of token", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Spender", + "value": "0xE592427A0AEce92De3Edee1F18E0157C05861564" + }, + { + "label": "Amount allowance", + "value": "2500 USDC" + }, + { + "label": "Approval expires", + "value": "2026-07-01 00:00:00Z" + } + ] + } + }, + { + "description": "Authorize spending of tokens", + "data": { + "types": { + "EIP712Domain": [ + { + "name": "name", + "type": "string" + }, + { + "name": "chainId", + "type": "uint256" + }, + { + "name": "verifyingContract", + "type": "address" + } + ], + "PermitDetails": [ + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint160" + }, + { + "name": "expiration", + "type": "uint48" + }, + { + "name": "nonce", + "type": "uint48" + } + ], + "PermitBatch": [ + { + "name": "details", + "type": "PermitDetails[]" + }, + { + "name": "spender", + "type": "address" + }, + { + "name": "sigDeadline", + "type": "uint256" + } + ] + }, + "primaryType": "PermitBatch", + "domain": { + "name": "Permit2", + "chainId": 1, + "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + }, + "message": { + "details": [ + { + "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "amount": "2500000000", + "expiration": "1780000000", + "nonce": "912345" + }, + { + "token": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "amount": "750000000000000000", + "expiration": "1780000000", + "nonce": "912346" + } + ], + "spender": "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45", + "sigDeadline": "1775200000" + } + }, + "expected": { + "intent": "Authorize spending of tokens", + "owner": "Uniswap Labs", + "fields": [ + { + "label": "Spender", + "value": "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45" + }, + { + "label": "Amount allowance", + "value": "2500 USDC" + }, + { + "label": "Amount allowance", + "value": "0.75 WETH" + }, + { + "label": "Approval expires", + "value": "2026-05-28 20:26:40Z" + }, + { + "label": "Approval expires", + "value": "2026-05-28 20:26:40Z" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/walletconnect/testsv2/calldata-wct.tests.json b/registry/walletconnect/testsv2/calldata-wct.tests.json new file mode 100644 index 000000000..75702f00c --- /dev/null +++ b/registry/walletconnect/testsv2/calldata-wct.tests.json @@ -0,0 +1,44 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-wct.json", + "tests": [ + { + "description": "Send - chain 1", + "rawTx": "0xf86b8205718405613d5b8301069294ef4461891dfb3ac8572ccf7c794664a8dd92794580b844a9059cbb0000000000000000000000009642b23ed1e01df1092b92641051881a322f5d4e0000000000000000000000000000000000000000000001bfe988b316e67cefd3018080", + "txHash": "0x8d490ca96730626fe9d814879b390d73b5edb2bf2629c9c000d5bbcc0fe0489f", + "expected": { + "intent": "Send", + "owner": "WalletConnect Foundation", + "fields": [ + { + "label": "Amount", + "value": "8262522497866777030611" + }, + { + "label": "To", + "value": "0x9642b23Ed1E01Df1092B92641051881a322F5D4E" + } + ] + } + }, + { + "description": "Approve - chain 1", + "rawTx": "0x02f86c01088404b571c0841443fd0082fc5294ef4461891dfb3ac8572ccf7c794664a8dd92794580b844095ea7b300000000000000000000000040aa958dd87fc8305b97f2ba922cddca374bcd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0", + "txHash": "0x2c036d71bd16a70ae15390aa559347822f57bc67206283ec307d8bedc801b7c6", + "expected": { + "intent": "Approve", + "owner": "WalletConnect Foundation", + "fields": [ + { + "label": "Spender", + "value": "0x40aA958dd87FC8305b97f2BA922CDdCa374bcD7f" + }, + { + "label": "Amount", + "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/weth/testsv2/calldata-weth.tests.json b/registry/weth/testsv2/calldata-weth.tests.json new file mode 100644 index 000000000..5e583ef58 --- /dev/null +++ b/registry/weth/testsv2/calldata-weth.tests.json @@ -0,0 +1,21 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-weth.json", + "tests": [ + { + "description": "Wrap - chain 1", + "rawTx": "0x02f5018202098477359400848c45e4d782798994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28706a4c14dbae00085d0e30db076c0", + "txHash": "0xc9d812ab4580595365ad3f90f34ed16973472458b0aeb7be3d318523e8083042", + "expected": { + "intent": "Wrap", + "owner": "WETH", + "fields": [ + { + "label": "Amount", + "value": "0.00187 ETH" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/registry/yieldxyz/testsv2/calldata-yieldxyz-pol-validator.tests.json b/registry/yieldxyz/testsv2/calldata-yieldxyz-pol-validator.tests.json new file mode 100644 index 000000000..7a4155f34 --- /dev/null +++ b/registry/yieldxyz/testsv2/calldata-yieldxyz-pol-validator.tests.json @@ -0,0 +1,69 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-yieldxyz-pol-validator.json", + "tests": [ + { + "description": "Stake POL - chain 1", + "rawTx": "0x02f86d011284056ab152840ca666168304a8a194b929b89153fc2eed442e81e5a1add4e2fa39028f80b844e4457a8a0000000000000000000000000000000000000000000000062b928b73405e3c960000000000000000000000000000000000000000000000000000000000000000c0", + "txHash": "0xc08034d79d1b9f842e0ee4dd4f67d20818ce7ceb1c7f44460ed705485ce75fd0", + "expected": { + "intent": "Stake POL", + "owner": "Yield.xyz", + "fields": [ + { + "label": "Stake amount", + "value": "113.820189659605384342POL" + }, + { + "label": "Min shares", + "value": "0" + } + ] + } + }, + { + "description": "Unstake POL - chain 1", + "rawTx": "0x02f86901130f84080a6920830730a494b929b89153fc2eed442e81e5a1add4e2fa39028f80b844e570b78b0000000000000000000000000000000000000000000000062b928b73405e3c960000000000000000000000000000000000000000000000062b928b73405e3c96c0", + "txHash": "0x491c8c1c91cb312eeb9041bb4be03a3704b8719d33f2e697d0a68c26c691ef23", + "expected": { + "intent": "Unstake POL", + "owner": "Yield.xyz", + "fields": [ + { + "label": "Claim amount", + "value": "113.820189659605384342POL" + }, + { + "label": "Max shares", + "value": "113820189659605384342" + } + ] + } + }, + { + "description": "Claim unstaked POL - chain 1", + "rawTx": "0x02f84c01148405f5e1008409a358a08303b9ff94b929b89153fc2eed442e81e5a1add4e2fa39028f80a48759c2340000000000000000000000000000000000000000000000000000000000000001c0", + "txHash": "0x1c2509a5875a2e6c5e59a47bef4f10007559388aaaeb0c7bf3d642cab906870e", + "expected": { + "intent": "Claim unstaked POL", + "owner": "Yield.xyz", + "fields": [ + { + "label": "Unbond nonce", + "value": "1" + } + ] + } + }, + { + "description": "Withdraw POL rewards - chain 1", + "rawTx": "0x02ea018201c50184060f70d58304ae5694b929b89153fc2eed442e81e5a1add4e2fa39028f8084e0db556bc0", + "txHash": "0x6c97b6037be8b74aac95951bac86de35e8901c57436b05ec7b31e4b701f5fae5", + "expected": { + "intent": "Withdraw POL rewards", + "owner": "Yield.xyz", + "fields": [] + } + } + ] +} \ No newline at end of file diff --git a/registry/yieldxyz/testsv2/calldata-yieldxyz-usde-vault.tests.json b/registry/yieldxyz/testsv2/calldata-yieldxyz-usde-vault.tests.json new file mode 100644 index 000000000..51de1ed00 --- /dev/null +++ b/registry/yieldxyz/testsv2/calldata-yieldxyz-usde-vault.tests.json @@ -0,0 +1,66 @@ +{ + "$schema": "../../../specs/erc7730-tests-v2.schema.json", + "descriptor": "../calldata-yieldxyz-usde-vault.json", + "dataProvider": { + "tokens": { + "0x4c9edd5852cd905f086c759e8383e09bff1e68b3": { + "symbol": "USDe", + "decimals": 18, + "name": "USDe" + }, + "0x2d152fb171353e70e45322d32bc748f8a61d9971": { + "symbol": "stk-USDe", + "decimals": 18, + "name": "Staked USDe Vault" + } + } + }, + "tests": [ + { + "description": "Deposit - chain 1", + "rawTx": "0x02f86d013884054e08408408f0d18083035362942d152fb171353e70e45322d32bc748f8a61d997180b8446e553f6500000000000000000000000000000000000000000000020ace0624a786db000000000000000000000000000036272f3569daf11bb4464354cc136acd9eca1d2bc0", + "txHash": "0xbbb6cc65afe88d8ac39e875df7f67822a86092a223b22e5990af37a21928214a", + "expected": { + "intent": "Deposit", + "owner": "Yield.xyz", + "fields": [ + { + "label": "Deposit asset", + "value": "9644.046 USDe" + }, + { + "label": "Share ticker", + "value": "stk-USDe" + }, + { + "label": "Send shares to", + "value": "0x36272F3569DaF11Bb4464354cC136Acd9ecA1D2B" + } + ] + } + }, + { + "description": "Redeem - chain 1", + "rawTx": "0x02f88d017b84054e084084127a3980830240dc942d152fb171353e70e45322d32bc748f8a61d997180b864ba08765200000000000000000000000000000000000000000546109666d5389d88d03a8000000000000000000000000085013cb901b041f421e35c839658af951a30f21a00000000000000000000000085013cb901b041f421e35c839658af951a30f21ac0", + "txHash": "0x9a7fb4f8e31512ed7045cab62b871aeaed84e27fea74fdfab45e01cce11dbf02", + "expected": { + "intent": "Redeem", + "owner": "Yield.xyz", + "fields": [ + { + "label": "Shares to redeem", + "value": "1632128188.764977367773887104 stk-USDe" + }, + { + "label": "To", + "value": "0x85013cB901b041F421E35c839658Af951A30F21a" + }, + { + "label": "Owner", + "value": "0x85013cB901b041F421E35c839658Af951A30F21a" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/specs/erc7730-tests-v2.schema.json b/specs/erc7730-tests-v2.schema.json new file mode 100644 index 000000000..c803effa5 --- /dev/null +++ b/specs/erc7730-tests-v2.schema.json @@ -0,0 +1,173 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://github.com/LedgerHQ/clear-signing-erc7730-registry/blob/master/specs/erc7730-tests-v2.schema.json", + "title": "ERC-7730 Test Cases Schema (v2)", + "description": "v2 schema for defining test cases against ERC-7730 clear-signing descriptors. A test file lives at registry//testsv2/.tests.json and is consumed by the implementation runners listed in .github/test-runner-docs/. Each test asserts the human-readable output (intent, owner, fields) the implementation should produce for a given transaction or typed-data input.", + "type": "object", + "required": ["descriptor", "tests"], + "properties": { + "$schema": { + "type": "string", + "description": "Reference to the schema file" + }, + "descriptor": { + "type": "string", + "description": "Relative path to the ERC-7730 descriptor under test (resolved from the test file's directory).", + "minLength": 1 + }, + "dataProvider": { + "type": "object", + "description": "Mock data injected into the runner so tests do not require network access. Address keys are lowercase 0x-prefixed.", + "properties": { + "tokens": { + "type": "object", + "description": "Address → token metadata map.", + "additionalProperties": { + "type": "object", + "required": ["symbol", "decimals", "name"], + "properties": { + "symbol": { "type": "string" }, + "decimals": { "type": "integer", "minimum": 0 }, + "name": { "type": "string" } + }, + "additionalProperties": false + } + }, + "addressNames": { + "type": "object", + "description": "Address → local display name map (contact labels, contract names). Keep ENS reverse-resolutions in `ensNames` instead so descriptor fields specifying `sources: [\"local\"]` only match local labels.", + "additionalProperties": { "type": "string" } + }, + "ensNames": { + "type": "object", + "description": "Address → ENS reverse-resolution map (entries end in `.eth`). Kept separate from `addressNames` so descriptor fields specifying `sources: [\"ens\"]` are evaluated against ENS-sourced names only.", + "additionalProperties": { "type": "string" } + }, + "nftCollectionNames": { + "type": "object", + "description": "NFT collection address → display name.", + "additionalProperties": { "type": "string" } + }, + "blockTimestamps": { + "type": "object", + "description": "Block height (decimal string key) → Unix timestamp in seconds.", + "additionalProperties": { + "type": "integer", + "minimum": 0 + } + } + }, + "additionalProperties": false + }, + "tests": { + "type": "array", + "description": "List of test cases. The `description` field serves as the join key between this file and runner-produced results.json files.", + "minItems": 1, + "items": { + "oneOf": [ + { "$ref": "#/definitions/calldataTest" }, + { "$ref": "#/definitions/eip712Test" } + ] + } + } + }, + "definitions": { + "calldataTest": { + "type": "object", + "description": "Test case for a calldata (raw unsigned transaction) descriptor.", + "required": ["description", "rawTx", "expected"], + "properties": { + "description": { + "type": "string", + "description": "Human-readable identifier — used as the join key against runner output. Must be unique within the test file (duplicates collide silently in result aggregation).", + "minLength": 1 + }, + "rawTx": { + "type": "string", + "description": "Raw unsigned transaction hex string (0x prefixed).", + "pattern": "^0x[0-9a-fA-F]+$" + }, + "from": { + "type": "string", + "description": "Checksummed signer address. Optional. Only set when the descriptor references the signer via `@.from` (otherwise it has no effect on rendering and should be omitted).", + "pattern": "^0x[0-9a-fA-F]{40}$" + }, + "txHash": { + "type": "string", + "description": "Transaction hash for reference only (e.g. link to Etherscan). Optional.", + "pattern": "^0x[0-9a-fA-F]{64}$" + }, + "expected": { "$ref": "#/definitions/renderedOutput" } + }, + "additionalProperties": false + }, + "eip712Test": { + "type": "object", + "description": "Test case for an EIP-712 typed-data descriptor.", + "required": ["description", "data", "expected"], + "properties": { + "description": { + "type": "string", + "description": "Human-readable identifier — used as the join key against runner output. Must be unique within the test file (duplicates collide silently in result aggregation).", + "minLength": 1 + }, + "data": { + "type": "object", + "description": "Complete EIP-712 typed-data object.", + "required": ["types", "primaryType", "domain", "message"], + "properties": { + "types": { "type": "object" }, + "primaryType": { "type": "string" }, + "domain": { "type": "object" }, + "message": { "type": "object" } + } + }, + "expected": { "$ref": "#/definitions/renderedOutput" } + }, + "additionalProperties": false + }, + "renderedOutput": { + "type": "object", + "description": "The human-readable output an implementation should produce. Mirrored by `cases[].rendered` in results.json. See .github/test-runner-docs/README.md.", + "required": ["intent", "owner", "fields"], + "properties": { + "intent": { + "type": "string", + "description": "The transaction intent shown to the user (e.g. 'Approve', 'Swap'). The action label declared in the descriptor's `intent`; for descriptors using a templated intent, this is the un-interpolated literal form." + }, + "interpolatedIntent": { + "type": "string", + "description": "Optional. The fully-rendered interpolatedIntent string after substituting any template placeholders against the formatted fields (e.g. 'Swap 100 USDC for DAI'). Omit when the descriptor has no interpolatedIntent." + }, + "owner": { + "type": "string", + "description": "The descriptor owner shown to the user (e.g. 'Aave DAO')." + }, + "fields": { "$ref": "#/definitions/fields" } + }, + "additionalProperties": false + }, + "fields": { + "type": "array", + "description": "Ordered list of rendered fields. Each entry is `{label, value}` — labels are not unique because array-iteration paths can produce fields with the same label. Entry order must match the order in the descriptor. `value` is the formatted string, or a nested object with the same shape as `renderedOutput` (`intent`, `owner`, `fields`) for calldata-formatted fields. Nesting is recursive.", + "items": { + "type": "object", + "required": ["label", "value"], + "properties": { + "label": { + "type": "string", + "description": "The field label as declared in the descriptor (e.g. 'Spender', 'Amount')." + }, + "value": { + "description": "The rendered value, either a string or a nested `renderedOutput` for calldata-formatted fields.", + "oneOf": [ + { "type": "string" }, + { "$ref": "#/definitions/renderedOutput" } + ] + } + }, + "additionalProperties": false + } + } + } +}