diff --git a/deno.lock b/deno.lock index 8eb2f32c5..6e477851d 100644 --- a/deno.lock +++ b/deno.lock @@ -9,41 +9,32 @@ "jsr:@cliffy/prompt@1.0.0-rc.7": "1.0.0-rc.7", "jsr:@cliffy/table@1.0.0-rc.7": "1.0.0-rc.7", "jsr:@oak/commons@1": "1.0.1", - "jsr:@oak/oak@^17.1.4": "17.1.6", - "jsr:@std/assert@1": "1.0.14", - "jsr:@std/assert@^1.0.12": "1.0.14", - "jsr:@std/assert@~1.0.6": "1.0.14", + "jsr:@oak/oak@^17.1.4": "17.1.5", + "jsr:@std/assert@1": "1.0.13", + "jsr:@std/assert@~1.0.6": "1.0.13", "jsr:@std/bytes@1": "1.0.6", "jsr:@std/cli@^1.0.21": "1.0.22", "jsr:@std/cli@^1.0.22": "1.0.22", - "jsr:@std/collections@^1.1.3": "1.1.3", "jsr:@std/crypto@1": "1.0.5", "jsr:@std/encoding@1": "1.0.10", "jsr:@std/encoding@^1.0.10": "1.0.10", "jsr:@std/encoding@~1.0.5": "1.0.10", "jsr:@std/encoding@~1.0.8": "1.0.10", "jsr:@std/fmt@~1.0.2": "1.0.8", - "jsr:@std/fs@*": "1.0.19", "jsr:@std/http@1": "1.0.20", - "jsr:@std/internal@^1.0.10": "1.0.10", - "jsr:@std/internal@^1.0.9": "1.0.10", "jsr:@std/io@~0.224.9": "0.224.9", "jsr:@std/media-types@1": "1.1.0", - "jsr:@std/path@*": "1.1.2", - "jsr:@std/path@1": "1.1.2", - "jsr:@std/path@^1.1.1": "1.1.2", + "jsr:@std/path@1": "1.0.9", "jsr:@std/path@~1.0.6": "1.0.9", - "jsr:@std/text@~1.0.7": "1.0.16", - "jsr:@std/toml@*": "1.0.10", + "jsr:@std/text@~1.0.7": "1.0.15", "jsr:@sylc/dkill@~0.12.3": "0.12.3", "npm:@aurowallet/mina-provider@^1.0.12": "1.0.12", - "npm:@bloxbean/yaci-devkit@*": "0.10.6", "npm:@bloxbean/yaci-devkit@0.10.6": "0.10.6", "npm:@cardano-foundation/cardano-verify-datasignature@1.0.11": "1.0.11", "npm:@coderspirit/nominal@^4.1.1": "4.1.1_typescript@5.6.3", "npm:@dcspark/carp-client@^3.3.0": "3.3.0", "npm:@dcspark/cip34-js@3.0.1": "3.0.1", - "npm:@deno/vite-plugin@^1.0.4": "1.0.5_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", + "npm:@deno/vite-plugin@^1.0.4": "1.0.5_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", "npm:@docusaurus/core@3.8.1": "3.8.1_@mdx-js+react@3.1.1__@types+react@19.1.12__react@18.3.1_react@18.3.1_react-dom@18.3.1__react@18.3.1_@types+react@19.1.12_webpack@5.101.3__acorn@8.15.0_react-router@5.3.4__react@18.3.1_typescript@5.6.3", "npm:@docusaurus/module-type-aliases@3.8.1": "3.8.1_react@18.3.1_react-dom@18.3.1__react@18.3.1", "npm:@docusaurus/plugin-client-redirects@^3.8.1": "3.8.1_react@18.3.1_react-dom@18.3.1__react@18.3.1_@mdx-js+react@3.1.1__@types+react@19.1.12__react@18.3.1_@types+react@19.1.12_typescript@5.6.3", @@ -121,11 +112,15 @@ "npm:@openzeppelin/contracts-upgradeable@^5.1.0": "5.4.0_@openzeppelin+contracts@5.1.0", "npm:@openzeppelin/contracts@5.1.0": "5.1.0", "npm:@paima/pgtyped-cli@^2.4.5": "2.4.5_typescript@5.6.3_fp-ts@2.16.11_io-ts@2.2.22__fp-ts@2.16.11_chokidar@4.0.1", + "npm:@paimaexample/npm-avail-light-client@*": "0.3.30", + "npm:@paimaexample/npm-avail-light-client@0.3.30": "0.3.30", + "npm:@paimaexample/npm-avail-node@*": "0.3.30", + "npm:@paimaexample/npm-avail-node@0.3.30": "0.3.30", "npm:@perawallet/connect@^1.4.2": "1.4.2_algosdk@3.4.0", "npm:@pgtyped/parser@2.4.2": "2.4.2", "npm:@pgtyped/runtime@2.4.2": "2.4.2", "npm:@pgtyped/runtime@^2.4.2": "2.4.2", - "npm:@polkadot/extension-dapp@~0.61.7": "0.61.7_@polkadot+api@16.4.6__@polkadot+util@13.5.6__@polkadot+util-crypto@13.5.6___@polkadot+util@13.5.6___@polkadot+x-randomvalues@13.5.6____@polkadot+util@13.5.6____@polkadot+wasm-util@7.5.1_____@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "npm:@polkadot/extension-dapp@~0.61.7": "0.61.7_@polkadot+api@15.10.2__@polkadot+util@13.5.6__@polkadot+util-crypto@13.5.6___@polkadot+util@13.5.6___@polkadot+x-randomvalues@13.5.6____@polkadot+util@13.5.6____@polkadot+wasm-util@7.5.1_____@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", "npm:@polkadot/extension-inject@~0.61.7": "0.61.7_@polkadot+api@16.4.6__@polkadot+util@13.5.6__@polkadot+util-crypto@13.5.6___@polkadot+util@13.5.6___@polkadot+x-randomvalues@13.5.6____@polkadot+util@13.5.6____@polkadot+wasm-util@7.5.1_____@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6_@polkadot+util@13.5.6", "npm:@polkadot/util-crypto@^13.5.6": "13.5.6_@polkadot+util@13.5.6_@polkadot+x-randomvalues@13.5.6__@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6_@polkadot+wasm-util@7.5.1__@polkadot+util@13.5.6", "npm:@polkadot/util@^13.5.6": "13.5.6", @@ -133,11 +128,11 @@ "npm:@sinclair/typebox@~0.34.41": "0.34.41", "npm:@subsquid/ss58-codec@^1.2.3": "1.2.3", "npm:@txpipe/dolos@0.19.1": "0.19.1", - "npm:@types/node@*": "24.2.0", + "npm:@types/node@*": "22.15.15", "npm:@types/react@^19.1.2": "19.1.12", "npm:@utxorpc/sdk@~0.6.8": "0.6.8_@connectrpc+connect@1.4.0__@bufbuild+protobuf@1.10.1", "npm:@utxorpc/spec@0.16": "0.16.0", - "npm:@vitejs/plugin-react@^4.4.1": "4.7.0_vite@6.3.6__picomatch@4.0.3_@babel+core@7.28.4_@types+node@24.2.0", + "npm:@vitejs/plugin-react@^4.4.1": "4.7.0_vite@6.3.6__picomatch@4.0.3_@babel+core@7.28.4_@types+node@22.15.15", "npm:@wagmi/cli@2.3.1": "2.3.1_typescript@5.6.3_zod@3.25.76_esbuild@0.25.9_picomatch@3.0.1", "npm:abitype@^1.0.8": "1.1.0_typescript@5.6.3_zod@3.25.76", "npm:abitype@^1.1.0": "1.1.0_typescript@5.6.3_zod@3.25.76", @@ -148,8 +143,8 @@ "npm:autoprefixer@^10.4.16": "10.4.21_postcss@8.5.6", "npm:avail-js-sdk@~0.4.2": "0.4.2", "npm:axios-proxy-builder@~0.1.2": "0.1.2", - "npm:axios@^1.10.0": "1.11.0", - "npm:axios@^1.6.8": "1.11.0", + "npm:axios@^1.10.0": "1.12.0", + "npm:axios@^1.6.8": "1.12.0", "npm:bech32@2": "2.0.0", "npm:bs58@6": "6.0.0", "npm:bs58check@4": "4.0.0", @@ -180,7 +175,7 @@ "npm:jsonc-parser@^3.3.1": "3.3.1", "npm:linus@^0.0.6": "0.0.6", "npm:material-chalk@1.1.1": "1.1.1_chalk@5.4.1", - "npm:mina-signer@^3.0.7": "3.0.7", + "npm:mina-signer@^3.0.7": "3.1.0", "npm:mqtt-pattern@^2.1.0": "2.1.0", "npm:mqtt@^5.14.0": "5.14.1", "npm:ntp-time-sync@0.5": "0.5.0", @@ -213,12 +208,12 @@ "npm:viem@2.23.10": "2.23.10_typescript@5.6.3_ws@8.18.1", "npm:viem@2.37.3": "2.37.3_typescript@5.6.3_ws@8.18.3", "npm:viem@^2.21.3": "2.37.5_typescript@5.6.3_ws@8.18.3", - "npm:vite-plugin-node-stdlib-browser@*": "0.2.1_node-stdlib-browser@1.3.1_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", - "npm:vite-plugin-static-copy@^3.1.1": "3.1.2_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", - "npm:vite-plugin-top-level-await@^1.6.0": "1.6.0_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", - "npm:vite-plugin-wasm@^3.5.0": "3.5.0_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", - "npm:vite@*": "6.3.6_picomatch@4.0.3_@types+node@24.2.0", - "npm:vite@^6.3.2": "6.3.6_picomatch@4.0.3_@types+node@24.2.0", + "npm:vite-plugin-node-stdlib-browser@*": "0.2.1_node-stdlib-browser@1.3.1_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", + "npm:vite-plugin-static-copy@^3.1.1": "3.1.2_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", + "npm:vite-plugin-top-level-await@^1.6.0": "1.6.0_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", + "npm:vite-plugin-wasm@^3.5.0": "3.5.0_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", + "npm:vite@*": "6.3.6_picomatch@4.0.3_@types+node@22.15.15", + "npm:vite@^6.3.2": "6.3.6_picomatch@4.0.3_@types+node@22.15.15", "npm:wagmi@^2.16.9": "2.16.9_@tanstack+react-query@5.87.4__react@18.3.1_react@18.3.1_typescript@5.6.3_viem@2.37.3__typescript@5.6.3__ws@8.18.3_@wagmi+core@2.20.3__typescript@5.6.3__viem@2.37.3___typescript@5.6.3___ws@8.18.3__@types+react@19.1.12__react@18.3.1__use-sync-external-store@1.4.0___react@18.3.1_@types+react@19.1.12_use-sync-external-store@1.4.0__react@18.3.1", "npm:wait-on@8.0.3": "8.0.3", "npm:web3-utils@^4.3.3": "4.3.3", @@ -288,8 +283,8 @@ "jsr:@std/media-types" ] }, - "@oak/oak@17.1.6": { - "integrity": "c7eef2eec733fba8e72b679bba3b8cf2fceccf5ef489a8b8fb43571908c0335d", + "@oak/oak@17.1.5": { + "integrity": "676263340dcfd069fb422b4274b4f75f7048a68e605dece6a2897ccfe669e7cc", "dependencies": [ "jsr:@oak/commons", "jsr:@std/assert@1", @@ -300,11 +295,8 @@ "npm:path-to-regexp" ] }, - "@std/assert@1.0.14": { - "integrity": "68d0d4a43b365abc927f45a9b85c639ea18a9fab96ad92281e493e4ed84abaa4", - "dependencies": [ - "jsr:@std/internal@^1.0.10" - ] + "@std/assert@1.0.13": { + "integrity": "ae0d31e41919b12c656c742b22522c32fb26ed0cba32975cb0de2a273cb68b29" }, "@std/bytes@1.0.6": { "integrity": "f6ac6adbd8ccd99314045f5703e23af0a68d7f7e58364b47d2c7f408aeb5820a" @@ -312,9 +304,6 @@ "@std/cli@1.0.22": { "integrity": "50d1e4f87887cb8a8afa29b88505ab5081188f5cad3985460c3b471fa49ff21a" }, - "@std/collections@1.1.3": { - "integrity": "bf8b0818886df6a32b64c7d3b037a425111f28278d69fd0995aeb62777c986b0" - }, "@std/crypto@1.0.5": { "integrity": "0dcfbb319fe0bba1bd3af904ceb4f948cde1b92979ec1614528380ed308a3b40" }, @@ -324,22 +313,12 @@ "@std/fmt@1.0.8": { "integrity": "71e1fc498787e4434d213647a6e43e794af4fd393ef8f52062246e06f7e372b7" }, - "@std/fs@1.0.19": { - "integrity": "051968c2b1eae4d2ea9f79a08a3845740ef6af10356aff43d3e2ef11ed09fb06", - "dependencies": [ - "jsr:@std/internal@^1.0.9", - "jsr:@std/path@^1.1.1" - ] - }, "@std/http@1.0.20": { "integrity": "b5cc33fc001bccce65ed4c51815668c9891c69ccd908295997e983d8f56070a1", "dependencies": [ "jsr:@std/encoding@^1.0.10" ] }, - "@std/internal@1.0.10": { - "integrity": "e3be62ce42cab0e177c27698e5d9800122f67b766a0bea6ca4867886cbde8cf7" - }, "@std/io@0.224.9": { "integrity": "4414664b6926f665102e73c969cfda06d2c4c59bd5d0c603fd4f1b1c840d6ee3" }, @@ -349,20 +328,8 @@ "@std/path@1.0.9": { "integrity": "260a49f11edd3db93dd38350bf9cd1b4d1366afa98e81b86167b4e3dd750129e" }, - "@std/path@1.1.2": { - "integrity": "c0b13b97dfe06546d5e16bf3966b1cadf92e1cc83e56ba5476ad8b498d9e3038", - "dependencies": [ - "jsr:@std/internal@^1.0.10" - ] - }, - "@std/text@1.0.16": { - "integrity": "ddb9853b75119a2473857d691cf1ec02ad90793a2e8b4a4ac49d7354281a0cf8" - }, - "@std/toml@1.0.10": { - "integrity": "87b2b7ff95afe7209a868732eb013a2707be29a15229f5b57bb13eededff4655", - "dependencies": [ - "jsr:@std/collections" - ] + "@std/text@1.0.15": { + "integrity": "91f5cc1e12779a3d95f1be34e763f9c28a75a078b7360e6fcaef0d8d9b1e3e7f" }, "@sylc/dkill@0.12.3": { "integrity": "7321d192fed6b09ad5bb1b7f6a4a3b89fcde50cecf5529914548415535a68704", @@ -1988,10 +1955,10 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "@deno/vite-plugin@1.0.5_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "@deno/vite-plugin@1.0.5_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-tLja5n4dyMhcze1NzvSs2iiriBymfBlDCZIrjMTxb9O2ru0gvmV6mn5oBD2teNw5Sd92cj3YJzKwsAs8tMJXlg==", "dependencies": [ - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "@discoveryjs/json-ext@0.5.7": { @@ -3135,7 +3102,7 @@ "@jest/schemas", "@types/istanbul-lib-coverage", "@types/istanbul-reports", - "@types/node@24.2.0", + "@types/node@22.15.15", "@types/yargs", "chalk@4.1.2" ] @@ -3167,8 +3134,8 @@ "@jridgewell/sourcemap-codec@1.5.5": { "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" }, - "@jridgewell/trace-mapping@0.3.30": { - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "@jridgewell/trace-mapping@0.3.31": { + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dependencies": [ "@jridgewell/resolve-uri", "@jridgewell/sourcemap-codec" @@ -4802,6 +4769,22 @@ ], "bin": true }, + "@paimaexample/npm-avail-light-client@0.3.30": { + "integrity": "sha512-UimIoG4raHuFC6sLRdD2re1FWFTNNOTIhjoJ+ZfO0EZNh1PJkMDvqHquXjzuLhoW0uyXHIlK+JJCttcY8XiThw==", + "dependencies": [ + "extract-zip", + "tar@6.2.1" + ], + "bin": true + }, + "@paimaexample/npm-avail-node@0.3.30": { + "integrity": "sha512-Zy7KT6jSR6XhlB8Ju6LrmQQaqrCDOgVHTxTksuMO/ElbDFZ5E9X1C1Boqnm0NdkcMHYUVHjAbUju9Iw8+aNNnQ==", + "dependencies": [ + "linus", + "tar@6.2.1" + ], + "bin": true + }, "@paulmillr/qr@0.2.1": { "integrity": "sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==", "deprecated": true @@ -5032,16 +5015,28 @@ "tslib@2.8.1" ] }, - "@polkadot/extension-dapp@0.61.7_@polkadot+api@16.4.6__@polkadot+util@13.5.6__@polkadot+util-crypto@13.5.6___@polkadot+util@13.5.6___@polkadot+x-randomvalues@13.5.6____@polkadot+util@13.5.6____@polkadot+wasm-util@7.5.1_____@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { + "@polkadot/extension-dapp@0.61.7_@polkadot+api@15.10.2__@polkadot+util@13.5.6__@polkadot+util-crypto@13.5.6___@polkadot+util@13.5.6___@polkadot+x-randomvalues@13.5.6____@polkadot+util@13.5.6____@polkadot+wasm-util@7.5.1_____@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { "integrity": "sha512-9CHm6WsTzq0rNdn02dtYR+HlThGA3nX3xcGXaikgT43EOiHI6vihOaAZ+2jBX63b7YSm7fr7d2A59xVeIAPyvg==", "dependencies": [ - "@polkadot/api@16.4.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", - "@polkadot/extension-inject", + "@polkadot/api@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/extension-inject@0.61.7_@polkadot+api@15.10.2__@polkadot+util@13.5.6__@polkadot+util-crypto@13.5.6___@polkadot+util@13.5.6___@polkadot+x-randomvalues@13.5.6____@polkadot+util@13.5.6____@polkadot+wasm-util@7.5.1_____@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6_@polkadot+util@13.5.6", "@polkadot/util", "@polkadot/util-crypto@13.5.6_@polkadot+util@13.5.6_@polkadot+x-randomvalues@13.5.6__@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6_@polkadot+wasm-util@7.5.1__@polkadot+util@13.5.6", "tslib@2.8.1" ] }, + "@polkadot/extension-inject@0.61.7_@polkadot+api@15.10.2__@polkadot+util@13.5.6__@polkadot+util-crypto@13.5.6___@polkadot+util@13.5.6___@polkadot+x-randomvalues@13.5.6____@polkadot+util@13.5.6____@polkadot+wasm-util@7.5.1_____@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6_@polkadot+util@13.5.6": { + "integrity": "sha512-db9PXlq3yGYtqkk1dYq8eHxBQKpXOJmlpQEJSzeaD+o0BqwXSH476Y7hPUqAC4yfXmbHNVkHRI6EnrQwy0K7AQ==", + "dependencies": [ + "@polkadot/api@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/rpc-provider@16.4.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types@16.4.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/util", + "@polkadot/util-crypto@13.5.6_@polkadot+util@13.5.6_@polkadot+x-randomvalues@13.5.6__@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6_@polkadot+wasm-util@7.5.1__@polkadot+util@13.5.6", + "@polkadot/x-global", + "tslib@2.8.1" + ] + }, "@polkadot/extension-inject@0.61.7_@polkadot+api@16.4.6__@polkadot+util@13.5.6__@polkadot+util-crypto@13.5.6___@polkadot+util@13.5.6___@polkadot+x-randomvalues@13.5.6____@polkadot+util@13.5.6____@polkadot+wasm-util@7.5.1_____@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6_@polkadot+util@13.5.6": { "integrity": "sha512-db9PXlq3yGYtqkk1dYq8eHxBQKpXOJmlpQEJSzeaD+o0BqwXSH476Y7hPUqAC4yfXmbHNVkHRI6EnrQwy0K7AQ==", "dependencies": [ @@ -5167,7 +5162,7 @@ "@polkadot/types-augment@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { "integrity": "sha512-X/xh+Dzud6OIyr7q8xttAwn+Fb5hKImIWEO1oG8WcInqv+P0vRyu7Tds+2ut9t64sJi3ydJ7I+T+WxZYheCU7g==", "dependencies": [ - "@polkadot/types@15.10.2", + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", "@polkadot/types-codec@15.10.2", "@polkadot/util", "tslib@2.8.1" @@ -5259,19 +5254,6 @@ "tslib@2.8.1" ] }, - "@polkadot/types@15.10.2": { - "integrity": "sha512-/wDwKdDijxSXyNk5YezhVitdFxoQaTSSG9KXa7dEWujtmS/51UHmt9+P3W8b8D8kKaCvumahf/ww3GJI6s0Eqw==", - "dependencies": [ - "@polkadot/keyring@13.5.6", - "@polkadot/types-augment@15.10.2", - "@polkadot/types-codec@15.10.2", - "@polkadot/types-create@15.10.2", - "@polkadot/util", - "@polkadot/util-crypto@13.5.6", - "rxjs@7.8.2", - "tslib@2.8.1" - ] - }, "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { "integrity": "sha512-/wDwKdDijxSXyNk5YezhVitdFxoQaTSSG9KXa7dEWujtmS/51UHmt9+P3W8b8D8kKaCvumahf/ww3GJI6s0Eqw==", "dependencies": [ @@ -6150,7 +6132,7 @@ "@txpipe/dolos@0.19.1": { "integrity": "sha512-7CPaD60U4ah4fLIywNRUJ00SfvbvQSmS0oQCDkSPgWYpu5fSSjNiGRT0DKiITaFFBVHIQgqcchlDDi3fmnXl2g==", "dependencies": [ - "axios@1.11.0", + "axios@1.12.0", "axios-proxy-builder", "console.table", "detect-libc", @@ -6160,8 +6142,8 @@ "scripts": true, "bin": true }, - "@tybys/wasm-util@0.10.0": { - "integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", + "@tybys/wasm-util@0.10.1": { + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "dependencies": [ "tslib@2.8.1" ] @@ -6204,39 +6186,39 @@ "@types/bn.js@5.2.0": { "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/body-parser@1.19.6": { "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "dependencies": [ "@types/connect", - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/bonjour@3.5.13": { "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/bunyan@1.8.9": { "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/connect-history-api-fallback@1.5.4": { "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dependencies": [ "@types/express-serve-static-core@5.0.7", - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/connect@3.4.36": { "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/d3-array@3.2.1": { @@ -6438,7 +6420,7 @@ "@types/express-serve-static-core@4.19.6": { "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", "dependencies": [ - "@types/node@24.2.0", + "@types/node@22.15.15", "@types/qs", "@types/range-parser", "@types/send" @@ -6447,7 +6429,7 @@ "@types/express-serve-static-core@5.0.7": { "integrity": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==", "dependencies": [ - "@types/node@24.2.0", + "@types/node@22.15.15", "@types/qs", "@types/range-parser", "@types/send" @@ -6489,7 +6471,7 @@ "@types/http-proxy@1.17.16": { "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/istanbul-lib-coverage@2.0.6": { @@ -6528,7 +6510,7 @@ "@types/memcached@2.2.10": { "integrity": "sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/mime@1.3.5": { @@ -6540,28 +6522,28 @@ "@types/mysql@2.15.26": { "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/node-forge@1.3.14": { "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/node@17.0.45": { "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, - "@types/node@22.7.5": { - "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "@types/node@22.15.15": { + "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==", "dependencies": [ - "undici-types@6.19.8" + "undici-types@6.21.0" ] }, - "@types/node@24.2.0": { - "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", + "@types/node@22.7.5": { + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", "dependencies": [ - "undici-types@7.10.0" + "undici-types@6.19.8" ] }, "@types/object-inspect@1.13.0": { @@ -6576,7 +6558,7 @@ "@types/pg@8.6.1": { "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", "dependencies": [ - "@types/node@24.2.0", + "@types/node@22.15.15", "pg-protocol", "pg-types" ] @@ -6622,7 +6604,7 @@ "@types/readable-stream@4.0.21": { "integrity": "sha512-19eKVv9tugr03IgfXlA9UVUVRbW6IuqRO5B92Dl4a6pT7K8uaGrNS0GkxiZD0BOk6PLuXl5FhWl//eX/pzYdTQ==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/retry@0.12.0": { @@ -6631,14 +6613,14 @@ "@types/sax@1.2.7": { "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/send@0.17.5": { "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", "dependencies": [ "@types/mime", - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/serve-index@1.9.4": { @@ -6651,7 +6633,7 @@ "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", "dependencies": [ "@types/http-errors", - "@types/node@24.2.0", + "@types/node@22.15.15", "@types/send" ] }, @@ -6661,13 +6643,13 @@ "@types/sockjs@0.3.36": { "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/tedious@4.0.14": { "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/trusted-types@2.0.7": { @@ -6685,13 +6667,13 @@ "@types/ws@8.18.1": { "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/ws@8.5.3": { "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/yargs-parser@21.0.3": { @@ -6706,7 +6688,7 @@ "@types/yauzl@2.10.3": { "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/zen-observable@0.8.3": { @@ -6743,7 +6725,7 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "@vitejs/plugin-react@4.7.0_vite@6.3.6__picomatch@4.0.3_@babel+core@7.28.4_@types+node@24.2.0": { + "@vitejs/plugin-react@4.7.0_vite@6.3.6__picomatch@4.0.3_@babel+core@7.28.4_@types+node@22.15.15": { "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", "dependencies": [ "@babel/core", @@ -6752,7 +6734,7 @@ "@rolldown/pluginutils", "@types/babel__core", "react-refresh", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "@wagmi/cli@2.3.1_typescript@5.6.3_zod@3.25.76_esbuild@0.25.9_picomatch@3.0.1": { @@ -7764,16 +7746,16 @@ "form-data" ] }, - "axios@1.11.0": { - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "axios@1.12.0": { + "integrity": "sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==", "dependencies": [ "follow-redirects", "form-data", "proxy-from-env" ] }, - "b4a@1.6.7": { - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" + "b4a@1.7.1": { + "integrity": "sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==" }, "babel-loader@9.2.1_@babel+core@7.28.4_webpack@5.101.3__acorn@8.15.0": { "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", @@ -9394,7 +9376,7 @@ "integrity": "sha512-e+gBmNdgOwA+7u6O2kk/u1w4ET23j8OIF6OiOWV6EoKHJJ/w/8U5smkHNlrQC3hQOltxE2NRC1jbsG7wfS+d3w==", "dependencies": [ "@docusaurus/core", - "axios@1.11.0", + "axios@1.12.0", "picocolors", "pretty-ms", "rimraf@5.0.10" @@ -9525,8 +9507,8 @@ "effection@3.5.0": { "integrity": "sha512-PcKRGoP68CM3c/DODTc38xp0rIjfREH7/fBGu4tiHU/aPb/PvSxv3tvWaJt6JxpxqT0jIXvcOyn+yjk46KcNXw==" }, - "electron-to-chromium@1.5.215": { - "integrity": "sha512-TIvGp57UpeNetj/wV/xpFNpWGb0b/ROw372lHPx5Aafx02gjTBtWnEEcaSX3W2dLM3OSdGGyHX/cHl01JQsLaQ==" + "electron-to-chromium@1.5.218": { + "integrity": "sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==" }, "elliptic@6.6.1": { "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", @@ -9884,7 +9866,7 @@ "eval@0.1.8": { "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", "dependencies": [ - "@types/node@24.2.0", + "@types/node@22.15.15", "require-like" ] }, @@ -11447,7 +11429,7 @@ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dependencies": [ "@jest/types", - "@types/node@24.2.0", + "@types/node@22.15.15", "chalk@4.1.2", "ci-info", "graceful-fs@4.2.11", @@ -11457,7 +11439,7 @@ "jest-worker@27.5.1": { "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dependencies": [ - "@types/node@24.2.0", + "@types/node@22.15.15", "merge-stream", "supports-color@8.1.1" ] @@ -11465,7 +11447,7 @@ "jest-worker@29.7.0": { "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dependencies": [ - "@types/node@24.2.0", + "@types/node@22.15.15", "jest-util", "merge-stream", "supports-color@8.1.1" @@ -12615,8 +12597,8 @@ "mimic-response@4.0.0": { "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" }, - "mina-signer@3.0.7": { - "integrity": "sha512-7eYp/6WWj2VzJjvfC8dNeGMud/brdBrzkUsCdysFFXnfV2/FVpVhAGCMfaS6hs0HJtS4+eplmiD2hXfshQS8CQ==", + "mina-signer@3.1.0": { + "integrity": "sha512-YG6AeukSglI+A9ZH0qCxjDwiE0jLpP84z18ulHr+DWHvezZ0rJFOsT04YgurErOzFYHsToEtWr1zO7Ufc0zXPg==", "dependencies": [ "blakejs", "js-sha256" @@ -14345,7 +14327,7 @@ "@protobufjs/path", "@protobufjs/pool", "@protobufjs/utf8", - "@types/node@24.2.0", + "@types/node@22.15.15", "long" ], "scripts": true @@ -15970,8 +15952,8 @@ "undici-types@6.19.8": { "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" }, - "undici-types@7.10.0": { - "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==" + "undici-types@6.21.0": { + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" }, "undici@5.29.0": { "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", @@ -16372,12 +16354,12 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "vite-plugin-node-stdlib-browser@0.2.1_node-stdlib-browser@1.3.1_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "vite-plugin-node-stdlib-browser@0.2.1_node-stdlib-browser@1.3.1_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-6u2i613Dkqj5KaTNIrnZvE6y3/awWAp0S5TjucTvGxdhetftB1Mgvblc+nwYzlw6sntPlac8UOC7ttXNh+LZKA==", "dependencies": [ "@rollup/plugin-inject", "node-stdlib-browser", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "vite-plugin-static-copy@3.1.2_vite@6.3.6__picomatch@4.0.3": { @@ -16391,7 +16373,7 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "vite-plugin-static-copy@3.1.2_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "vite-plugin-static-copy@3.1.2_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-aVmYOzptLVOI2b1jL+cmkF7O6uhRv1u5fvOkQgbohWZp2CbR22kn9ZqkCUIt9umKF7UhdbsEpshn1rf4720QFg==", "dependencies": [ "chokidar@3.6.0", @@ -16399,7 +16381,7 @@ "p-map@7.0.3", "picocolors", "tinyglobby", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "vite-plugin-top-level-await@1.6.0_vite@6.3.6__picomatch@4.0.3": { @@ -16412,14 +16394,14 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "vite-plugin-top-level-await@1.6.0_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "vite-plugin-top-level-await@1.6.0_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-bNhUreLamTIkoulCR9aDXbTbhLk6n1YE8NJUTTxl5RYskNRtzOR0ASzSjBVRtNdjIfngDXo11qOsybGLNsrdww==", "dependencies": [ "@rollup/plugin-virtual", "@swc/core", "@swc/wasm", "uuid@10.0.0", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "vite-plugin-wasm@3.5.0_vite@6.3.6__picomatch@4.0.3": { @@ -16428,10 +16410,10 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "vite-plugin-wasm@3.5.0_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "vite-plugin-wasm@3.5.0_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-X5VWgCnqiQEGb+omhlBVsvTfxikKtoOgAzQ95+BZ8gQ+VfMHIjSHr0wyvXFQCa0eKQ0fKyaL0kWcEnYqBac4lQ==", "dependencies": [ - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "vite@6.3.6_picomatch@4.0.3": { @@ -16449,10 +16431,10 @@ ], "bin": true }, - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0": { + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", "dependencies": [ - "@types/node@24.2.0", + "@types/node@22.15.15", "esbuild", "fdir@6.5.0_picomatch@4.0.3", "picomatch@4.0.3", @@ -16464,7 +16446,7 @@ "fsevents" ], "optionalPeers": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ], "bin": true }, @@ -16518,7 +16500,7 @@ "wait-on@8.0.3": { "integrity": "sha512-nQFqAFzZDeRxsu7S3C7LbuxslHhk+gnJZHyethuGKAn2IVleIbTB9I3vJSQiSR+DifUqmdzfPMoMPJfLqMF2vw==", "dependencies": [ - "axios@1.11.0", + "axios@1.12.0", "joi", "lodash", "minimist", @@ -17257,23 +17239,7 @@ "https://deno.land/std@0.224.0/assert/assert.ts": "09d30564c09de846855b7b071e62b5974b001bb72a4b797958fe0660e7849834", "https://deno.land/std@0.224.0/assert/assertion_error.ts": "ba8752bd27ebc51f723702fac2f54d3e94447598f54264a6653d6413738a8917", "https://deno.land/std@0.224.0/fmt/colors.ts": "508563c0659dd7198ba4bbf87e97f654af3c34eb56ba790260f252ad8012e1c5", - "https://deno.land/std@0.224.0/fs/_create_walk_entry.ts": "5d9d2aaec05bcf09a06748b1684224d33eba7a4de24cf4cf5599991ca6b5b412", - "https://deno.land/std@0.224.0/fs/_get_file_info_type.ts": "da7bec18a7661dba360a1db475b826b18977582ce6fc9b25f3d4ee0403fe8cbd", - "https://deno.land/std@0.224.0/fs/_is_same_path.ts": "709c95868345fea051c58b9e96af95cff94e6ae98dfcff2b66dee0c212c4221f", - "https://deno.land/std@0.224.0/fs/_is_subdir.ts": "c68b309d46cc8568ed83c000f608a61bbdba0943b7524e7a30f9e450cf67eecd", - "https://deno.land/std@0.224.0/fs/_to_path_string.ts": "29bfc9c6c112254961d75cbf6ba814d6de5349767818eb93090cecfa9665591e", - "https://deno.land/std@0.224.0/fs/copy.ts": "7ab12a16adb65d155d4943c88081ca16ce3b0b5acada64c1ce93800653678039", - "https://deno.land/std@0.224.0/fs/empty_dir.ts": "e400e96e1d2c8c558a5a1712063bd43939e00619c1d1cc29959babc6f1639418", - "https://deno.land/std@0.224.0/fs/ensure_dir.ts": "51a6279016c65d2985f8803c848e2888e206d1b510686a509fa7cc34ce59d29f", - "https://deno.land/std@0.224.0/fs/ensure_file.ts": "67608cf550529f3d4aa1f8b6b36bf817bdc40b14487bf8f60e61cbf68f507cf3", - "https://deno.land/std@0.224.0/fs/ensure_link.ts": "5c98503ebfa9cc05e2f2efaa30e91e60b4dd5b43ebbda82f435c0a5c6e3ffa01", - "https://deno.land/std@0.224.0/fs/ensure_symlink.ts": "cafe904cebacb9a761977d6dbf5e3af938be946a723bb394080b9a52714fafe4", - "https://deno.land/std@0.224.0/fs/eol.ts": "18c4ac009d0318504c285879eb7f47942643f13619e0ff070a0edc59353306bd", "https://deno.land/std@0.224.0/fs/exists.ts": "3d38cb7dcbca3cf313be343a7b8af18a87bddb4b5ca1bd2314be12d06533b50f", - "https://deno.land/std@0.224.0/fs/expand_glob.ts": "2e428d90acc6676b2aa7b5c78ef48f30641b13f1fe658e7976c9064fb4b05309", - "https://deno.land/std@0.224.0/fs/mod.ts": "c25e6802cbf27f3050f60b26b00c2d8dba1cb7fcdafe34c66006a7473b7b34d4", - "https://deno.land/std@0.224.0/fs/move.ts": "ca205d848908d7f217353bc5c623627b1333490b8b5d3ef4cab600a700c9bd8f", - "https://deno.land/std@0.224.0/fs/walk.ts": "cddf87d2705c0163bff5d7767291f05b0f46ba10b8b28f227c3849cace08d303", "https://deno.land/std@0.224.0/io/write_all.ts": "24aac2312bb21096ae3ae0b102b22c26164d3249dff96dbac130958aa736f038", "https://deno.land/std@0.224.0/log/_config.ts": "489e11b6d3c917bf5fc954c5e914c095d3480efd924d1e85f2fc576468581c54", "https://deno.land/std@0.224.0/log/_state.ts": "314c0c31ab9c8f4fb33326ad446757d35f75e5bb21746b7720ed4e3f3a939da1", @@ -17481,6 +17447,13 @@ "npm:ws@^8.18.3" ] }, + "e2e/shared/contracts/avail": { + "dependencies": [ + "npm:@paimaexample/npm-avail-light-client@0.3.30", + "npm:@paimaexample/npm-avail-node@0.3.30", + "npm:avail-js-sdk@~0.4.2" + ] + }, "e2e/shared/contracts/cardano": { "dependencies": [ "jsr:@std/toml@*", @@ -17738,6 +17711,7 @@ "npm:@sinclair/typebox@~0.34.30", "npm:@utxorpc/sdk@~0.6.8", "npm:@utxorpc/spec@0.16", + "npm:avail-js-sdk@~0.4.2", "npm:denque@^2.1.0", "npm:effection@3.5.0", "npm:graphql-ws@^6.0.6", diff --git a/e2e/client/node/scripts/start.ts b/e2e/client/node/scripts/start.ts index 12b266249..094bc2032 100644 --- a/e2e/client/node/scripts/start.ts +++ b/e2e/client/node/scripts/start.ts @@ -16,9 +16,13 @@ const yaci_enabled = Deno.env.get("DISABLE_LINUX_YACI") === "true" ? false : true; -const midnight_enabled = Deno ? (Deno.env.get("DISABLE_MIDNIGHT") === "true" - ? false - : true) : true; +const midnight_enabled = Deno + ? (Deno.env.get("DISABLE_MIDNIGHT") === "true" ? false : true) + : true; + +const avail_enabled = Deno + ? (Deno.env.get("DISABLE_AVAIL") === "true" ? false : true) + : true; const config = Value.Parse(OrchestratorConfig, { processes: { @@ -33,9 +37,8 @@ const config = Value.Parse(OrchestratorConfig, { processesToLaunch: [ launchEvm("@e2e/evm-contracts"), yaci_enabled ? launchCardano("@e2e/cardano-contracts") : {}, + avail_enabled ? launchAvail("@e2e/avail-contracts") : {}, midnight_enabled ? launchMidnight("@e2e/midnight-contracts") : {}, - // Uncomment to enable Avail Process - // launchAvail("@e2e/avail-contracts"), { stopProcessAtPort: [10590], processes: [ diff --git a/e2e/client/node/src/state-machine.ts b/e2e/client/node/src/state-machine.ts index 5d66e6384..51177891e 100644 --- a/e2e/client/node/src/state-machine.ts +++ b/e2e/client/node/src/state-machine.ts @@ -43,7 +43,8 @@ stm.addStateTransition("attack", function* (data) { // Example 1: // How to write in the DB. yield* World.resolve(insertStateMachineInput, { - inputs: `attack playerId: ${data.parsedInput.playerId} with moveId: ${data.parsedInput.moveId}`, + inputs: + `attack playerId: ${data.parsedInput.playerId} with moveId: ${data.parsedInput.moveId}`, block_height: data.blockHeight, }); @@ -99,7 +100,7 @@ stm.addStateTransition("midnightContractState", function* (data) { console.log( "📚 Contract state is array with", payload.content.length, - "items" + "items", ); break; @@ -114,6 +115,19 @@ stm.addStateTransition("midnightContractState", function* (data) { return; }); +stm.addStateTransition( + "avail-app-state", + function* (data) { + const { payload } = data.parsedInput; + const parsedPayload = JSON.parse(payload.suppliedValue); + console.log( + "📦 Avail App state has message:", + parsedPayload.message || parsedPayload, + ); + return; + }, +); + stm.addStateTransition("throw_error", function* (data) { throw new Error("This is a test error"); }); @@ -167,7 +181,7 @@ stm.addStateTransition("transfer", function* (data) { */ export const gameStateTransitions: StartConfigGameStateTransitions = function* ( blockHeight: number, - input: BaseStfInput + input: BaseStfInput, ): SyncStateUpdateStream { if (blockHeight >= 0) { yield* stm.processInput(input); diff --git a/e2e/shared/contracts/avail/.gitignore b/e2e/shared/contracts/avail/.gitignore index 02d630e32..9b35cef71 100644 --- a/e2e/shared/contracts/avail/.gitignore +++ b/e2e/shared/contracts/avail/.gitignore @@ -1 +1,2 @@ -avail_path \ No newline at end of file +avail_path +avail_app.json diff --git a/e2e/shared/contracts/avail/config.yml b/e2e/shared/contracts/avail/config.yml index 6ed0e9ff5..246669cd5 100644 --- a/e2e/shared/contracts/avail/config.yml +++ b/e2e/shared/contracts/avail/config.yml @@ -14,7 +14,7 @@ http_server_port=7007 port=37000 # WebSocket endpoint of a full node. -full_node_ws = ["ws://127.0.0.1:9944"] +full_node_ws = ["ws://127.0.0.1:9955"] # Application ID. If not set or set to 0, application client is not started. app_id=0 diff --git a/e2e/shared/contracts/avail/deno.json b/e2e/shared/contracts/avail/deno.json index d8c8a0334..6ed2775dc 100644 --- a/e2e/shared/contracts/avail/deno.json +++ b/e2e/shared/contracts/avail/deno.json @@ -1,12 +1,19 @@ { "name": "@e2e/avail-contracts", "version": "0.3.0", - "exports": {}, + "exports": { + ".": "./read-app.ts" + }, "tasks": { - "avail-node:start": "deno run -A --unstable-detect-cjs @paima/npm-avail-node --dev", - "avail-node:wait": "wait-on tcp:9944", - "avail-light-client:start": "deno run -A --unstable-detect-cjs @paima/npm-avail-light-client --network local --config ./config.yml", + "avail-node:start": "deno run -A --unstable-detect-cjs npm:@paimaexample/npm-avail-node --dev --rpc-port 9955 --no-telemetry", + "avail-node:wait": "wait-on tcp:9955", + "avail-light-client:deploy": "deno run -A --unstable-detect-cjs ./deploy.ts", + "avail-light-client:start": "deno run -A --unstable-detect-cjs npm:@paimaexample/npm-avail-light-client --config ./config.yml --app-id $AVAIL_APP_ID", "avail-light-client:wait": "wait-on tcp:7007" }, - "imports": {} + "imports": { + "avail-js-sdk": "npm:avail-js-sdk@^0.4.2", + "@paimaexample/npm-avail-node": "npm:@paimaexample/npm-avail-node@0.3.30", + "@paimaexample/npm-avail-light-client": "npm:@paimaexample/npm-avail-light-client@0.3.30" + } } \ No newline at end of file diff --git a/e2e/shared/contracts/avail/deploy.ts b/e2e/shared/contracts/avail/deploy.ts new file mode 100644 index 000000000..401a72ea0 --- /dev/null +++ b/e2e/shared/contracts/avail/deploy.ts @@ -0,0 +1,66 @@ +import { Account, Pallets, SDK } from "avail-js-sdk"; + +const sdk = await SDK.New("ws://localhost:9955/ws"); +const seed: string = Deno.env.get("SEED") ?? "//Alice"; +if (!seed) { + throw new Error("SEED environment variable is not set"); +} +const account = Account.new(seed); +const genesisHash = await sdk.client.api.rpc.chain.getBlockHash(0); +console.log("Account Address: ", account.address); +// Use a fixed key string +const ApplicationKey = "app_key_" + Date.now(); + +export async function createApplicationKey() { + // Create application key transaction + const tx = sdk.tx.dataAvailability.createApplicationKey(ApplicationKey); + console.log("Submitting transaction to create application key..."); + + // Execute and wait for inclusion + const res = await tx.executeWaitForInclusion(account, {}); + + // Check if transaction was successful + const isOk = res.isSuccessful(); + if (isOk === undefined) { + throw new Error("Cannot check if transaction was successful"); + } else if (!isOk) { + console.log("Transaction failed", res); + throw new Error("Transaction failed"); + } + + // Extract event data + if (res.events === undefined) throw new Error("No events found"); + + const event = res.events.findFirst( + Pallets.DataAvailabilityEvents.ApplicationKeyCreated, + ); + if (event === undefined) { + throw new Error("ApplicationKeyCreated event not found"); + } + + const appId = event.id; + console.log(`Application created successfully:`); + console.log(`Owner: ${event.owner}`); + console.log(`Key: ${event.keyToString()}`); + console.log(`App Id: ${appId}`); + console.log(`Transaction Hash: ${res.txHash}`); + return { appId, txHash: res.txHash }; +} + +const { appId, txHash } = await createApplicationKey(); +console.log("Transaction Hash: ", txHash.toString()); +const data = JSON.stringify({ appId, txHash, ApplicationKey, genesisHash }); +const fileName = Deno.cwd() + "/avail_app.json"; +console.log("Writing to file: ", fileName); +await Deno.writeTextFile(fileName, data); + +const child = new Deno.Command("deno", { + args: ["task", "-f", "@e2e/avail-contracts", "avail-light-client:start"], + env: { + AVAIL_APP_ID: appId.toString(), + }, +}).spawn(); + +console.log("Light Client Started"); + +await child.status; diff --git a/e2e/shared/contracts/avail/read-app.ts b/e2e/shared/contracts/avail/read-app.ts new file mode 100644 index 000000000..04c10ef4a --- /dev/null +++ b/e2e/shared/contracts/avail/read-app.ts @@ -0,0 +1,28 @@ +export type AvailApplicationInfo = { + appId: number; + txHash: { // The txHash of the apps creation transaction + value: string; + }; + ApplicationKey: string; + genesisHash: string; +}; + +let cachedAppInfo: AvailApplicationInfo | undefined; +export function readAvailApplication(): AvailApplicationInfo { + if (cachedAppInfo) return cachedAppInfo; + try { + // Get the directory of the current module file using Deno's URL API + const dir = new URL(".", import.meta.url); + // Construct the full path to avail_app.json + const appInfoPath = new URL("avail_app.json", dir); + const appInfoJson = Deno.readTextFileSync(appInfoPath); + const appInfo = JSON.parse(appInfoJson) as AvailApplicationInfo; + cachedAppInfo = appInfo; + return appInfo; + } catch (err) { + if (err instanceof Deno.errors.NotFound) { + throw new Error("avail_app.json not found in the current directory"); + } + throw new Error(`Failed to read avail_app.json: ${String(err)}`); + } +} diff --git a/e2e/shared/data-types/src/config.ts b/e2e/shared/data-types/src/config.ts index b6cbe2255..df40ae2d1 100644 --- a/e2e/shared/data-types/src/config.ts +++ b/e2e/shared/data-types/src/config.ts @@ -1,6 +1,7 @@ import { readMidnightContract } from "@e2e/midnight-contracts"; import { contractAddressesEvmMain } from "@e2e/evm-contracts"; - +import { readAvailApplication } from "@e2e/avail-contracts"; +import { getConnection } from "@paima/db"; import { ConfigBuilder, ConfigNetworkType, @@ -31,6 +32,11 @@ const yaci_enabled = Deno const midnight_enabled = Deno ? (Deno.env.get("DISABLE_MIDNIGHT") === "true" ? false : true) : true; + +// NOTE: This disable avail sync, allowing for faster testing. +const avail_enabled = Deno + ? (Deno.env.get("DISABLE_AVAIL") === "true" ? false : true) + : true; /** * Let check if the db. * If empty then the db is not initialized, and use the current time for the NTP sync. @@ -92,6 +98,16 @@ export const localhostConfig = new ConfigBuilder() }, id: 31338, // taken from hardhat.config.ts }); + if (avail_enabled) { + b = b.addNetwork({ + name: "avail", + type: ConfigNetworkType.AVAIL, + genesisSeed: "//Alice", + nodeUrl: "ws://127.0.0.1:9955/ws", + genesisHash: readAvailApplication().genesisHash, + caip2: `avail:local`, + }); + } if (midnight_enabled) { b = b .addNetwork({ @@ -177,6 +193,22 @@ export const localhostConfig = new ConfigBuilder() confirmationDepth: 2, // TODO: test this }), ); + + if (avail_enabled) { + result = result.addParallel( + (networks) => (networks as any).avail, + (network, deployments) => ({ + name: "parallelAvail", + type: ConfigSyncProtocolType.AVAIL_PARALLEL, + rpc: network.nodeUrl, + lightClient: "http://127.0.0.1:7007", + startBlockHeight: 1, + pollingInterval: 20_000, + delayMs: 0, + }), + ); + } + if (midnight_enabled) { result = result .addParallel( @@ -286,6 +318,20 @@ export const localhostConfig = new ConfigBuilder() }), ); + if (avail_enabled) { + builder = builder.addPrimitive( + (syncProtocols) => (syncProtocols as any).parallelAvail, + (network, deployments, syncProtocol) => ({ + name: "AvailContractState", + type: ConfigPrimitiveType.AvailPaimaL2, + startBlockHeight: 1, + appId: readAvailApplication().appId, + contractAddress: readAvailApplication().ApplicationKey, + genesisHash: readAvailApplication().genesisHash, + scheduledPrefix: "avail-app-state", + }), + ); + } if (midnight_enabled) { builder = builder .addPrimitive( diff --git a/e2e/shared/data-types/src/grammar.ts b/e2e/shared/data-types/src/grammar.ts index 63ec72eae..994e675ab 100644 --- a/e2e/shared/data-types/src/grammar.ts +++ b/e2e/shared/data-types/src/grammar.ts @@ -57,10 +57,20 @@ export const grammar = { ), ], ], + "avail-app-state": [ + [ + "payload", + Type.Object({ + suppliedValue: Type.String(), + }), + ], + ], // Auto-generate other primitives, but exclude midnight (we define it explicitly above) ...Object.fromEntries( Object.entries(mapPrimitivesToGrammar(localhostConfig.primitives)) - .filter(([key]) => key !== "midnightContractState"), + .filter(([key]) => + key !== "midnightContractState" && key !== "avail-app-state" + ), ), } as const satisfies GrammarDefinition; diff --git a/packages/binaries/avail-light-client/config.yml b/packages/binaries/avail-light-client/config.yml index 6ed0e9ff5..cde3e9728 100644 --- a/packages/binaries/avail-light-client/config.yml +++ b/packages/binaries/avail-light-client/config.yml @@ -1,31 +1,27 @@ -# Default configuration for avail-light-client -# For a full list of options, see the official Avail documentation. +# Avail Light Client config (no --network needed) -log_level="info" -http_server_host="127.0.0.1" -http_server_port=7007 +# Logging +log_level = "info" -# Secret key for libp2p keypair. Can be either set to 'seed' or to 'key'. -# If set to seed, keypair will be generated from that seed. -# If 'secret_key' is not set, a random seed will be used. -# secret_key={ seed: "avail" } +# API server +http_server_host = "127.0.0.1" +http_server_port = 7007 -# P2P TCP listener port (default: 37000). -port=37000 - -# WebSocket endpoint of a full node. +# RPC to full node (custom 9955) full_node_ws = ["ws://127.0.0.1:9944"] -# Application ID. If not set or set to 0, application client is not started. -app_id=0 - -# Confidence threshold (default: 92.0). -confidence=92.0 - -# File system path where RocksDB used by the light client stores its data. -# This path is relative to the location of this config file. -avail_path="avail_path" - -# Vector of Light Client bootstrap nodes. -# This is for a local setup. Replace with public bootstraps for testnet/mainnet. -bootstraps=["/ip4/127.0.0.1/tcp/39000/p2p/12D3KooWMm1c4pzeLPGkkCJMAgFbsfQ8xmVDusg272icWsaNHWzN"] \ No newline at end of file +# App / LC behavior +app_id = 0 +confidence = 92.0 +avail_path = "avail_path" +network_mode = "both" # both | p2p-only | rpc-only + +# LibP2P +port = 37000 +webrtc_port = 37001 +# secret_key = { seed = "avail" } # optional deterministic key +bootstraps = ["/ip4/127.0.0.1/tcp/39000/p2p/12D3KooWMm1c4pzeLPGkkCJMAgFbsfQ8xmVDusg272icWsaNHWzN"] + +# Telemetry / network identity (equivalent to local --network defaults) +ot_collector_endpoint = "http://127.0.0.1:4317" +genesis_hash = "DEV" \ No newline at end of file diff --git a/packages/build-tools/orchestrator/scripts/launch-avail.ts b/packages/build-tools/orchestrator/scripts/launch-avail.ts index 5829ba192..56b18a66d 100644 --- a/packages/build-tools/orchestrator/scripts/launch-avail.ts +++ b/packages/build-tools/orchestrator/scripts/launch-avail.ts @@ -18,7 +18,7 @@ import { ComponentNames } from "@paima/log"; // packageName: the name of the package that implements the tasks. // export const launchAvail = (packageName: string) => ({ - stopProcessAtPort: [9944, 7007], + stopProcessAtPort: [9955, 7007], processes: [ { name: ComponentNames.AVAIL_NODE, @@ -27,21 +27,21 @@ export const launchAvail = (packageName: string) => ({ logs: "none", type: "system-dependency", }, + { + name: ComponentNames.AVAIL_NODE_WAIT, + args: ["task", "-f", packageName, "avail-node:wait"], + }, { name: ComponentNames.AVAIL_CLIENT, args: [ "task", "-f", packageName, - "avail-light-client:start", + "avail-light-client:deploy", ], waitToExit: false, type: "system-dependency", }, - { - name: ComponentNames.AVAIL_NODE_WAIT, - args: ["task", "-f", packageName, "avail-node:wait"], - }, { name: ComponentNames.AVAIL_CLIENT_WAIT, args: [ diff --git a/packages/node-sdk/sm/primitives/avail/contract-state.ts b/packages/node-sdk/sm/primitives/avail/contract-state.ts new file mode 100644 index 000000000..d89d331a0 --- /dev/null +++ b/packages/node-sdk/sm/primitives/avail/contract-state.ts @@ -0,0 +1,51 @@ +import { createScheduledData, insertPrimitiveAccounting } from "@paima/db"; +import { BuiltinTransitions, generateRawStmInput } from "@paima/concise"; +import { + ConfigPrimitiveAccountingPayloadType, + type ConfigPrimitivePayloadType, + ConfigPrimitiveType, + type ConfigSyncProtocolType, + type FlattenSyncProtocolIOFor, +} from "@paima/config"; +import { type StateUpdateStream, World } from "@paima/coroutine"; + +import type { PaimaBlockNumber } from "@paima/utils"; + +export default function* processAvailPaimaL2Datum( + paima_block_height: PaimaBlockNumber, + response: FlattenSyncProtocolIOFor< + ConfigSyncProtocolType.AVAIL_PARALLEL, + ConfigPrimitiveType.AvailPaimaL2, + ConfigPrimitivePayloadType.Event + >, +): StateUpdateStream { + const { scheduledPrefix, contractAddress } = response.input; + const { payload, syncProtocol } = response.output; + const scheduledInputData = generateRawStmInput( + BuiltinTransitions[ConfigPrimitiveType.AvailPaimaL2] + .scheduledPrefix, + scheduledPrefix, + { payload }, + ); + yield* World.resolve(insertPrimitiveAccounting, { + primitive_name: syncProtocol.payload.primitiveName, + paima_block_height: paima_block_height, + payload_type: ConfigPrimitiveAccountingPayloadType.Event, + payload: JSON.stringify(payload) as any, + }); + if (scheduledPrefix) { + yield* createScheduledData( + JSON.stringify(scheduledInputData), + { + blockHeight: paima_block_height, + }, + { + primitiveName: syncProtocol.payload.primitiveName, + txHash: syncProtocol.internal.transactionHash, + caip2: syncProtocol.payload.caip2, + fromAddress: contractAddress, + contractAddress: contractAddress, + }, + ); + } +} diff --git a/packages/node-sdk/sm/primitives/processing.ts b/packages/node-sdk/sm/primitives/processing.ts index 4f28f0c77..771b82754 100644 --- a/packages/node-sdk/sm/primitives/processing.ts +++ b/packages/node-sdk/sm/primitives/processing.ts @@ -22,6 +22,7 @@ import type { StateUpdateStream } from "@paima/coroutine"; import type { PaimaBlockNumber } from "@paima/utils"; import { clearBigInts } from "./utils.ts"; import processMidnightContractStateDatum from "./midnight/contract-state.ts"; +import processAvailPaimaL2Datum from "./avail/contract-state.ts"; export function* primitiveTransitionFunction( paima_block_height: PaimaBlockNumber, @@ -35,7 +36,10 @@ export function* primitiveTransitionFunction( case ConfigPrimitiveType.AvailPaimaL2: switch (primitive.payloadType) { case ConfigPrimitivePayloadType.Event: - return; // TODO + return yield* processAvailPaimaL2Datum( + paima_block_height, + primitive, + ); default: assertNever.default(clearBigInts(primitive)); } diff --git a/packages/node-sdk/sync/deno.json b/packages/node-sdk/sync/deno.json index 853aff120..5879d4f15 100644 --- a/packages/node-sdk/sync/deno.json +++ b/packages/node-sdk/sync/deno.json @@ -14,6 +14,7 @@ "json-stable-stringify": "npm:json-stable-stringify@^1.2.1", "@utxorpc/sdk": "npm:@utxorpc/sdk@^0.6.8", "@utxorpc/spec": "npm:@utxorpc/spec@^0.16.0", - "@sinclair/typebox": "npm:@sinclair/typebox@^0.34.30" + "@sinclair/typebox": "npm:@sinclair/typebox@^0.34.30", + "avail-js-sdk": "npm:avail-js-sdk@^0.4.2" } } \ No newline at end of file diff --git a/packages/node-sdk/sync/src/sync-protocols/avail/AvailClient.ts b/packages/node-sdk/sync/src/sync-protocols/avail/AvailClient.ts new file mode 100644 index 000000000..337eeeb60 --- /dev/null +++ b/packages/node-sdk/sync/src/sync-protocols/avail/AvailClient.ts @@ -0,0 +1,73 @@ +import { SDK } from "avail-js-sdk"; +import type { + AvailBlock, + AvailBlockDataItem, + AvailBlockHeader, +} from "./types.ts"; + +const AVAIL_CLIENT_DEFAULT_URL = "http://localhost:7007"; +const AVAIL_NODE_DEFAULT_URL = "ws://localhost:9955/ws"; + +export class AvailClient { + private readonly url: string; + private readonly sdk: Promise; + constructor(nodeUrl: string, lightClientUrl: string) { + this.url = lightClientUrl ?? AVAIL_CLIENT_DEFAULT_URL; + this.sdk = SDK.New(nodeUrl ?? AVAIL_NODE_DEFAULT_URL); + } + + async getLatestBlockHeight(): Promise { + const api = (await this.sdk).client.api; + // Block from avail node is slightly above the light client + // const header = await api.rpc.chain.getHeader(); + const statusResponse = await fetch(`${this.url}/v2/status`); + if (!statusResponse.ok) { + throw new Error( + `Failed to get status from light client, status: ${statusResponse.status}`, + ); + } + const status = await statusResponse.json(); + const num = status.blocks?.latest as number; + // const num = header.number; + // return num.toNumber(); + return Math.max(num - 1, 1); + } + + async getBlockFromHash(hash: string): Promise { + const block = await (await this.sdk).client.api.rpc.chain.getBlock(hash); + return { + header: block.block.header as unknown as AvailBlockHeader, + extrinsics: block.block.extrinsics as unknown as string[], + }; + } + + async getBlockHeaderFromHeight(height: number): Promise { + const response = await fetch(`${this.url}/v2/blocks/${height}/header`); + if (!response.ok) { + throw new Error( + `Failed to get block header from height ${height}, status: ${response.status}`, + ); + } + const blockHeader = await response.json() as AvailBlockHeader; + if (!blockHeader) { + throw new Error( + `Failed to get block header from height ${height}, no header found`, + ); + } + return blockHeader; + } + + async getBlockDataFromHeight(height: number): Promise { + let response = await fetch(`${this.url}/v2/blocks/${height}/data`); + if (response.status === 400) { + response = await fetch(`${this.url}/v2/blocks/${height + 1}/data`); + } + if (!response.ok) { + throw new Error( + `Failed to get block data from height ${height}, status: ${response.status}`, + ); + } + const blockData = await response.json() as AvailBlockDataItem; + return blockData; + } +} diff --git a/packages/node-sdk/sync/src/sync-protocols/avail/fetcher.ts b/packages/node-sdk/sync/src/sync-protocols/avail/fetcher.ts new file mode 100644 index 000000000..200f1a1dc --- /dev/null +++ b/packages/node-sdk/sync/src/sync-protocols/avail/fetcher.ts @@ -0,0 +1,183 @@ +import { + ConfigPrimitivePayloadType, + ConfigPrimitiveType, + ConfigSyncProtocolType, + type PrimitiveEntry, + type SyncProtocolWithNetwork, +} from "@paima/config"; +import { BaseDataFetcher } from "../base/fetcher.ts"; +import type { DataFetched } from "../base/fetcher.ts"; +import type { + LastPage, + OutputAndCleanup, + RootConversion, +} from "../base/state.ts"; +import type { RootOutput, RootPage } from "../types.ts"; +import type { Input, Output, Page, PrimitiveType } from "./types.ts"; +import { AvailClient } from "./AvailClient.ts"; +import { all, call, type Operation, sleep } from "effection"; +import { bound } from "@paima/utils"; + +export class AvailFetcher extends BaseDataFetcher< + Input, + Output, + RootOutput, + Page, + RootPage +> { + readonly client: AvailClient; + + constructor( + readonly config: Extract< + SyncProtocolWithNetwork, + { syncProtocolType: ConfigSyncProtocolType.AVAIL_PARALLEL } + >, + ) { + super(config.syncProtocol.name); + this.client = new AvailClient( + config.syncProtocol.rpc, + config.syncProtocol.lightClient, + ); + } + + @bound + override *readData( + data: Input, + rootConversion: RootConversion, + lastPage: LastPage | undefined, + ): Operation> { + const outputs: OutputAndCleanup[] = []; + console.log( + `[Avail] Fetching blocks from ${data.from} to ${data.to}. ${ + data.isPresync ? "[presync]" : "" + }`, + ); + for (let height = data.from; height <= data.to; height++) { + let header; + try { + header = yield* call(() => + this.client.getBlockHeaderFromHeight(height) + ); + } catch (_e) { + // Likely reached the tip; stop here + break; + } + + const primitives = yield* this.readPrimitives( + height, + header, + this.config.primitives, + ); + + outputs.push({ + output: { + raw: header, + primitives, + }, + cleanup: () => {}, + }); + } + + if (outputs.length === 0) { + if (!lastPage) { + throw new Error( + `Could not fetch any blocks from ${data.from} to ${data.to} and no previous page was found.`, + ); + } + return { + output: [], + lastPage, + }; + } + + const lastOutput = outputs[outputs.length - 1].output; + return { + output: outputs, + lastPage: { + ownBlockNumber: lastOutput.raw.number, + own: { + height: lastOutput.raw.number, + hash: lastOutput.raw.hash, + }, + root: rootConversion.toRootPage(lastOutput), + }, + }; + } + + @bound + *readPrimitives( + height: number, + header: Output["raw"], + primitives: PrimitiveEntry[], + ): Operation { + const allOperations: Operation[] = []; + for (const primitive of primitives) { + allOperations.push( + this.fetchPaimaL2(height, primitive, header), + ); + } + return (yield* all(allOperations)).flat().filter( + Boolean, + ) as PrimitiveType[]; + } + + @bound + *fetchPaimaL2( + height: number, + primitive: PrimitiveEntry, + header: Output["raw"], + ): Operation { + // For now we only read blocks; if the appId appears in the block header + // we will invoke the data endpoint, but we will not emit a primitive yet. + const appId = primitive.primitive.appId; + if (typeof appId !== "number") return undefined; + + const isPresent = header.extension.app_lookup.index.some((e) => + e.appId === appId + ); + if (!isPresent) return undefined; + // Read block data for the corresponding height to unblock future parsing. + // Intentionally ignore the result for now. + const blockData = yield* call(() => + this.client.getBlockDataFromHeight(height) + ); + // TODO: handle multiple data transactions + const dataTransaction = blockData.data_transactions.at(0); + if (!dataTransaction) return undefined; + // TODO: is always a JSON string? + const data: string = atob(dataTransaction.data); + return { + input: primitive.primitive, + primitiveType: ConfigPrimitiveType.AvailPaimaL2, + payloadType: ConfigPrimitivePayloadType.Event, + output: { + payloadType: ConfigPrimitivePayloadType.Event, + primitive: ConfigPrimitiveType.AvailPaimaL2, + payload: { + inputData: height.toString(), + inputNonce: "0x", // TODO replace this with something meaningful + suppliedValue: data, + }, + syncProtocol: { + type: ConfigSyncProtocolType.AVAIL_PARALLEL, + name: this.config.syncProtocol.name, + payload: { + primitiveName: primitive.primitive.name, + caip2: this.config.network.caip2, + ownChain: { + blockNumber: height, + }, + extrinsicIndex: 0, + mainchain: { + blockNumber: null, + timestamp: null, + }, + }, + internal: { + transactionHash: header.hash, // TODO replace this with real txHash + }, + }, + }, + }; + } +} diff --git a/packages/node-sdk/sync/src/sync-protocols/avail/state.ts b/packages/node-sdk/sync/src/sync-protocols/avail/state.ts new file mode 100644 index 000000000..3329c62aa --- /dev/null +++ b/packages/node-sdk/sync/src/sync-protocols/avail/state.ts @@ -0,0 +1,134 @@ +import { call, type Operation } from "effection"; +import { bound, type TimestampMs } from "@paima/utils"; +import type { PoolClient } from "pg"; +import { type LastPage, SyncState } from "../base/state.ts"; +import type { RootOutput, RootPage } from "../types.ts"; +import type { Input, Output, Page } from "./types.ts"; +import { pageRelation } from "./types.ts"; +import type { AvailFetcher } from "./fetcher.ts"; +import type { ConfigNetworkType, SyncProtocolWithNetwork } from "@paima/config"; +import { getPage } from "@paima/db"; +import { AvailClient } from "./AvailClient.ts"; +import { applyDelay } from "../common/utils.ts"; + +export class AvailSyncState extends SyncState< + Input, + Output, + Page, + RootOutput, + RootPage, + AvailFetcher +> { + constructor( + lastPage: LastPage | undefined, + readonly config: Extract< + SyncProtocolWithNetwork, + { networkType: ConfigNetworkType.AVAIL } + >, + fetcher: AvailFetcher, + public readonly client: AvailClient, + dbConn: PoolClient, + ) { + super( + config.syncProtocol.name, + lastPage, + fetcher, + pageRelation, + dbConn, + ); + } + + @bound + override toPage(input: Input, data: Output[]): Page { + const lastBlock = data[data.length - 1]; + return { + height: lastBlock.raw.number, + hash: lastBlock.raw.hash, + }; + } + + @bound + override toRootPage(data: Output): RootPage { + // Avail headers include `received_at` (sec). Use it as the chain page. + return applyDelay( + data.raw.received_at * 1000, + this.config.syncProtocol.delayMs, + ); + } + + @bound + override toRootOutput(_data: Output): RootOutput { + throw new Error("Only main chains create root outputs"); + } + + @bound + override *stateToInput(): Operation { + const latestHeight = yield* call(() => this.client.getLatestBlockHeight()); + const startHeight = this.lastPage?.own.height ?? + this.config.syncProtocol.startBlockHeight - 1; + + if (startHeight >= latestHeight) { + return undefined; + } + + const from = startHeight + 1; + const to = Math.min( + from + this.config.syncProtocol.stepSize - 1, + latestHeight, + ); + + return { + from, + to, + isPresync: false, + }; + } + + @bound + override mergeDatum(ourOutput: Output, rootOutput: RootOutput): void { + const primitives = ourOutput.primitives.map((p) => ({ + ...p, + source: this.config.syncProtocol.name, + })); + const blockInfo = [{ + protocol_name: this.config.syncProtocol.name, + block_number: ourOutput.raw.number, + blockHash: ourOutput.raw.hash, + }]; + rootOutput.blockInfo.push(...blockInfo); + rootOutput.primitives.push(...primitives); + } + + @bound + override getNamespace(): string[] { + return [this.config.network.name, this.config.syncProtocol.name]; + } + + static *restoreState( + dbConn: PoolClient, + config: Extract< + SyncProtocolWithNetwork, + { networkType: ConfigNetworkType.AVAIL } + >, + fetcher: AvailFetcher, + ): Operation { + const [result] = yield* call(async () => + await getPage.run({ + protocol_name: config.syncProtocol.name, + }, dbConn) + ); + const page = result + ? result.page as unknown as LastPage + : undefined; + return new AvailSyncState( + page, + config, + fetcher, + new AvailClient( + config.syncProtocol.rpc, + config.syncProtocol.lightClient, + ), + dbConn, + ); + } +} diff --git a/packages/node-sdk/sync/src/sync-protocols/avail/types.ts b/packages/node-sdk/sync/src/sync-protocols/avail/types.ts new file mode 100644 index 000000000..8234301d7 --- /dev/null +++ b/packages/node-sdk/sync/src/sync-protocols/avail/types.ts @@ -0,0 +1,72 @@ +import type { + ConfigPrimitivePayloadType, + ConfigPrimitiveType, + ConfigSyncProtocolType, + FlattenSyncProtocolIOFor, +} from "@paima/config"; +import type { BlockNumber } from "@paima/utils"; +import type { PageSyncRange } from "../common/page-helpers.ts"; +import type { PageRelation } from "../base/page.ts"; + +export type AvailBlockHeader = { + hash: `0x${string}`; + parent_hash: `0x${string}`; + number: number; + state_root: `0x${string}`; + extrinsics_root: `0x${string}`; + extension: { + rows: number; + cols: number; + data_root: `0x${string}`; + commitments: string[]; + app_lookup: { + size: number; + index: { + appId: number; + start: number; + }[]; + }; + }; + received_at: number; +}; + +export type AvailBlockDataItem = { + block_number: number; + data_transactions: { + data: string; // BASE64 encoded data + extrinsic: string; + }[]; +}; + +export type AvailBlock = { + header: AvailBlockHeader; + extrinsics: string[]; +}; + +// ===================== +// Sync protocol typings +// ===================== + +export type Page = { + height: BlockNumber; + hash: `0x${string}`; +}; + +export type PrimitiveType = FlattenSyncProtocolIOFor< + ConfigSyncProtocolType.AVAIL_PARALLEL, + ConfigPrimitiveType.AvailPaimaL2, + ConfigPrimitivePayloadType.Event +>; + +export type Input = PageSyncRange; +export type Output = { + raw: AvailBlockHeader; + primitives: PrimitiveType[]; +}; + +export const pageRelation: PageRelation = { + compare: (p1, p2) => p1.height - p2.height, + equals: (p1, p2) => p1.height === p2.height, + min: (p1, p2) => (p1.height < p2.height ? p1 : p2), + max: (p1, p2) => (p1.height > p2.height ? p1 : p2), +}; diff --git a/packages/node-sdk/sync/src/sync-protocols/midnight/state.ts b/packages/node-sdk/sync/src/sync-protocols/midnight/state.ts index 9ee683521..2bab8a429 100644 --- a/packages/node-sdk/sync/src/sync-protocols/midnight/state.ts +++ b/packages/node-sdk/sync/src/sync-protocols/midnight/state.ts @@ -33,7 +33,7 @@ export class MidnightSyncState extends SyncState< { networkType: ConfigNetworkType.MIDNIGHT } >, fetcher: MidnightFetcher, - private readonly client: MidnightClient, + public readonly client: MidnightClient, dbConn: PoolClient, ) { super( diff --git a/packages/node-sdk/sync/src/sync-protocols/types.ts b/packages/node-sdk/sync/src/sync-protocols/types.ts index f944bd86e..27b40e353 100644 --- a/packages/node-sdk/sync/src/sync-protocols/types.ts +++ b/packages/node-sdk/sync/src/sync-protocols/types.ts @@ -6,6 +6,7 @@ import type { PaginatedFetcher } from "./base/fetcher.ts"; import type { UnionToIntersection } from "@paima/utils"; import type { MidnightSyncState } from "./midnight/state.ts"; import type { NtpSyncState } from "./ntp/state.ts"; +import type { AvailSyncState } from "./avail/state.ts"; // TODO: move folders export type RootOutput = ChainBlock; @@ -16,7 +17,8 @@ export type AllSyncProtocols = | NtpSyncState | EvmSyncState | UtxoRpcSyncState - | MidnightSyncState; + | MidnightSyncState + | AvailSyncState; export type ISyncProtocol = UnionToIntersection; type toPaginated = T extends { fetcher: PaginatedFetcher } ? T diff --git a/packages/node-sdk/sync/src/syncProtocolFactory.ts b/packages/node-sdk/sync/src/syncProtocolFactory.ts index fb7494a3a..56841bc5e 100644 --- a/packages/node-sdk/sync/src/syncProtocolFactory.ts +++ b/packages/node-sdk/sync/src/syncProtocolFactory.ts @@ -15,6 +15,8 @@ import { BufferedRpc } from "./sync-protocols/utxorpc/BufferedRpc.ts"; import { UtxoRpcFetcher } from "./sync-protocols/utxorpc/fetcher.ts"; import { UtxoRpcSyncState } from "./sync-protocols/utxorpc/state.ts"; import { MidnightFetcher, MidnightSyncState } from "@paima/sync"; +import { AvailFetcher } from "./sync-protocols/avail/fetcher.ts"; +import { AvailSyncState } from "./sync-protocols/avail/state.ts"; import { NtpFetcher } from "./sync-protocols/ntp/fetcher.ts"; import { NtpSyncState } from "./sync-protocols/ntp/state.ts"; @@ -83,6 +85,16 @@ export function* genSyncProtocols( fetcher, ); result.push(state); + } else if ( + entry.networkType === ConfigNetworkType.AVAIL + ) { + const fetcher = new AvailFetcher(entry); + const state = yield* AvailSyncState.restoreState( + dbConn, + entry, + fetcher, + ); + result.push(state); } else { throw new Error(`Unsupported network type: ${entry.network.type}`); } diff --git a/packages/paima-sdk/concise/src/v2/builtins/primitives.ts b/packages/paima-sdk/concise/src/v2/builtins/primitives.ts index 0a1301921..3b4a1cbad 100644 --- a/packages/paima-sdk/concise/src/v2/builtins/primitives.ts +++ b/packages/paima-sdk/concise/src/v2/builtins/primitives.ts @@ -9,6 +9,7 @@ import { ConfigPrimitivePayloadType, ConfigPrimitiveType, ConfigSyncProtocolType, + PrimitiveAvailPaimaL2Payload, PrimitiveCardanoCarpDelegationPayload, PrimitiveCardanoCarpMintBurnPayload, PrimitiveCardanoCarpProjectedNFTPayload, @@ -121,6 +122,9 @@ export const BuiltinTransitions = { [ConfigPrimitiveType.MidnightContractState]: { scheduledPrefix: [["payload", PrimitiveMidnightContractStatePayload]], }, + [ConfigPrimitiveType.AvailPaimaL2]: { + scheduledPrefix: [["payload", PrimitiveAvailPaimaL2Payload]], + }, } as const; /** diff --git a/packages/paima-sdk/config/src/schema/network/substrate/avail.ts b/packages/paima-sdk/config/src/schema/network/substrate/avail.ts index 3ae2fd5cf..7e5b428d0 100644 --- a/packages/paima-sdk/config/src/schema/network/substrate/avail.ts +++ b/packages/paima-sdk/config/src/schema/network/substrate/avail.ts @@ -3,7 +3,7 @@ import type { Static } from "@sinclair/typebox"; import { ConfigSchema } from "../../utils.ts"; import { ConfigNetworkType } from "../types.ts"; import type { MergeIntersects } from "@paima/utils"; -import { SubstrateGenesisHash } from "./common.ts"; +import { TypeboxHelpers } from "@paima/utils"; // ===== // Utils @@ -19,7 +19,10 @@ export const ConfigNetworkSchemaAvail = new ConfigSchema({ required: Type.Object({ name: Type.String(), type: Type.Literal(ConfigNetworkType.AVAIL), - genesisHash: SubstrateGenesisHash, + genesisSeed: Type.String(), + caip2: TypeboxHelpers.Caip2, + nodeUrl: Type.String(), + genesisHash: Type.String(), }), optional: Type.Object({}), }); diff --git a/packages/paima-sdk/config/src/schema/primitive/config/avail.ts b/packages/paima-sdk/config/src/schema/primitive/config/avail.ts index d498434ab..c4f9cd769 100644 --- a/packages/paima-sdk/config/src/schema/primitive/config/avail.ts +++ b/packages/paima-sdk/config/src/schema/primitive/config/avail.ts @@ -16,6 +16,8 @@ export const PrimitiveAvailPaimaL2Config = PrimitiveConfigBaseAvail.cloneMerge({ type: Type.Literal(ConfigPrimitiveType.AvailPaimaL2), contractAddress: TypeboxHelpers.Avail.Address, appId: Type.Number(), + genesisHash: Type.String(), + scheduledPrefix: Type.String(), }), optional: Type.Object({}), }); diff --git a/packages/paima-sdk/config/src/schema/primitive/output/midnight/graphql.ts b/packages/paima-sdk/config/src/schema/primitive/output/midnight/graphql.ts index e65588708..9b562ffef 100644 --- a/packages/paima-sdk/config/src/schema/primitive/output/midnight/graphql.ts +++ b/packages/paima-sdk/config/src/schema/primitive/output/midnight/graphql.ts @@ -1,6 +1,6 @@ -import { - type MidnightEncodedStateJson, - type Satisfies, +import type { + MidnightEncodedStateJson, + Satisfies, TypeboxHelpers, } from "@paima/utils"; import { diff --git a/packages/paima-sdk/config/src/schema/primitive/output/mod.ts b/packages/paima-sdk/config/src/schema/primitive/output/mod.ts index fb43a2c28..f435dcd67 100644 --- a/packages/paima-sdk/config/src/schema/primitive/output/mod.ts +++ b/packages/paima-sdk/config/src/schema/primitive/output/mod.ts @@ -1,6 +1,7 @@ export * from "./all.ts"; export * from "./types.ts"; export * from "./cardano/carp.ts"; +export * from "./avail/rpc.ts"; export * from "./common.ts"; export * from "./evm/rpc.ts"; export * from "./midnight/graphql.ts"; diff --git a/packages/paima-sdk/config/src/schema/sync-protocols/avail/rpc.ts b/packages/paima-sdk/config/src/schema/sync-protocols/avail/rpc.ts index 1f468f3ab..fe870851d 100644 --- a/packages/paima-sdk/config/src/schema/sync-protocols/avail/rpc.ts +++ b/packages/paima-sdk/config/src/schema/sync-protocols/avail/rpc.ts @@ -39,7 +39,9 @@ export const ConfigSyncProtocolSchemaAvailBase = NameField.cloneMerge( }); export const CommonResponseAvailRpcBase = { - internal: {}, + internal: { + transactionHash: Type.String(), + }, payload: { primitiveName: Type.String(), caip2: TypeboxHelpers.Caip2, diff --git a/templates/evm-midnight/deno.lock b/templates/evm-midnight/deno.lock index d243665af..9ee3b653c 100644 --- a/templates/evm-midnight/deno.lock +++ b/templates/evm-midnight/deno.lock @@ -9,7 +9,7 @@ "jsr:@cliffy/prompt@1.0.0-rc.7": "1.0.0-rc.7", "jsr:@cliffy/table@1.0.0-rc.7": "1.0.0-rc.7", "jsr:@oak/commons@1": "1.0.1", - "jsr:@oak/oak@^17.1.4": "17.1.6", + "jsr:@oak/oak@^17.1.4": "17.1.5", "jsr:@paimaexample/chain-types@~0.3.44": "0.3.44", "jsr:@paimaexample/concise@0.3.44": "0.3.44", "jsr:@paimaexample/concise@~0.3.44": "0.3.44", @@ -32,15 +32,14 @@ "jsr:@paimaexample/sm@0.3.44": "0.3.44", "jsr:@paimaexample/sm@~0.3.44": "0.3.44", "jsr:@paimaexample/sync@~0.3.44": "0.3.44", - "jsr:@paimaexample/tui@0.3.44": "0.3.44", "jsr:@paimaexample/utils@0.3.44": "0.3.44", "jsr:@paimaexample/utils@~0.3.44": "0.3.44", - "jsr:@std/assert@1": "1.0.14", - "jsr:@std/assert@^1.0.12": "1.0.14", + "jsr:@std/assert@1": "1.0.13", + "jsr:@std/assert@^1.0.12": "1.0.13", "jsr:@std/assert@~1.0.6": "1.0.14", "jsr:@std/bytes@1": "1.0.6", "jsr:@std/cli@^1.0.22": "1.0.22", - "jsr:@std/collections@^1.1.3": "1.1.3", + "jsr:@std/collections@^1.1.1": "1.1.2", "jsr:@std/crypto@1": "1.0.5", "jsr:@std/encoding@1": "1.0.10", "jsr:@std/encoding@^1.0.10": "1.0.10", @@ -48,22 +47,21 @@ "jsr:@std/encoding@~1.0.8": "1.0.10", "jsr:@std/fmt@~1.0.2": "1.0.8", "jsr:@std/http@1": "1.0.20", - "jsr:@std/internal@^1.0.10": "1.0.10", + "jsr:@std/internal@^1.0.6": "1.0.10", "jsr:@std/internal@^1.0.9": "1.0.10", "jsr:@std/io@~0.224.9": "0.224.9", "jsr:@std/media-types@1": "1.1.0", "jsr:@std/path@1": "1.1.1", - "jsr:@std/path@1.1.1": "1.1.1", "jsr:@std/path@~1.0.6": "1.0.9", "jsr:@std/text@~1.0.7": "1.0.16", - "jsr:@std/toml@*": "1.0.10", + "jsr:@std/toml@*": "1.0.8", "jsr:@sylc/dkill@~0.12.3": "0.12.3", "npm:@bloxbean/yaci-devkit@0.10.6": "0.10.6", "npm:@cardano-foundation/cardano-verify-datasignature@1.0.11": "1.0.11", "npm:@coderspirit/nominal@^4.1.1": "4.1.1", "npm:@dcspark/carp-client@^3.3.0": "3.3.0", "npm:@dcspark/cip34-js@3.0.1": "3.0.1", - "npm:@deno/vite-plugin@^1.0.4": "1.0.5_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", + "npm:@deno/vite-plugin@^1.0.4": "1.0.5_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", "npm:@electric-sql/pglite@~0.3.5": "0.3.8", "npm:@fastify/cors@^11.0.1": "11.1.0", "npm:@fastify/swagger-ui@^5.2.3": "5.2.3", @@ -74,32 +72,21 @@ "npm:@midnight-ntwrk/compact-runtime@~0.8.1": "0.8.1", "npm:@midnight-ntwrk/ledger@*": "4.0.0", "npm:@midnight-ntwrk/ledger@4": "4.0.0", - "npm:@midnight-ntwrk/ledger@4.0.0": "4.0.0", - "npm:@midnight-ntwrk/midnight-js-contracts@2.0.2": "2.0.2", "npm:@midnight-ntwrk/midnight-js-contracts@^2.0.2": "2.0.2", "npm:@midnight-ntwrk/midnight-js-fetch-zk-config-provider@^2.0.2": "2.0.2", - "npm:@midnight-ntwrk/midnight-js-http-client-proof-provider@2.0.2": "2.0.2", "npm:@midnight-ntwrk/midnight-js-http-client-proof-provider@^2.0.2": "2.0.2", - "npm:@midnight-ntwrk/midnight-js-indexer-public-data-provider@2.0.2": "2.0.2_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.12_react@18.3.1", - "npm:@midnight-ntwrk/midnight-js-indexer-public-data-provider@^2.0.2": "2.0.2_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.12_react@18.3.1", - "npm:@midnight-ntwrk/midnight-js-level-private-state-provider@2.0.2": "2.0.2_fp-ts@2.16.11", + "npm:@midnight-ntwrk/midnight-js-indexer-public-data-provider@^2.0.2": "2.0.2_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.13", "npm:@midnight-ntwrk/midnight-js-level-private-state-provider@^2.0.2": "2.0.2_fp-ts@2.16.11", - "npm:@midnight-ntwrk/midnight-js-network-id@2.0.2": "2.0.2", "npm:@midnight-ntwrk/midnight-js-network-id@^2.0.2": "2.0.2", - "npm:@midnight-ntwrk/midnight-js-node-zk-config-provider@2.0.2": "2.0.2", "npm:@midnight-ntwrk/midnight-js-node-zk-config-provider@^2.0.2": "2.0.2", - "npm:@midnight-ntwrk/midnight-js-types@2.0.2": "2.0.2", "npm:@midnight-ntwrk/midnight-js-types@^2.0.2": "2.0.2", "npm:@midnight-ntwrk/midnight-js-utils@^2.0.2": "2.0.2", "npm:@midnight-ntwrk/onchain-runtime@0.3": "0.3.0", "npm:@midnight-ntwrk/onchain-runtime@~0.2.6": "0.2.6", "npm:@midnight-ntwrk/wallet-api@5": "5.0.0_rxjs@7.8.2", - "npm:@midnight-ntwrk/wallet-api@5.0.0": "5.0.0_rxjs@7.8.2", "npm:@midnight-ntwrk/wallet@5": "5.0.0_rxjs@7.8.2_@midnight-ntwrk+zswap@4.0.0_ws@8.18.3", - "npm:@midnight-ntwrk/wallet@5.0.0": "5.0.0_rxjs@7.8.2_@midnight-ntwrk+zswap@4.0.0_ws@8.18.3", "npm:@midnight-ntwrk/zswap@*": "4.0.0", "npm:@midnight-ntwrk/zswap@4": "4.0.0", - "npm:@midnight-ntwrk/zswap@4.0.0": "4.0.0", "npm:@nomicfoundation/hardhat-errors@3.0.1": "3.0.1", "npm:@nomicfoundation/hardhat-ignition-viem@3.0.2": "3.0.2_@nomicfoundation+hardhat-ignition@3.0.3__@nomicfoundation+hardhat-verify@3.0.2___hardhat@3.0.4____zod@3.25.76___zod@3.25.76__hardhat@3.0.4___zod@3.25.76_@nomicfoundation+hardhat-verify@3.0.2__hardhat@3.0.4___zod@3.25.76__zod@3.25.76_@nomicfoundation+hardhat-viem@3.0.0__hardhat@3.0.4___zod@3.25.76__viem@2.37.5___ws@8.18.3_@nomicfoundation+ignition-core@3.0.2_hardhat@3.0.4__zod@3.25.76_viem@2.37.5__ws@8.18.3", "npm:@nomicfoundation/hardhat-utils@3.0.0": "3.0.0", @@ -124,11 +111,8 @@ "npm:@paimaexample/explorer@0.3.44": "0.3.44", "npm:@paimaexample/npm-avail-light-client@0.3.44": "0.3.44", "npm:@paimaexample/npm-avail-node@0.3.44": "0.3.44", - "npm:@paimaexample/npm-midnight-indexer@*": "0.3.44", "npm:@paimaexample/npm-midnight-indexer@0.3.44": "0.3.44", - "npm:@paimaexample/npm-midnight-node@*": "0.3.44", "npm:@paimaexample/npm-midnight-node@0.3.44": "0.3.44", - "npm:@paimaexample/npm-midnight-proof-server@*": "0.3.44", "npm:@paimaexample/npm-midnight-proof-server@0.3.44": "0.3.44", "npm:@pgtyped/parser@2.4.2": "2.4.2", "npm:@pgtyped/runtime@2.4.2": "2.4.2", @@ -139,11 +123,11 @@ "npm:@sinclair/typebox@~0.34.41": "0.34.41", "npm:@subsquid/ss58-codec@^1.2.3": "1.2.3", "npm:@txpipe/dolos@0.19.1": "0.19.1", - "npm:@types/node@*": "24.2.0", - "npm:@types/react@^19.1.2": "19.1.12", + "npm:@types/node@*": "22.15.15", + "npm:@types/react@^19.1.2": "19.1.13", "npm:@utxorpc/sdk@~0.6.8": "0.6.8_@connectrpc+connect@1.4.0__@bufbuild+protobuf@1.10.1", "npm:@utxorpc/spec@0.16": "0.16.0", - "npm:@vitejs/plugin-react@^4.4.1": "4.7.0_vite@6.3.6__picomatch@4.0.3_@babel+core@7.28.4_@types+node@24.2.0", + "npm:@vitejs/plugin-react@^4.4.1": "4.7.0_vite@6.3.6__picomatch@4.0.3_@babel+core@7.28.4_@types+node@22.15.15", "npm:@wagmi/cli@2.3.1": "2.3.1_zod@3.25.76_esbuild@0.25.9_picomatch@3.0.1", "npm:abitype@^1.0.8": "1.1.0_zod@3.25.76", "npm:abitype@^1.1.0": "1.1.0_zod@3.25.76", @@ -151,6 +135,7 @@ "npm:aedes@~0.51.3": "0.51.3", "npm:algosdk@^3.4.0": "3.4.0", "npm:assert-never@^1.4.0": "1.4.0", + "npm:avail-js-sdk@~0.4.2": "0.4.2", "npm:bech32@2": "2.0.0", "npm:bs58@6": "6.0.0", "npm:bs58check@4": "4.0.0", @@ -164,7 +149,6 @@ "npm:hardhat@3.0.4": "3.0.4_zod@3.25.76", "npm:hi-base32@~0.5.1": "0.5.1", "npm:http-server@^14.1.1": "14.1.1", - "npm:ink@5.1.0": "5.1.0_@types+react@19.1.12_react@18.3.1", "npm:ip@^2.0.1": "2.0.1", "npm:js-base64@^3.7.7": "3.7.8", "npm:js-sha3@~0.9.3": "0.9.3", @@ -173,19 +157,15 @@ "npm:jsonc-parser@3.3.1": "3.3.1", "npm:jsonc-parser@^3.3.1": "3.3.1", "npm:material-chalk@1.1.1": "1.1.1_chalk@5.4.1", - "npm:mina-signer@^3.0.7": "3.0.7", + "npm:mina-signer@^3.0.7": "3.1.0", "npm:mqtt-pattern@^2.1.0": "2.1.0", "npm:mqtt@^5.14.0": "5.14.1", "npm:ntp-time-sync@0.5": "0.5.0", "npm:path-to-regexp@^6.3.0": "6.3.0", - "npm:pg-gateway@~0.3.0-beta.4": "0.3.0-beta.4", "npm:pg@^8.14.0": "8.16.3", "npm:react-dom@^19.1.0": "19.1.1_react@19.1.1", - "npm:react-router-dom@^7.5.1": "7.8.2_react@19.1.1_react-dom@19.1.1__react@19.1.1", - "npm:react@18.3.1": "18.3.1", + "npm:react-router-dom@^7.5.1": "7.9.1_react@19.1.1_react-dom@19.1.1__react@19.1.1", "npm:react@^19.1.0": "19.1.1", - "npm:rotating-file-stream@^3.2.6": "3.2.7", - "npm:rxjs@7.8.1": "7.8.1", "npm:rxjs@^7.8.2": "7.8.2", "npm:stream-browserify@3.0.0": "3.0.0", "npm:superjson@^2.2.1": "2.2.2", @@ -193,13 +173,12 @@ "npm:viem@*": "2.37.5_ws@8.18.3", "npm:viem@2.23.10": "2.23.10_ws@8.18.1", "npm:viem@^2.21.3": "2.37.5_ws@8.18.3", - "npm:vite-plugin-node-stdlib-browser@*": "0.2.1_node-stdlib-browser@1.3.1_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", - "npm:vite-plugin-static-copy@^3.1.1": "3.1.2_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", - "npm:vite-plugin-top-level-await@^1.6.0": "1.6.0_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", - "npm:vite-plugin-wasm@^3.5.0": "3.5.0_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", - "npm:vite@*": "6.3.6_picomatch@4.0.3_@types+node@24.2.0", - "npm:vite@^6.3.2": "6.3.6_picomatch@4.0.3_@types+node@24.2.0", - "npm:vitest@^3.2.4": "3.2.4_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", + "npm:vite-plugin-node-stdlib-browser@*": "0.2.1_node-stdlib-browser@1.3.1_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", + "npm:vite-plugin-static-copy@^3.1.1": "3.1.2_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", + "npm:vite-plugin-top-level-await@^1.6.0": "1.6.0_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", + "npm:vite-plugin-wasm@^3.5.0": "3.5.0_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", + "npm:vite@^6.3.2": "6.3.6_picomatch@4.0.3_@types+node@22.15.15", + "npm:vitest@^3.2.4": "3.2.4_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", "npm:wait-on@8.0.3": "8.0.3", "npm:web3-utils@^4.3.3": "4.3.3", "npm:ws@8.18.1": "8.18.1", @@ -266,8 +245,8 @@ "jsr:@std/media-types" ] }, - "@oak/oak@17.1.6": { - "integrity": "c7eef2eec733fba8e72b679bba3b8cf2fceccf5ef489a8b8fb43571908c0335d", + "@oak/oak@17.1.5": { + "integrity": "676263340dcfd069fb422b4274b4f75f7048a68e605dece6a2897ccfe669e7cc", "dependencies": [ "jsr:@oak/commons", "jsr:@std/assert@1", @@ -344,13 +323,10 @@ "jsr:@paimaexample/log@~0.3.44", "jsr:@paimaexample/utils@~0.3.44", "jsr:@std/encoding@~1.0.8", - "jsr:@std/path@1.1.1", - "npm:@electric-sql/pglite", "npm:@pgtyped/runtime@2.4.2", "npm:effection@3.5.0", "npm:effection@^3.5.0", - "npm:pg", - "npm:pg-gateway" + "npm:pg" ] }, "@paimaexample/event-client@0.3.44": { @@ -483,7 +459,7 @@ "jsr:@paimaexample/log@~0.3.44", "jsr:@paimaexample/sync", "jsr:@paimaexample/utils@~0.3.44", - "npm:@midnight-ntwrk/midnight-js-indexer-public-data-provider@^2.0.2", + "npm:@midnight-ntwrk/midnight-js-indexer-public-data-provider", "npm:@sinclair/typebox@~0.34.30", "npm:@utxorpc/sdk", "npm:@utxorpc/spec", @@ -496,19 +472,6 @@ "npm:viem@^2.21.3" ] }, - "@paimaexample/tui@0.3.44": { - "integrity": "280528dd521f90cce647ec2af46c1bbffce79e3cf6219e71bb9f3122ad270a1a", - "dependencies": [ - "jsr:@paimaexample/log@~0.3.44", - "jsr:@paimaexample/utils@~0.3.44", - "npm:@sinclair/typebox@~0.34.30", - "npm:fastify", - "npm:ink", - "npm:react@18.3.1", - "npm:rotating-file-stream", - "npm:tslog" - ] - }, "@paimaexample/utils@0.3.44": { "integrity": "8037a884414eda740ea4e93bb44c0cae0e7d098ef75fed82218229e75ba3cec1", "dependencies": [ @@ -527,20 +490,23 @@ "npm:viem@^2.21.3" ] }, - "@std/assert@1.0.14": { - "integrity": "68d0d4a43b365abc927f45a9b85c639ea18a9fab96ad92281e493e4ed84abaa4", + "@std/assert@1.0.13": { + "integrity": "ae0d31e41919b12c656c742b22522c32fb26ed0cba32975cb0de2a273cb68b29", "dependencies": [ - "jsr:@std/internal@^1.0.10" + "jsr:@std/internal@^1.0.6" ] }, + "@std/assert@1.0.14": { + "integrity": "68d0d4a43b365abc927f45a9b85c639ea18a9fab96ad92281e493e4ed84abaa4" + }, "@std/bytes@1.0.6": { "integrity": "f6ac6adbd8ccd99314045f5703e23af0a68d7f7e58364b47d2c7f408aeb5820a" }, "@std/cli@1.0.22": { "integrity": "50d1e4f87887cb8a8afa29b88505ab5081188f5cad3985460c3b471fa49ff21a" }, - "@std/collections@1.1.3": { - "integrity": "bf8b0818886df6a32b64c7d3b037a425111f28278d69fd0995aeb62777c986b0" + "@std/collections@1.1.2": { + "integrity": "f1685dd45c3ec27c39d0e8a642ccf810f391ec8a6cb5e7355926e6dacc64c43e" }, "@std/crypto@1.0.5": { "integrity": "0dcfbb319fe0bba1bd3af904ceb4f948cde1b92979ec1614528380ed308a3b40" @@ -578,8 +544,8 @@ "@std/text@1.0.16": { "integrity": "ddb9853b75119a2473857d691cf1ec02ad90793a2e8b4a4ac49d7354281a0cf8" }, - "@std/toml@1.0.10": { - "integrity": "87b2b7ff95afe7209a868732eb013a2707be29a15229f5b57bb13eededff4655", + "@std/toml@1.0.8": { + "integrity": "eb8ae76b4cc1c6c13f2a91123675823adbec2380de75cd3748c628960d952164", "dependencies": [ "jsr:@std/collections" ] @@ -599,14 +565,7 @@ "@adraffy/ens-normalize@1.11.0": { "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==" }, - "@alcalzone/ansi-tokenize@0.1.3": { - "integrity": "sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==", - "dependencies": [ - "ansi-styles@6.2.3", - "is-fullwidth-code-point@4.0.0" - ] - }, - "@apollo/client@3.14.0_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.12": { + "@apollo/client@3.14.0_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.13": { "integrity": "sha512-0YQKKRIxiMlIou+SekQqdCo0ZTHxOcES+K8vKB53cIDpwABNR0P0yRzPgsbgcj3zRJniD93S/ontsnZsCLZrxQ==", "dependencies": [ "@graphql-typed-document-node/core", @@ -619,9 +578,9 @@ "hoist-non-react-statics", "optimism", "prop-types", - "react@19.1.1", - "react-dom@19.1.1_react@19.1.1", - "rehackt@0.1.0_@types+react@19.1.12_react@19.1.1", + "react", + "react-dom", + "rehackt", "symbol-observable", "ts-invariant", "tslib@2.8.1", @@ -629,35 +588,8 @@ ], "optionalPeers": [ "graphql-ws@6.0.6_graphql@16.11.0_ws@8.18.3", - "react@19.1.1", - "react-dom@19.1.1_react@19.1.1" - ] - }, - "@apollo/client@3.14.0_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.12_react@18.3.1": { - "integrity": "sha512-0YQKKRIxiMlIou+SekQqdCo0ZTHxOcES+K8vKB53cIDpwABNR0P0yRzPgsbgcj3zRJniD93S/ontsnZsCLZrxQ==", - "dependencies": [ - "@graphql-typed-document-node/core", - "@wry/caches", - "@wry/equality", - "@wry/trie", - "graphql", - "graphql-tag", - "graphql-ws@6.0.6_graphql@16.11.0_ws@8.18.3", - "hoist-non-react-statics", - "optimism", - "prop-types", - "react@18.3.1", - "react-dom@19.1.1_react@19.1.1_react@18.3.1", - "rehackt@0.1.0_@types+react@19.1.12_react@19.1.1_react@18.3.1", - "symbol-observable", - "ts-invariant", - "tslib@2.8.1", - "zen-observable-ts@1.2.5" - ], - "optionalPeers": [ - "graphql-ws@6.0.6_graphql@16.11.0_ws@8.18.3", - "react@18.3.1", - "react-dom@19.1.1_react@19.1.1_react@18.3.1" + "react", + "react-dom" ] }, "@babel/code-frame@7.27.1": { @@ -886,10 +818,10 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "@deno/vite-plugin@1.0.5_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "@deno/vite-plugin@1.0.5_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-tLja5n4dyMhcze1NzvSs2iiriBymfBlDCZIrjMTxb9O2ru0gvmV6mn5oBD2teNw5Sd92cj3YJzKwsAs8tMJXlg==", "dependencies": [ - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "@electric-sql/pglite@0.3.8": { @@ -1479,10 +1411,10 @@ "lodash" ] }, - "@midnight-ntwrk/midnight-js-indexer-public-data-provider@2.0.2_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.12": { + "@midnight-ntwrk/midnight-js-indexer-public-data-provider@2.0.2_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.13": { "integrity": "sha512-yn2EriaclSNUwZqZNsgJv//6vPkW2NrA84e9S6zs7KEDDoCobtiFBlOHR54IXM2fNs3DnAojsVZiQaTY0Lq4vQ==", "dependencies": [ - "@apollo/client@3.14.0_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.12", + "@apollo/client", "@midnight-ntwrk/midnight-js-network-id", "@midnight-ntwrk/midnight-js-types", "buffer@6.0.3", @@ -1490,23 +1422,7 @@ "graphql", "graphql-ws@6.0.6_graphql@16.11.0_ws@8.18.3", "isomorphic-ws", - "rxjs@7.8.2", - "ws@8.18.3", - "zen-observable-ts@1.1.0" - ] - }, - "@midnight-ntwrk/midnight-js-indexer-public-data-provider@2.0.2_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.12_react@18.3.1": { - "integrity": "sha512-yn2EriaclSNUwZqZNsgJv//6vPkW2NrA84e9S6zs7KEDDoCobtiFBlOHR54IXM2fNs3DnAojsVZiQaTY0Lq4vQ==", - "dependencies": [ - "@apollo/client@3.14.0_graphql@16.11.0_graphql-ws@6.0.6__graphql@16.11.0__ws@8.18.3_react@19.1.1_react-dom@19.1.1__react@19.1.1_ws@8.18.3_@types+react@19.1.12_react@18.3.1", - "@midnight-ntwrk/midnight-js-network-id", - "@midnight-ntwrk/midnight-js-types", - "buffer@6.0.3", - "cross-fetch", - "graphql", - "graphql-ws@6.0.6_graphql@16.11.0_ws@8.18.3", - "isomorphic-ws", - "rxjs@7.8.2", + "rxjs", "ws@8.18.3", "zen-observable-ts@1.1.0" ] @@ -1536,7 +1452,7 @@ "@midnight-ntwrk/midnight-js-types@2.0.2": { "integrity": "sha512-ewHBQRCvY8u0+JAGdjQ86KsyoTA3dbNBLkuZ1o5U6vU/1jFjnFA1FL9skTgdXzSKjjfwA930i+OvbaUaUzFEHQ==", "dependencies": [ - "rxjs@7.8.2" + "rxjs" ] }, "@midnight-ntwrk/midnight-js-utils@2.0.2": { @@ -1552,7 +1468,7 @@ "integrity": "sha512-L5Z9+v+ouqTtPLoXpngtBVHZ0SmC3zLrCZbuYnd/ul6p9UbwUQ3AQeqMhclv2jhwFRNYsL0fBOqpD5dvs4SvLQ==", "dependencies": [ "@midnight-ntwrk/zswap", - "rxjs@7.8.2" + "rxjs" ] }, "@midnight-ntwrk/wallet-sdk-address-format@2.0.0_@midnight-ntwrk+zswap@4.0.0": { @@ -1577,7 +1493,7 @@ "@midnight-ntwrk/zswap", "isomorphic-ws", "node-fetch@3.3.2", - "rxjs@7.8.2", + "rxjs", "scale-ts", "ws@8.18.3" ] @@ -2694,7 +2610,7 @@ "@paimaexample/npm-midnight-indexer@0.3.44": { "integrity": "sha512-5fL4wKhvq+NsL5lOnh4+/KbOZ9j8DQox09KX88R+U6uX2letRFv8o9s9siong4dygSIAB7gKIiieYfDuDxSjQA==", "dependencies": [ - "axios@1.11.0", + "axios@1.12.1", "axios-proxy-builder", "extract-zip", "js-yaml" @@ -2704,7 +2620,7 @@ "@paimaexample/npm-midnight-node@0.3.44": { "integrity": "sha512-2V+v86AS5i3aJu4+m+mtok6nptteN5hvM+HmiOkZGyIzUGhkbV9lwbguMovYLk/HiqpmzgERHf8OHaNFlufI9w==", "dependencies": [ - "axios@1.11.0", + "axios@1.12.1", "axios-proxy-builder", "extract-zip" ], @@ -2713,7 +2629,7 @@ "@paimaexample/npm-midnight-proof-server@0.3.44": { "integrity": "sha512-F4bnnypMS2gaeUKoqnX3FKR9tpX1VdIU7Yq+Je0c2vlezcpYENSQNzoW3QGWxM/1ISQHY9dHqgOTE4kOZ6s5cg==", "dependencies": [ - "axios@1.11.0", + "axios@1.12.1", "extract-zip" ], "bin": true @@ -2752,6 +2668,118 @@ "@pkgjs/parseargs@0.11.0": { "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==" }, + "@polkadot-api/json-rpc-provider-proxy@0.1.0": { + "integrity": "sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==" + }, + "@polkadot-api/json-rpc-provider@0.0.1": { + "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==" + }, + "@polkadot-api/metadata-builders@0.3.2": { + "integrity": "sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==", + "dependencies": [ + "@polkadot-api/substrate-bindings", + "@polkadot-api/utils" + ] + }, + "@polkadot-api/observable-client@0.3.2_@polkadot-api+substrate-client@0.1.4_rxjs@7.8.2": { + "integrity": "sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==", + "dependencies": [ + "@polkadot-api/metadata-builders", + "@polkadot-api/substrate-bindings", + "@polkadot-api/substrate-client", + "@polkadot-api/utils", + "rxjs" + ] + }, + "@polkadot-api/substrate-bindings@0.6.0": { + "integrity": "sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==", + "dependencies": [ + "@noble/hashes@1.8.0", + "@polkadot-api/utils", + "@scure/base@1.2.6", + "scale-ts" + ] + }, + "@polkadot-api/substrate-client@0.1.4": { + "integrity": "sha512-MljrPobN0ZWTpn++da9vOvt+Ex+NlqTlr/XT7zi9sqPtDJiQcYl+d29hFAgpaeTqbeQKZwz3WDE9xcEfLE8c5A==", + "dependencies": [ + "@polkadot-api/json-rpc-provider", + "@polkadot-api/utils" + ] + }, + "@polkadot-api/utils@0.1.0": { + "integrity": "sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA==" + }, + "@polkadot/api-augment@15.10.2": { + "integrity": "sha512-CCli5ltPiJEyQF/8DmTRpTfYKHY4W0B+xQDmzKgFmd+Q64Qot0fGpsaZXZftef1Tuoh0Uqak9qM+6B4APXIPkQ==", + "dependencies": [ + "@polkadot/api-base", + "@polkadot/rpc-augment", + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types-augment@15.10.2", + "@polkadot/types-codec", + "@polkadot/util", + "tslib@2.8.1" + ] + }, + "@polkadot/api-base@15.10.2": { + "integrity": "sha512-7DJw++5IbPrsLPGcTlIZbMOretfvQJG80CW8+A+t2BLxbbv+I2neWNQ9QV9O28XsbOHzNgKHXuRyirdaG/dvrg==", + "dependencies": [ + "@polkadot/rpc-core", + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/util", + "rxjs", + "tslib@2.8.1" + ] + }, + "@polkadot/api-derive@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { + "integrity": "sha512-tF9DZvdm7hkRIJ1HtJzu73vdqQWBr8935YSN/RNsRb4FhJK5cHaC2uB4NLdRMnyUjmH0JRSnvWFq+HHcVxFJZw==", + "dependencies": [ + "@polkadot/api", + "@polkadot/api-augment", + "@polkadot/api-base", + "@polkadot/rpc-core", + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types-codec", + "@polkadot/util", + "@polkadot/util-crypto@13.5.6_@polkadot+util@13.5.6_@polkadot+x-randomvalues@13.5.6__@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6_@polkadot+wasm-util@7.5.1__@polkadot+util@13.5.6", + "rxjs", + "tslib@2.8.1" + ] + }, + "@polkadot/api@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { + "integrity": "sha512-UM/510TwdugPjMpfyhhMNOZJ3M2ftRk0Ftxe+WSWev3o1u0dxqGuIN6fN0c224CHXIr58uWXUoMRHi6Cnfaxhw==", + "dependencies": [ + "@polkadot/api-augment", + "@polkadot/api-base", + "@polkadot/api-derive", + "@polkadot/keyring@13.5.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/rpc-augment", + "@polkadot/rpc-core", + "@polkadot/rpc-provider", + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types-augment@15.10.2", + "@polkadot/types-codec", + "@polkadot/types-create", + "@polkadot/types-known", + "@polkadot/util", + "@polkadot/util-crypto@13.5.6_@polkadot+util@13.5.6_@polkadot+x-randomvalues@13.5.6__@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6_@polkadot+wasm-util@7.5.1__@polkadot+util@13.5.6", + "eventemitter3@5.0.1", + "rxjs", + "tslib@2.8.1" + ] + }, + "@polkadot/keyring@13.5.6": { + "integrity": "sha512-Ybe6Mflrh96FKR5tfEaf/93RxJD7x9UigseNOJW6Yd8LF+GesdxrqmZD7zh+53Hb7smGQWf/0FCfwhoWZVgPUQ==" + }, + "@polkadot/keyring@13.5.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { + "integrity": "sha512-Ybe6Mflrh96FKR5tfEaf/93RxJD7x9UigseNOJW6Yd8LF+GesdxrqmZD7zh+53Hb7smGQWf/0FCfwhoWZVgPUQ==", + "dependencies": [ + "@polkadot/util", + "@polkadot/util-crypto@13.5.6_@polkadot+util@13.5.6_@polkadot+x-randomvalues@13.5.6__@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6_@polkadot+wasm-util@7.5.1__@polkadot+util@13.5.6", + "tslib@2.8.1" + ] + }, "@polkadot/networks@13.5.6": { "integrity": "sha512-9HqUIBOHnz9x/ssPb0aOD/7XcU8vGokEYpLoNgexFNIJzqDgrDHXR197iFpkbMqA/+98zagrvYUyPYj1yYs9Jw==", "dependencies": [ @@ -2760,6 +2788,133 @@ "tslib@2.8.1" ] }, + "@polkadot/rpc-augment@15.10.2": { + "integrity": "sha512-9QQ8utyAEdEl7iScteIN59EBu8eNZjZa8AfKBitbdq1Hezd+WPil5LdoYi+wmJOMhZHeDT1s7/j2+kY1Z2Vymg==", + "dependencies": [ + "@polkadot/rpc-core", + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types-codec", + "@polkadot/util", + "tslib@2.8.1" + ] + }, + "@polkadot/rpc-core@15.10.2": { + "integrity": "sha512-vqDvr1WcHH3WPzDV4WTlf2S5cDmIoFPciynJ8eNcKqR3mG7Cqd0iL+MG6s0KFXdSY2Qvtl+0C6yZN0xr4Ha6BQ==", + "dependencies": [ + "@polkadot/rpc-augment", + "@polkadot/rpc-provider", + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/util", + "rxjs", + "tslib@2.8.1" + ] + }, + "@polkadot/rpc-provider@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { + "integrity": "sha512-kqpPW8U0stVW+uOZP8g5d87Xb8rbXJR5PUub6xgGG6AOMbbvvuCU3GSohu/iozo4p9uD7TGH90jvbxj1rjJVMA==", + "dependencies": [ + "@polkadot/keyring@13.5.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types-support", + "@polkadot/util", + "@polkadot/util-crypto@13.5.6_@polkadot+util@13.5.6_@polkadot+x-randomvalues@13.5.6__@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6_@polkadot+wasm-util@7.5.1__@polkadot+util@13.5.6", + "@polkadot/x-fetch", + "@polkadot/x-global", + "@polkadot/x-ws", + "eventemitter3@5.0.1", + "mock-socket", + "nock", + "tslib@2.8.1" + ], + "optionalDependencies": [ + "@substrate/connect" + ] + }, + "@polkadot/types-augment@15.10.2": { + "integrity": "sha512-X/xh+Dzud6OIyr7q8xttAwn+Fb5hKImIWEO1oG8WcInqv+P0vRyu7Tds+2ut9t64sJi3ydJ7I+T+WxZYheCU7g==", + "dependencies": [ + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types-codec", + "@polkadot/util", + "tslib@2.8.1" + ] + }, + "@polkadot/types-augment@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { + "integrity": "sha512-X/xh+Dzud6OIyr7q8xttAwn+Fb5hKImIWEO1oG8WcInqv+P0vRyu7Tds+2ut9t64sJi3ydJ7I+T+WxZYheCU7g==", + "dependencies": [ + "@polkadot/types@15.10.2", + "@polkadot/types-codec", + "@polkadot/util", + "tslib@2.8.1" + ] + }, + "@polkadot/types-codec@15.10.2": { + "integrity": "sha512-dhwbaukUZiYDW3QAAnLAFThYE5hQGdwBMWOVTt9+aBWxEKovLK93j0V30tEzMUtrZy8xaRWdhdDeQ3DSmxEP6w==", + "dependencies": [ + "@polkadot/util", + "@polkadot/x-bigint", + "tslib@2.8.1" + ] + }, + "@polkadot/types-create@15.10.2": { + "integrity": "sha512-vqXwPUSgx/By31qSkhOR5GN6zMbF1MkiX3F1g5KKHaRE8p/DdTry4LhufxhtK1mr9eBWvVGXxCOZdwjQco2M1A==", + "dependencies": [ + "@polkadot/types-codec", + "@polkadot/util", + "tslib@2.8.1" + ] + }, + "@polkadot/types-known@15.10.2": { + "integrity": "sha512-vs02WiIlLualrrh/EuA5qzK6QzatVPqBBNqa66dUtmyhJy48OEelBK+QLfOIQvZKU0ModEunoVrnxuY+O1DCmA==", + "dependencies": [ + "@polkadot/networks", + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types-codec", + "@polkadot/types-create", + "@polkadot/util", + "tslib@2.8.1" + ] + }, + "@polkadot/types-support@15.10.2": { + "integrity": "sha512-sHamH6MehJa7aGZ/DHTB6vJAhSN5VrJx5lpDpb3xgBFTr0cVc5IsociqgJ/mgvyEIdLF3laraPxREqxCmuxTaQ==", + "dependencies": [ + "@polkadot/util", + "tslib@2.8.1" + ] + }, + "@polkadot/types@15.10.2": { + "integrity": "sha512-/wDwKdDijxSXyNk5YezhVitdFxoQaTSSG9KXa7dEWujtmS/51UHmt9+P3W8b8D8kKaCvumahf/ww3GJI6s0Eqw==", + "dependencies": [ + "@polkadot/keyring@13.5.6", + "@polkadot/types-augment@15.10.2", + "@polkadot/types-codec", + "@polkadot/types-create", + "@polkadot/util", + "@polkadot/util-crypto@13.5.6", + "rxjs", + "tslib@2.8.1" + ] + }, + "@polkadot/types@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6": { + "integrity": "sha512-/wDwKdDijxSXyNk5YezhVitdFxoQaTSSG9KXa7dEWujtmS/51UHmt9+P3W8b8D8kKaCvumahf/ww3GJI6s0Eqw==", + "dependencies": [ + "@polkadot/keyring@13.5.6_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types-augment@15.10.2_@polkadot+util@13.5.6_@polkadot+util-crypto@13.5.6__@polkadot+util@13.5.6__@polkadot+x-randomvalues@13.5.6___@polkadot+util@13.5.6___@polkadot+wasm-util@7.5.1____@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6", + "@polkadot/types-codec", + "@polkadot/types-create", + "@polkadot/util", + "@polkadot/util-crypto@13.5.6_@polkadot+util@13.5.6_@polkadot+x-randomvalues@13.5.6__@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6_@polkadot+wasm-util@7.5.1__@polkadot+util@13.5.6", + "rxjs", + "tslib@2.8.1" + ] + }, + "@polkadot/util-crypto@13.5.6": { + "integrity": "sha512-1l+t5lVc9UWxvbJe7/3V+QK8CwrDPuQjDK6FKtDZgZCU0JRrjySOxV0J4PeDIv8TgXZtbIcQFVUhIsJTyKZZJQ==", + "dependencies": [ + "@noble/curves@1.9.1", + "@noble/hashes@1.8.0", + "@polkadot/networks" + ] + }, "@polkadot/util-crypto@13.5.6_@polkadot+util@13.5.6_@polkadot+x-randomvalues@13.5.6__@polkadot+util@13.5.6__@polkadot+wasm-util@7.5.1___@polkadot+util@13.5.6_@polkadot+wasm-util@7.5.1__@polkadot+util@13.5.6": { "integrity": "sha512-1l+t5lVc9UWxvbJe7/3V+QK8CwrDPuQjDK6FKtDZgZCU0JRrjySOxV0J4PeDIv8TgXZtbIcQFVUhIsJTyKZZJQ==", "dependencies": [ @@ -2850,6 +3005,14 @@ "tslib@2.8.1" ] }, + "@polkadot/x-fetch@13.5.6": { + "integrity": "sha512-gqx8c6lhnD7Qht+56J+4oeTA8YZ9bAPqzOt2cRJf9MTplMy44W6671T2p6hA3QMvzy4aBTxMie3uKc4tGpLu4A==", + "dependencies": [ + "@polkadot/x-global", + "node-fetch@3.3.2", + "tslib@2.8.1" + ] + }, "@polkadot/x-global@13.5.6": { "integrity": "sha512-iw97n0Bnl2284WgAK732LYR4DW6w5+COfBfHzkhiHqs5xwPEwWMgWGrf2hM8WAQqNIz6Ni8w/jagucPyQBur3Q==", "dependencies": [ @@ -2879,6 +3042,14 @@ "tslib@2.8.1" ] }, + "@polkadot/x-ws@13.5.6": { + "integrity": "sha512-247ktVp/iE57NTXjFpHaoPoDcvoEPb8+16r2Eq0IBQ2umOV7P6KmxvdNx5eFUvRsgXvBpNwUXE1WVnXjK/eDtA==", + "dependencies": [ + "@polkadot/x-global", + "tslib@2.8.1", + "ws@8.18.3" + ] + }, "@protobufjs/aspromise@1.1.2": { "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" }, @@ -3175,6 +3346,35 @@ "blake2b" ] }, + "@substrate/connect-extension-protocol@2.2.2": { + "integrity": "sha512-t66jwrXA0s5Goq82ZtjagLNd7DPGCNjHeehRlE/gcJmJ+G56C0W+2plqOMRicJ8XGR1/YFnUSEqUFiSNbjGrAA==" + }, + "@substrate/connect-known-chains@1.10.3": { + "integrity": "sha512-OJEZO1Pagtb6bNE3wCikc2wrmvEU5x7GxFFLqqbz1AJYYxSlrPCGu4N2og5YTExo4IcloNMQYFRkBGue0BKZ4w==" + }, + "@substrate/connect@0.8.11_smoldot@2.0.26": { + "integrity": "sha512-ofLs1PAO9AtDdPbdyTYj217Pe+lBfTLltdHDs3ds8no0BseoLeAGxpz1mHfi7zB4IxI3YyAiLjH6U8cw4pj4Nw==", + "dependencies": [ + "@substrate/connect-extension-protocol", + "@substrate/connect-known-chains", + "@substrate/light-client-extension-helpers", + "smoldot" + ], + "deprecated": true + }, + "@substrate/light-client-extension-helpers@1.0.0_smoldot@2.0.26_@polkadot-api+substrate-client@0.1.4_rxjs@7.8.2": { + "integrity": "sha512-TdKlni1mBBZptOaeVrKnusMg/UBpWUORNDv5fdCaJklP4RJiFOzBCrzC+CyVI5kQzsXBisZ+2pXm+rIjS38kHg==", + "dependencies": [ + "@polkadot-api/json-rpc-provider", + "@polkadot-api/json-rpc-provider-proxy", + "@polkadot-api/observable-client", + "@polkadot-api/substrate-client", + "@substrate/connect-extension-protocol", + "@substrate/connect-known-chains", + "rxjs", + "smoldot" + ] + }, "@substrate/ss58-registry@1.51.0": { "integrity": "sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ==" }, @@ -3263,7 +3463,7 @@ "@txpipe/dolos@0.19.1": { "integrity": "sha512-7CPaD60U4ah4fLIywNRUJ00SfvbvQSmS0oQCDkSPgWYpu5fSSjNiGRT0DKiITaFFBVHIQgqcchlDDi3fmnXl2g==", "dependencies": [ - "axios@1.11.0", + "axios@1.12.1", "axios-proxy-builder", "console.table", "detect-libc", @@ -3311,13 +3511,13 @@ "@types/bn.js@5.2.0": { "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/bunyan@1.8.9": { "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/chai@5.2.2": { @@ -3329,7 +3529,7 @@ "@types/connect@3.4.36": { "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/debug@4.1.12": { @@ -3350,7 +3550,7 @@ "@types/memcached@2.2.10": { "integrity": "sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/ms@2.1.0": { @@ -3359,19 +3559,19 @@ "@types/mysql@2.15.26": { "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, - "@types/node@22.7.5": { - "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "@types/node@22.15.15": { + "integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==", "dependencies": [ - "undici-types@6.19.8" + "undici-types@6.21.0" ] }, - "@types/node@24.2.0": { - "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", + "@types/node@22.7.5": { + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", "dependencies": [ - "undici-types@7.10.0" + "undici-types@6.19.8" ] }, "@types/object-inspect@1.13.0": { @@ -3386,13 +3586,13 @@ "@types/pg@8.6.1": { "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", "dependencies": [ - "@types/node@24.2.0", + "@types/node@22.15.15", "pg-protocol", "pg-types" ] }, - "@types/react@19.1.12": { - "integrity": "sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w==", + "@types/react@19.1.13": { + "integrity": "sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==", "dependencies": [ "csstype" ] @@ -3400,7 +3600,7 @@ "@types/readable-stream@4.0.21": { "integrity": "sha512-19eKVv9tugr03IgfXlA9UVUVRbW6IuqRO5B92Dl4a6pT7K8uaGrNS0GkxiZD0BOk6PLuXl5FhWl//eX/pzYdTQ==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/shimmer@1.2.0": { @@ -3409,19 +3609,19 @@ "@types/tedious@4.0.14": { "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/ws@8.18.1": { "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/yauzl@2.10.3": { "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dependencies": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ] }, "@types/zen-observable@0.8.3": { @@ -3455,7 +3655,7 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "@vitejs/plugin-react@4.7.0_vite@6.3.6__picomatch@4.0.3_@babel+core@7.28.4_@types+node@24.2.0": { + "@vitejs/plugin-react@4.7.0_vite@6.3.6__picomatch@4.0.3_@babel+core@7.28.4_@types+node@22.15.15": { "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", "dependencies": [ "@babel/core", @@ -3464,7 +3664,7 @@ "@rolldown/pluginutils", "@types/babel__core", "react-refresh", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "@vitest/expect@3.2.4": { @@ -3489,16 +3689,16 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "@vitest/mocker@3.2.4_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "@vitest/mocker@3.2.4_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", "dependencies": [ "@vitest/spy", "estree-walker@3.0.3", "magic-string", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ], "optionalPeers": [ - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "@vitest/pretty-format@3.2.4": { @@ -3720,12 +3920,6 @@ "ansi-colors@4.1.3": { "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" }, - "ansi-escapes@7.1.0": { - "integrity": "sha512-YdhtCd19sKRKfAAUsrcC1wzm4JuzJoiX4pOJqIoW2qmKj5WzG/dL8uUJ0361zaXtHqK7gEhOwtAtz7t3Yq3X5g==", - "dependencies": [ - "environment" - ] - }, "ansi-regex@5.0.1": { "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, @@ -3790,8 +3984,12 @@ "atomic-sleep@1.0.0": { "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" }, - "auto-bind@5.0.1": { - "integrity": "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==" + "avail-js-sdk@0.4.2": { + "integrity": "sha512-5lW1l9pxYm+OGKSmJsETx3L/9bu784x7h3CuMcHB1x+mZNWBCRe14jRvTFCbGo3WIMvjSjDtScjI+ve6IBFL8w==", + "dependencies": [ + "@polkadot/api", + "neverthrow" + ] }, "available-typed-arrays@1.0.7": { "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", @@ -3819,16 +4017,16 @@ "form-data" ] }, - "axios@1.11.0": { - "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "axios@1.12.1": { + "integrity": "sha512-Kn4kbSXpkFHCGE6rBFNwIv0GQs4AvDT80jlveJDKFxjbTYMUeB4QtsdPCv6H8Cm19Je7IU6VFtRl2zWZI0rudQ==", "dependencies": [ "follow-redirects", "form-data", "proxy-from-env" ] }, - "b4a@1.6.7": { - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" + "b4a@1.7.1": { + "integrity": "sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==" }, "balanced-match@1.0.2": { "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" @@ -3842,6 +4040,10 @@ "base64-js@1.5.1": { "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, + "baseline-browser-mapping@2.8.2": { + "integrity": "sha512-NvcIedLxrs9llVpX7wI+Jz4Hn9vJQkCPKrTaHIE0sW/Rj1iq6Fzby4NbyTZjQJNoypBXNaG7tEHkTgONZpwgxQ==", + "bin": true + }, "basic-auth@2.0.1": { "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dependencies": [ @@ -3990,9 +4192,10 @@ "pako" ] }, - "browserslist@4.25.4": { - "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", + "browserslist@4.26.0": { + "integrity": "sha512-P9go2WrP9FiPwLv3zqRD/Uoxo0RSHjzFCiQz7d4vbmwNqQFo9T9WCeP/Qn5EbcKQY6DBbkxEXNcpJOmncNrb7A==", "dependencies": [ + "baseline-browser-mapping", "caniuse-lite", "electron-to-chromium", "node-releases", @@ -4173,22 +4376,6 @@ ], "scripts": true }, - "cli-boxes@3.0.0": { - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==" - }, - "cli-cursor@4.0.0": { - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dependencies": [ - "restore-cursor" - ] - }, - "cli-truncate@4.0.0": { - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", - "dependencies": [ - "slice-ansi@5.0.0", - "string-width@7.2.0" - ] - }, "cliui@8.0.1": { "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": [ @@ -4200,12 +4387,6 @@ "clone@1.0.4": { "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" }, - "code-excerpt@4.0.0": { - "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", - "dependencies": [ - "convert-to-spaces" - ] - }, "color-convert@2.0.1": { "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": [ @@ -4241,7 +4422,7 @@ "dependencies": [ "chalk@4.1.2", "lodash", - "rxjs@7.8.2", + "rxjs", "shell-quote", "supports-color@8.1.1", "tree-kill", @@ -4270,9 +4451,6 @@ "convert-source-map@2.0.0": { "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, - "convert-to-spaces@2.0.1": { - "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==" - }, "cookie@1.0.2": { "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==" }, @@ -4462,8 +4640,8 @@ "effection@3.5.0": { "integrity": "sha512-PcKRGoP68CM3c/DODTc38xp0rIjfREH7/fBGu4tiHU/aPb/PvSxv3tvWaJt6JxpxqT0jIXvcOyn+yjk46KcNXw==" }, - "electron-to-chromium@1.5.217": { - "integrity": "sha512-Pludfu5iBxp9XzNl0qq2G87hdD17ZV7h5T4n6rQXDi3nCyloBV3jreE9+8GC6g4X/5yxqVgXEURpcLtM0WS4jA==" + "electron-to-chromium@1.5.218": { + "integrity": "sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==" }, "elliptic@6.6.1": { "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", @@ -4477,9 +4655,6 @@ "minimalistic-crypto-utils" ] }, - "emoji-regex@10.5.0": { - "integrity": "sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==" - }, "emoji-regex@8.0.0": { "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, @@ -4502,9 +4677,6 @@ "env-paths@2.2.1": { "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" }, - "environment@1.1.0": { - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==" - }, "es-define-property@1.0.1": { "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" }, @@ -4529,9 +4701,6 @@ "hasown" ] }, - "es-toolkit@1.39.10": { - "integrity": "sha512-E0iGnTtbDhkeczB0T+mxmoVlT4YNweEKBLq7oaU4p11mecdsZpNWOglI4895Vh4usbQ+LsJiuLuI2L0Vdmfm2w==" - }, "esbuild@0.25.9": { "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", "optionalDependencies": [ @@ -4571,9 +4740,6 @@ "escape-html@1.0.3": { "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, - "escape-string-regexp@2.0.0": { - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - }, "estree-walker@2.0.2": { "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, @@ -4803,7 +4969,7 @@ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dependencies": [ "cross-spawn", - "signal-exit@4.1.0" + "signal-exit" ] }, "form-data@4.0.4": { @@ -4877,9 +5043,6 @@ "get-caller-file@2.0.5": { "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, - "get-east-asian-width@1.4.0": { - "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==" - }, "get-intrinsic@1.3.0": { "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dependencies": [ @@ -5160,46 +5323,9 @@ "module-details-from-path" ] }, - "indent-string@5.0.0": { - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==" - }, "inherits@2.0.4": { "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ink@5.1.0_@types+react@19.1.12_react@18.3.1": { - "integrity": "sha512-3vIO+CU4uSg167/dZrg4wHy75llUINYXxN4OsdaCkE40q4zyOTPwNc2VEpLnnWsIvIQeo6x6lilAhuaSt+rIsA==", - "dependencies": [ - "@alcalzone/ansi-tokenize", - "@types/react", - "ansi-escapes", - "ansi-styles@6.2.3", - "auto-bind", - "chalk@5.6.2", - "cli-boxes", - "cli-cursor", - "cli-truncate", - "code-excerpt", - "es-toolkit", - "indent-string", - "is-in-ci", - "patch-console", - "react@18.3.1", - "react-reconciler", - "scheduler@0.23.2", - "signal-exit@3.0.7", - "slice-ansi@7.1.2", - "stack-utils", - "string-width@7.2.0", - "type-fest", - "widest-line", - "wrap-ansi@9.0.2", - "ws@8.18.3", - "yoga-wasm-web" - ], - "optionalPeers": [ - "@types/react" - ] - }, "io-ts-reporters@2.0.1_fp-ts@2.16.11_io-ts@2.2.22__fp-ts@2.16.11": { "integrity": "sha512-RVpLstYBsmTGgCW9wJ5KVyN/eRnRUDp87Flt4D1O3aJ7oAnd8csq8aXuu7ZeNK8qEDKmjUl9oUuzfwikaNAMKQ==", "dependencies": [ @@ -5254,15 +5380,6 @@ "is-fullwidth-code-point@3.0.0": { "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, - "is-fullwidth-code-point@4.0.0": { - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==" - }, - "is-fullwidth-code-point@5.1.0": { - "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", - "dependencies": [ - "get-east-asian-width" - ] - }, "is-generator-function@1.1.0": { "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dependencies": [ @@ -5278,10 +5395,6 @@ "is-extglob" ] }, - "is-in-ci@1.0.0": { - "integrity": "sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==", - "bin": true - }, "is-nan@1.3.2": { "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "dependencies": [ @@ -5550,6 +5663,12 @@ "@jridgewell/sourcemap-codec" ] }, + "material-chalk@1.1.1": { + "integrity": "sha512-GDO/69mS1vLQfX9T4THPCJb1vu0renYxfn4rtYDzldrKsXuXSZOin5VZTTlO5U4dDMRnXqPp0WdY320v6iwcdw==", + "dependencies": [ + "@material/material-color-utilities" + ] + }, "material-chalk@1.1.1_chalk@5.4.1": { "integrity": "sha512-GDO/69mS1vLQfX9T4THPCJb1vu0renYxfn4rtYDzldrKsXuXSZOin5VZTTlO5U4dDMRnXqPp0WdY320v6iwcdw==", "dependencies": [ @@ -5619,11 +5738,8 @@ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "bin": true }, - "mimic-fn@2.1.0": { - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mina-signer@3.0.7": { - "integrity": "sha512-7eYp/6WWj2VzJjvfC8dNeGMud/brdBrzkUsCdysFFXnfV2/FVpVhAGCMfaS6hs0HJtS4+eplmiD2hXfshQS8CQ==", + "mina-signer@3.1.0": { + "integrity": "sha512-YG6AeukSglI+A9ZH0qCxjDwiE0jLpP84z18ulHr+DWHvezZ0rJFOsT04YgurErOzFYHsToEtWr1zO7Ufc0zXPg==", "dependencies": [ "blakejs", "js-sha256" @@ -5683,6 +5799,9 @@ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "bin": true }, + "mock-socket@9.3.1": { + "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==" + }, "module-details-from-path@1.0.4": { "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==" }, @@ -5777,10 +5896,24 @@ ], "bin": true }, + "neverthrow@8.2.0": { + "integrity": "sha512-kOCT/1MCPAxY5iUV3wytNFUMUolzuwd/VF/1KCx7kf6CutrOsTie+84zTGTpgQycjvfLdBBdvBvFLqFD2c0wkQ==", + "optionalDependencies": [ + "@rollup/rollup-linux-x64-gnu" + ] + }, "no-case@4.0.0": { "integrity": "sha512-WmS3EUGw+vXHlTgiUPi3NzbZNwH6+uGX0QLGgqG+aFSJ5rkX/Ee0nuwHBJfZTfQwwR8lGO819NEIwQ7CGhkdEQ==", "deprecated": true }, + "nock@13.5.6": { + "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==", + "dependencies": [ + "debug", + "json-stringify-safe", + "propagate" + ] + }, "node-domexception@1.0.0": { "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "deprecated": true @@ -5803,8 +5936,8 @@ "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", "bin": true }, - "node-releases@2.0.20": { - "integrity": "sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==" + "node-releases@2.0.21": { + "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==" }, "node-stdlib-browser@1.3.1": { "integrity": "sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==", @@ -5906,12 +6039,6 @@ "wrappy" ] }, - "onetime@5.1.2": { - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": [ - "mimic-fn" - ] - }, "openapi-types@12.1.3": { "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==" }, @@ -6008,9 +6135,6 @@ ], "deprecated": true }, - "patch-console@2.0.0": { - "integrity": "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==" - }, "path-browserify@1.0.1": { "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, @@ -6069,9 +6193,6 @@ "pg-connection-string@2.9.1": { "integrity": "sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==" }, - "pg-gateway@0.3.0-beta.4": { - "integrity": "sha512-CTjsM7Z+0Nx2/dyZ6r8zRsc3f9FScoD5UAOlfUx1Fdv/JOIWvRbF7gou6l6vP+uypXQVoYPgw8xZDXgMGvBa4Q==" - }, "pg-int8@1.0.1": { "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" }, @@ -6166,8 +6287,8 @@ "pony-cause@2.1.11": { "integrity": "sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==" }, - "portfinder@1.0.37": { - "integrity": "sha512-yuGIEjDAYnnOex9ddMnKZEMFE0CcGo6zbfzDklkmT1m5z734ss6JMzN9rNB3+RR7iS+F10D4/BVIaXOyh8PQKw==", + "portfinder@1.0.38": { + "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", "dependencies": [ "async", "debug" @@ -6230,6 +6351,9 @@ "react-is" ] }, + "propagate@2.0.1": { + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==" + }, "protobufjs@7.5.4": { "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", "dependencies": [ @@ -6309,55 +6433,34 @@ "react-dom@19.1.1_react@19.1.1": { "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", "dependencies": [ - "react@19.1.1", - "scheduler@0.26.0" - ] - }, - "react-dom@19.1.1_react@19.1.1_react@18.3.1": { - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", - "dependencies": [ - "react@18.3.1", - "scheduler@0.26.0" + "react", + "scheduler" ] }, "react-is@16.13.1": { "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, - "react-reconciler@0.29.2_react@18.3.1": { - "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==", - "dependencies": [ - "loose-envify", - "react@18.3.1", - "scheduler@0.23.2" - ] - }, "react-refresh@0.17.0": { "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==" }, - "react-router-dom@7.8.2_react@19.1.1_react-dom@19.1.1__react@19.1.1": { - "integrity": "sha512-Z4VM5mKDipal2jQ385H6UBhiiEDlnJPx6jyWsTYoZQdl5TrjxEV2a9yl3Fi60NBJxYzOTGTTHXPi0pdizvTwow==", + "react-router-dom@7.9.1_react@19.1.1_react-dom@19.1.1__react@19.1.1": { + "integrity": "sha512-U9WBQssBE9B1vmRjo9qTM7YRzfZ3lUxESIZnsf4VjR/lXYz9MHjvOxHzr/aUm4efpktbVOrF09rL/y4VHa8RMw==", "dependencies": [ - "react@19.1.1", - "react-dom@19.1.1_react@19.1.1", + "react", + "react-dom", "react-router" ] }, - "react-router@7.8.2_react@19.1.1_react-dom@19.1.1__react@19.1.1": { - "integrity": "sha512-7M2fR1JbIZ/jFWqelpvSZx+7vd7UlBTfdZqf6OSdF9g6+sfdqJDAWcak6ervbHph200ePlu+7G8LdoiC3ReyAQ==", + "react-router@7.9.1_react@19.1.1_react-dom@19.1.1__react@19.1.1": { + "integrity": "sha512-pfAByjcTpX55mqSDGwGnY9vDCpxqBLASg0BMNAuMmpSGESo/TaOUG6BllhAtAkCGx8Rnohik/XtaqiYUJtgW2g==", "dependencies": [ "cookie", - "react@19.1.1", - "react-dom@19.1.1_react@19.1.1", + "react", + "react-dom", "set-cookie-parser" ], "optionalPeers": [ - "react-dom@19.1.1_react@19.1.1" - ] - }, - "react@18.3.1": { - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dependencies": [ - "loose-envify" + "react-dom" ] }, "react@19.1.1": { @@ -6405,26 +6508,15 @@ "real-require@0.2.0": { "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==" }, - "rehackt@0.1.0_@types+react@19.1.12_react@19.1.1": { + "rehackt@0.1.0_@types+react@19.1.13_react@19.1.1": { "integrity": "sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==", "dependencies": [ "@types/react", - "react@19.1.1" + "react" ], "optionalPeers": [ "@types/react", - "react@19.1.1" - ] - }, - "rehackt@0.1.0_@types+react@19.1.12_react@19.1.1_react@18.3.1": { - "integrity": "sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==", - "dependencies": [ - "@types/react", - "react@18.3.1" - ], - "optionalPeers": [ - "@types/react", - "react@18.3.1" + "react" ] }, "require-directory@2.1.1": { @@ -6459,13 +6551,6 @@ ], "bin": true }, - "restore-cursor@4.0.0": { - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dependencies": [ - "onetime", - "signal-exit@3.0.7" - ] - }, "ret@0.5.0": { "integrity": "sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==" }, @@ -6533,15 +6618,6 @@ ], "bin": true }, - "rotating-file-stream@3.2.7": { - "integrity": "sha512-SVquhBEVvRFY+nWLUc791Y0MIlyZrEClRZwZFLLRgJKldHyV1z4e2e/dp9LPqCS3AM//uq/c3PnOFgjqnm5P+A==" - }, - "rxjs@7.8.1": { - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": [ - "tslib@2.8.1" - ] - }, "rxjs@7.8.2": { "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dependencies": [ @@ -6577,12 +6653,6 @@ "scale-ts@1.6.1": { "integrity": "sha512-PBMc2AWc6wSEqJYBDPcyCLUj9/tMKnLX70jLOSndMtcUoLQucP/DM0vnQo1wJAYjTrQiq8iG9rD0q6wFzgjH7g==" }, - "scheduler@0.23.2": { - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": [ - "loose-envify" - ] - }, "scheduler@0.26.0": { "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" }, @@ -6683,32 +6753,21 @@ "siginfo@2.0.0": { "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" }, - "signal-exit@3.0.7": { - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, "signal-exit@4.1.0": { "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" }, "sisteransi@1.0.5": { "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, - "slice-ansi@5.0.0": { - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dependencies": [ - "ansi-styles@6.2.3", - "is-fullwidth-code-point@4.0.0" - ] + "smart-buffer@4.2.0": { + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, - "slice-ansi@7.1.2": { - "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", + "smoldot@2.0.26": { + "integrity": "sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig==", "dependencies": [ - "ansi-styles@6.2.3", - "is-fullwidth-code-point@5.1.0" + "ws@8.18.3" ] }, - "smart-buffer@4.2.0": { - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, "socks@2.8.7": { "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "dependencies": [ @@ -6734,12 +6793,6 @@ "split2@4.2.0": { "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" }, - "stack-utils@2.0.6": { - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dependencies": [ - "escape-string-regexp" - ] - }, "stackback@0.0.2": { "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" }, @@ -6769,7 +6822,7 @@ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": [ "emoji-regex@8.0.0", - "is-fullwidth-code-point@3.0.0", + "is-fullwidth-code-point", "strip-ansi@6.0.1" ] }, @@ -6781,14 +6834,6 @@ "strip-ansi@7.1.2" ] }, - "string-width@7.2.0": { - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dependencies": [ - "emoji-regex@10.5.0", - "get-east-asian-width", - "strip-ansi@7.1.2" - ] - }, "string_decoder@1.1.1": { "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": [ @@ -6976,9 +7021,6 @@ "tweetnacl@1.0.3": { "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, - "type-fest@4.41.0": { - "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==" - }, "typed-array-buffer@1.0.3": { "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dependencies": [ @@ -6997,8 +7039,8 @@ "undici-types@6.19.8": { "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" }, - "undici-types@7.10.0": { - "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==" + "undici-types@6.21.0": { + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" }, "undici@5.29.0": { "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", @@ -7018,7 +7060,7 @@ "universalify@2.0.1": { "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" }, - "update-browserslist-db@1.1.3_browserslist@4.25.4": { + "update-browserslist-db@1.1.3_browserslist@4.26.0": { "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dependencies": [ "browserslist", @@ -7115,14 +7157,14 @@ ], "bin": true }, - "vite-node@3.2.4_@types+node@24.2.0": { + "vite-node@3.2.4_@types+node@22.15.15": { "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", "dependencies": [ "cac", "debug", "es-module-lexer", "pathe@2.0.3", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ], "bin": true }, @@ -7134,12 +7176,12 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "vite-plugin-node-stdlib-browser@0.2.1_node-stdlib-browser@1.3.1_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "vite-plugin-node-stdlib-browser@0.2.1_node-stdlib-browser@1.3.1_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-6u2i613Dkqj5KaTNIrnZvE6y3/awWAp0S5TjucTvGxdhetftB1Mgvblc+nwYzlw6sntPlac8UOC7ttXNh+LZKA==", "dependencies": [ "@rollup/plugin-inject", "node-stdlib-browser", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "vite-plugin-static-copy@3.1.2_vite@6.3.6__picomatch@4.0.3": { @@ -7153,7 +7195,7 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "vite-plugin-static-copy@3.1.2_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "vite-plugin-static-copy@3.1.2_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-aVmYOzptLVOI2b1jL+cmkF7O6uhRv1u5fvOkQgbohWZp2CbR22kn9ZqkCUIt9umKF7UhdbsEpshn1rf4720QFg==", "dependencies": [ "chokidar@3.6.0", @@ -7161,7 +7203,7 @@ "p-map", "picocolors", "tinyglobby", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "vite-plugin-top-level-await@1.6.0_vite@6.3.6__picomatch@4.0.3": { @@ -7174,14 +7216,14 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "vite-plugin-top-level-await@1.6.0_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "vite-plugin-top-level-await@1.6.0_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-bNhUreLamTIkoulCR9aDXbTbhLk6n1YE8NJUTTxl5RYskNRtzOR0ASzSjBVRtNdjIfngDXo11qOsybGLNsrdww==", "dependencies": [ "@rollup/plugin-virtual", "@swc/core", "@swc/wasm", "uuid@10.0.0", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "vite-plugin-wasm@3.5.0_vite@6.3.6__picomatch@4.0.3": { @@ -7190,10 +7232,10 @@ "vite@6.3.6_picomatch@4.0.3" ] }, - "vite-plugin-wasm@3.5.0_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "vite-plugin-wasm@3.5.0_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-X5VWgCnqiQEGb+omhlBVsvTfxikKtoOgAzQ95+BZ8gQ+VfMHIjSHr0wyvXFQCa0eKQ0fKyaL0kWcEnYqBac4lQ==", "dependencies": [ - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0" + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15" ] }, "vite@6.3.6_picomatch@4.0.3": { @@ -7211,10 +7253,10 @@ ], "bin": true }, - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0": { + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", "dependencies": [ - "@types/node@24.2.0", + "@types/node@22.15.15", "esbuild", "fdir@6.5.0_picomatch@4.0.3", "picomatch@4.0.3", @@ -7226,7 +7268,7 @@ "fsevents" ], "optionalPeers": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ], "bin": true }, @@ -7259,13 +7301,13 @@ ], "bin": true }, - "vitest@3.2.4_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0": { + "vitest@3.2.4_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15": { "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", "dependencies": [ "@types/chai", - "@types/node@24.2.0", + "@types/node@22.15.15", "@vitest/expect", - "@vitest/mocker@3.2.4_vite@6.3.6__picomatch@4.0.3_@types+node@24.2.0", + "@vitest/mocker@3.2.4_vite@6.3.6__picomatch@4.0.3_@types+node@22.15.15", "@vitest/pretty-format", "@vitest/runner", "@vitest/snapshot", @@ -7283,12 +7325,12 @@ "tinyglobby", "tinypool", "tinyrainbow", - "vite@6.3.6_picomatch@4.0.3_@types+node@24.2.0", - "vite-node@3.2.4_@types+node@24.2.0", + "vite@6.3.6_picomatch@4.0.3_@types+node@22.15.15", + "vite-node@3.2.4_@types+node@22.15.15", "why-is-node-running" ], "optionalPeers": [ - "@types/node@24.2.0" + "@types/node@22.15.15" ], "bin": true }, @@ -7301,11 +7343,11 @@ "wait-on@8.0.3": { "integrity": "sha512-nQFqAFzZDeRxsu7S3C7LbuxslHhk+gnJZHyethuGKAn2IVleIbTB9I3vJSQiSR+DifUqmdzfPMoMPJfLqMF2vw==", "dependencies": [ - "axios@1.11.0", + "axios@1.12.1", "joi", "lodash", "minimist", - "rxjs@7.8.2" + "rxjs" ], "bin": true }, @@ -7393,12 +7435,6 @@ ], "bin": true }, - "widest-line@5.0.0": { - "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", - "dependencies": [ - "string-width@7.2.0" - ] - }, "worker-factory@7.0.45": { "integrity": "sha512-FFPCiSv7MD6ZDEfiik/ErM8IrIAWajaXhezLyCo3v0FjhUWud6GXnG2BiTE91jLywXGAVCT8IF48Hhr+D/omMw==", "dependencies": [ @@ -7475,14 +7511,6 @@ "strip-ansi@7.1.2" ] }, - "wrap-ansi@9.0.2": { - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dependencies": [ - "ansi-styles@6.2.3", - "string-width@7.2.0", - "strip-ansi@7.1.2" - ] - }, "wrappy@1.0.2": { "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, @@ -7542,9 +7570,6 @@ "yocto-queue@0.1.0": { "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" }, - "yoga-wasm-web@0.3.3": { - "integrity": "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==" - }, "zen-observable-ts@1.1.0": { "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", "dependencies": [ @@ -7565,107 +7590,6 @@ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==" } }, - "remote": { - "https://deno.land/std@0.224.0/assert/assert.ts": "09d30564c09de846855b7b071e62b5974b001bb72a4b797958fe0660e7849834", - "https://deno.land/std@0.224.0/assert/assertion_error.ts": "ba8752bd27ebc51f723702fac2f54d3e94447598f54264a6653d6413738a8917", - "https://deno.land/std@0.224.0/fmt/colors.ts": "508563c0659dd7198ba4bbf87e97f654af3c34eb56ba790260f252ad8012e1c5", - "https://deno.land/std@0.224.0/fs/exists.ts": "3d38cb7dcbca3cf313be343a7b8af18a87bddb4b5ca1bd2314be12d06533b50f", - "https://deno.land/std@0.224.0/io/write_all.ts": "24aac2312bb21096ae3ae0b102b22c26164d3249dff96dbac130958aa736f038", - "https://deno.land/std@0.224.0/log/_config.ts": "489e11b6d3c917bf5fc954c5e914c095d3480efd924d1e85f2fc576468581c54", - "https://deno.land/std@0.224.0/log/_state.ts": "314c0c31ab9c8f4fb33326ad446757d35f75e5bb21746b7720ed4e3f3a939da1", - "https://deno.land/std@0.224.0/log/base_handler.ts": "f03f013dac9c1a226aab60c6f5751b3131cc4f2808720715285e0dab5697a54e", - "https://deno.land/std@0.224.0/log/console_handler.ts": "9b17b9025c7d94eab950a25eccca81fd9dd71d063b9f458f149e52db52ab0295", - "https://deno.land/std@0.224.0/log/critical.ts": "a8b44a4c6768629d2a506ffe1a1a048da7ae76d3146000f8a492008eac4ecba0", - "https://deno.land/std@0.224.0/log/debug.ts": "ddd63a549fedc3061deba47e41cd2170263831fc266e503a12b610b77439333b", - "https://deno.land/std@0.224.0/log/error.ts": "3979ee3aadc962345ad50eff8a5470ad3fe07c70370808ddc178ee08c3d6c89c", - "https://deno.land/std@0.224.0/log/file_handler.ts": "68d6d81ec53bdd6ba61eaceec19d12de59a8ad12ace0d7980a592a51f924a242", - "https://deno.land/std@0.224.0/log/formatters.ts": "29e0325902c3b1cbb3b9ffc1f9d77ac2d2e5af35d27b9bdfe4fdbbd83588d4a8", - "https://deno.land/std@0.224.0/log/get_logger.ts": "36a5febf5338f68aadafaf23bbe38a208e2a3150ec02ca2ec5d3c6bbaf840641", - "https://deno.land/std@0.224.0/log/info.ts": "e6c4971e35092d85cd3241fe7eccdb42999083d14db6aadc5e741f6231e275ad", - "https://deno.land/std@0.224.0/log/levels.ts": "632ba12baa2600750d004cc5cb4eabe10e410f3f2bdfcb9f7142b6d767f2fee6", - "https://deno.land/std@0.224.0/log/logger.ts": "57109848fb587fb3843a7b893f22f1a86c1b78c289172627a6305906738f238a", - "https://deno.land/std@0.224.0/log/mod.ts": "650c53c2c5d9eb05210c4ec54184ecb5bd24fb32ce28e65fad039853978f53f3", - "https://deno.land/std@0.224.0/log/rotating_file_handler.ts": "a6e7c712e568b618303273ff95483f6ab86dec0a485c73c2e399765f752b5aa8", - "https://deno.land/std@0.224.0/log/setup.ts": "42425c550da52c7def7f63a4fcc1ac01a4aec6c73336697a640978d6a324e7a6", - "https://deno.land/std@0.224.0/log/warn.ts": "f1a6bc33a481f231a0257e6d66e26c2e695b931d5e917d8de4f2b825778dfd4e", - "https://deno.land/std@0.224.0/path/_common/assert_path.ts": "dbdd757a465b690b2cc72fc5fb7698c51507dec6bfafce4ca500c46b76ff7bd8", - "https://deno.land/std@0.224.0/path/_common/basename.ts": "569744855bc8445f3a56087fd2aed56bdad39da971a8d92b138c9913aecc5fa2", - "https://deno.land/std@0.224.0/path/_common/common.ts": "ef73c2860694775fe8ffcbcdd387f9f97c7a656febf0daa8c73b56f4d8a7bd4c", - "https://deno.land/std@0.224.0/path/_common/constants.ts": "dc5f8057159f4b48cd304eb3027e42f1148cf4df1fb4240774d3492b5d12ac0c", - "https://deno.land/std@0.224.0/path/_common/dirname.ts": "684df4aa71a04bbcc346c692c8485594fc8a90b9408dfbc26ff32cf3e0c98cc8", - "https://deno.land/std@0.224.0/path/_common/format.ts": "92500e91ea5de21c97f5fe91e178bae62af524b72d5fcd246d6d60ae4bcada8b", - "https://deno.land/std@0.224.0/path/_common/from_file_url.ts": "d672bdeebc11bf80e99bf266f886c70963107bdd31134c4e249eef51133ceccf", - "https://deno.land/std@0.224.0/path/_common/glob_to_reg_exp.ts": "6cac16d5c2dc23af7d66348a7ce430e5de4e70b0eede074bdbcf4903f4374d8d", - "https://deno.land/std@0.224.0/path/_common/normalize.ts": "684df4aa71a04bbcc346c692c8485594fc8a90b9408dfbc26ff32cf3e0c98cc8", - "https://deno.land/std@0.224.0/path/_common/normalize_string.ts": "33edef773c2a8e242761f731adeb2bd6d683e9c69e4e3d0092985bede74f4ac3", - "https://deno.land/std@0.224.0/path/_common/relative.ts": "faa2753d9b32320ed4ada0733261e3357c186e5705678d9dd08b97527deae607", - "https://deno.land/std@0.224.0/path/_common/strip_trailing_separators.ts": "7024a93447efcdcfeaa9339a98fa63ef9d53de363f1fbe9858970f1bba02655a", - "https://deno.land/std@0.224.0/path/_common/to_file_url.ts": "7f76adbc83ece1bba173e6e98a27c647712cab773d3f8cbe0398b74afc817883", - "https://deno.land/std@0.224.0/path/_interface.ts": "8dfeb930ca4a772c458a8c7bbe1e33216fe91c253411338ad80c5b6fa93ddba0", - "https://deno.land/std@0.224.0/path/_os.ts": "8fb9b90fb6b753bd8c77cfd8a33c2ff6c5f5bc185f50de8ca4ac6a05710b2c15", - "https://deno.land/std@0.224.0/path/basename.ts": "7ee495c2d1ee516ffff48fb9a93267ba928b5a3486b550be73071bc14f8cc63e", - "https://deno.land/std@0.224.0/path/common.ts": "03e52e22882402c986fe97ca3b5bb4263c2aa811c515ce84584b23bac4cc2643", - "https://deno.land/std@0.224.0/path/constants.ts": "0c206169ca104938ede9da48ac952de288f23343304a1c3cb6ec7625e7325f36", - "https://deno.land/std@0.224.0/path/dirname.ts": "85bd955bf31d62c9aafdd7ff561c4b5fb587d11a9a5a45e2b01aedffa4238a7c", - "https://deno.land/std@0.224.0/path/extname.ts": "593303db8ae8c865cbd9ceec6e55d4b9ac5410c1e276bfd3131916591b954441", - "https://deno.land/std@0.224.0/path/format.ts": "6ce1779b0980296cf2bc20d66436b12792102b831fd281ab9eb08fa8a3e6f6ac", - "https://deno.land/std@0.224.0/path/from_file_url.ts": "911833ae4fd10a1c84f6271f36151ab785955849117dc48c6e43b929504ee069", - "https://deno.land/std@0.224.0/path/glob_to_regexp.ts": "7f30f0a21439cadfdae1be1bf370880b415e676097fda584a63ce319053b5972", - "https://deno.land/std@0.224.0/path/is_absolute.ts": "4791afc8bfd0c87f0526eaa616b0d16e7b3ab6a65b62942e50eac68de4ef67d7", - "https://deno.land/std@0.224.0/path/is_glob.ts": "a65f6195d3058c3050ab905705891b412ff942a292bcbaa1a807a74439a14141", - "https://deno.land/std@0.224.0/path/join.ts": "ae2ec5ca44c7e84a235fd532e4a0116bfb1f2368b394db1c4fb75e3c0f26a33a", - "https://deno.land/std@0.224.0/path/join_globs.ts": "5b3bf248b93247194f94fa6947b612ab9d3abd571ca8386cf7789038545e54a0", - "https://deno.land/std@0.224.0/path/mod.ts": "f6bd79cb08be0e604201bc9de41ac9248582699d1b2ee0ab6bc9190d472cf9cd", - "https://deno.land/std@0.224.0/path/normalize.ts": "4155743ccceeed319b350c1e62e931600272fad8ad00c417b91df093867a8352", - "https://deno.land/std@0.224.0/path/normalize_glob.ts": "cc89a77a7d3b1d01053b9dcd59462b75482b11e9068ae6c754b5cf5d794b374f", - "https://deno.land/std@0.224.0/path/parse.ts": "77ad91dcb235a66c6f504df83087ce2a5471e67d79c402014f6e847389108d5a", - "https://deno.land/std@0.224.0/path/posix/_util.ts": "1e3937da30f080bfc99fe45d7ed23c47dd8585c5e473b2d771380d3a6937cf9d", - "https://deno.land/std@0.224.0/path/posix/basename.ts": "d2fa5fbbb1c5a3ab8b9326458a8d4ceac77580961b3739cd5bfd1d3541a3e5f0", - "https://deno.land/std@0.224.0/path/posix/common.ts": "26f60ccc8b2cac3e1613000c23ac5a7d392715d479e5be413473a37903a2b5d4", - "https://deno.land/std@0.224.0/path/posix/constants.ts": "93481efb98cdffa4c719c22a0182b994e5a6aed3047e1962f6c2c75b7592bef1", - "https://deno.land/std@0.224.0/path/posix/dirname.ts": "76cd348ffe92345711409f88d4d8561d8645353ac215c8e9c80140069bf42f00", - "https://deno.land/std@0.224.0/path/posix/extname.ts": "e398c1d9d1908d3756a7ed94199fcd169e79466dd88feffd2f47ce0abf9d61d2", - "https://deno.land/std@0.224.0/path/posix/format.ts": "185e9ee2091a42dd39e2a3b8e4925370ee8407572cee1ae52838aed96310c5c1", - "https://deno.land/std@0.224.0/path/posix/from_file_url.ts": "951aee3a2c46fd0ed488899d024c6352b59154c70552e90885ed0c2ab699bc40", - "https://deno.land/std@0.224.0/path/posix/glob_to_regexp.ts": "76f012fcdb22c04b633f536c0b9644d100861bea36e9da56a94b9c589a742e8f", - "https://deno.land/std@0.224.0/path/posix/is_absolute.ts": "cebe561ad0ae294f0ce0365a1879dcfca8abd872821519b4fcc8d8967f888ede", - "https://deno.land/std@0.224.0/path/posix/is_glob.ts": "8a8b08c08bf731acf2c1232218f1f45a11131bc01de81e5f803450a5914434b9", - "https://deno.land/std@0.224.0/path/posix/join.ts": "7fc2cb3716aa1b863e990baf30b101d768db479e70b7313b4866a088db016f63", - "https://deno.land/std@0.224.0/path/posix/join_globs.ts": "a9475b44645feddceb484ee0498e456f4add112e181cb94042cdc6d47d1cdd25", - "https://deno.land/std@0.224.0/path/posix/mod.ts": "2301fc1c54a28b349e20656f68a85f75befa0ee9b6cd75bfac3da5aca9c3f604", - "https://deno.land/std@0.224.0/path/posix/normalize.ts": "baeb49816a8299f90a0237d214cef46f00ba3e95c0d2ceb74205a6a584b58a91", - "https://deno.land/std@0.224.0/path/posix/normalize_glob.ts": "9c87a829b6c0f445d03b3ecadc14492e2864c3ebb966f4cea41e98326e4435c6", - "https://deno.land/std@0.224.0/path/posix/parse.ts": "09dfad0cae530f93627202f28c1befa78ea6e751f92f478ca2cc3b56be2cbb6a", - "https://deno.land/std@0.224.0/path/posix/relative.ts": "3907d6eda41f0ff723d336125a1ad4349112cd4d48f693859980314d5b9da31c", - "https://deno.land/std@0.224.0/path/posix/resolve.ts": "08b699cfeee10cb6857ccab38fa4b2ec703b0ea33e8e69964f29d02a2d5257cf", - "https://deno.land/std@0.224.0/path/posix/to_file_url.ts": "7aa752ba66a35049e0e4a4be5a0a31ac6b645257d2e031142abb1854de250aaf", - "https://deno.land/std@0.224.0/path/posix/to_namespaced_path.ts": "28b216b3c76f892a4dca9734ff1cc0045d135532bfd9c435ae4858bfa5a2ebf0", - "https://deno.land/std@0.224.0/path/relative.ts": "ab739d727180ed8727e34ed71d976912461d98e2b76de3d3de834c1066667add", - "https://deno.land/std@0.224.0/path/resolve.ts": "a6f977bdb4272e79d8d0ed4333e3d71367cc3926acf15ac271f1d059c8494d8d", - "https://deno.land/std@0.224.0/path/to_file_url.ts": "88f049b769bce411e2d2db5bd9e6fd9a185a5fbd6b9f5ad8f52bef517c4ece1b", - "https://deno.land/std@0.224.0/path/to_namespaced_path.ts": "b706a4103b104cfadc09600a5f838c2ba94dbcdb642344557122dda444526e40", - "https://deno.land/std@0.224.0/path/windows/_util.ts": "d5f47363e5293fced22c984550d5e70e98e266cc3f31769e1710511803d04808", - "https://deno.land/std@0.224.0/path/windows/basename.ts": "6bbc57bac9df2cec43288c8c5334919418d784243a00bc10de67d392ab36d660", - "https://deno.land/std@0.224.0/path/windows/common.ts": "26f60ccc8b2cac3e1613000c23ac5a7d392715d479e5be413473a37903a2b5d4", - "https://deno.land/std@0.224.0/path/windows/constants.ts": "5afaac0a1f67b68b0a380a4ef391bf59feb55856aa8c60dfc01bd3b6abb813f5", - "https://deno.land/std@0.224.0/path/windows/dirname.ts": "33e421be5a5558a1346a48e74c330b8e560be7424ed7684ea03c12c21b627bc9", - "https://deno.land/std@0.224.0/path/windows/extname.ts": "165a61b00d781257fda1e9606a48c78b06815385e7d703232548dbfc95346bef", - "https://deno.land/std@0.224.0/path/windows/format.ts": "bbb5ecf379305b472b1082cd2fdc010e44a0020030414974d6029be9ad52aeb6", - "https://deno.land/std@0.224.0/path/windows/from_file_url.ts": "ced2d587b6dff18f963f269d745c4a599cf82b0c4007356bd957cb4cb52efc01", - "https://deno.land/std@0.224.0/path/windows/glob_to_regexp.ts": "e45f1f89bf3fc36f94ab7b3b9d0026729829fabc486c77f414caebef3b7304f8", - "https://deno.land/std@0.224.0/path/windows/is_absolute.ts": "4a8f6853f8598cf91a835f41abed42112cebab09478b072e4beb00ec81f8ca8a", - "https://deno.land/std@0.224.0/path/windows/is_glob.ts": "8a8b08c08bf731acf2c1232218f1f45a11131bc01de81e5f803450a5914434b9", - "https://deno.land/std@0.224.0/path/windows/join.ts": "8d03530ab89195185103b7da9dfc6327af13eabdcd44c7c63e42e27808f50ecf", - "https://deno.land/std@0.224.0/path/windows/join_globs.ts": "a9475b44645feddceb484ee0498e456f4add112e181cb94042cdc6d47d1cdd25", - "https://deno.land/std@0.224.0/path/windows/mod.ts": "2301fc1c54a28b349e20656f68a85f75befa0ee9b6cd75bfac3da5aca9c3f604", - "https://deno.land/std@0.224.0/path/windows/normalize.ts": "78126170ab917f0ca355a9af9e65ad6bfa5be14d574c5fb09bb1920f52577780", - "https://deno.land/std@0.224.0/path/windows/normalize_glob.ts": "9c87a829b6c0f445d03b3ecadc14492e2864c3ebb966f4cea41e98326e4435c6", - "https://deno.land/std@0.224.0/path/windows/parse.ts": "08804327b0484d18ab4d6781742bf374976de662f8642e62a67e93346e759707", - "https://deno.land/std@0.224.0/path/windows/relative.ts": "3e1abc7977ee6cc0db2730d1f9cb38be87b0ce4806759d271a70e4997fc638d7", - "https://deno.land/std@0.224.0/path/windows/resolve.ts": "8dae1dadfed9d46ff46cc337c9525c0c7d959fb400a6308f34595c45bdca1972", - "https://deno.land/std@0.224.0/path/windows/to_file_url.ts": "40e560ee4854fe5a3d4d12976cef2f4e8914125c81b11f1108e127934ced502e", - "https://deno.land/std@0.224.0/path/windows/to_namespaced_path.ts": "4ffa4fb6fae321448d5fe810b3ca741d84df4d7897e61ee29be961a6aac89a4c" - }, "workspace": { "dependencies": [ "jsr:@paimaexample/tui@0.3.44" @@ -7759,7 +7683,8 @@ "packages/shared/contracts/avail": { "dependencies": [ "npm:@paimaexample/npm-avail-light-client@0.3.44", - "npm:@paimaexample/npm-avail-node@0.3.44" + "npm:@paimaexample/npm-avail-node@0.3.44", + "npm:avail-js-sdk@~0.4.2" ] }, "packages/shared/contracts/cardano": { diff --git a/templates/evm-midnight/packages/shared/contracts/avail/config.yml b/templates/evm-midnight/packages/shared/contracts/avail/config.yml index 6ed0e9ff5..8d562b558 100644 --- a/templates/evm-midnight/packages/shared/contracts/avail/config.yml +++ b/templates/evm-midnight/packages/shared/contracts/avail/config.yml @@ -1,31 +1,27 @@ -# Default configuration for avail-light-client -# For a full list of options, see the official Avail documentation. +# Avail Light Client config (no --network needed) -log_level="info" -http_server_host="127.0.0.1" -http_server_port=7007 +# Logging +log_level = "info" -# Secret key for libp2p keypair. Can be either set to 'seed' or to 'key'. -# If set to seed, keypair will be generated from that seed. -# If 'secret_key' is not set, a random seed will be used. -# secret_key={ seed: "avail" } +# API server +http_server_host = "127.0.0.1" +http_server_port = 7007 -# P2P TCP listener port (default: 37000). -port=37000 +# RPC to full node (custom 9955) +full_node_ws = ["ws://127.0.0.1:9955"] -# WebSocket endpoint of a full node. -full_node_ws = ["ws://127.0.0.1:9944"] +# App / LC behavior +app_id = 0 +confidence = 92.0 +avail_path = "avail_path" +network_mode = "both" # both | p2p-only | rpc-only -# Application ID. If not set or set to 0, application client is not started. -app_id=0 +# LibP2P +port = 37000 +webrtc_port = 37001 +# secret_key = { seed = "avail" } # optional deterministic key +bootstraps = ["/ip4/127.0.0.1/tcp/39000/p2p/12D3KooWMm1c4pzeLPGkkCJMAgFbsfQ8xmVDusg272icWsaNHWzN"] -# Confidence threshold (default: 92.0). -confidence=92.0 - -# File system path where RocksDB used by the light client stores its data. -# This path is relative to the location of this config file. -avail_path="avail_path" - -# Vector of Light Client bootstrap nodes. -# This is for a local setup. Replace with public bootstraps for testnet/mainnet. -bootstraps=["/ip4/127.0.0.1/tcp/39000/p2p/12D3KooWMm1c4pzeLPGkkCJMAgFbsfQ8xmVDusg272icWsaNHWzN"] \ No newline at end of file +# Telemetry / network identity (equivalent to local --network defaults) +ot_collector_endpoint = "http://127.0.0.1:4317" +genesis_hash = "DEV" \ No newline at end of file diff --git a/templates/evm-midnight/packages/shared/contracts/avail/deno.json b/templates/evm-midnight/packages/shared/contracts/avail/deno.json index a72b2080b..c6778ddbd 100644 --- a/templates/evm-midnight/packages/shared/contracts/avail/deno.json +++ b/templates/evm-midnight/packages/shared/contracts/avail/deno.json @@ -3,13 +3,15 @@ "version": "0.3.22", "exports": {}, "tasks": { - "avail-node:start": "deno run -A --unstable-detect-cjs @paimaexample/npm-avail-node --dev", - "avail-node:wait": "wait-on tcp:9944", - "avail-light-client:start": "deno run -A --unstable-detect-cjs @paimaexample/npm-avail-light-client --network local --config ./config.yml", + "avail-node:start": "deno run -A --unstable-detect-cjs @paimaexample/npm-avail-node --dev --rpc-port 9955 --no-telemetry --tmp", + "avail-node:wait": "wait-on tcp:9955", + "avail-light-client:deploy": "deno run -A --unstable-detect-cjs ./deploy.ts", + "avail-light-client:start": "deno run -A --unstable-detect-cjs npm:@paimaexample/npm-avail-light-client --config ./config.yml --app-id ${AVAIL_APP_ID}", "avail-light-client:wait": "wait-on tcp:7007" }, "imports": { "@paimaexample/npm-avail-node": "npm:@paimaexample/npm-avail-node@0.3.44", - "@paimaexample/npm-avail-light-client": "npm:@paimaexample/npm-avail-light-client@0.3.44" + "@paimaexample/npm-avail-light-client": "npm:@paimaexample/npm-avail-light-client@0.3.44", + "avail-js-sdk": "npm:avail-js-sdk@^0.4.2" } } \ No newline at end of file diff --git a/templates/evm-midnight/packages/shared/contracts/avail/deploy.ts b/templates/evm-midnight/packages/shared/contracts/avail/deploy.ts new file mode 100644 index 000000000..d49401d6f --- /dev/null +++ b/templates/evm-midnight/packages/shared/contracts/avail/deploy.ts @@ -0,0 +1,66 @@ +import { Account, Pallets, SDK } from "avail-js-sdk"; + +const sdk = await SDK.New("ws://localhost:9955/ws"); +const seed: string = Deno.env.get("SEED") ?? "//Alice"; +if (!seed) { + throw new Error("SEED environment variable is not set"); +} +const account = Account.new(seed); +const genesisHash = await sdk.client.api.rpc.chain.getBlockHash(0); +console.log("Account Address: ", account.address); +// Use a fixed key string +const ApplicationKey = "app_key_" + Date.now(); + +export async function createApplicationKey() { + // Create application key transaction + const tx = sdk.tx.dataAvailability.createApplicationKey(ApplicationKey); + console.log("Submitting transaction to create application key..."); + + // Execute and wait for inclusion + const res = await tx.executeWaitForInclusion(account, {}); + + // Check if transaction was successful + const isOk = res.isSuccessful(); + if (isOk === undefined) { + throw new Error("Cannot check if transaction was successful"); + } else if (!isOk) { + console.log("Transaction failed", res); + throw new Error("Transaction failed"); + } + + // Extract event data + if (res.events === undefined) throw new Error("No events found"); + + const event = res.events.findFirst( + Pallets.DataAvailabilityEvents.ApplicationKeyCreated, + ); + if (event === undefined) { + throw new Error("ApplicationKeyCreated event not found"); + } + + const appId = event.id; + console.log(`Application created successfully:`); + console.log(`Owner: ${event.owner}`); + console.log(`Key: ${event.keyToString()}`); + console.log(`App Id: ${appId}`); + console.log(`Transaction Hash: ${res.txHash}`); + return { appId, txHash: res.txHash }; +} + +const { appId, txHash } = await createApplicationKey(); +console.log("Transaction Hash: ", txHash.toString()); +const data = JSON.stringify({ appId, txHash, ApplicationKey, genesisHash }); +const fileName = Deno.cwd() + "/avail_app.json"; +console.log("Writing to file: ", fileName); +await Deno.writeTextFile(fileName, data); + +const child = new Deno.Command("deno", { + args: ["task", "-f", "@example/avail-contracts", "avail-light-client:start"], + env: { + AVAIL_APP_ID: appId.toString(), + }, +}).spawn(); + +console.log("Light Client Started"); + +await child.status;