diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 25025ea7..c3b0aa3e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -84,7 +84,13 @@ jobs: docker pull ghcr.io/gear-tech/node:v1.6.2 docker run --name $NODE_CONTAINER_NAME --detach --rm --publish 127.0.0.1:9944:9944 ghcr.io/gear-tech/node:v1.6.2 gear --dev --tmp --rpc-external - name: Run tests - run: cargo test --release --workspace --all-targets || { exit_code=$?; if [ x$exit_code != x0 ]; then docker stop $NODE_CONTAINER_NAME; fi; exit $exit_code; } + run: cargo test --release --workspace + --exclude prover + --exclude plonky2_blake2b256 + --exclude plonky2_ecdsa + --exclude plonky2_ed25519 + --exclude plonky2_sha512 + --exclude plonky2_u32 || { exit_code=$?; if [ x$exit_code != x0 ]; then docker stop $NODE_CONTAINER_NAME; fi; exit $exit_code; } - name: Run solidity tests run: | cd ethereum @@ -92,6 +98,40 @@ jobs: - name: Stop Gear node container (if any) continue-on-error: true run: docker stop $NODE_CONTAINER_NAME + check-zk-circuits-changed: + runs-on: kuberunner + outputs: + circuits_changed: ${{ steps.filter.outputs.circuits }} + prover_changed: ${{ steps.filter.outputs.prover }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Filter files + id: filter + uses: dorny/paths-filter@v3 + with: + filters: | + circuits: + - 'circuits/**' + prover: + - 'prover/**' + zk-tests: + runs-on: kuberunner + needs: check-zk-circuits-changed + if: ${{needs.check-zk-circuits-changed.outputs.circuits_changed == 'true' || needs.check-zk-circuits-changed.outputs.prover_changed == 'true'}} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Install rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + - name: Run tests + run: cargo test --release + -p prover + -p plonky2_blake2b256 + -p plonky2_ecdsa + -p plonky2_ed25519 + -p plonky2_sha512 + -p plonky2_u32 check-api-files: runs-on: kuberunner steps: diff --git a/.github/workflows/indexer-ci.yml b/.github/workflows/indexer-ci.yml new file mode 100644 index 00000000..cb946739 --- /dev/null +++ b/.github/workflows/indexer-ci.yml @@ -0,0 +1,39 @@ +name: CI indexer + +on: + pull_request: + branches: + - main + paths: + - indexer/** + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Node.js 20.x + uses: actions/setup-node@v4 + with: + node-version: 20.x + + - name: Install dependencies + working-directory: indexer + run: npm install + + - name: Copy api files + run: | + mkdir -p indexer/assets + node indexer/scripts/abi.js api/ethereum/IERC20Manager.json indexer/assets + node indexer/scripts/abi.js api/ethereum/IMessageQueue.json indexer/assets + + - name: Build + working-directory: indexer + run: npm run build diff --git a/.github/workflows/k8s-deploy.yml b/.github/workflows/k8s-deploy.yml index 58b5ea9a..edf6237a 100644 --- a/.github/workflows/k8s-deploy.yml +++ b/.github/workflows/k8s-deploy.yml @@ -2,7 +2,7 @@ name: Frontend on: workflow_dispatch: push: - branches: ['master', 'main', 'staging'] + branches: ['main'] paths: - frontend/** @@ -11,67 +11,38 @@ concurrency: cancel-in-progress: true env: - ENVIRONMENT: ${{ (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && 'prod' || 'stg' }} + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: ${{ secrets.AWS_REGION }} KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }} - KUBECTL_VERSION: 'v1.22.17' - KUBE_NAMESPACE: zk-bridge - KUBE_DEPLOYMENT_PREFIX: zk-bridge - REGISTRY: ghcr.io/${{ github.repository }} jobs: - prepair: + build-frontend-image-staging: runs-on: ubuntu-latest - outputs: - image_name: ${{ steps.image.outputs.image_name }} - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Get branch - id: branch - run: | - branch_name=${GITHUB_REF#refs/heads/} - echo "branch_name=$branch_name" >> $GITHUB_ENV - - - name: Get short SHA - id: sha - run: | - sha_short=$(git rev-parse --short HEAD) - echo "sha_short=$sha_short" >> $GITHUB_ENV - - - name: Set IMAGE_NAME - id: image - run: | - image_name=${{ env.REGISTRY }}-${{ env.KUBE_DEPLOYMENT_PREFIX }}:${{ env.branch_name }}-${{ env.sha_short }} - echo "image_name=$image_name" >> $GITHUB_OUTPUT - - build-and-push-image: - needs: [prepair] - runs-on: ubuntu-latest - environment: ${{ (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && 'prod' || 'stg' }} + environment: stg permissions: contents: read packages: write + steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v2 - name: Log in to the github container registry - uses: docker/login-action@v3 + uses: docker/login-action@master with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push image - uses: docker/build-push-action@v5 + - name: Build and push Frontend Docker image + uses: docker/build-push-action@master with: file: frontend/Dockerfile push: true - tags: ${{ needs.prepair.outputs.image_name }} + tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-frontend:qa build-args: | VITE_VARA_NODE_ADDRESS=${{ secrets.VITE_VARA_NODE_ADDRESS }} VITE_ETH_NODE_ADDRESS=${{ secrets.VITE_ETH_NODE_ADDRESS }} @@ -80,38 +51,26 @@ jobs: VITE_INDEXER_ADDRESS=${{ secrets.VITE_INDEXER_ADDRESS }} VITE_BRIDGING_PAYMENT_CONTRACT_ADDRESS=${{ secrets.VITE_BRIDGING_PAYMENT_CONTRACT_ADDRESS }} VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS=${{ secrets.VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS }} + VITE_WRAPPED_VARA_CONTRACT_ADDRESS=${{ secrets.VITE_WRAPPED_VARA_CONTRACT_ADDRESS }} - deploy-to-k8s: - needs: [prepair, build-and-push-image] + deploy-to-k8s-staging: + needs: + [build-frontend-image-staging] runs-on: ubuntu-latest - environment: ${{ (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && 'prod' || 'stg' }} + steps: - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ env.AWS_REGION }} - - name: Update deployment image - uses: kodermax/kubectl-aws-eks@main + - name: Deploy to k8s + uses: sergeyfilyanin/kubectl-aws-eks@master with: - args: | - set image deployment/${{ env.KUBE_DEPLOYMENT_PREFIX }}-${{ env.ENVIRONMENT }} \ - ${{ env.KUBE_DEPLOYMENT_PREFIX }}-${{ env.ENVIRONMENT }}=${{ needs.prepair.outputs.image_name }} \ - -n ${{ env.KUBE_NAMESPACE }} - - - name: Restart deployment - uses: kodermax/kubectl-aws-eks@main - with: - args: | - rollout restart deployment/${{ env.KUBE_DEPLOYMENT_PREFIX }}-${{ env.ENVIRONMENT }} \ - -n ${{ env.KUBE_NAMESPACE }} - - - name: Check deployment - uses: kodermax/kubectl-aws-eks@main + args: rollout restart deployment zk-bridge-stg -n zk-bridge + - name: Check k8s deployments + uses: sergeyfilyanin/kubectl-aws-eks@master with: - args: | - rollout status deployment/${{ env.KUBE_DEPLOYMENT_PREFIX }}-${{ env.ENVIRONMENT }} \ - --timeout=240s \ - -n ${{ env.KUBE_NAMESPACE }} + args: get deployment -o name -n zk-bridge | xargs -n1 -t kubectl rollout status -n zk-bridge --timeout=120s diff --git a/.gitignore b/.gitignore index cb783608..d95838a8 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,8 @@ out/ ethereum/broadcast .env +.DS_Store + +node_modules/ +indexer/lib/ +indexer/assets/ diff --git a/.dockerignore b/Dockerfile.dockerignore similarity index 76% rename from .dockerignore rename to Dockerfile.dockerignore index 810676a1..880379f4 100644 --- a/.dockerignore +++ b/Dockerfile.dockerignore @@ -1,19 +1,19 @@ # Rust build directory target -# Resource files +# Resource files audits images LICENSE *.md api -# Git +# Git .git .gitignore .github -# IDE-generated files +# IDE-generated files .vscode .idea @@ -28,5 +28,8 @@ ethereum/cache ethereum/out ethereum/broadcast +# Indexer-related +indexer/ + # Frontend -frontend +frontend/ diff --git a/frontend/.env.example b/frontend/.env.example index ca387a8b..83fdfd08 100644 --- a/frontend/.env.example +++ b/frontend/.env.example @@ -5,3 +5,4 @@ VITE_WALLET_CONNECT_PROJECT_ID= VITE_INDEXER_ADDRESS= VITE_BRIDGING_PAYMENT_CONTRACT_ADDRESS= VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS= +VITE_WRAPPED_VARA_CONTRACT_ADDRESS= diff --git a/frontend/Dockerfile b/frontend/Dockerfile index bb92a326..76621934 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -17,7 +17,8 @@ ARG VITE_VARA_NODE_ADDRESS \ VITE_WALLET_CONNECT_PROJECT_ID \ VITE_INDEXER_ADDRESS \ VITE_BRIDGING_PAYMENT_CONTRACT_ADDRESS \ - VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS + VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS \ + VITE_WRAPPED_VARA_CONTRACT_ADDRESS ENV VITE_VARA_NODE_ADDRESS=${VITE_VARA_NODE_ADDRESS} \ VITE_ETH_NODE_ADDRESS=${VITE_ETH_NODE_ADDRESS} \ @@ -25,7 +26,8 @@ ENV VITE_VARA_NODE_ADDRESS=${VITE_VARA_NODE_ADDRESS} \ VITE_WALLET_CONNECT_PROJECT_ID=${VITE_WALLET_CONNECT_PROJECT_ID} \ VITE_INDEXER_ADDRESS=${VITE_INDEXER_ADDRESS} \ VITE_BRIDGING_PAYMENT_CONTRACT_ADDRESS=${VITE_BRIDGING_PAYMENT_CONTRACT_ADDRESS} \ - VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS=${VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS} + VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS=${VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS} \ + VITE_WRAPPED_VARA_CONTRACT_ADDRESS=${VITE_WRAPPED_VARA_CONTRACT_ADDRESS} RUN pnpm install diff --git a/frontend/package.json b/frontend/package.json index 7c467725..e61ad45a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,13 +11,13 @@ "codegen": "graphql-codegen" }, "dependencies": { - "@gear-js/api": "0.38.1", - "@gear-js/react-hooks": "0.12.2", + "@gear-js/api": "0.39.0", + "@gear-js/react-hooks": "0.14.0", "@gear-js/vara-ui": "0.0.10", "@hookform/resolvers": "3.9.0", - "@polkadot/api": "11.0.2", - "@polkadot/react-identicon": "3.9.1", - "@tanstack/react-query": "5.52.1", + "@polkadot/api": "14.3.1", + "@polkadot/react-identicon": "3.11.3", + "@tanstack/react-query": "5.61.5", "@web3modal/wagmi": "5.1.3", "graphql": "16.9.0", "graphql-request": "7.1.0", @@ -26,7 +26,7 @@ "react-hook-form": "7.52.2", "react-number-format": "5.4.0", "react-router-dom": "6.26.1", - "sails-js": "0.1.8", + "sails-js": "0.3.0", "viem": "2.19.6", "wagmi": "2.12.7", "zod": "3.23.8" @@ -35,7 +35,7 @@ "@graphql-codegen/cli": "5.0.2", "@graphql-codegen/client-preset": "4.3.3", "@graphql-typed-document-node/core": "3.2.0", - "@polkadot/types": "11.0.2", + "@polkadot/types": "14.3.1", "@types/react": "18.3.4", "@types/react-dom": "18.3.0", "@typescript-eslint/eslint-plugin": "8.2.0", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 99e8ea01..e41c269e 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@gear-js/api': - specifier: 0.38.1 - version: 0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1) + specifier: 0.39.0 + version: 0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1) '@gear-js/react-hooks': - specifier: 0.12.2 - version: 0.12.2(@gear-js/api@0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1))(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@tanstack/react-query@5.52.1(react@18.3.1))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sails-js@0.1.8(@gear-js/api@0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1))(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@11.0.2))(utf-8-validate@5.0.10) + specifier: 0.14.0 + version: 0.14.0(@gear-js/api@0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1))(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@tanstack/react-query@5.61.5(react@18.3.1))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sails-js-types@0.0.1)(sails-js@0.3.0(@gear-js/api@0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1))(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@14.3.1)(sails-js-types@0.0.1)(sails-js-util@0.0.1))(utf-8-validate@5.0.10) '@gear-js/vara-ui': specifier: 0.0.10 version: 0.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21,17 +21,17 @@ importers: specifier: 3.9.0 version: 3.9.0(react-hook-form@7.52.2(react@18.3.1)) '@polkadot/api': - specifier: 11.0.2 - version: 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + specifier: 14.3.1 + version: 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@polkadot/react-identicon': - specifier: 3.9.1 - version: 3.9.1(@polkadot/keyring@13.0.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/networks@13.0.2)(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1) + specifier: 3.11.3 + version: 3.11.3(@polkadot/keyring@13.2.3(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3))(@polkadot/networks@13.2.3)(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1) '@tanstack/react-query': - specifier: 5.52.1 - version: 5.52.1(react@18.3.1) + specifier: 5.61.5 + version: 5.61.5(react@18.3.1) '@web3modal/wagmi': specifier: 5.1.3 - version: 5.1.3(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/connectors@5.1.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(vue@3.4.3(typescript@5.5.4))(wagmi@2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)) + version: 5.1.3(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/connectors@5.1.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(vue@3.4.3(typescript@5.5.4))(wagmi@2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.61.5(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)) graphql: specifier: 16.9.0 version: 16.9.0 @@ -54,14 +54,14 @@ importers: specifier: 6.26.1 version: 6.26.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) sails-js: - specifier: 0.1.8 - version: 0.1.8(@gear-js/api@0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1))(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@11.0.2) + specifier: 0.3.0 + version: 0.3.0(@gear-js/api@0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1))(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@14.3.1)(sails-js-types@0.0.1)(sails-js-util@0.0.1) viem: specifier: 2.19.6 version: 2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8) wagmi: specifier: 2.12.7 - version: 2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + version: 2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.61.5(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) zod: specifier: 3.23.8 version: 3.23.8 @@ -76,8 +76,8 @@ importers: specifier: 3.2.0 version: 3.2.0(graphql@16.9.0) '@polkadot/types': - specifier: 11.0.2 - version: 11.0.2 + specifier: 14.3.1 + version: 14.3.1 '@types/react': specifier: 18.3.4 version: 18.3.4 @@ -1148,22 +1148,22 @@ packages: resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} engines: {node: '>=14'} - '@gear-js/api@0.38.1': - resolution: {integrity: sha512-SghbC+9Jc5YsNjuO/I3cHMlBXkUZK8OgpI7bXyP3fetQo/Ls4/cgv4JD/XX2S7Y/UpG+gSdSEXaxpU1g7OYK7A==} + '@gear-js/api@0.39.0': + resolution: {integrity: sha512-qJcaZStYwB6Io3zOTteKv8ertVJHSuV/qKnuO/ciL+FfSj/LGX3JnskjYxIHzeqRam2qIOTdnC6OK7M8x+9whQ==} peerDependencies: - '@polkadot/api': 11.0.2 - '@polkadot/wasm-crypto': 7.3.2 + '@polkadot/api': 14.3.1 + '@polkadot/wasm-crypto': 7.4.1 rxjs: 7.8.1 - '@gear-js/react-hooks@0.12.2': - resolution: {integrity: sha512-rQbdjZUDxmqxHmionFAQz6seFX6Nxqb1IQk3Ijpbd2zZLsEgS9fHx+G6nMtolOWBUxpOQ0BkNO6BLvakBpgfTg==} + '@gear-js/react-hooks@0.14.0': + resolution: {integrity: sha512-4aaDNh6xH8C2fMu76PpkAp1zOaacERjtsvEEJdLmWv79eDy0yyLzdaY8O7Cleiyh7rNcTMPt/9z/2Jjd0PG4qQ==} peerDependencies: - '@gear-js/api': 0.38.1 - '@polkadot/api': 11.0.2 - '@tanstack/react-query': ^5.29.0 + '@gear-js/api': 0.39.0 + '@polkadot/api': 14.3.1 + '@tanstack/react-query': ^5.56.2 react: ^18.2.0 react-dom: ^18.2.0 - sails-js: 0.1.8 + sails-js: 0.3.0 '@gear-js/vara-ui@0.0.10': resolution: {integrity: sha512-5f6FamMaRNM1uF6X8qZwVVf5p/tS0S8/0x+O/wr+2bnDL4qlK+kBhhhuGzIyBATFoEDOo1fKvEriHnuOFw/GSA==} @@ -1704,97 +1704,66 @@ packages: resolution: {integrity: sha512-YBcMfqNSwn3SujUJvAaySy5tlYbYm6tVt9SKoXu8BaTdKGROiJDgPR3TXpZdAKUfklzm3lRapJEAltiMQtBgZg==} engines: {node: '>=10.12.0'} - '@polkadot-api/json-rpc-provider-proxy@0.0.1': - resolution: {integrity: sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg==} - '@polkadot-api/json-rpc-provider-proxy@0.1.0': resolution: {integrity: sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==} '@polkadot-api/json-rpc-provider@0.0.1': resolution: {integrity: sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==} - '@polkadot-api/metadata-builders@0.0.1': - resolution: {integrity: sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA==} - '@polkadot-api/metadata-builders@0.3.2': resolution: {integrity: sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==} - '@polkadot-api/observable-client@0.1.0': - resolution: {integrity: sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A==} - peerDependencies: - rxjs: '>=7.8.0' - '@polkadot-api/observable-client@0.3.2': resolution: {integrity: sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==} peerDependencies: '@polkadot-api/substrate-client': 0.1.4 rxjs: '>=7.8.0' - '@polkadot-api/substrate-bindings@0.0.1': - resolution: {integrity: sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg==} - '@polkadot-api/substrate-bindings@0.6.0': resolution: {integrity: sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==} - '@polkadot-api/substrate-client@0.0.1': - resolution: {integrity: sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg==} - '@polkadot-api/substrate-client@0.1.4': resolution: {integrity: sha512-MljrPobN0ZWTpn++da9vOvt+Ex+NlqTlr/XT7zi9sqPtDJiQcYl+d29hFAgpaeTqbeQKZwz3WDE9xcEfLE8c5A==} - '@polkadot-api/utils@0.0.1': - resolution: {integrity: sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw==} - '@polkadot-api/utils@0.1.0': resolution: {integrity: sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA==} - '@polkadot/api-augment@11.0.2': - resolution: {integrity: sha512-Icrwk9DxcWlMxl0UFhIthYX+TzFGhxC2zwCaIgUbE5l1hoRFWl+K4BbLOtNdGTr6jkEkJizdnzbXvxWMYHZEOA==} + '@polkadot/api-augment@14.3.1': + resolution: {integrity: sha512-PE6DW+8kRhbnGKn7qCF7yM6eEt/kqrY8bh1i0RZcPY9QgwXW4bZZrtMK4WssX6Z70NTEoOW6xHYIjc7gFZuz8g==} engines: {node: '>=18'} - '@polkadot/api-base@11.0.2': - resolution: {integrity: sha512-Sz1z6KHe+AyiQRxwSXU2KM0KSKZ97sc1WBEhqqkGuR3YdaV2Pt++ixSJe1FXt5/YyMI/KU0W8GSciK6Kydgxgw==} + '@polkadot/api-base@14.3.1': + resolution: {integrity: sha512-GZT6rTpT3HYZ/C3rLPjoX3rX3DOxNG/zgts+jKjNrCumAeZkVq5JErKIX8/3f2TVaE2Kbqniy3d1TH/AL4HBPA==} engines: {node: '>=18'} - '@polkadot/api-derive@11.0.2': - resolution: {integrity: sha512-1E3alBICLBbsNJ4HvJkyIuCznuOgksS6cQ+H57K0d9NCC4xZcCqreHm+VTlZh3HZjDgw4CPDRvhgCDvDOP8KpA==} + '@polkadot/api-derive@14.3.1': + resolution: {integrity: sha512-PhqUEJCY54vXtIaoYqGUtJY06wHd/K0cBmBz9yCLxp8UZkLoGWhfJRTruI25Jnucf9awS5cZKYqbsoDrL09Oqg==} engines: {node: '>=18'} - '@polkadot/api@11.0.2': - resolution: {integrity: sha512-LG4gwlev+SC2WolWMX0CaUZJyZWxXbsCe5h58zFxXucQuiPAvkn0QrnSTC3hB3qywsxK6aeuQ9E2vrQYcN7EMg==} + '@polkadot/api@14.3.1': + resolution: {integrity: sha512-ZBKSXEVJa1S1bnmpnA7KT/fX3sJDIJOdVD9Hp3X+G73yvXzuK5k1Mn5z9bD/AcMs/HAGcbuYU+b9+b9IByH9YQ==} engines: {node: '>=18'} - '@polkadot/extension-inject@0.51.1': - resolution: {integrity: sha512-9b6mNw+ELkKOBxDARs3mfbFOzgOiV1brCY6OizXpGb1UAN6I77QcueUBC4zqvGo0NP7/pAlp2Aqxo7u9XuRi7w==} + '@polkadot/extension-inject@0.56.2': + resolution: {integrity: sha512-HY4wrJ2YJykvxG/BYzOGgaCxOqGckHFE9HKA7/pq7sl2wVtdO8mlNET+jdSwTY3prfmLxkUiDNbY+bWv1ydPYQ==} engines: {node: '>=18'} peerDependencies: '@polkadot/api': '*' '@polkadot/util': '*' - '@polkadot/keyring@12.6.2': - resolution: {integrity: sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==} - engines: {node: '>=18'} - peerDependencies: - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2 - - '@polkadot/keyring@13.0.2': - resolution: {integrity: sha512-NeLbhyKDT5W8LI9seWTZGePxNTOVpDhv2018HSrEDwJq9Ie0C4TZhUf3KNERCkSveuThXjfQJMs+1CF33ZXPWw==} + '@polkadot/keyring@13.2.3': + resolution: {integrity: sha512-pgTo6DXNXub0wGD+MnVHYhKxf80Jl+QMOCb818ioGdXz++Uw4mTueFAwtB+N7TGo0HafhChUiNJDxFdlDkcAng==} engines: {node: '>=18'} peerDependencies: - '@polkadot/util': 13.0.2 - '@polkadot/util-crypto': 13.0.2 + '@polkadot/util': 13.2.3 + '@polkadot/util-crypto': 13.2.3 - '@polkadot/networks@12.6.2': - resolution: {integrity: sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==} + '@polkadot/networks@13.2.3': + resolution: {integrity: sha512-mG+zkXg/33AyPrkv2xBbAo3LBUwOwBn6qznBU/4jxiZPnVvCwMaxE7xHM22B5riItbNJ169FXv3wy0v6ZmkFbw==} engines: {node: '>=18'} - '@polkadot/networks@13.0.2': - resolution: {integrity: sha512-ABAL+vug/gIwkdFEzeh87JoJd0YKrxSYg/HjUrZ+Zis2ucxQEKpvtCpJ34ku+YrjacBfVqIAkkwd3ZdIPGq9aQ==} - engines: {node: '>=18'} - - '@polkadot/react-identicon@3.9.1': - resolution: {integrity: sha512-4cMGPNc3KZdaEqZbrhfvuwPg4jXT29hIadBjKVbyQZAuJzwzcIiFpr9JvQ8fLHE1elFr5dbQqGsHB/iZRyzhyw==} + '@polkadot/react-identicon@3.11.3': + resolution: {integrity: sha512-YnIF85RaMqw2CwxGkACwWtLHA3twL7jQi/IY9njjJYg3QkdyTQclZqFAw0IClYduBI1YIdRjFoob6k+kyNKpqQ==} engines: {node: '>=18'} peerDependencies: '@polkadot/keyring': '*' @@ -1804,199 +1773,134 @@ packages: react-dom: '*' react-is: '*' - '@polkadot/rpc-augment@11.0.2': - resolution: {integrity: sha512-QcT9U2hINcjynJhHC4AhoHNgZR5JymDkuhAIOVYsNb1BUcDzoud5lvfK+ISfw2kVPAyCdx3kHodFPhdNdPGHUg==} + '@polkadot/rpc-augment@14.3.1': + resolution: {integrity: sha512-Z8Hp8fFHwFCiTX0bBCDqCZ4U26wLIJl1NRSjJTsAr+SS68pYZBDGCwhKztpKGqndk1W1akRUaxrkGqYdIFmspQ==} engines: {node: '>=18'} - '@polkadot/rpc-core@11.0.2': - resolution: {integrity: sha512-kC+85+WIc/uKColIGzrnRjM47N+AjbujRkTf0n9ldwtAIYJnq+B09R3Qjmk+kXrdW5fes85L/WigqwkohMfNkw==} + '@polkadot/rpc-core@14.3.1': + resolution: {integrity: sha512-FV2NPhFwFxmX8LqibDcGc6IKTBqmvwr7xwF2OA60Br4cX+AQzMSVpFlfQcETll+0M+LnRhqGKGkP0EQWXaSowA==} engines: {node: '>=18'} - '@polkadot/rpc-provider@11.0.2': - resolution: {integrity: sha512-EHoWs27r+V8NKexawcTkDzSJtYAXmkz8/zge+Ctm0PzdxtP740U9xvbK7uZ0INXeLIPdKKk7n9lGib3fhnXRvQ==} + '@polkadot/rpc-provider@14.3.1': + resolution: {integrity: sha512-NF/Z/7lzT+jp5LZzC49g+YIjRzXVI0hFag3+B+4zh6E/kKADdF59EHj2Im4LDhRGOnEO9AE4H6/UjNEbZ94JtA==} engines: {node: '>=18'} - '@polkadot/rpc-provider@12.4.2': - resolution: {integrity: sha512-cAhfN937INyxwW1AdjABySdCKhC7QCIONRDHDea1aLpiuxq/w+QwjxauR9fCNGh3lTaAwwnmZ5WfFU2PtkDMGQ==} + '@polkadot/types-augment@14.3.1': + resolution: {integrity: sha512-SC4M6TBlgCglNz+gRbvfoVRDz0Vyeev6v0HeAdw0H6ayEW4BXUdo5bFr0092bdS5uTrEPgiSyUry5TJs2KoXig==} engines: {node: '>=18'} - '@polkadot/types-augment@11.0.2': - resolution: {integrity: sha512-36C1LNWrd/IJu4y4xJFsklw7qmyBMnH16WLkIoma7W7tCkPyuvKpl9btTcNpY9UE0FLb3AEhO0shrz3KUANk/g==} + '@polkadot/types-codec@14.3.1': + resolution: {integrity: sha512-3y3RBGd+8ebscGbNUOjqUjnRE7hgicgid5LtofHK3O1EDcJQJnYBDkJ7fOAi96CDgHsg+f2FWWkBWEPgpOQoMQ==} engines: {node: '>=18'} - '@polkadot/types-augment@12.4.2': - resolution: {integrity: sha512-3fDCOy2BEMuAtMYl4crKg76bv/0pDNEuzpAzV4EBUMIlJwypmjy5sg3gUPCMcA+ckX3xb8DhkWU4ceUdS7T2KQ==} + '@polkadot/types-create@14.3.1': + resolution: {integrity: sha512-F4EBvF3Zvym0xrkAA5Yz01IAVMepMV3w2Dwd0C9IygEAQ5sYLLPHmf72/aXn+Ag+bSyT2wlJHpDc+nEBXNQ3Gw==} engines: {node: '>=18'} - '@polkadot/types-codec@11.0.2': - resolution: {integrity: sha512-OL7jM9JNzmRo+gLNIWllvyv3I4k+2dywKchC9gw/D5OCkFD+B5T3oHUw99zzER0C/r7/vTH9RM3w79yeW0UYKA==} + '@polkadot/types-known@14.3.1': + resolution: {integrity: sha512-58b3Yc7+sxwNjs8axmrA9OCgnxmEKIq7XCH2VxSgLqTeqbohVtxwUSCW/l8NPrq1nxzj4J2sopu0PPg8/++q4g==} engines: {node: '>=18'} - '@polkadot/types-codec@12.4.2': - resolution: {integrity: sha512-DiPGRFWtVMepD9i05eC3orSbGtpN7un/pXOrXu0oriU+oxLkpvZH68ZsPNtJhKdQy03cAYtvB8elJOFJZYqoqQ==} + '@polkadot/types-support@14.3.1': + resolution: {integrity: sha512-MfVe4iIOJIfBr+gj8Lu8gwIvhnO6gDbG5LeaKAjY6vS6Oh0y5Ztr8NdMIl8ccSpoyt3LqIXjfApeGzHiLzr6bw==} engines: {node: '>=18'} - '@polkadot/types-create@11.0.2': - resolution: {integrity: sha512-yx5Gef3QkbJjzbEGoyOxv74XslGEK1Uo0IC8qSmwHsqO2+QoAEU7uJ9QpSNxHAcRrjx1W3+MdJAsfXtnwOiOeQ==} + '@polkadot/types@14.3.1': + resolution: {integrity: sha512-O748XgCLDQYxS5nQ6TJSqW88oC4QNIoNVlWZC2Qq4SmEXuSzaNHQwSVtdyPRJCCc4Oi1DCQvGui4O+EukUl7HA==} engines: {node: '>=18'} - '@polkadot/types-create@12.4.2': - resolution: {integrity: sha512-nOpeAKZLdSqNMfzS3waQXgyPPaNt8rUHEmR5+WNv6c/Ke/vyf710wjxiTewfp0wpBgtdrimlgG4DLX1J9Ms1LA==} - engines: {node: '>=18'} - - '@polkadot/types-known@11.0.2': - resolution: {integrity: sha512-c89H2y2mMCjuf5X9tTadwHpJtnQvfVxlJLTlrGElfImzWNgRetIjH65Zgy/uh/I9LqTxRlk5y3ZhBMZgL/ybbg==} - engines: {node: '>=18'} - - '@polkadot/types-support@11.0.2': - resolution: {integrity: sha512-p26QwtEniCyqUX9WoMtEp5LRdrmvvUf8s8Dx6P3W8/lU+hYeKQjeGCudWoudSXIYpsfTliLEowoxmjx4Wn4GIw==} - engines: {node: '>=18'} - - '@polkadot/types-support@12.4.2': - resolution: {integrity: sha512-bz6JSt23UEZ2eXgN4ust6z5QF9pO5uNH7UzCP+8I/Nm85ZipeBYj2Wu6pLlE3Hw30hWZpuPxMDOKoEhN5bhLgw==} - engines: {node: '>=18'} - - '@polkadot/types@11.0.2': - resolution: {integrity: sha512-jYORxnbR9cOoLW2KI7OAbHlC8bQr+Anj34CqgtlEikRSZBlmmx1CLD08hZSnSHkVAQgqHB6SLfFIW5VTI2YaqA==} - engines: {node: '>=18'} - - '@polkadot/types@12.4.2': - resolution: {integrity: sha512-ivYtt7hYcRvo69ULb1BJA9BE1uefijXcaR089Dzosr9+sMzvsB1yslNQReOq+Wzq6h6AQj4qex6qVqjWZE6Z4A==} - engines: {node: '>=18'} - - '@polkadot/ui-settings@3.9.1': - resolution: {integrity: sha512-G6WYluS3oE9wiK4KLK1Hi+lr0ZII65x7EcmRoqaR5BBKAr2cBnLAOfBiK5gUchntY7cw1ukXRmcCJmNmCFvwzg==} + '@polkadot/ui-settings@3.11.3': + resolution: {integrity: sha512-VGtv5pGQM9iFWZ9kpU9TD0auDUb01mTp/DACTgG79mo9icK2XK8KUdkMMh70HuhnS5Dnqsgn7nhYuYqVOGAxeQ==} engines: {node: '>=18'} peerDependencies: '@polkadot/networks': '*' '@polkadot/util': '*' - '@polkadot/ui-shared@3.9.1': - resolution: {integrity: sha512-bg7t4NKy2yyuK/0h1ahTJiK2Ooe1b+qNmkPfcY3b96o9lgzPiUPYFLg+pVIS/Cu3lULd0dzZEqi4IPl63tAt+w==} + '@polkadot/ui-shared@3.11.3': + resolution: {integrity: sha512-oK8HCI9//ymQrRMSunUpHXjWXRHwKynSlQphonqmWL2duFWgTKVqGrEbEmeaW5Ps4dzK3w06GYQDj7fhe7BcRg==} engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' '@polkadot/util-crypto': '*' - '@polkadot/util-crypto@12.6.2': - resolution: {integrity: sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==} + '@polkadot/util-crypto@13.2.3': + resolution: {integrity: sha512-5sbggmLbn5eiuVMyPROPlT5roHRqdKHOfSpioNbGvGIZ1qIWVoC1RfsK0NWJOVGDzy6DpQe0KYT/kgcU5Xsrzw==} engines: {node: '>=18'} peerDependencies: - '@polkadot/util': 12.6.2 + '@polkadot/util': 13.2.3 - '@polkadot/util-crypto@13.0.2': - resolution: {integrity: sha512-woUsJJ6zd/caL7U+D30a5oM/+WK9iNI00Y8aNUHSj6Zq/KPzK9uqDBaLGWwlgrejoMQkxxiU2X0f2LzP15AtQg==} + '@polkadot/util@13.2.3': + resolution: {integrity: sha512-pioNnsig3qHXrfOKMe4Yqos8B8N3/EZUpS+WfTpWnn1VjYban/0GrTXeavPlAwggnY27b8fS6rBzQBhnVYDw8g==} engines: {node: '>=18'} - peerDependencies: - '@polkadot/util': 13.0.2 - '@polkadot/util@12.6.2': - resolution: {integrity: sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==} - engines: {node: '>=18'} - - '@polkadot/util@13.0.2': - resolution: {integrity: sha512-/6bS9sfhJLhs8QuqWaR1eRapzfDdGC5XAQZEPL9NN5sTTA7HxWos8rVleai0UERm8QUMabjZ9rK9KpzbXl7ojg==} - engines: {node: '>=18'} - - '@polkadot/wasm-bridge@7.3.2': - resolution: {integrity: sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g==} + '@polkadot/wasm-bridge@7.4.1': + resolution: {integrity: sha512-tdkJaV453tezBxhF39r4oeG0A39sPKGDJmN81LYLf+Fihb7astzwju+u75BRmDrHZjZIv00un3razJEWCxze6g==} engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' '@polkadot/x-randomvalues': '*' - '@polkadot/wasm-crypto-asmjs@7.3.2': - resolution: {integrity: sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q==} + '@polkadot/wasm-crypto-asmjs@7.4.1': + resolution: {integrity: sha512-pwU8QXhUW7IberyHJIQr37IhbB6DPkCG5FhozCiNTq4vFBsFPjm9q8aZh7oX1QHQaiAZa2m2/VjIVE+FHGbvHQ==} engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' - '@polkadot/wasm-crypto-init@7.3.2': - resolution: {integrity: sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g==} + '@polkadot/wasm-crypto-init@7.4.1': + resolution: {integrity: sha512-AVka33+f7MvXEEIGq5U0dhaA2SaXMXnxVCQyhJTaCnJ5bRDj0Xlm3ijwDEQUiaDql7EikbkkRtmlvs95eSUWYQ==} engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' '@polkadot/x-randomvalues': '*' - '@polkadot/wasm-crypto-wasm@7.3.2': - resolution: {integrity: sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw==} + '@polkadot/wasm-crypto-wasm@7.4.1': + resolution: {integrity: sha512-PE1OAoupFR0ZOV2O8tr7D1FEUAwaggzxtfs3Aa5gr+yxlSOaWUKeqsOYe1KdrcjmZVV3iINEAXxgrbzCmiuONg==} engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' - '@polkadot/wasm-crypto@7.3.2': - resolution: {integrity: sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw==} + '@polkadot/wasm-crypto@7.4.1': + resolution: {integrity: sha512-kHN/kF7hYxm1y0WeFLWeWir6oTzvcFmR4N8fJJokR+ajYbdmrafPN+6iLgQVbhZnDdxyv9jWDuRRsDnBx8tPMQ==} engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' '@polkadot/x-randomvalues': '*' - '@polkadot/wasm-util@7.3.2': - resolution: {integrity: sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg==} + '@polkadot/wasm-util@7.4.1': + resolution: {integrity: sha512-RAcxNFf3zzpkr+LX/ItAsvj+QyM56TomJ0xjUMo4wKkHjwsxkz4dWJtx5knIgQz/OthqSDMR59VNEycQeNuXzA==} engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' - '@polkadot/x-bigint@12.6.2': - resolution: {integrity: sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==} - engines: {node: '>=18'} - - '@polkadot/x-bigint@13.0.2': - resolution: {integrity: sha512-h2jKT/UaxiEal8LhQeH6+GCjO7GwEqVAD2SNYteCOXff6yNttqAZYJuHZsndbVjVNwqRNf8D5q/zZkD0HUd6xQ==} - engines: {node: '>=18'} - - '@polkadot/x-fetch@12.6.2': - resolution: {integrity: sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==} + '@polkadot/x-bigint@13.2.3': + resolution: {integrity: sha512-VKgEAh0LsxTd/Hg517Tt5ZU4CySjBwMpaojbkjgv3fOdg1cN7t4eFEUxpyj7mlO0cp22SzDh7nmy4TO98qhLQA==} engines: {node: '>=18'} - '@polkadot/x-fetch@13.0.2': - resolution: {integrity: sha512-B/gf9iriUr6za/Ui7zIFBfHz7UBZ68rJEIteWHx1UHRCZPcLqv+hgpev6xIGrkfFljI0/lI7IwtN2qy6HYzFBg==} + '@polkadot/x-fetch@13.2.3': + resolution: {integrity: sha512-7Nmk+8ieEGzz43nc1rX6nH3rQo6rhGmAaIXJWnXY9gOHY0k1me1bJYbP+xDdh8vcLh8eY3D1sESUwG6QYZW2lg==} engines: {node: '>=18'} - '@polkadot/x-global@12.6.2': - resolution: {integrity: sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==} + '@polkadot/x-global@13.2.3': + resolution: {integrity: sha512-7MYQIAEwBkRcNrgqac5PbB0kNPlI6ISJEy6/Nb+crj8BFjQ8rf11PF49fq0QsvDeuYM1aNLigrvYZNptQs4lbw==} engines: {node: '>=18'} - '@polkadot/x-global@13.0.2': - resolution: {integrity: sha512-OoNIXLB5y8vIKpk4R+XmpDPhipNXWSUvEwUnpQT7NAxNLmzgMq1FhbrwBWWPRNHPrQonp7mqxV/X+v5lv1HW/g==} - engines: {node: '>=18'} - - '@polkadot/x-randomvalues@12.6.2': - resolution: {integrity: sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==} - engines: {node: '>=18'} - peerDependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': '*' - - '@polkadot/x-randomvalues@13.0.2': - resolution: {integrity: sha512-SGj+L0H/7TWZtSmtkWlixO4DFzXDdluI0UscN2h285os2Ns8PnmBbue+iJ8PVSzpY1BOxd66gvkkpboPz+jXFQ==} + '@polkadot/x-randomvalues@13.2.3': + resolution: {integrity: sha512-Zf0GTfLmVk+VzPUmcQSpXjjmFzMTjPhXoLuIoE7xIu73T+vQ+TX9j7DvorN6bIRsnZ9l1SyTZsSf/NTjNZKIZg==} engines: {node: '>=18'} peerDependencies: - '@polkadot/util': 13.0.2 + '@polkadot/util': 13.2.3 '@polkadot/wasm-util': '*' - '@polkadot/x-textdecoder@12.6.2': - resolution: {integrity: sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==} - engines: {node: '>=18'} - - '@polkadot/x-textdecoder@13.0.2': - resolution: {integrity: sha512-mauglOkTJxLGmLwLc3J5Jlq/W+SHP53eiy3F8/8JxxfnXrZKgWoQXGpvXYPjFnMZj0MzDSy/6GjyGWnDCgdQFA==} - engines: {node: '>=18'} - - '@polkadot/x-textencoder@12.6.2': - resolution: {integrity: sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==} + '@polkadot/x-textdecoder@13.2.3': + resolution: {integrity: sha512-i8hRXPtGknmdm3FYv6/94I52VXHJZa5sgYNw1+Hqb4Jqmq4awUjea35CKXd/+aw70Qn8Ngg31l2GoiH494fa+Q==} engines: {node: '>=18'} - '@polkadot/x-textencoder@13.0.2': - resolution: {integrity: sha512-Lq08H2OnVXj97uaOwg7tcmRS7a4VJYkHEeWO4FyEMOk6P6lU6W8OVNjjxG0se9PCEgmyZPUDbJI//1ynzP4cXw==} + '@polkadot/x-textencoder@13.2.3': + resolution: {integrity: sha512-wJI3Bb/dC4zyBXJFm5+ZhyBXWoI5wvP8k8qX0/ZC0PQsgSAqs7LVhiofk4Wd94n0P41W5re58LrGXLyziSAshw==} engines: {node: '>=18'} - '@polkadot/x-ws@12.6.2': - resolution: {integrity: sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==} - engines: {node: '>=18'} - - '@polkadot/x-ws@13.0.2': - resolution: {integrity: sha512-nC5e2eY5D5ZR5teQOB7ib+dWLbmNws86cTz3BjKCalSMBBIn6i3V9ElgABpierBmnSJe9D94EyrH1BxdVfDxUg==} + '@polkadot/x-ws@13.2.3': + resolution: {integrity: sha512-Y6MTAWgcnrnx/LkBx65X3ZyoJH5EFj3tXtflRoKg1+PLHSLuNBV7Wi5mLcE70z4e5c+4hgBbLq+8SqCqzFtSPw==} engines: {node: '>=18'} '@react-native-async-storage/async-storage@1.23.1': @@ -2215,6 +2119,9 @@ packages: '@scure/base@1.1.6': resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} + '@scure/base@1.2.1': + resolution: {integrity: sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==} + '@scure/bip32@1.3.3': resolution: {integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==} @@ -2305,32 +2212,35 @@ packages: '@substrate/connect-extension-protocol@2.0.0': resolution: {integrity: sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg==} - '@substrate/connect-known-chains@1.1.4': - resolution: {integrity: sha512-iT+BdKqvKl/uBLd8BAJysFM1BaMZXRkaXBP2B7V7ob/EyNs5h0EMhTVbO6MJxV/IEOg5OKsyl6FUqQK7pKnqyw==} + '@substrate/connect-extension-protocol@2.2.1': + resolution: {integrity: sha512-GoafTgm/Jey9E4Xlj4Z5ZBt/H4drH2CNq8VrAro80rtoznrXnFDNVivLQzZN0Xaj2g8YXSn9pC9Oc9IovYZJXw==} '@substrate/connect-known-chains@1.3.0': resolution: {integrity: sha512-BHcWdhOsnHtoWuS4LpFpH3MbLAhm1amq4hvl5ctI47KNZcZJcEPAF4zmeaTMuvj+UJ7LEFooy46Mn7zok47MwA==} - '@substrate/connect@0.8.10': - resolution: {integrity: sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w==} - deprecated: versions below 1.x are no longer maintained + '@substrate/connect-known-chains@1.8.0': + resolution: {integrity: sha512-sl7WfeDgnZuPvUl5Xw0XIziOTe8rEBJ3uugyDETGnafxEbjYMv5aJL0ilq5djhnQ7l9OuMJCN3Ckved2yINeeQ==} '@substrate/connect@0.8.11': resolution: {integrity: sha512-ofLs1PAO9AtDdPbdyTYj217Pe+lBfTLltdHDs3ds8no0BseoLeAGxpz1mHfi7zB4IxI3YyAiLjH6U8cw4pj4Nw==} deprecated: versions below 1.x are no longer maintained - '@substrate/light-client-extension-helpers@0.0.6': - resolution: {integrity: sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA==} - peerDependencies: - smoldot: 2.x + '@substrate/connect@2.1.0': + resolution: {integrity: sha512-k0fQtifLK2Ve+X5I+1IlnCxYRc3XWFQ/vcCiPjd4pgcGNVPbhptLiRb2ONVVoIb3jRDv6jrUNRVUPlWjTL7ffg==} + + '@substrate/discovery@0.2.1': + resolution: {integrity: sha512-SRWlBK65Qy6WvHG2V2vjctJaz07Td2HZTw58z59bZOcr+I10q7OxqFKYPIvQwz/VWrWEGdHQ57jt7EwS4T6mDQ==} '@substrate/light-client-extension-helpers@1.0.0': resolution: {integrity: sha512-TdKlni1mBBZptOaeVrKnusMg/UBpWUORNDv5fdCaJklP4RJiFOzBCrzC+CyVI5kQzsXBisZ+2pXm+rIjS38kHg==} peerDependencies: smoldot: 2.x - '@substrate/ss58-registry@1.47.0': - resolution: {integrity: sha512-6kuIJedRcisUJS2pgksEH2jZf3hfSIVzqtFzs/AyjTW3ETbMg5q1Bb7VWa0WYaT6dTrEXp/6UoXM5B9pSIUmcw==} + '@substrate/smoldot-discovery@2.0.1': + resolution: {integrity: sha512-8IXrZN4X6mOb/VOYF6Sy+MWSICiZQ92475ca/8fU65f54JkbXhslF6CmIUm2pGDHb51/uNZ+ZUkc/zPHwBdI2w==} + + '@substrate/ss58-registry@1.51.0': + resolution: {integrity: sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ==} '@svgr/babel-plugin-add-jsx-attribute@8.0.0': resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} @@ -2403,8 +2313,11 @@ packages: '@tanstack/query-core@5.52.0': resolution: {integrity: sha512-U1DOEgltjUwalN6uWYTewSnA14b+tE7lSylOiASKCAO61ENJeCq9VVD/TXHA6O5u9+6v5+UgGYBSccTKDoyMqw==} - '@tanstack/react-query@5.52.1': - resolution: {integrity: sha512-soyn4dNIUZ8US8NaPVXv06gkZFHaZnPfKWPDjRJjFRW3Y7WZ0jx72eT6zhw3VQlkMPysmXye8l35ewPHspKgbQ==} + '@tanstack/query-core@5.61.5': + resolution: {integrity: sha512-iG5vqurEOEbv+paP6kW3zPENa99kSIrd1THISJMaTwVlJ+N5yjVDNOUwp9McK2DWqWCXM3v13ubBbAyhxT78UQ==} + + '@tanstack/react-query@5.61.5': + resolution: {integrity: sha512-rjy8aqPgBBEz/rjJnpnuhi8TVkVTorMUsJlM3lMvrRb5wK6yzfk34Er0fnJ7w/4qyF01SnXsLB/QsTBsLF5PaQ==} peerDependencies: react: ^18 || ^19 @@ -2420,8 +2333,8 @@ packages: '@types/babel__traverse@7.20.5': resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} + '@types/bn.js@5.1.6': + resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -3355,10 +3268,6 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} - commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -5150,8 +5059,8 @@ packages: resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} engines: {node: '>=12.0.0'} - nock@13.5.4: - resolution: {integrity: sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==} + nock@13.5.6: + resolution: {integrity: sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==} engines: {node: '>= 10.13'} node-abort-controller@3.1.1: @@ -5896,13 +5805,26 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sails-js@0.1.8: - resolution: {integrity: sha512-lt1ObG2RZrQrg4J6a0/tyWrU6+GVsMiBwVaQlb5yxkQywJFXLB22YmZJvHs5/n9EGTmM+EXduCC/KUvTXzOFfQ==} + sails-js-parser@0.0.1: + resolution: {integrity: sha512-N1ab0Hl5xdYufDCGP7pB5Zxyvoqjxh8rH8Df3nQTlgIW7y+SH3kYedW7RLmZnDO6KEI8ArtPtXID+MLiQkRh8g==} + peerDependencies: + sails-js-types: 0.0.1 + + sails-js-types@0.0.1: + resolution: {integrity: sha512-pwJVfCtbLFOqcMtBZyb58pE+giww4cAETWr+LBK0euDWuej5SSPiE9s1oOalURkV3cJTJf2PUavZMsWHyKeNLQ==} + + sails-js-util@0.0.1: + resolution: {integrity: sha512-Hyc7WaqpKVpFSr0AnQrKVqyHcwh1HlGvrouGLnaVq0xTTMH8/NgWasP3PuAZ0/W0k0kaK77Nt5J1rwZGlWpx2Q==} + + sails-js@0.3.0: + resolution: {integrity: sha512-GyxWBguS5GTqqfuLDERiMHPVVgt5cKNKy2HLQYrbXPUwkCRkfQ03sHptIt+uSyBNoYnzXkXqcGXmvW1GyEal+w==} hasBin: true peerDependencies: - '@gear-js/api': ^0.38.1 - '@polkadot/api': ^11.0.1 - '@polkadot/types': ^11.0.1 + '@gear-js/api': 0.38.3 + '@polkadot/api': 13.2.1 + '@polkadot/types': 13.2.1 + sails-js-types: 0.0.1 + sails-js-util: 0.0.1 sass@1.77.8: resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} @@ -6032,12 +5954,12 @@ packages: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} - smoldot@2.0.22: - resolution: {integrity: sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==} - smoldot@2.0.26: resolution: {integrity: sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig==} + smoldot@2.0.34: + resolution: {integrity: sha512-mw9tCbGEhEp0koMqLL0jBEixVY1MIN/xI3pE6ZY1TuOPU+LnYy8FloODVyzkvzQPaBYrETXJdRlmA/+k6g3gow==} + snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -6356,6 +6278,9 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tty-browserify@0.0.1: resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} @@ -6881,6 +6806,18 @@ packages: utf-8-validate: optional: true + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xmlhttprequest-ssl@2.0.0: resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} engines: {node: '>=0.4.0'} @@ -8237,29 +8174,31 @@ snapshots: ethereum-cryptography: 2.1.3 micro-ftch: 0.3.1 - '@gear-js/api@0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1)': + '@gear-js/api@0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1)': dependencies: - '@polkadot/api': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/api': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/wasm-crypto': 7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))) rxjs: 7.8.1 - '@gear-js/react-hooks@0.12.2(@gear-js/api@0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1))(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@tanstack/react-query@5.52.1(react@18.3.1))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sails-js@0.1.8(@gear-js/api@0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1))(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@11.0.2))(utf-8-validate@5.0.10)': + '@gear-js/react-hooks@0.14.0(@gear-js/api@0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1))(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@tanstack/react-query@5.61.5(react@18.3.1))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sails-js-types@0.0.1)(sails-js@0.3.0(@gear-js/api@0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1))(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@14.3.1)(sails-js-types@0.0.1)(sails-js-util@0.0.1))(utf-8-validate@5.0.10)': dependencies: - '@gear-js/api': 0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1) - '@polkadot/api': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/api-derive': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/extension-inject': 0.51.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/util@12.6.2)(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/util': 12.6.2 - '@substrate/connect': 0.8.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@tanstack/react-query': 5.52.1(react@18.3.1) + '@gear-js/api': 0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1) + '@polkadot/api': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/api-derive': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/extension-inject': 0.56.2(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/util@13.2.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/util': 13.2.3 + '@substrate/connect': 2.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@tanstack/react-query': 5.61.5(react@18.3.1) bignumber.js: 9.1.2 nanoid: 5.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - sails-js: 0.1.8(@gear-js/api@0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1))(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@11.0.2) + sails-js: 0.3.0(@gear-js/api@0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1))(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@14.3.1)(sails-js-types@0.0.1)(sails-js-util@0.0.1) + sails-js-parser: 0.0.1(sails-js-types@0.0.1) transitivePeerDependencies: - bufferutil + - sails-js-types - supports-color - utf-8-validate @@ -9140,17 +9079,11 @@ snapshots: tslib: 2.6.2 webcrypto-core: 1.7.9 - '@polkadot-api/json-rpc-provider-proxy@0.0.1': {} - '@polkadot-api/json-rpc-provider-proxy@0.1.0': optional: true - '@polkadot-api/json-rpc-provider@0.0.1': {} - - '@polkadot-api/metadata-builders@0.0.1': - dependencies: - '@polkadot-api/substrate-bindings': 0.0.1 - '@polkadot-api/utils': 0.0.1 + '@polkadot-api/json-rpc-provider@0.0.1': + optional: true '@polkadot-api/metadata-builders@0.3.2': dependencies: @@ -9158,14 +9091,6 @@ snapshots: '@polkadot-api/utils': 0.1.0 optional: true - '@polkadot-api/observable-client@0.1.0(rxjs@7.8.1)': - dependencies: - '@polkadot-api/metadata-builders': 0.0.1 - '@polkadot-api/substrate-bindings': 0.0.1 - '@polkadot-api/substrate-client': 0.0.1 - '@polkadot-api/utils': 0.0.1 - rxjs: 7.8.1 - '@polkadot-api/observable-client@0.3.2(@polkadot-api/substrate-client@0.1.4)(rxjs@7.8.1)': dependencies: '@polkadot-api/metadata-builders': 0.3.2 @@ -9175,13 +9100,6 @@ snapshots: rxjs: 7.8.1 optional: true - '@polkadot-api/substrate-bindings@0.0.1': - dependencies: - '@noble/hashes': 1.4.0 - '@polkadot-api/utils': 0.0.1 - '@scure/base': 1.1.6 - scale-ts: 1.6.0 - '@polkadot-api/substrate-bindings@0.6.0': dependencies: '@noble/hashes': 1.4.0 @@ -9190,137 +9108,115 @@ snapshots: scale-ts: 1.6.0 optional: true - '@polkadot-api/substrate-client@0.0.1': {} - '@polkadot-api/substrate-client@0.1.4': dependencies: '@polkadot-api/json-rpc-provider': 0.0.1 '@polkadot-api/utils': 0.1.0 optional: true - '@polkadot-api/utils@0.0.1': {} - '@polkadot-api/utils@0.1.0': optional: true - '@polkadot/api-augment@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@polkadot/api-augment@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@polkadot/api-base': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/rpc-augment': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/types': 11.0.2 - '@polkadot/types-augment': 11.0.2 - '@polkadot/types-codec': 11.0.2 - '@polkadot/util': 12.6.2 - tslib: 2.6.2 + '@polkadot/api-base': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/rpc-augment': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/types': 14.3.1 + '@polkadot/types-augment': 14.3.1 + '@polkadot/types-codec': 14.3.1 + '@polkadot/util': 13.2.3 + tslib: 2.8.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@polkadot/api-base@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@polkadot/api-base@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@polkadot/rpc-core': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/types': 11.0.2 - '@polkadot/util': 12.6.2 + '@polkadot/rpc-core': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/types': 14.3.1 + '@polkadot/util': 13.2.3 rxjs: 7.8.1 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@polkadot/api-derive@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@polkadot/api-derive@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@polkadot/api': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/api-augment': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/api-base': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/rpc-core': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/types': 11.0.2 - '@polkadot/types-codec': 11.0.2 - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/api': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/api-augment': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/api-base': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/rpc-core': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/types': 14.3.1 + '@polkadot/types-codec': 14.3.1 + '@polkadot/util': 13.2.3 + '@polkadot/util-crypto': 13.2.3(@polkadot/util@13.2.3) rxjs: 7.8.1 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@polkadot/api-augment': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/api-base': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/api-derive': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) - '@polkadot/rpc-augment': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/rpc-core': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/rpc-provider': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/types': 11.0.2 - '@polkadot/types-augment': 11.0.2 - '@polkadot/types-codec': 11.0.2 - '@polkadot/types-create': 11.0.2 - '@polkadot/types-known': 11.0.2 - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@polkadot/api-augment': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/api-base': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/api-derive': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/keyring': 13.2.3(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3) + '@polkadot/rpc-augment': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/rpc-core': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/rpc-provider': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/types': 14.3.1 + '@polkadot/types-augment': 14.3.1 + '@polkadot/types-codec': 14.3.1 + '@polkadot/types-create': 14.3.1 + '@polkadot/types-known': 14.3.1 + '@polkadot/util': 13.2.3 + '@polkadot/util-crypto': 13.2.3(@polkadot/util@13.2.3) eventemitter3: 5.0.1 rxjs: 7.8.1 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@polkadot/extension-inject@0.51.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/util@12.6.2)(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@polkadot/extension-inject@0.56.2(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/util@13.2.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@polkadot/api': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/rpc-provider': 12.4.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/types': 12.4.2 - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 13.0.2(@polkadot/util@12.6.2) - '@polkadot/x-global': 13.0.2 - tslib: 2.6.2 + '@polkadot/api': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/rpc-provider': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/types': 14.3.1 + '@polkadot/util': 13.2.3 + '@polkadot/util-crypto': 13.2.3(@polkadot/util@13.2.3) + '@polkadot/x-global': 13.2.3 + tslib: 2.8.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@polkadot/keyring@12.6.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': + '@polkadot/keyring@13.2.3(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3)': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + '@polkadot/util-crypto': 13.2.3(@polkadot/util@13.2.3) + tslib: 2.8.1 - '@polkadot/keyring@13.0.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': + '@polkadot/networks@13.2.3': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) - tslib: 2.7.0 - - '@polkadot/keyring@13.0.2(@polkadot/util-crypto@13.0.2(@polkadot/util@13.0.2))(@polkadot/util@13.0.2)': - dependencies: - '@polkadot/util': 13.0.2 - '@polkadot/util-crypto': 13.0.2(@polkadot/util@13.0.2) - tslib: 2.7.0 - - '@polkadot/networks@12.6.2': - dependencies: - '@polkadot/util': 12.6.2 - '@substrate/ss58-registry': 1.47.0 - tslib: 2.6.2 - - '@polkadot/networks@13.0.2': - dependencies: - '@polkadot/util': 13.0.2 - '@substrate/ss58-registry': 1.47.0 - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + '@substrate/ss58-registry': 1.51.0 + tslib: 2.8.1 - '@polkadot/react-identicon@3.9.1(@polkadot/keyring@13.0.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/networks@13.0.2)(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)': + '@polkadot/react-identicon@3.11.3(@polkadot/keyring@13.2.3(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3))(@polkadot/networks@13.2.3)(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)': dependencies: - '@polkadot/keyring': 13.0.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) - '@polkadot/ui-settings': 3.9.1(@polkadot/networks@13.0.2)(@polkadot/util@12.6.2) - '@polkadot/ui-shared': 3.9.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/keyring': 13.2.3(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3) + '@polkadot/ui-settings': 3.11.3(@polkadot/networks@13.2.3)(@polkadot/util@13.2.3) + '@polkadot/ui-shared': 3.11.3(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3) + '@polkadot/util': 13.2.3 + '@polkadot/util-crypto': 13.2.3(@polkadot/util@13.2.3) ethereum-blockies-base64: 1.0.2 jdenticon: 3.2.0 react: 18.3.1 @@ -9328,70 +9224,49 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-is: 18.2.0 styled-components: 6.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - '@polkadot/networks' - '@polkadot/rpc-augment@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@polkadot/rpc-augment@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@polkadot/rpc-core': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/types': 11.0.2 - '@polkadot/types-codec': 11.0.2 - '@polkadot/util': 12.6.2 - tslib: 2.6.2 + '@polkadot/rpc-core': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/types': 14.3.1 + '@polkadot/types-codec': 14.3.1 + '@polkadot/util': 13.2.3 + tslib: 2.8.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@polkadot/rpc-core@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@polkadot/rpc-core@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@polkadot/rpc-augment': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/rpc-provider': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/types': 11.0.2 - '@polkadot/util': 12.6.2 + '@polkadot/rpc-augment': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/rpc-provider': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/types': 14.3.1 + '@polkadot/util': 13.2.3 rxjs: 7.8.1 - tslib: 2.6.2 + tslib: 2.8.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@polkadot/rpc-provider@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@polkadot/rpc-provider@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) - '@polkadot/types': 11.0.2 - '@polkadot/types-support': 11.0.2 - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) - '@polkadot/x-fetch': 12.6.2 - '@polkadot/x-global': 12.6.2 - '@polkadot/x-ws': 12.6.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/keyring': 13.2.3(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3) + '@polkadot/types': 14.3.1 + '@polkadot/types-support': 14.3.1 + '@polkadot/util': 13.2.3 + '@polkadot/util-crypto': 13.2.3(@polkadot/util@13.2.3) + '@polkadot/x-fetch': 13.2.3 + '@polkadot/x-global': 13.2.3 + '@polkadot/x-ws': 13.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) eventemitter3: 5.0.1 mock-socket: 9.3.1 - nock: 13.5.4 - tslib: 2.6.2 - optionalDependencies: - '@substrate/connect': 0.8.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - '@polkadot/rpc-provider@12.4.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@polkadot/keyring': 13.0.2(@polkadot/util-crypto@13.0.2(@polkadot/util@13.0.2))(@polkadot/util@13.0.2) - '@polkadot/types': 12.4.2 - '@polkadot/types-support': 12.4.2 - '@polkadot/util': 13.0.2 - '@polkadot/util-crypto': 13.0.2(@polkadot/util@13.0.2) - '@polkadot/x-fetch': 13.0.2 - '@polkadot/x-global': 13.0.2 - '@polkadot/x-ws': 13.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - eventemitter3: 5.0.1 - mock-socket: 9.3.1 - nock: 13.5.4 - tslib: 2.7.0 + nock: 13.5.6 + tslib: 2.8.1 optionalDependencies: '@substrate/connect': 0.8.11(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -9399,360 +9274,169 @@ snapshots: - supports-color - utf-8-validate - '@polkadot/types-augment@11.0.2': - dependencies: - '@polkadot/types': 11.0.2 - '@polkadot/types-codec': 11.0.2 - '@polkadot/util': 12.6.2 - tslib: 2.6.2 - - '@polkadot/types-augment@12.4.2': + '@polkadot/types-augment@14.3.1': dependencies: - '@polkadot/types': 12.4.2 - '@polkadot/types-codec': 12.4.2 - '@polkadot/util': 13.0.2 - tslib: 2.7.0 + '@polkadot/types': 14.3.1 + '@polkadot/types-codec': 14.3.1 + '@polkadot/util': 13.2.3 + tslib: 2.8.1 - '@polkadot/types-codec@11.0.2': + '@polkadot/types-codec@14.3.1': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/x-bigint': 12.6.2 - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + '@polkadot/x-bigint': 13.2.3 + tslib: 2.8.1 - '@polkadot/types-codec@12.4.2': + '@polkadot/types-create@14.3.1': dependencies: - '@polkadot/util': 13.0.2 - '@polkadot/x-bigint': 13.0.2 - tslib: 2.7.0 + '@polkadot/types-codec': 14.3.1 + '@polkadot/util': 13.2.3 + tslib: 2.8.1 - '@polkadot/types-create@11.0.2': + '@polkadot/types-known@14.3.1': dependencies: - '@polkadot/types-codec': 11.0.2 - '@polkadot/util': 12.6.2 - tslib: 2.6.2 + '@polkadot/networks': 13.2.3 + '@polkadot/types': 14.3.1 + '@polkadot/types-codec': 14.3.1 + '@polkadot/types-create': 14.3.1 + '@polkadot/util': 13.2.3 + tslib: 2.8.1 - '@polkadot/types-create@12.4.2': + '@polkadot/types-support@14.3.1': dependencies: - '@polkadot/types-codec': 12.4.2 - '@polkadot/util': 13.0.2 - tslib: 2.7.0 - - '@polkadot/types-known@11.0.2': - dependencies: - '@polkadot/networks': 12.6.2 - '@polkadot/types': 11.0.2 - '@polkadot/types-codec': 11.0.2 - '@polkadot/types-create': 11.0.2 - '@polkadot/util': 12.6.2 - tslib: 2.6.2 - - '@polkadot/types-support@11.0.2': - dependencies: - '@polkadot/util': 12.6.2 - tslib: 2.6.2 - - '@polkadot/types-support@12.4.2': - dependencies: - '@polkadot/util': 13.0.2 - tslib: 2.7.0 - - '@polkadot/types@11.0.2': - dependencies: - '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) - '@polkadot/types-augment': 11.0.2 - '@polkadot/types-codec': 11.0.2 - '@polkadot/types-create': 11.0.2 - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) - rxjs: 7.8.1 - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + tslib: 2.8.1 - '@polkadot/types@12.4.2': + '@polkadot/types@14.3.1': dependencies: - '@polkadot/keyring': 13.0.2(@polkadot/util-crypto@13.0.2(@polkadot/util@13.0.2))(@polkadot/util@13.0.2) - '@polkadot/types-augment': 12.4.2 - '@polkadot/types-codec': 12.4.2 - '@polkadot/types-create': 12.4.2 - '@polkadot/util': 13.0.2 - '@polkadot/util-crypto': 13.0.2(@polkadot/util@13.0.2) + '@polkadot/keyring': 13.2.3(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3) + '@polkadot/types-augment': 14.3.1 + '@polkadot/types-codec': 14.3.1 + '@polkadot/types-create': 14.3.1 + '@polkadot/util': 13.2.3 + '@polkadot/util-crypto': 13.2.3(@polkadot/util@13.2.3) rxjs: 7.8.1 - tslib: 2.7.0 + tslib: 2.8.1 - '@polkadot/ui-settings@3.9.1(@polkadot/networks@13.0.2)(@polkadot/util@12.6.2)': + '@polkadot/ui-settings@3.11.3(@polkadot/networks@13.2.3)(@polkadot/util@13.2.3)': dependencies: - '@polkadot/networks': 13.0.2 - '@polkadot/util': 12.6.2 + '@polkadot/networks': 13.2.3 + '@polkadot/util': 13.2.3 eventemitter3: 5.0.1 store: 2.0.12 - tslib: 2.6.2 + tslib: 2.8.1 - '@polkadot/ui-shared@3.9.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': + '@polkadot/ui-shared@3.11.3(@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3))(@polkadot/util@13.2.3)': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/util': 13.2.3 + '@polkadot/util-crypto': 13.2.3(@polkadot/util@13.2.3) colord: 2.9.3 - tslib: 2.6.2 - - '@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2)': - dependencies: - '@noble/curves': 1.5.0 - '@noble/hashes': 1.4.0 - '@polkadot/networks': 12.6.2 - '@polkadot/util': 12.6.2 - '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-bigint': 12.6.2 - '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) - '@scure/base': 1.1.6 - tslib: 2.6.2 + tslib: 2.8.1 - '@polkadot/util-crypto@13.0.2(@polkadot/util@12.6.2)': + '@polkadot/util-crypto@13.2.3(@polkadot/util@13.2.3)': dependencies: '@noble/curves': 1.5.0 '@noble/hashes': 1.4.0 - '@polkadot/networks': 13.0.2 - '@polkadot/util': 12.6.2 - '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-bigint': 13.0.2 - '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) - '@scure/base': 1.1.6 - tslib: 2.6.2 - - '@polkadot/util-crypto@13.0.2(@polkadot/util@13.0.2)': - dependencies: - '@noble/curves': 1.5.0 - '@noble/hashes': 1.4.0 - '@polkadot/networks': 13.0.2 - '@polkadot/util': 13.0.2 - '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2))) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.0.2) - '@polkadot/x-bigint': 13.0.2 - '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)) - '@scure/base': 1.1.6 - tslib: 2.6.2 - - '@polkadot/util@12.6.2': - dependencies: - '@polkadot/x-bigint': 12.6.2 - '@polkadot/x-global': 12.6.2 - '@polkadot/x-textdecoder': 12.6.2 - '@polkadot/x-textencoder': 12.6.2 - '@types/bn.js': 5.1.5 + '@polkadot/networks': 13.2.3 + '@polkadot/util': 13.2.3 + '@polkadot/wasm-crypto': 7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))) + '@polkadot/wasm-util': 7.4.1(@polkadot/util@13.2.3) + '@polkadot/x-bigint': 13.2.3 + '@polkadot/x-randomvalues': 13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3)) + '@scure/base': 1.2.1 + tslib: 2.8.1 + + '@polkadot/util@13.2.3': + dependencies: + '@polkadot/x-bigint': 13.2.3 + '@polkadot/x-global': 13.2.3 + '@polkadot/x-textdecoder': 13.2.3 + '@polkadot/x-textencoder': 13.2.3 + '@types/bn.js': 5.1.6 bn.js: 5.2.1 - tslib: 2.6.2 + tslib: 2.8.1 - '@polkadot/util@13.0.2': + '@polkadot/wasm-bridge@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3)))': dependencies: - '@polkadot/x-bigint': 13.0.2 - '@polkadot/x-global': 13.0.2 - '@polkadot/x-textdecoder': 13.0.2 - '@polkadot/x-textencoder': 13.0.2 - '@types/bn.js': 5.1.5 - bn.js: 5.2.1 - tslib: 2.7.0 + '@polkadot/util': 13.2.3 + '@polkadot/wasm-util': 7.4.1(@polkadot/util@13.2.3) + '@polkadot/x-randomvalues': 13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3)) + tslib: 2.8.1 - '@polkadot/wasm-bridge@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + '@polkadot/wasm-crypto-asmjs@7.4.1(@polkadot/util@13.2.3)': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + tslib: 2.8.1 - '@polkadot/wasm-bridge@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + '@polkadot/wasm-crypto-init@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3)))': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + '@polkadot/wasm-bridge': 7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))) + '@polkadot/wasm-crypto-asmjs': 7.4.1(@polkadot/util@13.2.3) + '@polkadot/wasm-crypto-wasm': 7.4.1(@polkadot/util@13.2.3) + '@polkadot/wasm-util': 7.4.1(@polkadot/util@13.2.3) + '@polkadot/x-randomvalues': 13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3)) + tslib: 2.8.1 - '@polkadot/wasm-bridge@7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)))': + '@polkadot/wasm-crypto-wasm@7.4.1(@polkadot/util@13.2.3)': dependencies: - '@polkadot/util': 13.0.2 - '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.0.2) - '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)) - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + '@polkadot/wasm-util': 7.4.1(@polkadot/util@13.2.3) + tslib: 2.8.1 - '@polkadot/wasm-crypto-asmjs@7.3.2(@polkadot/util@12.6.2)': + '@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3)))': dependencies: - '@polkadot/util': 12.6.2 - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + '@polkadot/wasm-bridge': 7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))) + '@polkadot/wasm-crypto-asmjs': 7.4.1(@polkadot/util@13.2.3) + '@polkadot/wasm-crypto-init': 7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))) + '@polkadot/wasm-crypto-wasm': 7.4.1(@polkadot/util@13.2.3) + '@polkadot/wasm-util': 7.4.1(@polkadot/util@13.2.3) + '@polkadot/x-randomvalues': 13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3)) + tslib: 2.8.1 - '@polkadot/wasm-crypto-asmjs@7.3.2(@polkadot/util@13.0.2)': + '@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3)': dependencies: - '@polkadot/util': 13.0.2 - tslib: 2.6.2 - - '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': - dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) - '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + tslib: 2.8.1 - '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + '@polkadot/x-bigint@13.2.3': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) - '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) - tslib: 2.6.2 - - '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)))': - dependencies: - '@polkadot/util': 13.0.2 - '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2))) - '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.0.2) - '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.0.2) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.0.2) - '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)) - tslib: 2.6.2 + '@polkadot/x-global': 13.2.3 + tslib: 2.8.1 - '@polkadot/wasm-crypto-wasm@7.3.2(@polkadot/util@12.6.2)': + '@polkadot/x-fetch@13.2.3': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - tslib: 2.6.2 - - '@polkadot/wasm-crypto-wasm@7.3.2(@polkadot/util@13.0.2)': - dependencies: - '@polkadot/util': 13.0.2 - '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.0.2) - tslib: 2.6.2 - - '@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': - dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) - '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) - '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) - tslib: 2.6.2 - - '@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': - dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) - '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) - '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) - tslib: 2.6.2 - - '@polkadot/wasm-crypto@7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)))': - dependencies: - '@polkadot/util': 13.0.2 - '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2))) - '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.0.2) - '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2))) - '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.0.2) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.0.2) - '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)) - tslib: 2.6.2 - - '@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)': - dependencies: - '@polkadot/util': 12.6.2 - tslib: 2.6.2 - - '@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)': - dependencies: - '@polkadot/util': 13.0.2 - tslib: 2.6.2 - - '@polkadot/x-bigint@12.6.2': - dependencies: - '@polkadot/x-global': 12.6.2 - tslib: 2.6.2 - - '@polkadot/x-bigint@13.0.2': - dependencies: - '@polkadot/x-global': 13.0.2 - tslib: 2.6.2 - - '@polkadot/x-fetch@12.6.2': - dependencies: - '@polkadot/x-global': 12.6.2 + '@polkadot/x-global': 13.2.3 node-fetch: 3.3.2 - tslib: 2.6.2 + tslib: 2.8.1 - '@polkadot/x-fetch@13.0.2': + '@polkadot/x-global@13.2.3': dependencies: - '@polkadot/x-global': 13.0.2 - node-fetch: 3.3.2 - tslib: 2.7.0 + tslib: 2.8.1 - '@polkadot/x-global@12.6.2': + '@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))': dependencies: - tslib: 2.6.2 + '@polkadot/util': 13.2.3 + '@polkadot/wasm-util': 7.4.1(@polkadot/util@13.2.3) + '@polkadot/x-global': 13.2.3 + tslib: 2.8.1 - '@polkadot/x-global@13.0.2': + '@polkadot/x-textdecoder@13.2.3': dependencies: - tslib: 2.6.2 + '@polkadot/x-global': 13.2.3 + tslib: 2.8.1 - '@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))': + '@polkadot/x-textencoder@13.2.3': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-global': 12.6.2 - tslib: 2.6.2 + '@polkadot/x-global': 13.2.3 + tslib: 2.8.1 - '@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))': + '@polkadot/x-ws@13.2.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-global': 13.0.2 - tslib: 2.6.2 - - '@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2))': - dependencies: - '@polkadot/util': 13.0.2 - '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.0.2) - '@polkadot/x-global': 13.0.2 - tslib: 2.6.2 - - '@polkadot/x-textdecoder@12.6.2': - dependencies: - '@polkadot/x-global': 12.6.2 - tslib: 2.6.2 - - '@polkadot/x-textdecoder@13.0.2': - dependencies: - '@polkadot/x-global': 13.0.2 - tslib: 2.7.0 - - '@polkadot/x-textencoder@12.6.2': - dependencies: - '@polkadot/x-global': 12.6.2 - tslib: 2.6.2 - - '@polkadot/x-textencoder@13.0.2': - dependencies: - '@polkadot/x-global': 13.0.2 - tslib: 2.7.0 - - '@polkadot/x-ws@12.6.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@polkadot/x-global': 12.6.2 - tslib: 2.6.2 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - '@polkadot/x-ws@13.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@polkadot/x-global': 13.0.2 - tslib: 2.7.0 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/x-global': 13.2.3 + tslib: 2.8.1 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -10130,6 +9814,8 @@ snapshots: '@scure/base@1.1.6': {} + '@scure/base@1.2.1': {} + '@scure/bip32@1.3.3': dependencies: '@noble/curves': 1.3.0 @@ -10252,22 +9938,15 @@ snapshots: '@stablelib/random': 1.0.2 '@stablelib/wipe': 1.0.1 - '@substrate/connect-extension-protocol@2.0.0': {} + '@substrate/connect-extension-protocol@2.0.0': + optional: true - '@substrate/connect-known-chains@1.1.4': {} + '@substrate/connect-extension-protocol@2.2.1': {} '@substrate/connect-known-chains@1.3.0': optional: true - '@substrate/connect@0.8.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@substrate/connect-extension-protocol': 2.0.0 - '@substrate/connect-known-chains': 1.1.4 - '@substrate/light-client-extension-helpers': 0.0.6(smoldot@2.0.22(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - smoldot: 2.0.22(bufferutil@4.0.8)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - utf-8-validate + '@substrate/connect-known-chains@1.8.0': {} '@substrate/connect@0.8.11(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: @@ -10280,16 +9959,17 @@ snapshots: - utf-8-validate optional: true - '@substrate/light-client-extension-helpers@0.0.6(smoldot@2.0.22(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@substrate/connect@2.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@polkadot-api/json-rpc-provider': 0.0.1 - '@polkadot-api/json-rpc-provider-proxy': 0.0.1 - '@polkadot-api/observable-client': 0.1.0(rxjs@7.8.1) - '@polkadot-api/substrate-client': 0.0.1 - '@substrate/connect-extension-protocol': 2.0.0 - '@substrate/connect-known-chains': 1.1.4 - rxjs: 7.8.1 - smoldot: 2.0.22(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@substrate/connect-extension-protocol': 2.2.1 + '@substrate/connect-known-chains': 1.8.0 + '@substrate/smoldot-discovery': 2.0.1 + smoldot: 2.0.34(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@substrate/discovery@0.2.1': {} '@substrate/light-client-extension-helpers@1.0.0(smoldot@2.0.26(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: @@ -10303,7 +9983,11 @@ snapshots: smoldot: 2.0.26(bufferutil@4.0.8)(utf-8-validate@5.0.10) optional: true - '@substrate/ss58-registry@1.47.0': {} + '@substrate/smoldot-discovery@2.0.1': + dependencies: + '@substrate/discovery': 0.2.1 + + '@substrate/ss58-registry@1.51.0': {} '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.4)': dependencies: @@ -10375,11 +10059,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/query-core@5.52.0': {} + '@tanstack/query-core@5.52.0': + optional: true - '@tanstack/react-query@5.52.1(react@18.3.1)': + '@tanstack/query-core@5.61.5': {} + + '@tanstack/react-query@5.61.5(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.52.0 + '@tanstack/query-core': 5.61.5 react: 18.3.1 '@types/babel__core@7.20.5': @@ -10403,7 +10090,7 @@ snapshots: dependencies: '@babel/types': 7.24.0 - '@types/bn.js@5.1.5': + '@types/bn.js@5.1.6': dependencies: '@types/node': 20.12.7 @@ -11195,7 +10882,7 @@ snapshots: lit: 3.1.0 qrcode: 1.5.3 - ? '@web3modal/wagmi@5.1.3(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/connectors@5.1.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(vue@3.4.3(typescript@5.5.4))(wagmi@2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))' + ? '@web3modal/wagmi@5.1.3(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/connectors@5.1.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(vue@3.4.3(typescript@5.5.4))(wagmi@2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.61.5(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))' : dependencies: '@wagmi/connectors': 5.1.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) '@wagmi/core': 2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)) @@ -11208,7 +10895,7 @@ snapshots: '@web3modal/siwe': 5.1.3(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(react@18.3.1) '@web3modal/wallet': 5.1.3 viem: 2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8) - wagmi: 2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + wagmi: 2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.61.5(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11561,7 +11248,7 @@ snapshots: ast-types@0.15.2: dependencies: - tslib: 2.7.0 + tslib: 2.8.1 astral-regex@1.0.0: {} @@ -11571,7 +11258,7 @@ snapshots: async-mutex@0.2.6: dependencies: - tslib: 2.7.0 + tslib: 2.8.1 atomic-sleep@1.0.0: {} @@ -12006,8 +11693,6 @@ snapshots: commander@10.0.1: {} - commander@12.1.0: {} - commander@2.20.3: {} commander@8.3.0: {} @@ -14165,7 +13850,7 @@ snapshots: nocache@3.0.4: {} - nock@13.5.4: + nock@13.5.6: dependencies: debug: 4.3.4 json-stringify-safe: 5.0.1 @@ -14554,7 +14239,7 @@ snapshots: postcss@8.4.31: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 postcss@8.4.41: @@ -14838,7 +14523,7 @@ snapshots: ast-types: 0.15.2 esprima: 4.0.1 source-map: 0.6.1 - tslib: 2.7.0 + tslib: 2.8.1 rechoir@0.8.0: dependencies: @@ -15016,12 +14701,21 @@ snapshots: safer-buffer@2.1.2: {} - sails-js@0.1.8(@gear-js/api@0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1))(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@11.0.2): + sails-js-parser@0.0.1(sails-js-types@0.0.1): dependencies: - '@gear-js/api': 0.38.1(@polkadot/api@11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))))(rxjs@7.8.1) - '@polkadot/api': 11.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@polkadot/types': 11.0.2 - commander: 12.1.0 + sails-js-types: 0.0.1 + + sails-js-types@0.0.1: {} + + sails-js-util@0.0.1: {} + + sails-js@0.3.0(@gear-js/api@0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1))(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/types@14.3.1)(sails-js-types@0.0.1)(sails-js-util@0.0.1): + dependencies: + '@gear-js/api': 0.39.0(@polkadot/api@14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@polkadot/wasm-crypto@7.4.1(@polkadot/util@13.2.3)(@polkadot/x-randomvalues@13.2.3(@polkadot/util@13.2.3)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.2.3))))(rxjs@7.8.1) + '@polkadot/api': 14.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@polkadot/types': 14.3.1 + sails-js-types: 0.0.1 + sails-js-util: 0.0.1 sass@1.77.8: dependencies: @@ -15029,7 +14723,8 @@ snapshots: immutable: 4.3.5 source-map-js: 1.2.0 - scale-ts@1.6.0: {} + scale-ts@1.6.0: + optional: true scheduler@0.23.2: dependencies: @@ -15176,20 +14871,20 @@ snapshots: astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 - smoldot@2.0.22(bufferutil@4.0.8)(utf-8-validate@5.0.10): + smoldot@2.0.26(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate + optional: true - smoldot@2.0.26(bufferutil@4.0.8)(utf-8-validate@5.0.10): + smoldot@2.0.34(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate - optional: true snake-case@3.0.4: dependencies: @@ -15502,6 +15197,8 @@ snapshots: tslib@2.7.0: {} + tslib@2.8.1: {} + tty-browserify@0.0.1: {} type-check@0.4.0: @@ -15808,9 +15505,9 @@ snapshots: typescript: 5.5.4 optional: true - wagmi@2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8): + wagmi@2.12.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.61.5(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8): dependencies: - '@tanstack/react-query': 5.52.1(react@18.3.1) + '@tanstack/react-query': 5.61.5(react@18.3.1) '@wagmi/connectors': 5.1.7(@react-native-async-storage/async-storage@1.23.1(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)))(@types/react@18.3.4)(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4(@babel/core@7.24.4))(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) '@wagmi/core': 2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.4)(viem@2.19.6(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.23.8)) react: 18.3.1 @@ -16048,6 +15745,11 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 5.0.10 + ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + xmlhttprequest-ssl@2.0.0: {} xtend@4.0.2: {} diff --git a/frontend/src/consts/sails/extended_vft.ts b/frontend/src/consts/sails/extended-vft.ts similarity index 100% rename from frontend/src/consts/sails/extended_vft.ts rename to frontend/src/consts/sails/extended-vft.ts diff --git a/frontend/src/consts/sails/index.ts b/frontend/src/consts/sails/index.ts index 15cefabd..dc7efab2 100644 --- a/frontend/src/consts/sails/index.ts +++ b/frontend/src/consts/sails/index.ts @@ -1,5 +1,5 @@ import { Program as BridgingPaymentProgram } from './bridging-payment'; -import { Program as VftProgram } from './extended_vft'; +import { Program as VftProgram } from './extended-vft'; import { Program as VftManagerProgram } from './vft-manager'; export { BridgingPaymentProgram, VftManagerProgram, VftProgram }; diff --git a/frontend/src/features/swap/components/swap-form/swap-form.tsx b/frontend/src/features/swap/components/swap-form/swap-form.tsx index 4bc31b84..5ea6a7b3 100644 --- a/frontend/src/features/swap/components/swap-form/swap-form.tsx +++ b/frontend/src/features/swap/components/swap-form/swap-form.tsx @@ -4,9 +4,10 @@ import { FormProvider } from 'react-hook-form'; import { Input } from '@/components'; import GasSVG from '../../assets/gas.svg?react'; -import { FIELD_NAME, NETWORK_INDEX } from '../../consts'; +import { FIELD_NAME, NETWORK_INDEX, WRAPPED_VARA_CONTRACT_ADDRESS } from '../../consts'; import { useSwapForm, useBridge } from '../../hooks'; import { UseHandleSubmit, UseAccountBalance, UseFTBalance, UseFee, UseFTAllowance } from '../../types'; +import { getMergedBalance } from '../../utils'; import { Balance } from '../balance'; import { FTAllowanceTip } from '../ft-allowance-tip'; import { Network } from '../network'; @@ -39,14 +40,23 @@ function SwapForm({ const ToNetwork = isVaraNetwork ? Network.Eth : Network.Vara; const { address, options, symbol, pair, decimals, ...bridge } = useBridge(networkIndex); + const isNativeToken = address === WRAPPED_VARA_CONTRACT_ADDRESS; + const { fee, ...config } = useFee(); const accountBalance = useAccountBalance(); const ftBalance = useFTBalance(address, decimals); const allowance = useFTAllowance(address); - const [{ mutateAsync: onSubmit, ...submit }, approve] = useHandleSubmit(address, fee.value, allowance.data); + + const [{ mutateAsync: onSubmit, ...submit }, approve, mint] = useHandleSubmit( + address, + fee.value, + allowance.data, + ftBalance.value, + ); const { form, amount, onValueChange, onExpectedValueChange, handleSubmit, setMaxBalance } = useSwapForm( isVaraNetwork, + isNativeToken, accountBalance, ftBalance, decimals, @@ -55,16 +65,21 @@ function SwapForm({ onSubmit, ); - const renderFromBalance = () => ( - - ); + const renderFromBalance = () => { + const balance = isNativeToken ? getMergedBalance(accountBalance, ftBalance, decimals) : ftBalance; + + return ( + + ); + }; const getButtonText = () => { + if (mint?.isPending) return 'Minting...'; if (approve.isPending) return 'Approving...'; if (submit.isPending) return 'Swapping...'; diff --git a/frontend/src/features/swap/consts/env.ts b/frontend/src/features/swap/consts/env.ts index f81a68ac..a0f2bda7 100644 --- a/frontend/src/features/swap/consts/env.ts +++ b/frontend/src/features/swap/consts/env.ts @@ -1,6 +1,9 @@ import { HexString } from '@gear-js/api'; +// TODO: read from vft manager once it's state is implemented +const WRAPPED_VARA_CONTRACT_ADDRESS = import.meta.env.VITE_WRAPPED_VARA_CONTRACT_ADDRESS as HexString; + // TODO: can be read from vara bridging payment? const ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS = import.meta.env.VITE_ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS as HexString; -export { ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS }; +export { WRAPPED_VARA_CONTRACT_ADDRESS, ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS }; diff --git a/frontend/src/features/swap/consts/form.ts b/frontend/src/features/swap/consts/form.ts index a8c69e31..83674eac 100644 --- a/frontend/src/features/swap/consts/form.ts +++ b/frontend/src/features/swap/consts/form.ts @@ -20,6 +20,7 @@ const ERROR_MESSAGE = { NO_FT_BALANCE: 'Insufficient token balance', NO_ACCOUNT_BALANCE: 'Insufficient account balance to pay fee', INVALID_ADDRESS: 'Invalid address', + MIN_AMOUNT: 'Amount is less than fee', } as const; const VARA_ADDRESS_SCHEMA = z diff --git a/frontend/src/features/swap/consts/index.ts b/frontend/src/features/swap/consts/index.ts index b658996e..1f76ea29 100644 --- a/frontend/src/features/swap/consts/index.ts +++ b/frontend/src/features/swap/consts/index.ts @@ -1,7 +1,8 @@ import { BRIDGING_PAYMENT_ABI } from './abi'; -import { ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS } from './env'; +import { WRAPPED_VARA_CONTRACT_ADDRESS, ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS } from './env'; import { EVENT_NAME } from './eth'; import { FIELD_NAME, DEFAULT_VALUES, ADDRESS_SCHEMA, ERROR_MESSAGE } from './form'; +import { WrappedVaraProgram } from './sails'; import { SERVICE_NAME, QUERY_NAME } from './vara'; const NETWORK_INDEX = { @@ -10,6 +11,7 @@ const NETWORK_INDEX = { }; export { + WRAPPED_VARA_CONTRACT_ADDRESS, ETH_BRIDGING_PAYMENT_CONTRACT_ADDRESS, BRIDGING_PAYMENT_ABI, FIELD_NAME, @@ -20,4 +22,5 @@ export { NETWORK_INDEX, SERVICE_NAME, QUERY_NAME, + WrappedVaraProgram, }; diff --git a/frontend/src/features/swap/consts/sails/index.ts b/frontend/src/features/swap/consts/sails/index.ts new file mode 100644 index 00000000..4d888f23 --- /dev/null +++ b/frontend/src/features/swap/consts/sails/index.ts @@ -0,0 +1,3 @@ +import { Program as WrappedVaraProgram } from './wrapped-vara'; + +export { WrappedVaraProgram }; diff --git a/frontend/src/features/swap/consts/sails/wrapped-vara.ts b/frontend/src/features/swap/consts/sails/wrapped-vara.ts new file mode 100644 index 00000000..ff26e71d --- /dev/null +++ b/frontend/src/features/swap/consts/sails/wrapped-vara.ts @@ -0,0 +1,322 @@ +/* eslint-disable @typescript-eslint/no-floating-promises */ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { GearApi, decodeAddress } from '@gear-js/api'; +import { TypeRegistry } from '@polkadot/types'; +import { TransactionBuilder, getServiceNamePrefix, getFnNamePrefix, ZERO_ADDRESS, ActorId } from 'sails-js'; + +export class Program { + public readonly registry: TypeRegistry; + public readonly tokenizer: Tokenizer; + public readonly vft: Vft; + + constructor(public api: GearApi, public programId?: `0x${string}`) { + const types: Record = {}; + + this.registry = new TypeRegistry(); + this.registry.setKnownTypes({ types }); + this.registry.register(types); + + this.tokenizer = new Tokenizer(this); + this.vft = new Vft(this); + } + + newCtorFromCode(code: Uint8Array | Buffer, name: string, symbol: string, decimals: number): TransactionBuilder { + const builder = new TransactionBuilder( + this.api, + this.registry, + 'upload_program', + ['New', name, symbol, decimals], + '(String, String, String, u8)', + 'String', + code, + ); + + this.programId = builder.programId; + return builder; + } + + newCtorFromCodeId(codeId: `0x${string}`, name: string, symbol: string, decimals: number) { + const builder = new TransactionBuilder( + this.api, + this.registry, + 'create_program', + ['New', name, symbol, decimals], + '(String, String, String, u8)', + 'String', + codeId, + ); + + this.programId = builder.programId; + return builder; + } +} + +export class Tokenizer { + constructor(private _program: Program) {} + + public burn(value: number | string | bigint): TransactionBuilder { + if (!this._program.programId) throw new Error('Program ID is not set'); + return new TransactionBuilder( + this._program.api, + this._program.registry, + 'send_message', + ['Tokenizer', 'Burn', value], + '(String, String, u128)', + 'u128', + this._program.programId, + ); + } + + public mint(): TransactionBuilder { + if (!this._program.programId) throw new Error('Program ID is not set'); + return new TransactionBuilder( + this._program.api, + this._program.registry, + 'send_message', + ['Tokenizer', 'Mint'], + '(String, String)', + 'u128', + this._program.programId, + ); + } + + public subscribeToMintedEvent( + callback: (data: { to: ActorId; value: number | string | bigint }) => void | Promise, + ): Promise<() => void> { + return this._program.api.gearEvents.subscribeToGearEvent('UserMessageSent', ({ data: { message } }) => { + if (!message.source.eq(this._program.programId) || !message.destination.eq(ZERO_ADDRESS)) { + return; + } + + const payload = message.payload.toHex(); + if (getServiceNamePrefix(payload) === 'Tokenizer' && getFnNamePrefix(payload) === 'Minted') { + callback( + this._program.registry + .createType('(String, String, {"to":"[u8;32]","value":"u128"})', message.payload)[2] + .toJSON() as unknown as { to: ActorId; value: number | string | bigint }, + ); + } + }); + } + + public subscribeToBurnedEvent( + callback: (data: { from: ActorId; value: number | string | bigint }) => void | Promise, + ): Promise<() => void> { + return this._program.api.gearEvents.subscribeToGearEvent('UserMessageSent', ({ data: { message } }) => { + if (!message.source.eq(this._program.programId) || !message.destination.eq(ZERO_ADDRESS)) { + return; + } + + const payload = message.payload.toHex(); + if (getServiceNamePrefix(payload) === 'Tokenizer' && getFnNamePrefix(payload) === 'Burned') { + callback( + this._program.registry + .createType('(String, String, {"from":"[u8;32]","value":"u128"})', message.payload)[2] + .toJSON() as unknown as { from: ActorId; value: number | string | bigint }, + ); + } + }); + } +} + +export class Vft { + constructor(private _program: Program) {} + + public approve(spender: ActorId, value: number | string | bigint): TransactionBuilder { + if (!this._program.programId) throw new Error('Program ID is not set'); + return new TransactionBuilder( + this._program.api, + this._program.registry, + 'send_message', + ['Vft', 'Approve', spender, value], + '(String, String, [u8;32], U256)', + 'bool', + this._program.programId, + ); + } + + public transfer(to: ActorId, value: number | string | bigint): TransactionBuilder { + if (!this._program.programId) throw new Error('Program ID is not set'); + return new TransactionBuilder( + this._program.api, + this._program.registry, + 'send_message', + ['Vft', 'Transfer', to, value], + '(String, String, [u8;32], U256)', + 'bool', + this._program.programId, + ); + } + + public transferFrom(from: ActorId, to: ActorId, value: number | string | bigint): TransactionBuilder { + if (!this._program.programId) throw new Error('Program ID is not set'); + return new TransactionBuilder( + this._program.api, + this._program.registry, + 'send_message', + ['Vft', 'TransferFrom', from, to, value], + '(String, String, [u8;32], [u8;32], U256)', + 'bool', + this._program.programId, + ); + } + + public async allowance( + owner: ActorId, + spender: ActorId, + originAddress?: string, + value?: number | string | bigint, + atBlock?: `0x${string}`, + ): Promise { + const payload = this._program.registry + .createType('(String, String, [u8;32], [u8;32])', ['Vft', 'Allowance', owner, spender]) + .toHex(); + const reply = await this._program.api.message.calculateReply({ + destination: this._program.programId!, + origin: originAddress ? decodeAddress(originAddress) : ZERO_ADDRESS, + payload, + value: value || 0, + gasLimit: this._program.api.blockGasLimit.toBigInt(), + at: atBlock, + }); + if (!reply.code.isSuccess) throw new Error(this._program.registry.createType('String', reply.payload).toString()); + const result = this._program.registry.createType('(String, String, U256)', reply.payload); + return result[2].toBigInt() as unknown as bigint; + } + + public async balanceOf( + account: ActorId, + originAddress?: string, + value?: number | string | bigint, + atBlock?: `0x${string}`, + ): Promise { + const payload = this._program.registry + .createType('(String, String, [u8;32])', ['Vft', 'BalanceOf', account]) + .toHex(); + const reply = await this._program.api.message.calculateReply({ + destination: this._program.programId!, + origin: originAddress ? decodeAddress(originAddress) : ZERO_ADDRESS, + payload, + value: value || 0, + gasLimit: this._program.api.blockGasLimit.toBigInt(), + at: atBlock, + }); + if (!reply.code.isSuccess) throw new Error(this._program.registry.createType('String', reply.payload).toString()); + const result = this._program.registry.createType('(String, String, U256)', reply.payload); + return result[2].toBigInt() as unknown as bigint; + } + + public async decimals( + originAddress?: string, + value?: number | string | bigint, + atBlock?: `0x${string}`, + ): Promise { + const payload = this._program.registry.createType('(String, String)', ['Vft', 'Decimals']).toHex(); + const reply = await this._program.api.message.calculateReply({ + destination: this._program.programId!, + origin: originAddress ? decodeAddress(originAddress) : ZERO_ADDRESS, + payload, + value: value || 0, + gasLimit: this._program.api.blockGasLimit.toBigInt(), + at: atBlock, + }); + if (!reply.code.isSuccess) throw new Error(this._program.registry.createType('String', reply.payload).toString()); + const result = this._program.registry.createType('(String, String, u8)', reply.payload); + return result[2].toNumber() as unknown as number; + } + + public async name( + originAddress?: string, + value?: number | string | bigint, + atBlock?: `0x${string}`, + ): Promise { + const payload = this._program.registry.createType('(String, String)', ['Vft', 'Name']).toHex(); + const reply = await this._program.api.message.calculateReply({ + destination: this._program.programId!, + origin: originAddress ? decodeAddress(originAddress) : ZERO_ADDRESS, + payload, + value: value || 0, + gasLimit: this._program.api.blockGasLimit.toBigInt(), + at: atBlock, + }); + if (!reply.code.isSuccess) throw new Error(this._program.registry.createType('String', reply.payload).toString()); + const result = this._program.registry.createType('(String, String, String)', reply.payload); + return result[2].toString() as unknown as string; + } + + public async symbol( + originAddress?: string, + value?: number | string | bigint, + atBlock?: `0x${string}`, + ): Promise { + const payload = this._program.registry.createType('(String, String)', ['Vft', 'Symbol']).toHex(); + const reply = await this._program.api.message.calculateReply({ + destination: this._program.programId!, + origin: originAddress ? decodeAddress(originAddress) : ZERO_ADDRESS, + payload, + value: value || 0, + gasLimit: this._program.api.blockGasLimit.toBigInt(), + at: atBlock, + }); + if (!reply.code.isSuccess) throw new Error(this._program.registry.createType('String', reply.payload).toString()); + const result = this._program.registry.createType('(String, String, String)', reply.payload); + return result[2].toString() as unknown as string; + } + + public async totalSupply( + originAddress?: string, + value?: number | string | bigint, + atBlock?: `0x${string}`, + ): Promise { + const payload = this._program.registry.createType('(String, String)', ['Vft', 'TotalSupply']).toHex(); + const reply = await this._program.api.message.calculateReply({ + destination: this._program.programId!, + origin: originAddress ? decodeAddress(originAddress) : ZERO_ADDRESS, + payload, + value: value || 0, + gasLimit: this._program.api.blockGasLimit.toBigInt(), + at: atBlock, + }); + if (!reply.code.isSuccess) throw new Error(this._program.registry.createType('String', reply.payload).toString()); + const result = this._program.registry.createType('(String, String, U256)', reply.payload); + return result[2].toBigInt() as unknown as bigint; + } + + public subscribeToApprovalEvent( + callback: (data: { owner: ActorId; spender: ActorId; value: number | string | bigint }) => void | Promise, + ): Promise<() => void> { + return this._program.api.gearEvents.subscribeToGearEvent('UserMessageSent', ({ data: { message } }) => { + if (!message.source.eq(this._program.programId) || !message.destination.eq(ZERO_ADDRESS)) { + return; + } + + const payload = message.payload.toHex(); + if (getServiceNamePrefix(payload) === 'Vft' && getFnNamePrefix(payload) === 'Approval') { + callback( + this._program.registry + .createType('(String, String, {"owner":"[u8;32]","spender":"[u8;32]","value":"U256"})', message.payload)[2] + .toJSON() as unknown as { owner: ActorId; spender: ActorId; value: number | string | bigint }, + ); + } + }); + } + + public subscribeToTransferEvent( + callback: (data: { from: ActorId; to: ActorId; value: number | string | bigint }) => void | Promise, + ): Promise<() => void> { + return this._program.api.gearEvents.subscribeToGearEvent('UserMessageSent', ({ data: { message } }) => { + if (!message.source.eq(this._program.programId) || !message.destination.eq(ZERO_ADDRESS)) { + return; + } + + const payload = message.payload.toHex(); + if (getServiceNamePrefix(payload) === 'Vft' && getFnNamePrefix(payload) === 'Transfer') { + callback( + this._program.registry + .createType('(String, String, {"from":"[u8;32]","to":"[u8;32]","value":"U256"})', message.payload)[2] + .toJSON() as unknown as { from: ActorId; to: ActorId; value: number | string | bigint }, + ); + } + }); + } +} diff --git a/frontend/src/features/swap/hooks/use-swap-form.ts b/frontend/src/features/swap/hooks/use-swap-form.ts index a6cb7dd8..e996afb2 100644 --- a/frontend/src/features/swap/hooks/use-swap-form.ts +++ b/frontend/src/features/swap/hooks/use-swap-form.ts @@ -2,23 +2,26 @@ import { useAlert } from '@gear-js/react-hooks'; import { zodResolver } from '@hookform/resolvers/zod'; import { useEffect } from 'react'; import { useForm } from 'react-hook-form'; +import { formatUnits, parseUnits } from 'viem'; import { BaseError } from 'wagmi'; import { WriteContractErrorType } from 'wagmi/actions'; import { z } from 'zod'; -import { logger } from '@/utils'; +import { isUndefined, logger } from '@/utils'; import { FIELD_NAME, DEFAULT_VALUES, ADDRESS_SCHEMA } from '../consts'; import { FormattedValues } from '../types'; -import { getAmountSchema } from '../utils'; +import { getAmountSchema, getMergedBalance } from '../utils'; type Values = { value: bigint | undefined; formattedValue: string | undefined; + isLoading: boolean; }; function useSwapForm( isVaraNetwork: boolean, + isNativeToken: boolean, accountBalance: Values, ftBalance: Values, decimals: number | undefined, @@ -28,8 +31,8 @@ function useSwapForm( ) { const alert = useAlert(); - const valueSchema = getAmountSchema(accountBalance.value, ftBalance.value, fee, decimals); - const expectedValueSchema = getAmountSchema(accountBalance.value, ftBalance.value, BigInt(0), decimals); + const valueSchema = getAmountSchema(isNativeToken, accountBalance.value, ftBalance.value, fee, decimals); + const expectedValueSchema = getAmountSchema(isNativeToken, accountBalance.value, ftBalance.value, 0n, decimals); const addressSchema = isVaraNetwork ? ADDRESS_SCHEMA.ETH : ADDRESS_SCHEMA.VARA; const schema = z.object({ @@ -50,8 +53,19 @@ function useSwapForm( const setOriginalValue = (value: string) => setValue(FIELD_NAME.VALUE, value, { shouldValidate }); const setExpectedValue = (value: string) => setValue(FIELD_NAME.EXPECTED_VALUE, value, { shouldValidate }); - const onValueChange = (value: string) => setExpectedValue(value); - const onExpectedValueChange = (value: string) => setOriginalValue(value); + const getValueWithFee = (value: string, operator: '+' | '-' = '+') => { + if (isUndefined(fee)) throw new Error('Fee is not defined'); + if (isUndefined(decimals)) throw new Error('Decimals is not defined'); + if (!value) return value; + + const chainValue = parseUnits(value, decimals); + const valueWithFee = operator === '+' ? chainValue + fee : chainValue - fee; + + return valueWithFee < 0 ? '0' : formatUnits(valueWithFee, decimals); + }; + + const onValueChange = (value: string) => setExpectedValue(isNativeToken ? getValueWithFee(value, '-') : value); + const onExpectedValueChange = (value: string) => setOriginalValue(isNativeToken ? getValueWithFee(value) : value); const handleSubmit = form.handleSubmit((values) => { const onSuccess = () => { @@ -75,10 +89,11 @@ function useSwapForm( }, [disabled]); const setMaxBalance = () => { - if (!ftBalance.formattedValue) throw new Error('Balance is not defined'); + const balance = isNativeToken ? getMergedBalance(accountBalance, ftBalance, decimals) : ftBalance; + if (!balance.formattedValue) throw new Error('Balance is not defined'); - setOriginalValue(ftBalance.formattedValue); - onValueChange(ftBalance.formattedValue); + setOriginalValue(balance.formattedValue); + onValueChange(balance.formattedValue); }; return { diff --git a/frontend/src/features/swap/hooks/vara/use-handle-vara-submit.ts b/frontend/src/features/swap/hooks/vara/use-handle-vara-submit.ts index 2df92cb0..3b727cd3 100644 --- a/frontend/src/features/swap/hooks/vara/use-handle-vara-submit.ts +++ b/frontend/src/features/swap/hooks/vara/use-handle-vara-submit.ts @@ -5,23 +5,24 @@ import { useMutation } from '@tanstack/react-query'; import { BRIDGING_PAYMENT_CONTRACT_ADDRESS, BridgingPaymentProgram, VftProgram } from '@/consts'; import { isUndefined } from '@/utils'; +import { WrappedVaraProgram, WRAPPED_VARA_CONTRACT_ADDRESS } from '../../consts'; import { FUNCTION_NAME, SERVICE_NAME } from '../../consts/vara'; import { FormattedValues } from '../../types'; -function useSendBridgingPaymentRequest() { +function useMint() { const { data: program } = useProgram({ - library: BridgingPaymentProgram, - id: BRIDGING_PAYMENT_CONTRACT_ADDRESS, + library: WrappedVaraProgram, + id: WRAPPED_VARA_CONTRACT_ADDRESS, }); return useSendProgramTransaction({ program, - serviceName: SERVICE_NAME.BRIDGING_PAYMENT, - functionName: 'makeRequest', + serviceName: 'tokenizer', + functionName: 'mint', }); } -function useSendVftApprove(ftAddress: HexString | undefined) { +function useApprove(ftAddress: HexString | undefined) { const { data: program } = useProgram({ library: VftProgram, id: ftAddress, @@ -34,13 +35,28 @@ function useSendVftApprove(ftAddress: HexString | undefined) { }); } +function useRequestBridging() { + const { data: program } = useProgram({ + library: BridgingPaymentProgram, + id: BRIDGING_PAYMENT_CONTRACT_ADDRESS, + }); + + return useSendProgramTransaction({ + program, + serviceName: SERVICE_NAME.BRIDGING_PAYMENT, + functionName: 'makeRequest', + }); +} + function useHandleVaraSubmit( ftAddress: HexString | undefined, feeValue: bigint | undefined, allowance: bigint | undefined, + ftBalance: bigint | undefined, ) { - const bridgingPaymentRequest = useSendBridgingPaymentRequest(); - const vftApprove = useSendVftApprove(ftAddress); + const mint = useMint(); + const vftApprove = useApprove(ftAddress); + const bridgingPaymentRequest = useRequestBridging(); const sendBridgingPaymentRequest = (amount: bigint, accountAddress: HexString) => { if (!ftAddress) throw new Error('Fungible token address is not found'); @@ -52,19 +68,24 @@ function useHandleVaraSubmit( }); }; - const onSubmit = async ({ amount, accountAddress }: FormattedValues) => { + const onSubmit = async ({ expectedAmount, accountAddress }: FormattedValues) => { + if (!ftAddress) throw new Error('Fungible token address is not found'); if (isUndefined(feeValue)) throw new Error('Fee is not found'); if (isUndefined(allowance)) throw new Error('Allowance is not found'); + if (isUndefined(ftBalance)) throw new Error('FT balance is not found'); + + if (ftAddress === WRAPPED_VARA_CONTRACT_ADDRESS && expectedAmount > ftBalance) + await mint.sendTransactionAsync({ args: [], value: expectedAmount - ftBalance }); - if (amount > allowance) - await vftApprove.sendTransactionAsync({ args: [BRIDGING_PAYMENT_CONTRACT_ADDRESS, amount] }); + if (expectedAmount > allowance) + await vftApprove.sendTransactionAsync({ args: [BRIDGING_PAYMENT_CONTRACT_ADDRESS, expectedAmount] }); - return sendBridgingPaymentRequest(amount, accountAddress); + return sendBridgingPaymentRequest(expectedAmount, accountAddress); }; const submit = useMutation({ mutationFn: onSubmit }); - return [submit, vftApprove] as const; + return [submit, vftApprove, mint] as const; } export { useHandleVaraSubmit }; diff --git a/frontend/src/features/swap/hooks/vara/use-vara-account-balance.ts b/frontend/src/features/swap/hooks/vara/use-vara-account-balance.ts index aceec1f2..a37ef41b 100644 --- a/frontend/src/features/swap/hooks/vara/use-vara-account-balance.ts +++ b/frontend/src/features/swap/hooks/vara/use-vara-account-balance.ts @@ -5,9 +5,9 @@ function useVaraAccountBalance() { const { account, isAccountReady } = useAccount(); const { getFormattedBalance } = useBalanceFormat(); - const data = useDeriveBalancesAll(account?.address); - const { freeBalance } = data || {}; - const value = freeBalance?.toBigInt(); + const { data } = useDeriveBalancesAll({ address: account?.address, watch: true }); + const { transferable, availableBalance } = data || {}; + const value = (transferable || availableBalance)?.toBigInt(); const formattedValue = value !== undefined ? getFormattedBalance(value).value : undefined; // cuz swap vara form is rendered by default without login and we have to handle empty balance state diff --git a/frontend/src/features/swap/hooks/vara/use-vara-fee.ts b/frontend/src/features/swap/hooks/vara/use-vara-fee.ts index 24783590..2b9b84cf 100644 --- a/frontend/src/features/swap/hooks/vara/use-vara-fee.ts +++ b/frontend/src/features/swap/hooks/vara/use-vara-fee.ts @@ -6,7 +6,7 @@ import { isUndefined } from '@/utils'; import { QUERY_NAME, SERVICE_NAME } from '../../consts'; function useVaraFee() { - const { getFormattedBalance } = useBalanceFormat(); + const { getFormattedBalanceValue } = useBalanceFormat(); const { data: program } = useProgram({ library: BridgingPaymentProgram, @@ -22,7 +22,7 @@ function useVaraFee() { const fee = { value: !isUndefined(config?.fee) ? BigInt(config.fee) : undefined, - formattedValue: !isUndefined(config?.fee) ? getFormattedBalance(config.fee).value : undefined, + formattedValue: !isUndefined(config?.fee) ? getFormattedBalanceValue(config.fee.toString()).toFixed() : undefined, }; const isLoading = isPending; diff --git a/frontend/src/features/swap/types/hooks.ts b/frontend/src/features/swap/types/hooks.ts index 813353c0..419a20d9 100644 --- a/frontend/src/features/swap/types/hooks.ts +++ b/frontend/src/features/swap/types/hooks.ts @@ -27,16 +27,15 @@ type UseHandleSubmit = ( ftAddress: HexString | undefined, feeValue: bigint | undefined, allowance: bigint | undefined, + ftBalance: bigint | undefined, ) => Readonly< [ { mutateAsync: (values: FormattedValues) => Promise; isPending: boolean; }, - { - isPending: boolean; - isLoading?: boolean; - }, + { isPending: boolean; isLoading?: boolean }, + { isPending: boolean }?, ] >; diff --git a/frontend/src/features/swap/utils.ts b/frontend/src/features/swap/utils.ts index d3228dc1..042b284e 100644 --- a/frontend/src/features/swap/utils.ts +++ b/frontend/src/features/swap/utils.ts @@ -1,13 +1,15 @@ import { HexString } from '@gear-js/api'; import { ActorId, H160 } from 'sails-js'; -import { parseUnits } from 'viem'; +import { formatUnits, parseUnits } from 'viem'; import { z } from 'zod'; import { isUndefined } from '@/utils'; import { ERROR_MESSAGE } from './consts'; +import { UseAccountBalance } from './types'; const getAmountSchema = ( + isNativeToken: boolean, accountBalanceValue: bigint | undefined, ftBalanceValue: bigint | undefined, feeValue: bigint | undefined, @@ -16,12 +18,28 @@ const getAmountSchema = ( if (isUndefined(accountBalanceValue) || isUndefined(ftBalanceValue) || isUndefined(feeValue) || isUndefined(decimals)) return z.bigint(); - return z + const schema = z .string() .trim() // TODO: required field check - .transform((value) => parseUnits(value, decimals)) // if fraction is > decimals, value will be rounded - .refine((value) => value <= ftBalanceValue, { message: ERROR_MESSAGE.NO_FT_BALANCE }) - .refine(() => feeValue <= accountBalanceValue, { message: ERROR_MESSAGE.NO_ACCOUNT_BALANCE }); + .transform((value) => parseUnits(value, decimals)); // if fraction is > decimals, value will be rounded + + if (!isNativeToken) + return schema + .refine((value) => value <= ftBalanceValue, { message: ERROR_MESSAGE.NO_FT_BALANCE }) + .refine(() => feeValue <= accountBalanceValue, { message: ERROR_MESSAGE.NO_ACCOUNT_BALANCE }); + + return schema + .refine((value) => value >= feeValue, { message: ERROR_MESSAGE.MIN_AMOUNT }) + .refine( + (value) => { + const expectedValue = value - feeValue; + const isMintRequired = expectedValue > ftBalanceValue; + const valueToMint = isMintRequired ? expectedValue - ftBalanceValue : BigInt(0); + + return valueToMint + feeValue <= accountBalanceValue; + }, + { message: ERROR_MESSAGE.NO_ACCOUNT_BALANCE }, + ); }; const getOptions = ( @@ -49,4 +67,26 @@ const getOptions = ( return { varaOptions, ethOptions }; }; -export { getAmountSchema, getOptions }; +const getMergedBalance = ( + accountBalance: ReturnType, + ftBalance: ReturnType, + decimals: number | undefined, +) => { + const isLoading = accountBalance.isLoading || ftBalance.isLoading; + + if ( + isUndefined(accountBalance.value) || + isUndefined(ftBalance.value) || + isUndefined(decimals) || + !accountBalance.formattedValue || + !ftBalance.formattedValue + ) + return { value: undefined, formattedValue: undefined, isLoading }; + + const value = accountBalance.value + ftBalance.value; + const formattedValue = formatUnits(value, decimals); + + return { value, formattedValue, isLoading }; +}; + +export { getAmountSchema, getOptions, getMergedBalance }; diff --git a/frontend/src/features/wallet/components/index.ts b/frontend/src/features/wallet/components/index.ts index abedb1d1..779c7777 100644 --- a/frontend/src/features/wallet/components/index.ts +++ b/frontend/src/features/wallet/components/index.ts @@ -1,5 +1,4 @@ import { NetworkWalletField } from './network-wallet-field'; import { SwapNetworkButton } from './swap-network-button'; -import { Wallet } from './wallet'; -export { Wallet, NetworkWalletField, SwapNetworkButton }; +export { NetworkWalletField, SwapNetworkButton }; diff --git a/frontend/src/features/wallet/components/wallet/index.ts b/frontend/src/features/wallet/components/wallet/index.ts deleted file mode 100644 index c7f5f475..00000000 --- a/frontend/src/features/wallet/components/wallet/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Wallet } from './wallet'; - -export { Wallet }; diff --git a/frontend/src/features/wallet/components/wallet/wallet.module.scss b/frontend/src/features/wallet/components/wallet/wallet.module.scss deleted file mode 100644 index 534f97b5..00000000 --- a/frontend/src/features/wallet/components/wallet/wallet.module.scss +++ /dev/null @@ -1,30 +0,0 @@ -.wallet { - display: flex; - align-items: center; - gap: 24px; -} - -.balance { - display: flex; - align-items: center; - gap: 10px; - - .text { - display: flex; - align-items: flex-end; - gap: 4px; - } - - .value { - font-size: 16px; - font-weight: 600; - line-height: 100%; - } - - .unit { - font-size: 12px; - font-weight: 300; - color: rgba(0, 0, 0, 0.7); - line-height: 100%; - } -} diff --git a/frontend/src/features/wallet/components/wallet/wallet.tsx b/frontend/src/features/wallet/components/wallet/wallet.tsx deleted file mode 100644 index 93075f9d..00000000 --- a/frontend/src/features/wallet/components/wallet/wallet.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { useAccount, useAccountDeriveBalancesAll, useApi, useBalanceFormat } from '@gear-js/react-hooks'; -import { Button } from '@gear-js/vara-ui'; - -import VaraSVG from '@/assets/vara.svg?react'; -import { useModal } from '@/hooks'; - -import { AccountButton } from '../account-button'; -import { WalletModal } from '../wallet-modal'; - -import styles from './wallet.module.scss'; - -function Wallet() { - const { isApiReady } = useApi(); - const { account, isAccountReady } = useAccount(); - const balances = useAccountDeriveBalancesAll(); - const [isModalOpen, openModal, closeModal] = useModal(); - - const { getFormattedBalance } = useBalanceFormat(); - const balance = isApiReady && balances ? getFormattedBalance(balances.freeBalance) : null; - - return isAccountReady ? ( - <> - {account ? ( -
- {balances && ( - - - - {balance && ( - - {balance.value} - {balance.unit} - - )} - - )} - - -
- ) : ( -