diff --git a/.github/workflows/check-node-compat.yml b/.github/workflows/check-node-compat.yml new file mode 100644 index 0000000000..b52a7a88ba --- /dev/null +++ b/.github/workflows/check-node-compat.yml @@ -0,0 +1,88 @@ +name: Check Node Compat + +on: + pull_request: + types: [labeled] + branches: [devnet-ready] + +concurrency: + group: check-node-compat-${{ github.ref }} + cancel-in-progress: true + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + name: build ${{ matrix.version.name }} + runs-on: [self-hosted, type-ccx33] + if: contains(github.event.pull_request.labels.*.name, 'check-node-compat') + env: + RUST_BACKTRACE: full + strategy: + matrix: + version: + - { name: old, ref: devnet-ready } + - { name: new, ref: ${{ github.head_ref }} } + + steps: + - name: Install dependencies + run: | + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update + sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config unzip + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: Utilize Shared Rust Cache + uses: Swatinem/rust-cache@v2 + with: + key: "check-node-compat-${{ matrix.version.name }}" + + - name: Checkout ${{ matrix.version.name }} + uses: actions/checkout@v4 + with: + ref: ${{ matrix.version.ref }} + path: ${{ matrix.version.name }} + + - name: Build ${{ matrix.version.name }} + working-directory: ${{ matrix.version.name }} + run: cargo build --release --locked + + - name: Upload ${{ matrix.version.name }} node binary + uses: actions/upload-artifact@v4 + with: + name: node-subtensor-${{ matrix.version.name }} + path: ${{ matrix.version.name }}/target/release/node-subtensor + retention-days: 1 + + test: + needs: [build] + runs-on: [self-hosted, type-ccx33] + steps: + - name: Download old node binary + uses: actions/download-artifact@v4 + with: + name: node-subtensor-old + path: /tmp/node-subtensor-old + + - name: Download new node binary + uses: actions/download-artifact@v4 + with: + name: node-subtensor-new + path: /tmp/node-subtensor-new + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "24" + + - name: Install npm dependencies + working-directory: ${{ github.workspace }}/.github/workflows/check-node-compat + run: npm install + + - name: Run test + working-directory: ${{ github.workspace }}/.github/workflows/check-node-compat + run: npm run test \ No newline at end of file diff --git a/.github/workflows/check-node-compat/main.ts b/.github/workflows/check-node-compat/main.ts new file mode 100644 index 0000000000..07b65adb26 --- /dev/null +++ b/.github/workflows/check-node-compat/main.ts @@ -0,0 +1,206 @@ +import { spawnSync, spawn, ChildProcess } from "node:child_process"; +import { writeFile } from "node:fs/promises"; + +const all = Promise.all.bind(Promise); + +const SECOND = 1000; +const MINUTE = 60 * SECOND; + +const OLD_BINARY_PATH = "/tmp/node-subtensor-old"; +const NEW_BINARY_PATH = "/tmp/node-subtensor-new"; +const CHAIN_SPEC_PATH = "/tmp/local.json"; + +const ONE_OPTIONS = { + binaryPath: OLD_BINARY_PATH, + basePath: "/tmp/one", + name: "one", + port: 30333, + rpcPort: 9933, + validator: true, +}; + +const TWO_OPTIONS = { + binaryPath: OLD_BINARY_PATH, + basePath: "/tmp/two", + name: "two", + port: 30334, + rpcPort: 9944, + validator: true, +}; + +const ALICE_OPTIONS = { + binaryPath: OLD_BINARY_PATH, + basePath: "/tmp/alice", + name: "alice", + port: 30335, + rpcPort: 9955, + validator: false, +}; + +type Node = { name: string; binaryPath: string; process: ChildProcess }; + +async function main() { + await generateChainSpec(); + + const one = startNode(ONE_OPTIONS); + await started(one); + + const two = startNode(TWO_OPTIONS); + await started(two); + + await all([peerCount(one, 1), peerCount(two, 1)]); + await all([finalizedBlocks(one, 5), finalizedBlocks(two, 5)]); + + const alice = startNode(ALICE_OPTIONS); + await started(alice); + + await all([peerCount(one, 2), peerCount(two, 2), peerCount(alice, 2)]); + await all([finalizedBlocks(one, 10), finalizedBlocks(two, 10), finalizedBlocks(alice, 10)]); + + // Swap 'alice' node with the new binary + await stop(alice); + const aliceNew = startNode({ ...ALICE_OPTIONS, binaryPath: NEW_BINARY_PATH }); + await started(aliceNew); + + await all([peerCount(one, 2), peerCount(two, 2), peerCount(aliceNew, 2)]); + await all([finalizedBlocks(one, 15), finalizedBlocks(two, 15), finalizedBlocks(aliceNew, 15)]); + + // Swap 'one' node with the new binary + await stop(one); + const oneNew = startNode({ ...ONE_OPTIONS, binaryPath: NEW_BINARY_PATH }); + await started(oneNew); + + await all([peerCount(two, 2), peerCount(aliceNew, 2), peerCount(oneNew, 2)]); + await all([finalizedBlocks(oneNew, 20), finalizedBlocks(two, 20), finalizedBlocks(aliceNew, 20)]); + + // Swap 'two' node with the new binary + await stop(two); + const twoNew = startNode({ ...TWO_OPTIONS, binaryPath: NEW_BINARY_PATH }); + await started(twoNew); + + await all([peerCount(oneNew, 2), peerCount(twoNew, 2), peerCount(aliceNew, 2)]); + await all([finalizedBlocks(oneNew, 50), finalizedBlocks(twoNew, 50), finalizedBlocks(aliceNew, 50)]); + + await all([stop(oneNew), stop(twoNew), stop(aliceNew)]); + + log("Test completed with success, binaries are compatible ✅"); +} + +// Generate the chain spec for the local network +const generateChainSpec = async () => { + const result = spawnSync( + OLD_BINARY_PATH, + ["build-spec", "--disable-default-bootnode", "--raw", "--chain", "local"], + { maxBuffer: 1024 * 1024 * 10 }, // 10MB + ); + + if (result.status !== 0) { + throw new Error(`Failed to generate chain spec: ${result.stderr.toString()}`); + } + + const stdout = result.stdout.toString(); + await writeFile(CHAIN_SPEC_PATH, stdout, { encoding: "utf-8" }); +}; + +// Start a node with the given options +const startNode = (opts: { + binaryPath: string; + basePath: string; + name: string; + port: number; + rpcPort: number; + validator: boolean; +}): Node => { + const process = spawn(opts.binaryPath, [ + `--${opts.name}`, + ...["--chain", CHAIN_SPEC_PATH], + ...["--base-path", opts.basePath], + ...["--port", opts.port.toString()], + ...["--rpc-port", opts.rpcPort.toString()], + ...(opts.validator ? ["--validator"] : []), + "--rpc-cors=all", + "--allow-private-ipv4", + "--discover-local", + "--unsafe-force-node-key-generation", + ]); + + process.on("error", (error) => console.error(`${opts.name} (error): ${error}`)); + process.on("close", (code) => log(`${opts.name}: process closed with code ${code}`)); + + return { name: opts.name, binaryPath: opts.binaryPath, process }; +}; + +const stop = (node: Node): Promise => { + return new Promise((resolve, reject) => { + node.process.on("close", resolve); + node.process.on("error", reject); + + if (!node.process.kill()) { + reject(new Error(`Failed to stop ${node.name}`)); + } + }); +}; + +// Ensure the node has correctly started +const started = (node: Node, timeout = 30 * SECOND) => { + const errorMessage = `Failed to start ${node.name} in time`; + + return innerEnsure(node, errorMessage, timeout, (data, ok) => { + if (data.includes("💤 Idle")) { + log(`${node.name}: started using ${node.binaryPath}`); + ok(); + } + }); +}; + +// Ensure the node has reached the expected number of peers +const peerCount = (node: Node, expectedPeers: number, timeout = 30 * SECOND) => { + const errorMessage = `Failed to reach ${expectedPeers} peers in time`; + + return innerEnsure(node, errorMessage, timeout, (data, ok) => { + const maybePeers = /Idle \((?\d+) peers\)/.exec(data)?.groups?.peers; + if (!maybePeers) return; + + const peers = parseInt(maybePeers); + if (peers >= expectedPeers) { + log(`${node.name}: reached ${expectedPeers} peers`); + ok(); + } + }); +}; + +// Ensure the node has reached the expected number of finalized blocks +const finalizedBlocks = (node: Node, expectedFinalized: number, timeout = 10 * MINUTE) => { + const errorMessage = `Failed to reach ${expectedFinalized} finalized blocks in time`; + + return innerEnsure(node, errorMessage, timeout, (data, ok) => { + const maybeFinalized = /finalized #(?\d+)/.exec(data)?.groups?.blocks; + if (!maybeFinalized) return; + + const finalized = parseInt(maybeFinalized); + if (finalized >= expectedFinalized) { + log(`${node.name}: reached ${expectedFinalized} finalized blocks`); + ok(); + } + }); +}; + +// Helper function to ensure a condition is met within a timeout +function innerEnsure(node: Node, errorMessage: string, timeout: number, f: (data: string, ok: () => void) => void) { + return new Promise((resolve, reject) => { + const id = setTimeout(() => reject(new Error(errorMessage)), timeout); + + const fn = (data: string) => + f(data, () => { + clearTimeout(id); + node.process.stderr?.off("data", fn); + resolve(); + }); + + node.process.stderr?.on("data", fn); + }); +} + +const log = (message: string) => console.log(`[${new Date().toISOString()}] ${message}`); + +main(); diff --git a/.github/workflows/check-node-compat/package-lock.json b/.github/workflows/check-node-compat/package-lock.json new file mode 100644 index 0000000000..aae37d9be3 --- /dev/null +++ b/.github/workflows/check-node-compat/package-lock.json @@ -0,0 +1,1437 @@ +{ + "name": "node-compat", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "node-compat", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@polkadot/api": "^16.5.4", + "tsx": "^4.21.0" + }, + "devDependencies": { + "@types/node": "^24" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@polkadot-api/json-rpc-provider": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz", + "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==", + "license": "MIT", + "optional": true + }, + "node_modules/@polkadot-api/json-rpc-provider-proxy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.1.0.tgz", + "integrity": "sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==", + "license": "MIT", + "optional": true + }, + "node_modules/@polkadot-api/metadata-builders": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.3.2.tgz", + "integrity": "sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/substrate-bindings": "0.6.0", + "@polkadot-api/utils": "0.1.0" + } + }, + "node_modules/@polkadot-api/observable-client": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.3.2.tgz", + "integrity": "sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/metadata-builders": "0.3.2", + "@polkadot-api/substrate-bindings": "0.6.0", + "@polkadot-api/utils": "0.1.0" + }, + "peerDependencies": { + "@polkadot-api/substrate-client": "0.1.4", + "rxjs": ">=7.8.0" + } + }, + "node_modules/@polkadot-api/substrate-bindings": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.6.0.tgz", + "integrity": "sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/hashes": "^1.3.1", + "@polkadot-api/utils": "0.1.0", + "@scure/base": "^1.1.1", + "scale-ts": "^1.6.0" + } + }, + "node_modules/@polkadot-api/utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.1.0.tgz", + "integrity": "sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA==", + "license": "MIT", + "optional": true + }, + "node_modules/@polkadot/api": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-16.5.4.tgz", + "integrity": "sha512-mX1fwtXCBAHXEyZLSnSrMDGP+jfU2rr7GfDVQBz0cBY1nmY8N34RqPWGrZWj8o4DxVu1DQ91sGncOmlBwEl0Qg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api-augment": "16.5.4", + "@polkadot/api-base": "16.5.4", + "@polkadot/api-derive": "16.5.4", + "@polkadot/keyring": "^14.0.1", + "@polkadot/rpc-augment": "16.5.4", + "@polkadot/rpc-core": "16.5.4", + "@polkadot/rpc-provider": "16.5.4", + "@polkadot/types": "16.5.4", + "@polkadot/types-augment": "16.5.4", + "@polkadot/types-codec": "16.5.4", + "@polkadot/types-create": "16.5.4", + "@polkadot/types-known": "16.5.4", + "@polkadot/util": "^14.0.1", + "@polkadot/util-crypto": "^14.0.1", + "eventemitter3": "^5.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-augment": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-16.5.4.tgz", + "integrity": "sha512-9FTohz13ih458V2JBFjRACKHPqfM6j4bmmTbcSaE7hXcIOYzm4ABFo7xq5osLyvItganjsICErL2vRn2zULycw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api-base": "16.5.4", + "@polkadot/rpc-augment": "16.5.4", + "@polkadot/types": "16.5.4", + "@polkadot/types-augment": "16.5.4", + "@polkadot/types-codec": "16.5.4", + "@polkadot/util": "^14.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-base": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-16.5.4.tgz", + "integrity": "sha512-V69v3ieg5+91yRUCG1vFRSLr7V7MvHPvo/QrzleIUu8tPXWldJ0kyXbWKHVNZEpVBA9LpjGvII+MHUW7EaKMNg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/rpc-core": "16.5.4", + "@polkadot/types": "16.5.4", + "@polkadot/util": "^14.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-derive": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-16.5.4.tgz", + "integrity": "sha512-0JP2a6CaqTviacHsmnUKF4VLRsKdYOzQCqdL9JpwY/QBz/ZLqIKKPiSRg285EVLf8n/hWdTfxbWqQCsRa5NL+Q==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/api": "16.5.4", + "@polkadot/api-augment": "16.5.4", + "@polkadot/api-base": "16.5.4", + "@polkadot/rpc-core": "16.5.4", + "@polkadot/types": "16.5.4", + "@polkadot/types-codec": "16.5.4", + "@polkadot/util": "^14.0.1", + "@polkadot/util-crypto": "^14.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/keyring": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-14.0.1.tgz", + "integrity": "sha512-kHydQPCeTvJrMC9VQO8LPhAhTUxzxfNF1HEknhZDBPPsxP/XpkYsEy/Ln1QzJmQqD5VsgwzLDE6cExbJ2CT9CA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "14.0.1", + "@polkadot/util-crypto": "14.0.1", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "14.0.1", + "@polkadot/util-crypto": "14.0.1" + } + }, + "node_modules/@polkadot/networks": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-14.0.1.tgz", + "integrity": "sha512-wGlBtXDkusRAj4P7uxfPz80gLO1+j99MLBaQi3bEym2xrFrFhgIWVHOZlBit/1PfaBjhX2Z8XjRxaM2w1p7w2w==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "14.0.1", + "@substrate/ss58-registry": "^1.51.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-augment": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-16.5.4.tgz", + "integrity": "sha512-j9v3Ttqv/EYGezHtVksGJAFZhE/4F7LUWooOazh/53ATowMby3lZUdwInrK6bpYmG2whmYMw/Fo283fwDroBtQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/rpc-core": "16.5.4", + "@polkadot/types": "16.5.4", + "@polkadot/types-codec": "16.5.4", + "@polkadot/util": "^14.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-core": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-16.5.4.tgz", + "integrity": "sha512-92LOSTWujPjtmKOPvfCPs8rAaPFU+18wTtkIzwPwKxvxkN/SWsYSGIxmsoags9ramyHB6jp7Lr59TEuGMxIZzQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/rpc-augment": "16.5.4", + "@polkadot/rpc-provider": "16.5.4", + "@polkadot/types": "16.5.4", + "@polkadot/util": "^14.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-provider": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-16.5.4.tgz", + "integrity": "sha512-mNAIBRA3jMvpnHsuqAX4InHSIqBdgxFD6ayVUFFAzOX8Fh6Xpd4RdI1dqr6a1pCzjnPSby4nbg+VuadWwauVtg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/keyring": "^14.0.1", + "@polkadot/types": "16.5.4", + "@polkadot/types-support": "16.5.4", + "@polkadot/util": "^14.0.1", + "@polkadot/util-crypto": "^14.0.1", + "@polkadot/x-fetch": "^14.0.1", + "@polkadot/x-global": "^14.0.1", + "@polkadot/x-ws": "^14.0.1", + "eventemitter3": "^5.0.1", + "mock-socket": "^9.3.1", + "nock": "^13.5.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@substrate/connect": "0.8.11" + } + }, + "node_modules/@polkadot/types": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-16.5.4.tgz", + "integrity": "sha512-8Oo1QWaL0DkIc/n2wKBIozPWug/0b2dPVhL+XrXHxJX7rIqS0x8sXDRbM9r166sI0nTqJiUho7pRIkt2PR/DMQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/keyring": "^14.0.1", + "@polkadot/types-augment": "16.5.4", + "@polkadot/types-codec": "16.5.4", + "@polkadot/types-create": "16.5.4", + "@polkadot/util": "^14.0.1", + "@polkadot/util-crypto": "^14.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-augment": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-16.5.4.tgz", + "integrity": "sha512-AGjXR+Q9O9UtVkGw/HuOXlbRqVpvG6H8nr+taXP71wuC6RD9gznFBFBqoNkfWHD2w89esNVQLTvXHVxlLpTXqA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/types": "16.5.4", + "@polkadot/types-codec": "16.5.4", + "@polkadot/util": "^14.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-codec": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-16.5.4.tgz", + "integrity": "sha512-OQtT1pmJu2F3/+Vh1OiXifKoeRy+CU1+Lu7dgTcdO705dnxU4447Zup5JVCJDnxBmMITts/38vbFN2pD225AnA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "^14.0.1", + "@polkadot/x-bigint": "^14.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-create": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-16.5.4.tgz", + "integrity": "sha512-URQnvr/sgvgIRSxIW3lmml6HMSTRRj2hTZIm6nhMTlYSVT4rLWx0ZbYUAjoPBbaJ+BmoqZ6Bbs+tA+5cQViv5Q==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/types-codec": "16.5.4", + "@polkadot/util": "^14.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-known": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-16.5.4.tgz", + "integrity": "sha512-Dd59y4e3AFCrH9xiqMU4xlG5+Zy0OTy7GQvqJVYXZFyAH+4HYDlxXjJGcSidGAmJcclSYfS3wyEkfw+j1EOVEw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/networks": "^14.0.1", + "@polkadot/types": "16.5.4", + "@polkadot/types-codec": "16.5.4", + "@polkadot/types-create": "16.5.4", + "@polkadot/util": "^14.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-support": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-16.5.4.tgz", + "integrity": "sha512-Ra6keCaO73ibxN6MzA56jFq9EReje7jjE4JQfzV5IpyDZdXcmPyJiEfa2Yps/YSP13Gc2e38t9FFyVau0V+SFQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/util": "^14.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-14.0.1.tgz", + "integrity": "sha512-764HhxkPV3x5rM0/p6QdynC2dw26n+SaE+jisjx556ViCd4E28Ke4xSPef6C0Spy4aoXf2gt0PuLEcBvd6fVZg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@polkadot/x-bigint": "14.0.1", + "@polkadot/x-global": "14.0.1", + "@polkadot/x-textdecoder": "14.0.1", + "@polkadot/x-textencoder": "14.0.1", + "@types/bn.js": "^5.1.6", + "bn.js": "^5.2.1", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util-crypto": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-14.0.1.tgz", + "integrity": "sha512-Cu7AKUzBTsUkbOtyuNzXcTpDjR9QW0fVR56o3gBmzfUCmvO1vlsuGzmmPzqpHymQQ3rrfqV78CPs62EGhw0R+A==", + "license": "Apache-2.0", + "dependencies": { + "@noble/curves": "^1.3.0", + "@noble/hashes": "^1.3.3", + "@polkadot/networks": "14.0.1", + "@polkadot/util": "14.0.1", + "@polkadot/wasm-crypto": "^7.5.3", + "@polkadot/wasm-util": "^7.5.3", + "@polkadot/x-bigint": "14.0.1", + "@polkadot/x-randomvalues": "14.0.1", + "@scure/base": "^1.1.7", + "@scure/sr25519": "^0.2.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "14.0.1" + } + }, + "node_modules/@polkadot/wasm-bridge": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.5.4.tgz", + "integrity": "sha512-6xaJVvoZbnbgpQYXNw9OHVNWjXmtcoPcWh7hlwx3NpfiLkkjljj99YS+XGZQlq7ks2fVCg7FbfknkNb8PldDaA==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-util": "7.5.4", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.5.4.tgz", + "integrity": "sha512-1seyClxa7Jd7kQjfnCzTTTfYhTa/KUTDUaD3DMHBk5Q4ZUN1D1unJgX+v1aUeXSPxmzocdZETPJJRZjhVOqg9g==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-bridge": "7.5.4", + "@polkadot/wasm-crypto-asmjs": "7.5.4", + "@polkadot/wasm-crypto-init": "7.5.4", + "@polkadot/wasm-crypto-wasm": "7.5.4", + "@polkadot/wasm-util": "7.5.4", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-asmjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.5.4.tgz", + "integrity": "sha512-ZYwxQHAJ8pPt6kYk9XFmyuFuSS+yirJLonvP+DYbxOrARRUHfN4nzp4zcZNXUuaFhpbDobDSFn6gYzye6BUotA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-init": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.5.4.tgz", + "integrity": "sha512-U6s4Eo2rHs2n1iR01vTz/sOQ7eOnRPjaCsGWhPV+ZC/20hkVzwPAhiizu/IqMEol4tO2yiSheD4D6bn0KxUJhg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-bridge": "7.5.4", + "@polkadot/wasm-crypto-asmjs": "7.5.4", + "@polkadot/wasm-crypto-wasm": "7.5.4", + "@polkadot/wasm-util": "7.5.4", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-wasm": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.5.4.tgz", + "integrity": "sha512-PsHgLsVTu43eprwSvUGnxybtOEuHPES6AbApcs7y5ZbM2PiDMzYbAjNul098xJK/CPtrxZ0ePDFnaQBmIJyTFw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/wasm-util": "7.5.4", + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-util": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.5.4.tgz", + "integrity": "sha512-hqPpfhCpRAqCIn/CYbBluhh0TXmwkJnDRjxrU9Bnqtw9nMNa97D8JuOjdd2pi0rxm+eeLQ/f1rQMp71RMM9t4w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/x-bigint": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-14.0.1.tgz", + "integrity": "sha512-gfozjGnebr2rqURs31KtaWumbW4rRZpbiluhlmai6luCNrf5u8pB+oLA35kPEntrsLk9PnIG9OsC/n4hEtx4OQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.1", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-fetch": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-14.0.1.tgz", + "integrity": "sha512-yFsnO0xfkp3bIcvH70ZvmeUINYH1YnjOIS1B430f3w6axkqKhAOWCgzzKGMSRgn4dtm3YgwMBKPQ4nyfIsGOJQ==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.1", + "node-fetch": "^3.3.2", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-global": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-14.0.1.tgz", + "integrity": "sha512-aCI44DJU4fU0XXqrrSGIpi7JrZXK2kpe0jaQ2p6oDVXOOYEnZYXnMhTTmBE1lF/xtxzX50MnZrrU87jziU0qbA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-randomvalues": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-14.0.1.tgz", + "integrity": "sha512-/XkQcvshzJLHITuPrN3zmQKuFIPdKWoaiHhhVLD6rQWV60lTXA3ajw3ocju8ZN7xRxnweMS9Ce0kMPYa0NhRMg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@polkadot/x-global": "14.0.1", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "14.0.1", + "@polkadot/wasm-util": "*" + } + }, + "node_modules/@polkadot/x-textdecoder": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-14.0.1.tgz", + "integrity": "sha512-CcWiPCuPVJsNk4Vq43lgFHqLRBQHb4r9RD7ZIYgmwoebES8TNm4g2ew9ToCzakFKSpzKu6I07Ne9wv/dt5zLuw==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.1", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-textencoder": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-14.0.1.tgz", + "integrity": "sha512-VY51SpQmF1ccmAGLfxhYnAe95Spfz049WZ/+kK4NfsGF9WejxVdU53Im5C80l45r8qHuYQsCWU3+t0FNunh2Kg==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.1", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-ws": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-14.0.1.tgz", + "integrity": "sha512-Q18hoSuOl7F4aENNGNt9XYxkrjwZlC6xye9OQrPDeHam1SrvflGv9mSZHyo+mwJs0z1PCz2STpPEN9PKfZvHng==", + "license": "Apache-2.0", + "dependencies": { + "@polkadot/x-global": "14.0.1", + "tslib": "^2.8.0", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@scure/base": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/sr25519": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@scure/sr25519/-/sr25519-0.2.0.tgz", + "integrity": "sha512-uUuLP7Z126XdSizKtrCGqYyR3b3hYtJ6Fg/XFUXmc2//k2aXHDLqZwFeXxL97gg4XydPROPVnuaHGF2+xriSKg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.9.2", + "@noble/hashes": "~1.8.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@substrate/connect": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.11.tgz", + "integrity": "sha512-ofLs1PAO9AtDdPbdyTYj217Pe+lBfTLltdHDs3ds8no0BseoLeAGxpz1mHfi7zB4IxI3YyAiLjH6U8cw4pj4Nw==", + "deprecated": "versions below 1.x are no longer maintained", + "license": "GPL-3.0-only", + "optional": true, + "dependencies": { + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.5", + "@substrate/light-client-extension-helpers": "^1.0.0", + "smoldot": "2.0.26" + } + }, + "node_modules/@substrate/connect-extension-protocol": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.2.tgz", + "integrity": "sha512-t66jwrXA0s5Goq82ZtjagLNd7DPGCNjHeehRlE/gcJmJ+G56C0W+2plqOMRicJ8XGR1/YFnUSEqUFiSNbjGrAA==", + "license": "GPL-3.0-only", + "optional": true + }, + "node_modules/@substrate/connect-known-chains": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.10.3.tgz", + "integrity": "sha512-OJEZO1Pagtb6bNE3wCikc2wrmvEU5x7GxFFLqqbz1AJYYxSlrPCGu4N2og5YTExo4IcloNMQYFRkBGue0BKZ4w==", + "license": "GPL-3.0-only", + "optional": true + }, + "node_modules/@substrate/light-client-extension-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-1.0.0.tgz", + "integrity": "sha512-TdKlni1mBBZptOaeVrKnusMg/UBpWUORNDv5fdCaJklP4RJiFOzBCrzC+CyVI5kQzsXBisZ+2pXm+rIjS38kHg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@polkadot-api/json-rpc-provider": "^0.0.1", + "@polkadot-api/json-rpc-provider-proxy": "^0.1.0", + "@polkadot-api/observable-client": "^0.3.0", + "@polkadot-api/substrate-client": "^0.1.2", + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.5", + "rxjs": "^7.8.1" + }, + "peerDependencies": { + "smoldot": "2.x" + } + }, + "node_modules/@substrate/ss58-registry": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.51.0.tgz", + "integrity": "sha512-TWDurLiPxndFgKjVavCniytBIw+t4ViOi7TYp9h/D0NMmkEc9klFTo+827eyEJ0lELpqO207Ey7uGxUa+BS1jQ==", + "license": "Apache-2.0" + }, + "node_modules/@types/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "24.10.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.9.tgz", + "integrity": "sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/bn.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/mock-socket": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz", + "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nock": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz", + "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/scale-ts": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/scale-ts/-/scale-ts-1.6.1.tgz", + "integrity": "sha512-PBMc2AWc6wSEqJYBDPcyCLUj9/tMKnLX70jLOSndMtcUoLQucP/DM0vnQo1wJAYjTrQiq8iG9rD0q6wFzgjH7g==", + "license": "MIT", + "optional": true + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "license": "MIT", + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/.github/workflows/check-node-compat/package.json b/.github/workflows/check-node-compat/package.json new file mode 100644 index 0000000000..5a78939bd8 --- /dev/null +++ b/.github/workflows/check-node-compat/package.json @@ -0,0 +1,21 @@ +{ + "name": "node-compat", + "version": "1.0.0", + "type": "commonjs", + "license": "ISC", + "scripts": { + "test": "tsx main.ts" + }, + "dependencies": { + "@polkadot/api": "^16.5.4", + "tsx": "^4.21.0" + }, + "devDependencies": { + "@types/node": "^24" + }, + "prettier": { + "singleQuote": false, + "trailingComma": "all", + "printWidth": 120 + } +} diff --git a/.github/workflows/check-node-compat/tsconfig.json b/.github/workflows/check-node-compat/tsconfig.json new file mode 100644 index 0000000000..b4cbbb843b --- /dev/null +++ b/.github/workflows/check-node-compat/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "bundler", + "esModuleInterop": true, + "strict": true, + "skipLibCheck": true, + "types": ["node"] + } +} diff --git a/.github/workflows/contract-tests.yml b/.github/workflows/contract-tests.yml index 2e74e408b3..d524af0c64 100644 --- a/.github/workflows/contract-tests.yml +++ b/.github/workflows/contract-tests.yml @@ -24,7 +24,7 @@ permissions: jobs: run: - runs-on: ubuntu-latest + runs-on: [self-hosted, type-ccx13] env: RUST_BACKTRACE: full steps: @@ -52,7 +52,7 @@ jobs: - name: Run tests uses: nick-fields/retry@v3 with: - timeout_minutes: 90 + timeout_minutes: 120 max_attempts: 3 retry_wait_seconds: 60 command: | diff --git a/Cargo.lock b/Cargo.lock index eeffdabd0f..3e93e6db44 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1056,7 +1056,7 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "assets-common" version = "0.22.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-core", "ethereum-standards", @@ -1435,7 +1435,7 @@ checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" [[package]] name = "binary-merkle-tree" version = "16.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "hash-db", "log", @@ -1704,7 +1704,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-runtime", "finality-grandpa", @@ -1721,7 +1721,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-header-chain", "bp-runtime", @@ -1737,7 +1737,7 @@ dependencies = [ [[package]] name = "bp-parachains" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-header-chain", "bp-polkadot-core", @@ -1754,7 +1754,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-messages", "bp-runtime", @@ -1770,7 +1770,7 @@ dependencies = [ [[package]] name = "bp-relayers" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-header-chain", "bp-messages", @@ -1788,7 +1788,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -1811,7 +1811,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-header-chain", "bp-parachains", @@ -1831,7 +1831,7 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub" version = "0.7.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-messages", "bp-runtime", @@ -1848,7 +1848,7 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.18.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -1860,7 +1860,7 @@ dependencies = [ [[package]] name = "bridge-hub-common" version = "0.14.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1879,7 +1879,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.22.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-header-chain", "bp-messages", @@ -2711,7 +2711,7 @@ dependencies = [ [[package]] name = "cumulus-client-bootnodes" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -2737,7 +2737,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.24.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "clap", "parity-scale-codec", @@ -2754,7 +2754,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.24.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -2777,7 +2777,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.24.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "cumulus-client-collator", @@ -2824,7 +2824,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.24.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -2856,7 +2856,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.20.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "anyhow", "async-trait", @@ -2871,7 +2871,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.24.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -2894,7 +2894,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.24.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2921,7 +2921,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.18.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2931,7 +2931,7 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "sc-consensus-babe", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-inherents", "sp-runtime", "sp-state-machine", @@ -2942,7 +2942,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.24.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2970,7 +2970,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.25.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-channel 1.9.0", "cumulus-client-cli", @@ -3010,7 +3010,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -3027,7 +3027,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -3044,7 +3044,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -3081,7 +3081,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -3092,7 +3092,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "22.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -3105,7 +3105,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-solo-to-para" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -3120,7 +3120,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-weight-reclaim" version = "0.3.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "derive-where", @@ -3139,7 +3139,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.20.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3154,7 +3154,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "approx", "bounded-collections 0.2.4", @@ -3179,7 +3179,7 @@ dependencies = [ [[package]] name = "cumulus-ping" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-pallet-xcm", "cumulus-primitives-core", @@ -3194,7 +3194,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.18.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "sp-api", "sp-consensus-aura", @@ -3203,7 +3203,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.19.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -3220,7 +3220,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.19.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3234,7 +3234,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.13.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "sp-externalities", "sp-runtime-interface", @@ -3244,7 +3244,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "12.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -3261,7 +3261,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3278,7 +3278,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.25.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -3306,7 +3306,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.24.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3326,7 +3326,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.25.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -3362,7 +3362,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.24.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3403,7 +3403,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-streams" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-relay-chain-interface", "futures", @@ -3417,7 +3417,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.20.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -4198,7 +4198,7 @@ dependencies = [ [[package]] name = "ethereum-standards" version = "0.1.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "alloy-core", ] @@ -4415,7 +4415,7 @@ dependencies = [ [[package]] name = "fc-api" version = "1.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "async-trait", "fp-storage", @@ -4427,7 +4427,7 @@ dependencies = [ [[package]] name = "fc-aura" version = "1.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "fc-rpc", "fp-storage", @@ -4443,7 +4443,7 @@ dependencies = [ [[package]] name = "fc-babe" version = "1.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "fc-rpc", "sc-client-api", @@ -4459,7 +4459,7 @@ dependencies = [ [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "async-trait", "fp-consensus", @@ -4475,7 +4475,7 @@ dependencies = [ [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "async-trait", "ethereum", @@ -4505,7 +4505,7 @@ dependencies = [ [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "fc-db", "fc-storage", @@ -4528,7 +4528,7 @@ dependencies = [ [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "ethereum", "ethereum-types", @@ -4579,7 +4579,7 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "ethereum", "ethereum-types", @@ -4588,13 +4588,13 @@ dependencies = [ "rustc-hex", "serde", "serde_json", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", ] [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "ethereum", "ethereum-types", @@ -4759,7 +4759,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", ] @@ -4786,7 +4786,7 @@ dependencies = [ [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "hex", "impl-serde", @@ -4804,7 +4804,7 @@ dependencies = [ [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "ethereum", "parity-scale-codec", @@ -4815,7 +4815,7 @@ dependencies = [ [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "ethereum", "ethereum-types", @@ -4827,7 +4827,7 @@ dependencies = [ [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "environmental", "evm", @@ -4843,7 +4843,7 @@ dependencies = [ [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "ethereum", "ethereum-types", @@ -4859,7 +4859,7 @@ dependencies = [ [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "frame-support", "parity-scale-codec", @@ -4871,7 +4871,7 @@ dependencies = [ [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "parity-scale-codec", "serde", @@ -4886,7 +4886,7 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" version = "41.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-support-procedural", @@ -4910,7 +4910,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "49.1.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "Inflector", "array-bytes 6.2.3", @@ -4975,7 +4975,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-pallet-pov" version = "31.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5003,7 +5003,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "16.1.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -5014,7 +5014,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -5031,7 +5031,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "41.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "aquamarine", "frame-support", @@ -5084,7 +5084,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.9.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "const-hex", @@ -5100,7 +5100,7 @@ dependencies = [ [[package]] name = "frame-storage-access-test-runtime" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-pallet-parachain-system", "parity-scale-codec", @@ -5114,7 +5114,7 @@ dependencies = [ [[package]] name = "frame-support" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "aquamarine", "array-bytes 6.2.3", @@ -5155,7 +5155,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "34.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "Inflector", "cfg-expr", @@ -5168,7 +5168,7 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "syn 2.0.106", ] @@ -5188,7 +5188,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "13.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support-procedural-tools-derive 12.0.0", "proc-macro-crate 3.4.0", @@ -5211,7 +5211,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "proc-macro2", "quote", @@ -5221,7 +5221,7 @@ dependencies = [ [[package]] name = "frame-system" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cfg-if", "docify", @@ -5240,7 +5240,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5254,7 +5254,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "parity-scale-codec", @@ -5264,7 +5264,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.47.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "parity-scale-codec", @@ -7821,7 +7821,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "46.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "log", @@ -7840,7 +7840,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8789,7 +8789,7 @@ dependencies = [ [[package]] name = "pallet-alliance" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "frame-benchmarking", @@ -8801,7 +8801,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-io", "sp-runtime", ] @@ -8809,7 +8809,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" version = "23.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8827,7 +8827,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion-ops" version = "0.9.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8845,7 +8845,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion-tx-payment" version = "23.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8860,7 +8860,7 @@ dependencies = [ [[package]] name = "pallet-asset-rate" version = "20.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8874,7 +8874,7 @@ dependencies = [ [[package]] name = "pallet-asset-rewards" version = "0.3.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8892,7 +8892,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8908,7 +8908,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "43.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "ethereum-standards", "frame-benchmarking", @@ -8926,7 +8926,7 @@ dependencies = [ [[package]] name = "pallet-assets-freezer" version = "0.8.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "pallet-assets", @@ -8938,7 +8938,7 @@ dependencies = [ [[package]] name = "pallet-assets-holder" version = "0.3.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8953,7 +8953,7 @@ dependencies = [ [[package]] name = "pallet-atomic-swap" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -8963,7 +8963,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -8979,7 +8979,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -8994,7 +8994,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -9007,7 +9007,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9030,7 +9030,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "aquamarine", "docify", @@ -9051,7 +9051,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "42.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -9067,7 +9067,7 @@ dependencies = [ [[package]] name = "pallet-base-fee" version = "1.0.0" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "fp-evm", "frame-support", @@ -9081,7 +9081,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "42.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -9100,7 +9100,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "42.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -9125,7 +9125,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9142,7 +9142,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-header-chain", "bp-runtime", @@ -9161,7 +9161,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-header-chain", "bp-messages", @@ -9180,7 +9180,7 @@ dependencies = [ [[package]] name = "pallet-bridge-parachains" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-header-chain", "bp-parachains", @@ -9200,7 +9200,7 @@ dependencies = [ [[package]] name = "pallet-bridge-relayers" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-header-chain", "bp-messages", @@ -9223,7 +9223,7 @@ dependencies = [ [[package]] name = "pallet-broker" version = "0.20.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitvec", "frame-benchmarking", @@ -9241,7 +9241,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9259,7 +9259,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "22.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9278,7 +9278,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -9295,7 +9295,7 @@ dependencies = [ [[package]] name = "pallet-collective-content" version = "0.19.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9367,7 +9367,7 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "environmental", "frame-benchmarking", @@ -9376,8 +9376,8 @@ dependencies = [ "impl-trait-for-tuples", "log", "pallet-balances", - "pallet-contracts-proc-macro 23.0.3 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", - "pallet-contracts-uapi 14.0.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "pallet-contracts-proc-macro 23.0.3 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", + "pallet-contracts-uapi 14.0.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "parity-scale-codec", "paste", "rand 0.8.5", @@ -9398,14 +9398,14 @@ dependencies = [ [[package]] name = "pallet-contracts-mock-network" version = "18.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", "pallet-assets", "pallet-balances", "pallet-contracts 41.0.0", - "pallet-contracts-uapi 14.0.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "pallet-contracts-uapi 14.0.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "pallet-message-queue", "pallet-timestamp", "pallet-xcm", @@ -9439,7 +9439,7 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "23.0.3" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "proc-macro2", "quote", @@ -9460,7 +9460,7 @@ dependencies = [ [[package]] name = "pallet-contracts-uapi" version = "14.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -9471,7 +9471,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "assert_matches", "frame-benchmarking", @@ -9487,7 +9487,7 @@ dependencies = [ [[package]] name = "pallet-core-fellowship" version = "25.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9524,7 +9524,7 @@ dependencies = [ [[package]] name = "pallet-delegated-staking" version = "8.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -9539,7 +9539,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9556,7 +9556,7 @@ dependencies = [ [[package]] name = "pallet-dev-mode" version = "23.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -9605,7 +9605,7 @@ dependencies = [ [[package]] name = "pallet-dummy-dim" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9623,7 +9623,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-block" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9644,7 +9644,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9665,7 +9665,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -9678,7 +9678,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "42.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9696,7 +9696,7 @@ dependencies = [ [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "ethereum", "ethereum-types", @@ -9719,7 +9719,7 @@ dependencies = [ [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "environmental", @@ -9744,7 +9744,7 @@ dependencies = [ [[package]] name = "pallet-evm-chain-id" version = "1.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "frame-support", "frame-system", @@ -9755,7 +9755,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-bn128" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "fp-evm", "sp-core", @@ -9765,7 +9765,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-dispatch" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "fp-evm", "frame-support", @@ -9777,7 +9777,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-modexp" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "fp-evm", "num", @@ -9786,7 +9786,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-sha3fips" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "fp-evm", "tiny-keccak", @@ -9795,7 +9795,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-simple" version = "2.0.0-dev" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "fp-evm", "ripemd", @@ -9805,7 +9805,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -9823,7 +9823,7 @@ dependencies = [ [[package]] name = "pallet-glutton" version = "27.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "blake2 0.10.6", "frame-benchmarking", @@ -9841,7 +9841,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9863,7 +9863,7 @@ dependencies = [ [[package]] name = "pallet-hotfix-sufficients" version = "1.0.0" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9878,7 +9878,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "enumflags2", "frame-benchmarking", @@ -9894,7 +9894,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9913,7 +9913,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9928,7 +9928,7 @@ dependencies = [ [[package]] name = "pallet-insecure-randomness-collective-flip" version = "29.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -9939,7 +9939,7 @@ dependencies = [ [[package]] name = "pallet-lottery" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9952,7 +9952,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -9968,7 +9968,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "44.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "environmental", "frame-benchmarking", @@ -9987,7 +9987,7 @@ dependencies = [ [[package]] name = "pallet-meta-tx" version = "0.3.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -10005,7 +10005,7 @@ dependencies = [ [[package]] name = "pallet-migrations" version = "11.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -10024,7 +10024,7 @@ dependencies = [ [[package]] name = "pallet-mixnet" version = "0.17.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "parity-scale-codec", @@ -10038,7 +10038,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "parity-scale-codec", @@ -10050,7 +10050,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "parity-scale-codec", @@ -10061,7 +10061,7 @@ dependencies = [ [[package]] name = "pallet-nft-fractionalization" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "pallet-assets", @@ -10074,7 +10074,7 @@ dependencies = [ [[package]] name = "pallet-nfts" version = "35.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "enumflags2", "frame-benchmarking", @@ -10091,7 +10091,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10101,7 +10101,7 @@ dependencies = [ [[package]] name = "pallet-node-authorization" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "parity-scale-codec", @@ -10112,7 +10112,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "39.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10130,7 +10130,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "39.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10150,7 +10150,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -10160,7 +10160,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10175,7 +10175,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10198,7 +10198,7 @@ dependencies = [ [[package]] name = "pallet-origin-restriction" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10216,7 +10216,7 @@ dependencies = [ [[package]] name = "pallet-paged-list" version = "0.19.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "parity-scale-codec", @@ -10227,7 +10227,7 @@ dependencies = [ [[package]] name = "pallet-parameters" version = "0.12.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -10244,7 +10244,7 @@ dependencies = [ [[package]] name = "pallet-people" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10262,7 +10262,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10278,7 +10278,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10288,7 +10288,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10306,7 +10306,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10316,7 +10316,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "assert_matches", "frame-benchmarking", @@ -10351,7 +10351,7 @@ dependencies = [ [[package]] name = "pallet-remark" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10366,7 +10366,7 @@ dependencies = [ [[package]] name = "pallet-revive" version = "0.7.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "alloy-core", "derive_more 0.99.20", @@ -10412,7 +10412,7 @@ dependencies = [ [[package]] name = "pallet-revive-fixtures" version = "0.4.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "anyhow", "cargo_metadata", @@ -10426,7 +10426,7 @@ dependencies = [ [[package]] name = "pallet-revive-proc-macro" version = "0.3.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "proc-macro2", "quote", @@ -10436,7 +10436,7 @@ dependencies = [ [[package]] name = "pallet-revive-uapi" version = "0.5.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitflags 1.3.2", "pallet-revive-proc-macro", @@ -10448,7 +10448,7 @@ dependencies = [ [[package]] name = "pallet-root-offences" version = "38.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10464,7 +10464,7 @@ dependencies = [ [[package]] name = "pallet-root-testing" version = "17.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10477,7 +10477,7 @@ dependencies = [ [[package]] name = "pallet-safe-mode" version = "22.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "pallet-balances", @@ -10491,7 +10491,7 @@ dependencies = [ [[package]] name = "pallet-salary" version = "26.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "pallet-ranked-collective", @@ -10503,7 +10503,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "42.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -10520,7 +10520,7 @@ dependencies = [ [[package]] name = "pallet-scored-pool" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10533,7 +10533,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10554,7 +10554,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10590,7 +10590,7 @@ dependencies = [ [[package]] name = "pallet-skip-feeless-payment" version = "16.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10602,7 +10602,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10619,7 +10619,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10641,7 +10641,7 @@ dependencies = [ [[package]] name = "pallet-staking-async" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10664,7 +10664,7 @@ dependencies = [ [[package]] name = "pallet-staking-async-ah-client" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10683,7 +10683,7 @@ dependencies = [ [[package]] name = "pallet-staking-async-rc-client" version = "0.2.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10700,7 +10700,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "12.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -10711,7 +10711,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "23.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "sp-arithmetic", @@ -10720,7 +10720,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "27.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "sp-api", @@ -10730,7 +10730,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "46.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10746,7 +10746,7 @@ dependencies = [ [[package]] name = "pallet-statement" version = "23.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", @@ -10901,7 +10901,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -10916,7 +10916,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -10934,7 +10934,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10952,7 +10952,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -10967,7 +10967,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "44.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -10983,7 +10983,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -10995,7 +10995,7 @@ dependencies = [ [[package]] name = "pallet-transaction-storage" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "frame-benchmarking", @@ -11014,7 +11014,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -11033,7 +11033,7 @@ dependencies = [ [[package]] name = "pallet-tx-pause" version = "22.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "parity-scale-codec", @@ -11044,7 +11044,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -11058,7 +11058,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -11073,7 +11073,7 @@ dependencies = [ [[package]] name = "pallet-verify-signature" version = "0.4.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -11088,7 +11088,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -11102,7 +11102,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -11112,7 +11112,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "20.1.3" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bounded-collections 0.2.4", "frame-benchmarking", @@ -11138,7 +11138,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "21.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-benchmarking", "frame-support", @@ -11155,7 +11155,7 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub" version = "0.17.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-messages", "bp-runtime", @@ -11177,7 +11177,7 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub-router" version = "0.19.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-xcm-bridge-hub-router", "frame-benchmarking", @@ -11197,7 +11197,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "22.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -11536,7 +11536,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polkadot-approval-distribution" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "futures-timer", @@ -11554,7 +11554,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "futures-timer", @@ -11569,7 +11569,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "fatality", "futures", @@ -11592,7 +11592,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "fatality", @@ -11625,7 +11625,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "25.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "clap", "frame-benchmarking-cli", @@ -11649,7 +11649,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitvec", "fatality", @@ -11672,7 +11672,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "18.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -11683,7 +11683,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "fatality", "futures", @@ -11705,7 +11705,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "20.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -11719,7 +11719,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "24.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "futures-timer", @@ -11732,7 +11732,7 @@ dependencies = [ "sc-network", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-keystore", "tracing-gum", ] @@ -11740,7 +11740,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "always-assert", "async-trait", @@ -11763,7 +11763,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "parity-scale-codec", @@ -11781,7 +11781,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "bitvec", @@ -11813,7 +11813,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting-parallel" version = "0.7.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -11837,7 +11837,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitvec", "futures", @@ -11856,7 +11856,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitvec", "fatality", @@ -11877,7 +11877,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "polkadot-node-subsystem", @@ -11892,7 +11892,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -11914,7 +11914,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "polkadot-node-metrics", @@ -11928,7 +11928,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "futures-timer", @@ -11944,7 +11944,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "fatality", "futures", @@ -11962,7 +11962,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -11979,7 +11979,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "23.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "fatality", "futures", @@ -11993,7 +11993,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitvec", "fatality", @@ -12010,7 +12010,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "always-assert", "array-bytes 6.2.3", @@ -12038,7 +12038,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "polkadot-node-subsystem", @@ -12051,7 +12051,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "20.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cpu-time", "futures", @@ -12066,7 +12066,7 @@ dependencies = [ "sc-executor-wasmtime", "seccompiler", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-externalities", "sp-io", "sp-tracing", @@ -12077,7 +12077,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "polkadot-node-metrics", @@ -12092,7 +12092,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bs58", "futures", @@ -12109,7 +12109,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -12134,7 +12134,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "20.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitvec", "bounded-vec", @@ -12158,7 +12158,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "polkadot-node-subsystem-types", "polkadot-overseer", @@ -12167,7 +12167,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "derive_more 0.99.20", @@ -12195,7 +12195,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "24.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "fatality", "futures", @@ -12226,7 +12226,7 @@ dependencies = [ [[package]] name = "polkadot-omni-node-lib" version = "0.7.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "clap", @@ -12312,7 +12312,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -12332,7 +12332,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "17.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bounded-collections 0.2.4", "derive_more 0.99.20", @@ -12348,7 +12348,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "19.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitvec", "bounded-collections 0.2.4", @@ -12377,7 +12377,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "25.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -12410,7 +12410,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "20.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitvec", "frame-benchmarking", @@ -12460,7 +12460,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "21.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bs58", "frame-benchmarking", @@ -12472,7 +12472,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "20.0.2" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -12520,7 +12520,7 @@ dependencies = [ [[package]] name = "polkadot-sdk" version = "2506.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "assets-common", "bridge-hub-common", @@ -12678,7 +12678,7 @@ dependencies = [ [[package]] name = "polkadot-sdk-frame" version = "0.10.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-benchmarking", @@ -12713,7 +12713,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "25.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "frame-benchmarking", @@ -12821,7 +12821,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitvec", "fatality", @@ -12841,7 +12841,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "20.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -13114,7 +13114,7 @@ dependencies = [ [[package]] name = "precompile-utils" version = "0.1.0" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "environmental", "evm", @@ -13138,14 +13138,14 @@ dependencies = [ [[package]] name = "precompile-utils-macro" version = "0.1.0" -source = "git+https://github.com/opentensor/frontier?rev=e31d47f83a64c361ecf0fd02bf567de6db9bda43#e31d47f83a64c361ecf0fd02bf567de6db9bda43" +source = "git+https://github.com/opentensor/frontier?rev=7c93fd974ad70faec1c1c4b87ab23874f365f27a#7c93fd974ad70faec1c1c4b87ab23874f365f27a" dependencies = [ "case", "num_enum", "prettyplease", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "syn 2.0.106", ] @@ -13327,7 +13327,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "syn 2.0.106", ] @@ -13957,7 +13957,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "24.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "binary-merkle-tree", "bitvec", @@ -14055,7 +14055,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "21.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "polkadot-primitives", @@ -14451,7 +14451,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "32.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "sp-core", @@ -14462,7 +14462,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.51.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -14493,7 +14493,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.50.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "log", @@ -14514,7 +14514,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.45.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "sp-api", @@ -14529,7 +14529,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "44.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "clap", @@ -14545,7 +14545,7 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-genesis-builder", "sp-io", "sp-runtime", @@ -14556,7 +14556,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -14567,7 +14567,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.53.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "chrono", @@ -14609,7 +14609,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "fnv", "futures", @@ -14635,7 +14635,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.47.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "hash-db", "kvdb", @@ -14663,7 +14663,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.50.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -14686,7 +14686,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.51.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -14715,7 +14715,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.51.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "fork-tree", @@ -14740,7 +14740,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-inherents", "sp-keystore", "sp-runtime", @@ -14751,7 +14751,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.51.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "jsonrpsee", @@ -14773,7 +14773,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "30.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -14807,7 +14807,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "30.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "jsonrpsee", @@ -14827,7 +14827,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.50.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "fork-tree", "parity-scale-codec", @@ -14840,7 +14840,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.36.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "ahash", "array-bytes 6.2.3", @@ -14874,7 +14874,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -14884,7 +14884,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.36.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "finality-grandpa", "futures", @@ -14904,7 +14904,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.52.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "assert_matches", "async-trait", @@ -14939,7 +14939,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.50.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -14962,7 +14962,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.43.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", @@ -14985,7 +14985,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.39.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "polkavm 0.24.0", "sc-allocator", @@ -14998,7 +14998,7 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.36.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "polkavm 0.24.0", @@ -15009,7 +15009,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.39.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "anyhow", "log", @@ -15025,7 +15025,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.50.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "console", "futures", @@ -15041,7 +15041,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "36.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.5", @@ -15055,7 +15055,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "arrayvec 0.7.6", @@ -15083,7 +15083,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.51.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -15133,7 +15133,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.49.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -15143,7 +15143,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.51.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "ahash", "futures", @@ -15162,7 +15162,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.50.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -15183,7 +15183,7 @@ dependencies = [ [[package]] name = "sc-network-statement" version = "0.33.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -15203,7 +15203,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.50.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -15238,7 +15238,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.50.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "futures", @@ -15257,7 +15257,7 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.17.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bs58", "bytes", @@ -15278,7 +15278,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "46.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bytes", "fnv", @@ -15312,7 +15312,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.20.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -15321,7 +15321,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "46.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "jsonrpsee", @@ -15353,7 +15353,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.50.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -15373,7 +15373,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "23.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -15397,7 +15397,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.51.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "futures", @@ -15430,13 +15430,13 @@ dependencies = [ [[package]] name = "sc-runtime-utilities" version = "0.3.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "sc-executor", "sc-executor-common", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-state-machine", "sp-wasm-interface", "thiserror 1.0.69", @@ -15445,7 +15445,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.52.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "directories", @@ -15509,7 +15509,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.39.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "parity-scale-codec", @@ -15520,7 +15520,7 @@ dependencies = [ [[package]] name = "sc-statement-store" version = "22.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "parity-db", @@ -15539,7 +15539,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.25.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "clap", "fs4", @@ -15552,7 +15552,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.51.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -15571,7 +15571,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "43.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "derive_more 0.99.20", "futures", @@ -15584,14 +15584,14 @@ dependencies = [ "serde", "serde_json", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-io", ] [[package]] name = "sc-telemetry" version = "29.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "chrono", "futures", @@ -15610,7 +15610,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "chrono", "console", @@ -15638,7 +15638,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.1.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -15649,7 +15649,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "40.1.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -15666,7 +15666,7 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-runtime", "sp-tracing", "sp-transaction-pool", @@ -15680,7 +15680,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -15697,7 +15697,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "19.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-channel 1.9.0", "futures", @@ -16395,7 +16395,7 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "18.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "enumn", "parity-scale-codec", @@ -16658,7 +16658,7 @@ dependencies = [ [[package]] name = "snowbridge-core" version = "0.14.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bp-relayers", "frame-support", @@ -16742,7 +16742,7 @@ dependencies = [ [[package]] name = "sp-api" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "hash-db", @@ -16764,7 +16764,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "23.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "Inflector", "blake2 0.10.6", @@ -16778,7 +16778,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "41.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -16790,7 +16790,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "27.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "integer-sqrt", @@ -16804,7 +16804,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -16816,7 +16816,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "sp-api", "sp-inherents", @@ -16826,7 +16826,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "futures", "parity-scale-codec", @@ -16845,7 +16845,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.43.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "futures", @@ -16859,7 +16859,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.43.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "parity-scale-codec", @@ -16875,7 +16875,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.43.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "parity-scale-codec", @@ -16893,7 +16893,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "25.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -16901,7 +16901,7 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-io", "sp-keystore", "sp-mmr-primitives", @@ -16913,7 +16913,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "24.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "finality-grandpa", "log", @@ -16930,7 +16930,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.43.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -16941,7 +16941,7 @@ dependencies = [ [[package]] name = "sp-core" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "ark-vrf", "array-bytes 6.2.3", @@ -16972,7 +16972,7 @@ dependencies = [ "secrecy 0.8.0", "serde", "sha2 0.10.9", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -16989,7 +16989,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.16.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -17023,7 +17023,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "blake2b_simd", "byteorder", @@ -17036,17 +17036,17 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "syn 2.0.106", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "kvdb", "parking_lot 0.12.5", @@ -17055,7 +17055,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "proc-macro2", "quote", @@ -17065,7 +17065,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.30.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "environmental", "parity-scale-codec", @@ -17075,7 +17075,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.18.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -17087,7 +17087,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -17100,7 +17100,7 @@ dependencies = [ [[package]] name = "sp-io" version = "41.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bytes", "docify", @@ -17112,7 +17112,7 @@ dependencies = [ "rustversion", "secp256k1 0.28.2", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-externalities", "sp-keystore", "sp-runtime-interface", @@ -17126,7 +17126,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "42.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "sp-core", "sp-runtime", @@ -17136,7 +17136,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.43.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", @@ -17147,7 +17147,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -17156,7 +17156,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.11.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-metadata 23.0.0", "parity-scale-codec", @@ -17166,7 +17166,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.15.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -17177,7 +17177,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "log", "parity-scale-codec", @@ -17194,7 +17194,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -17207,7 +17207,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "sp-api", "sp-core", @@ -17217,7 +17217,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.2" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "backtrace", "regex", @@ -17226,7 +17226,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "35.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -17236,7 +17236,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "42.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "binary-merkle-tree", "docify", @@ -17265,7 +17265,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "30.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -17284,7 +17284,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "19.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "Inflector", "expander", @@ -17297,7 +17297,7 @@ dependencies = [ [[package]] name = "sp-session" version = "39.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "scale-info", @@ -17311,7 +17311,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "39.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -17324,7 +17324,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.46.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "hash-db", "log", @@ -17344,7 +17344,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "21.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -17357,7 +17357,7 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a)", "sp-externalities", "sp-runtime", "sp-runtime-interface", @@ -17368,12 +17368,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" [[package]] name = "sp-storage" version = "22.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "impl-serde", "parity-scale-codec", @@ -17385,7 +17385,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "parity-scale-codec", @@ -17397,7 +17397,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.1.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "tracing", @@ -17408,7 +17408,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "sp-api", "sp-runtime", @@ -17417,7 +17417,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "37.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "async-trait", "parity-scale-codec", @@ -17431,7 +17431,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "ahash", "foldhash 0.1.5", @@ -17456,7 +17456,7 @@ dependencies = [ [[package]] name = "sp-version" version = "40.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "impl-serde", "parity-scale-codec", @@ -17473,7 +17473,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "15.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "parity-scale-codec", "proc-macro-warning", @@ -17485,7 +17485,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "22.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -17497,7 +17497,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "32.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "bounded-collections 0.2.4", "parity-scale-codec", @@ -17671,7 +17671,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-chain-spec-builder" version = "12.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "clap", "docify", @@ -17684,7 +17684,7 @@ dependencies = [ [[package]] name = "staging-node-inspect" version = "0.29.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "clap", "parity-scale-codec", @@ -17702,7 +17702,7 @@ dependencies = [ [[package]] name = "staging-parachain-info" version = "0.21.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -17715,7 +17715,7 @@ dependencies = [ [[package]] name = "staging-xcm" version = "17.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "bounded-collections 0.2.4", @@ -17736,7 +17736,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "21.1.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "environmental", "frame-support", @@ -17760,7 +17760,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "20.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "environmental", "frame-benchmarking", @@ -17872,7 +17872,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "hmac 0.12.1", "pbkdf2", @@ -17897,7 +17897,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" [[package]] name = "substrate-fixed" @@ -17913,7 +17913,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "45.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -17933,7 +17933,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.17.6" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "http-body-util", "hyper 1.7.0", @@ -17947,7 +17947,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "44.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -17974,7 +17974,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "27.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "array-bytes 6.2.3", "build-helper", @@ -18109,6 +18109,7 @@ dependencies = [ "pallet-subtensor-proxy", "pallet-subtensor-swap", "precompile-utils", + "scale-info", "sp-core", "sp-io", "sp-runtime", @@ -19002,7 +19003,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "20.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "coarsetime", "polkadot-primitives", @@ -19013,7 +19014,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "expander", "proc-macro-crate 3.4.0", @@ -19964,7 +19965,7 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "westend-runtime" version = "24.0.1" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "binary-merkle-tree", "bitvec", @@ -20071,7 +20072,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "21.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "polkadot-primitives", @@ -20624,7 +20625,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "11.0.2" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "Inflector", "proc-macro2", @@ -20635,7 +20636,7 @@ dependencies = [ [[package]] name = "xcm-runtime-apis" version = "0.8.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "parity-scale-codec", @@ -20649,7 +20650,7 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "21.0.0" -source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=81fa2c54e94f824eba7dabe9dffd063481cb2d80#81fa2c54e94f824eba7dabe9dffd063481cb2d80" +source = "git+https://github.com/opentensor/polkadot-sdk.git?rev=467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a#467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" dependencies = [ "frame-support", "frame-system", diff --git a/Cargo.toml b/Cargo.toml index 1d65a3cd5e..4a51bda878 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -234,35 +234,35 @@ polkadot-sdk = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = " runtime-common = { package = "polkadot-runtime-common", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2503-6", default-features = false } # Frontier -fp-evm = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fp-rpc = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fp-self-contained = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fp-account = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fc-storage = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fc-db = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fc-consensus = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fp-consensus = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fp-dynamic-fee = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fc-api = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fc-rpc = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fc-rpc-core = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fc-aura = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fc-babe = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -fc-mapping-sync = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -precompile-utils = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } +fp-evm = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fp-rpc = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fp-self-contained = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fp-account = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fc-storage = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fc-db = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fc-consensus = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fp-consensus = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fp-dynamic-fee = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fc-api = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fc-rpc = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fc-rpc-core = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fc-aura = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fc-babe = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +fc-mapping-sync = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +precompile-utils = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } # Frontier FRAME -pallet-base-fee = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-dynamic-fee = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-ethereum = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-evm = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-evm-precompile-dispatch = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-evm-chain-id = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-evm-precompile-modexp = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-evm-precompile-sha3fips = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-evm-precompile-simple = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-evm-precompile-bn128 = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } -pallet-hotfix-sufficients = { git = "https://github.com/opentensor/frontier", rev = "e31d47f83a64c361ecf0fd02bf567de6db9bda43", default-features = false } +pallet-base-fee = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-dynamic-fee = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-ethereum = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-evm = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-evm-precompile-dispatch = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-evm-chain-id = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-evm-precompile-sha3fips = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-evm-precompile-bn128 = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } +pallet-hotfix-sufficients = { git = "https://github.com/opentensor/frontier", rev = "7c93fd974ad70faec1c1c4b87ab23874f365f27a", default-features = false } #DRAND pallet-drand = { path = "pallets/drand", default-features = false } @@ -318,190 +318,190 @@ w3f-bls = { git = "https://github.com/opentensor/bls", branch = "fix-no-std" } # NOTE: The Diener will patch unnecesarry crates while this is waiting to be merged: . # You may install diener from `liamaharon:ignore-unused-flag` if you like in the meantime. [patch."https://github.com/paritytech/polkadot-sdk"] -frame-support = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -binary-merkle-tree = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-core = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-crypto-hashing = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-crypto-hashing-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-debug-derive = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-externalities = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-storage = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-runtime-interface = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-runtime-interface-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-std = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-tracing = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-wasm-interface = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-io = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-keystore = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-state-machine = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-panic-handler = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-trie = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-runtime = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-application-crypto = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-arithmetic = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-weights = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-api-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-metadata-ir = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-version = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-version-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-block-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-block-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-inherents = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-blockchain = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-consensus = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-database = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-client-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -substrate-prometheus-endpoint = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-executor = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-executor-common = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-allocator = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-maybe-compressed-blob = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-executor-polkavm = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-executor-wasmtime = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -substrate-wasm-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-tracing = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-tracing-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-executive = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-system = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-try-runtime = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-balances = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-benchmarking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-support-procedural = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-support-procedural-tools = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-support-procedural-tools-derive = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-client-db = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-state-db = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-sdk-frame = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-system-benchmarking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-system-rpc-runtime-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-consensus-aura = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-consensus-slots = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-timestamp = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-consensus-grandpa = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-genesis-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-keyring = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-offchain = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-session = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-staking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-transaction-pool = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-sdk = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -cumulus-primitives-core = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-core-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-parachain-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-authority-discovery = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -staging-xcm = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -xcm-procedural = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -cumulus-primitives-proof-size-hostfunction = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-message-queue = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-runtime-parachains = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-authority-discovery = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-session = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-timestamp = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-authorship = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-babe = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-consensus-babe = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-election-provider-support = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-election-provider-solution-type = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-npos-elections = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-offences = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-staking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-bags-list = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-staking-reward-curve = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-broker = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-mmr = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-mmr-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-runtime-metrics = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -staging-xcm-executor = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-keystore = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -staging-xcm-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-asset-conversion = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-transaction-payment = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-grandpa = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-sudo = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-vesting = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-runtime-common = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-asset-rate = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-election-provider-multi-phase = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-election-provider-support-benchmarking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-fast-unstake = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-identity = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-staking-reward-fn = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-treasury = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-utility = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-root-testing = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -slot-range-helper = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-aura = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -cumulus-test-relay-sproof-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-chain-spec = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-chain-spec-derive = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-network = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-network-common = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-network-types = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-utils = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-telemetry = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-cli = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-mixnet = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-transaction-pool-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-mixnet = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-service = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-consensus = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-informant = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-network-sync = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -fork-tree = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-network-light = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-network-transactions = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-rpc-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-statement-store = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-transaction-pool = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-rpc-server = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-rpc-spec-v2 = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-sysinfo = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-transaction-storage-proof = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -cumulus-relay-chain-interface = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-overseer = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -tracing-gum = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -tracing-gum-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-node-metrics = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-node-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-node-subsystem-types = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-node-network-protocol = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-authority-discovery = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -polkadot-statement-table = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-benchmarking-cli = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -cumulus-client-parachain-inherent = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-runtime-utilities = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -frame-metadata-hash-extension = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-nomination-pools = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-membership = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-multisig = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-nomination-pools-runtime-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-preimage = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-proxy = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-scheduler = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-staking-runtime-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-offchain = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-consensus-babe = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-consensus-epochs = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-consensus-slots = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-transaction-payment-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-consensus-babe-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-network-gossip = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-consensus-grandpa = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-consensus-grandpa-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -substrate-frame-rpc-system = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-basic-authorship = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-proposer-metrics = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -substrate-build-script-utils = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-consensus-aura = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -pallet-safe-mode = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sc-consensus-manual-seal = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -sp-crypto-ec-utils = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } -substrate-bip39 = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "81fa2c54e94f824eba7dabe9dffd063481cb2d80" } +frame-support = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +binary-merkle-tree = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-core = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-crypto-hashing = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-crypto-hashing-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-debug-derive = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-externalities = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-storage = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-runtime-interface = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-runtime-interface-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-std = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-tracing = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-wasm-interface = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-io = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-keystore = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-state-machine = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-panic-handler = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-trie = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-runtime = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-application-crypto = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-arithmetic = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-weights = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-api-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-metadata-ir = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-version = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-version-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-block-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-block-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-inherents = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-blockchain = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-consensus = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-database = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-client-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +substrate-prometheus-endpoint = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-executor = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-executor-common = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-allocator = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-maybe-compressed-blob = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-executor-polkavm = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-executor-wasmtime = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +substrate-wasm-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-tracing = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-tracing-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-executive = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-system = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-try-runtime = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-balances = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-benchmarking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-support-procedural = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-support-procedural-tools = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-support-procedural-tools-derive = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-client-db = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-state-db = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-sdk-frame = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-system-benchmarking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-system-rpc-runtime-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-consensus-aura = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-consensus-slots = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-timestamp = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-consensus-grandpa = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-genesis-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-keyring = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-offchain = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-session = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-staking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-transaction-pool = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-sdk = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +cumulus-primitives-core = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-core-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-parachain-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-authority-discovery = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +staging-xcm = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +xcm-procedural = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +cumulus-primitives-proof-size-hostfunction = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-message-queue = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-runtime-parachains = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-authority-discovery = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-session = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-timestamp = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-authorship = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-babe = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-consensus-babe = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-election-provider-support = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-election-provider-solution-type = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-npos-elections = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-offences = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-staking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-bags-list = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-staking-reward-curve = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-broker = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-mmr = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-mmr-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-runtime-metrics = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +staging-xcm-executor = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-keystore = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +staging-xcm-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-asset-conversion = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-transaction-payment = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-grandpa = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-sudo = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-vesting = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-runtime-common = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-asset-rate = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-election-provider-multi-phase = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-election-provider-support-benchmarking = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-fast-unstake = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-identity = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-staking-reward-fn = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-treasury = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-utility = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-root-testing = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +slot-range-helper = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-aura = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +cumulus-test-relay-sproof-builder = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-chain-spec = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-chain-spec-derive = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-network = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-network-common = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-network-types = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-utils = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-telemetry = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-cli = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-mixnet = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-transaction-pool-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-mixnet = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-service = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-consensus = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-informant = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-network-sync = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +fork-tree = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-network-light = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-network-transactions = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-rpc-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-statement-store = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-transaction-pool = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-rpc-server = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-rpc-spec-v2 = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-sysinfo = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-transaction-storage-proof = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +cumulus-relay-chain-interface = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-overseer = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +tracing-gum = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +tracing-gum-proc-macro = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-node-metrics = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-node-primitives = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-node-subsystem-types = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-node-network-protocol = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-authority-discovery = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +polkadot-statement-table = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-benchmarking-cli = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +cumulus-client-parachain-inherent = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-runtime-utilities = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +frame-metadata-hash-extension = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-nomination-pools = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-membership = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-multisig = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-nomination-pools-runtime-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-preimage = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-proxy = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-scheduler = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-staking-runtime-api = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-offchain = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-consensus-babe = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-consensus-epochs = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-consensus-slots = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-transaction-payment-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-consensus-babe-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-network-gossip = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-consensus-grandpa = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-consensus-grandpa-rpc = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +substrate-frame-rpc-system = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-basic-authorship = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-proposer-metrics = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +substrate-build-script-utils = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-consensus-aura = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +pallet-safe-mode = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sc-consensus-manual-seal = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +sp-crypto-ec-utils = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } +substrate-bip39 = { git = "https://github.com/opentensor/polkadot-sdk.git", rev = "467c6bf8cb1bc5ffb2f1a9f70a4bef63e12a012a" } diff --git a/chain-extensions/src/mock.rs b/chain-extensions/src/mock.rs index 98ea096199..660aa0c77c 100644 --- a/chain-extensions/src/mock.rs +++ b/chain-extensions/src/mock.rs @@ -331,7 +331,7 @@ parameter_types! { pub const InitialDissolveNetworkScheduleDuration: u64 = 5 * 24 * 60 * 60 / 12; // Default as 5 days pub const InitialTaoWeight: u64 = 0; // 100% global weight. pub const InitialEmaPriceHalvingPeriod: u64 = 201_600_u64; // 4 weeks - pub const DurationOfStartCall: u64 = 7 * 24 * 60 * 60 / 12; // Default as 7 days + pub const InitialStartCallDelay: u64 = 7 * 24 * 60 * 60 / 12; // Default as 7 days pub const InitialKeySwapOnSubnetCost: u64 = 10_000_000; pub const HotkeySwapOnSubnetInterval: u64 = 15; // 15 block, should be bigger than subnet number, then trigger clean up for all subnets pub const MaxContributorsPerLeaseToRemove: u32 = 3; @@ -402,7 +402,7 @@ impl pallet_subtensor::Config for Test { type InitialDissolveNetworkScheduleDuration = InitialDissolveNetworkScheduleDuration; type InitialTaoWeight = InitialTaoWeight; type InitialEmaPriceHalvingPeriod = InitialEmaPriceHalvingPeriod; - type DurationOfStartCall = DurationOfStartCall; + type InitialStartCallDelay = InitialStartCallDelay; type SwapInterface = pallet_subtensor_swap::Pallet; type KeySwapOnSubnetCost = InitialKeySwapOnSubnetCost; type HotkeySwapOnSubnetInterval = HotkeySwapOnSubnetInterval; diff --git a/contract-tests/package.json b/contract-tests/package.json index 26136346bb..6af55b1d9e 100644 --- a/contract-tests/package.json +++ b/contract-tests/package.json @@ -1,6 +1,6 @@ { "scripts": { - "test": "mocha --timeout 999999 --retries 3 --file src/setup.ts --require ts-node/register test/*test.ts" + "test": "TS_NODE_PREFER_TS_EXTS=1 TS_NODE_TRANSPILE_ONLY=1 mocha --timeout 999999 --retries 3 --file src/setup.ts --require ts-node/register --extension ts \"test/**/*.ts\"" }, "keywords": [], "author": "", diff --git a/contract-tests/src/contracts/addressMapping.ts b/contract-tests/src/contracts/addressMapping.ts new file mode 100644 index 0000000000..114c111d1c --- /dev/null +++ b/contract-tests/src/contracts/addressMapping.ts @@ -0,0 +1,23 @@ +export const IADDRESS_MAPPING_ADDRESS = "0x000000000000000000000000000000000000080c"; + +export const IAddressMappingABI = [ + { + "inputs": [ + { + "internalType": "address", + "name": "target_address", + "type": "address" + } + ], + "name": "addressMapping", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + } +]; diff --git a/contract-tests/src/contracts/staking.ts b/contract-tests/src/contracts/staking.ts index 4b48fd7d8d..32957342b4 100644 --- a/contract-tests/src/contracts/staking.ts +++ b/contract-tests/src/contracts/staking.ts @@ -233,6 +233,30 @@ export const IStakingV2ABI = [ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "coldkey", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "netuid", + "type": "uint256" + } + ], + "name": "getTotalColdkeyStakeOnSubnet", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { diff --git a/contract-tests/src/subtensor.ts b/contract-tests/src/subtensor.ts index 12d652a9a3..fab9e8cc10 100644 --- a/contract-tests/src/subtensor.ts +++ b/contract-tests/src/subtensor.ts @@ -296,7 +296,7 @@ export async function setSubtokenEnable(api: TypedApi, netuid: nu export async function startCall(api: TypedApi, netuid: number, keypair: KeyPair) { const registerBlock = Number(await api.query.SubtensorModule.NetworkRegisteredAt.getValue(netuid)) let currentBlock = await api.query.System.Number.getValue() - const duration = Number(await api.constants.SubtensorModule.DurationOfStartCall) + const duration = Number(await api.constants.SubtensorModule.InitialStartCallDelay) while (currentBlock - registerBlock <= duration) { await new Promise((resolve) => setTimeout(resolve, 2000)); diff --git a/contract-tests/test/addressMapping.precompile.test.ts b/contract-tests/test/addressMapping.precompile.test.ts new file mode 100644 index 0000000000..4f316fc57a --- /dev/null +++ b/contract-tests/test/addressMapping.precompile.test.ts @@ -0,0 +1,87 @@ +import * as assert from "assert"; +import { ethers } from "ethers"; +import { generateRandomEthersWallet } from "../src/utils"; +import { IADDRESS_MAPPING_ADDRESS, IAddressMappingABI } from "../src/contracts/addressMapping"; +import { convertH160ToPublicKey } from "../src/address-utils"; +import { u8aToHex } from "@polkadot/util"; + +describe("Test address mapping precompile", () => { + const wallet1 = generateRandomEthersWallet(); + const wallet2 = generateRandomEthersWallet(); + + it("Address mapping converts H160 to AccountId32 correctly", async () => { + const contract = new ethers.Contract( + IADDRESS_MAPPING_ADDRESS, + IAddressMappingABI, + wallet1 + ); + + // Test with wallet1's address + const evmAddress = wallet1.address; + const accountId32 = await contract.addressMapping(evmAddress); + const expectedAcccountId32 = convertH160ToPublicKey(evmAddress); + + // Verify the result is a valid bytes32 (32 bytes) + assert.ok(accountId32.length === 66, "AccountId32 should be 32 bytes (66 hex chars with 0x)"); + assert.ok(accountId32.startsWith("0x"), "AccountId32 should start with 0x"); + + // Verify it's not all zeros + assert.notEqual( + accountId32, + "0x0000000000000000000000000000000000000000000000000000000000000000", + "AccountId32 should not be all zeros" + ); + + console.log("accountId32: {}", accountId32); + console.log("expectedAcccountId32: {}", expectedAcccountId32); + + assert.equal(accountId32, u8aToHex(expectedAcccountId32), "AccountId32 should be the same as the expected AccountId32"); + }); + + it("Address mapping works with different addresses", async () => { + const contract = new ethers.Contract( + IADDRESS_MAPPING_ADDRESS, + IAddressMappingABI, + wallet1 + ); + + // Test with wallet2's address + const evmAddress1 = wallet1.address; + const evmAddress2 = wallet2.address; + + const accountId1 = await contract.addressMapping(evmAddress1); + const accountId2 = await contract.addressMapping(evmAddress2); + + // Different addresses should map to different AccountIds + assert.notEqual( + accountId1, + accountId2, + "Different EVM addresses should map to different AccountIds" + ); + + // Both should be valid bytes32 + assert.ok(accountId1.length === 66, "AccountId1 should be 32 bytes"); + assert.ok(accountId2.length === 66, "AccountId2 should be 32 bytes"); + }); + + it("Address mapping is deterministic", async () => { + const contract = new ethers.Contract( + IADDRESS_MAPPING_ADDRESS, + IAddressMappingABI, + wallet1 + ); + + const evmAddress = wallet1.address; + + // Call multiple times with the same address + const accountId1 = await contract.addressMapping(evmAddress); + const accountId2 = await contract.addressMapping(evmAddress); + + // All calls should return the same result + assert.equal( + accountId1, + accountId2, + "First and second calls should return the same AccountId" + ); + }); +}); diff --git a/contract-tests/test/neuron.precompile.reveal-weights.test.ts b/contract-tests/test/neuron.precompile.reveal-weights.test.ts index 99d608585d..5d80183ec7 100644 --- a/contract-tests/test/neuron.precompile.reveal-weights.test.ts +++ b/contract-tests/test/neuron.precompile.reveal-weights.test.ts @@ -1,5 +1,5 @@ import * as assert from "assert"; -import { getAliceSigner, getDevnetApi, getRandomSubstrateKeypair } from "../src/substrate" +import { getAliceSigner, getDevnetApi, getRandomSubstrateKeypair, waitForTransactionWithRetry } from "../src/substrate" import { devnet } from "@polkadot-api/descriptors" import { PolkadotSigner, TypedApi } from "polkadot-api"; import { convertPublicKeyToSs58, convertH160ToSS58 } from "../src/address-utils" @@ -23,6 +23,16 @@ const values = [5]; const salt = [9]; const version_key = 0; +async function setStakeThreshold( + api: TypedApi, + alice: PolkadotSigner, + minStake: bigint, +) { + const internalCall = api.tx.AdminUtils.sudo_set_stake_threshold({ min_stake: minStake }) + const tx = api.tx.Sudo.sudo({ call: internalCall.decodedCall }) + await waitForTransactionWithRetry(api, tx, alice) +} + function getCommitHash(netuid: number, address: string) { const registry = new TypeRegistry(); let publicKey = convertH160ToPublicKey(address); @@ -53,7 +63,7 @@ describe("Test neuron precompile reveal weights", () => { const coldkey = getRandomSubstrateKeypair(); let api: TypedApi - let commitEpoch: number; + let commitEpoch: number | undefined; // sudo account alice as signer let alice: PolkadotSigner; @@ -86,11 +96,52 @@ describe("Test neuron precompile reveal weights", () => { assert.equal(uid, uids[0]) }) + async function ensureCommitEpoch(netuid: number, contract: ethers.Contract) { + if (commitEpoch !== undefined) { + return + } + + const ss58Address = convertH160ToSS58(wallet.address) + const existingCommits = await api.query.SubtensorModule.WeightCommits.getValue( + netuid, + ss58Address + ) + if (Array.isArray(existingCommits) && existingCommits.length > 0) { + const entry = existingCommits[0] + const commitBlockRaw = + Array.isArray(entry) && entry.length > 1 ? entry[1] : undefined + const commitBlock = + typeof commitBlockRaw === "bigint" + ? Number(commitBlockRaw) + : Number(commitBlockRaw ?? NaN) + if (Number.isFinite(commitBlock)) { + commitEpoch = Math.trunc(commitBlock / (100 + 1)) + return + } + } + + await setStakeThreshold(api, alice, BigInt(0)) + const commitHash = getCommitHash(netuid, wallet.address) + const tx = await contract.commitWeights(netuid, commitHash) + await tx.wait() + + const commitBlock = await api.query.System.Number.getValue() + commitEpoch = Math.trunc(commitBlock / (100 + 1)) + } + it("EVM neuron commit weights via call precompile", async () => { let totalNetworks = await api.query.SubtensorModule.TotalNetworks.getValue() const subnetId = totalNetworks - 1 const commitHash = getCommitHash(subnetId, wallet.address) const contract = new ethers.Contract(INEURON_ADDRESS, INeuronABI, wallet); + + await setStakeThreshold(api, alice, BigInt(1)) + await assert.rejects(async () => { + const tx = await contract.commitWeights(subnetId, commitHash) + await tx.wait() + }) + await setStakeThreshold(api, alice, BigInt(0)) + try { const tx = await contract.commitWeights(subnetId, commitHash) await tx.wait() @@ -120,6 +171,11 @@ describe("Test neuron precompile reveal weights", () => { // set interval epoch as 1, it is the minimum value now await setCommitRevealWeightsInterval(api, netuid, BigInt(1)) + await ensureCommitEpoch(netuid, contract) + if (commitEpoch === undefined) { + throw new Error("commitEpoch should be set before revealing weights") + } + while (true) { const currentBlock = await api.query.System.Number.getValue() const currentEpoch = Math.trunc(currentBlock / (100 + 1)) @@ -130,6 +186,19 @@ describe("Test neuron precompile reveal weights", () => { await new Promise(resolve => setTimeout(resolve, 1000)) } + await setStakeThreshold(api, alice, BigInt(1)) + await assert.rejects(async () => { + const tx = await contract.revealWeights( + netuid, + uids, + values, + salt, + version_key + ); + await tx.wait() + }) + await setStakeThreshold(api, alice, BigInt(0)) + const tx = await contract.revealWeights( netuid, uids, diff --git a/contract-tests/test/staking.precompile.add-remove.test.ts b/contract-tests/test/staking.precompile.add-remove.test.ts index 91bece4c0e..d7dfcb0d3d 100644 --- a/contract-tests/test/staking.precompile.add-remove.test.ts +++ b/contract-tests/test/staking.precompile.add-remove.test.ts @@ -162,6 +162,15 @@ describe("Test neuron precompile add remove stake", () => { assert.equal(stakeFromContractV1, tao(stakeFromContractV2)) + const totalColdkeyStakeOnSubnet = Number( + await contractV2.getTotalColdkeyStakeOnSubnet(convertH160ToPublicKey(wallet1.address), netuid) + ); + + // check the value is not undefined and is greater than or equal to the stake from contract V2 + assert.ok(totalColdkeyStakeOnSubnet != undefined) + // is greater than or equal to the stake from contract V2 because of emission + assert.ok(totalColdkeyStakeOnSubnet >= stakeFromContractV2) + }) it("Can remove stake", async () => { diff --git a/contract-tests/test/subnet.precompile.hyperparameter.test.ts b/contract-tests/test/subnet.precompile.hyperparameter.test.ts index 87968b6e9f..8598b45a81 100644 --- a/contract-tests/test/subnet.precompile.hyperparameter.test.ts +++ b/contract-tests/test/subnet.precompile.hyperparameter.test.ts @@ -1,9 +1,9 @@ import * as assert from "assert"; -import { getDevnetApi, getRandomSubstrateKeypair } from "../src/substrate" +import { getAliceSigner, getDevnetApi, getRandomSubstrateKeypair, waitForTransactionWithRetry } from "../src/substrate" import { devnet } from "@polkadot-api/descriptors" -import { TypedApi } from "polkadot-api"; -import { convertPublicKeyToSs58 } from "../src/address-utils" +import { Binary, TypedApi, getTypedCodecs } from "polkadot-api"; +import { convertH160ToSS58, convertPublicKeyToSs58 } from "../src/address-utils" import { generateRandomEthersWallet } from "../src/utils"; import { ISubnetABI, ISUBNET_ADDRESS } from "../src/contracts/subnet" import { ethers } from "ethers" @@ -545,4 +545,37 @@ describe("Test the Subnet precompile contract", () => { assert.equal(valueFromContract, newValue) assert.equal(valueFromContract, onchainValue); }) + + it("Rejects subnet precompile calls when coldkey swap is scheduled (tx extension)", async () => { + const totalNetwork = await api.query.SubtensorModule.TotalNetworks.getValue() + const contract = new ethers.Contract(ISUBNET_ADDRESS, ISubnetABI, wallet); + const netuid = totalNetwork - 1; + + const coldkeySs58 = convertH160ToSS58(wallet.address) + const newColdkeySs58 = convertPublicKeyToSs58(hotkey1.publicKey) + const currentBlock = await api.query.System.Number.getValue() + const executionBlock = currentBlock + 10 + + const codec = await getTypedCodecs(devnet); + const valueBytes = codec.query.SubtensorModule.ColdkeySwapScheduled.value.enc([ + executionBlock, + newColdkeySs58, + ]) + const key = await api.query.SubtensorModule.ColdkeySwapScheduled.getKey(coldkeySs58); + + // Use sudo + set_storage since the swap-scheduled check only exists in the tx extension. + const setStorageCall = api.tx.System.set_storage({ + items: [[Binary.fromHex(key), Binary.fromBytes(valueBytes)]], + }) + const sudoTx = api.tx.Sudo.sudo({ call: setStorageCall.decodedCall }) + await waitForTransactionWithRetry(api, sudoTx, getAliceSigner()) + + const storedValue = await api.query.SubtensorModule.ColdkeySwapScheduled.getValue(coldkeySs58) + assert.deepStrictEqual(storedValue, [executionBlock, newColdkeySs58]) + + await assert.rejects(async () => { + const tx = await contract.setServingRateLimit(netuid, 100); + await tx.wait(); + }) + }) }) diff --git a/node/src/mev_shield/author.rs b/node/src/mev_shield/author.rs index 99000d4ac6..8ac57b1d52 100644 --- a/node/src/mev_shield/author.rs +++ b/node/src/mev_shield/author.rs @@ -91,11 +91,10 @@ impl Default for ShieldKeys { } /// Shared context state. -#[freeze_struct("62af7d26cf7c1271")] +#[freeze_struct("245b565abca7d403")] #[derive(Clone)] pub struct ShieldContext { pub keys: Arc>, - pub timing: TimeParams, } /// Derive AEAD key directly from the 32‑byte ML‑KEM shared secret. @@ -153,7 +152,6 @@ where { let ctx = ShieldContext { keys: Arc::new(Mutex::new(ShieldKeys::new())), - timing: timing.clone(), }; let aura_keys: Vec = keystore.sr25519_public_keys(AURA_KEY_TYPE); diff --git a/node/src/mev_shield/proposer.rs b/node/src/mev_shield/proposer.rs index 614cb785fd..a9a854e362 100644 --- a/node/src/mev_shield/proposer.rs +++ b/node/src/mev_shield/proposer.rs @@ -10,9 +10,43 @@ use sp_runtime::{AccountId32, OpaqueExtrinsic}; use std::{ collections::HashMap, sync::{Arc, Mutex}, - time::Duration, }; -use tokio::time::sleep; + +/// Truncate a UTF-8 string to at most `max_bytes` bytes without splitting codepoints. +fn truncate_utf8_to_bytes(s: &str, max_bytes: usize) -> String { + if s.len() <= max_bytes { + return s.to_string(); + } + + let mut end = max_bytes.min(s.len()); + + // Decrement until we find a valid UTF-8 boundary. + while end > 0 { + if let Some(prefix) = s.get(..end) { + return prefix.to_string(); + } + end = end.saturating_sub(1); + } + + // If max_bytes was 0 or we couldn't find a boundary (extremely defensive), return empty. + String::new() +} + +/// Helper to build a `mark_decryption_failed` runtime call with a bounded reason string. +fn create_failed_call(id: H256, reason: &str) -> node_subtensor_runtime::RuntimeCall { + use sp_runtime::BoundedVec; + + let reason_bytes = reason.as_bytes(); + let reason_bounded = BoundedVec::try_from(reason_bytes.to_vec()).unwrap_or_else(|_| { + // Fallback if the reason is too long for the bounded vector. + BoundedVec::try_from(b"Decryption failed".to_vec()).unwrap_or_default() + }); + + node_subtensor_runtime::RuntimeCall::MevShield(pallet_shield::Call::mark_decryption_failed { + id, + reason: reason_bounded, + }) +} /// Buffer of wrappers keyed by the block number in which they were included. #[derive(Default, Clone)] @@ -33,11 +67,13 @@ impl WrapperBuffer { } /// Drain only wrappers whose `block_number` matches the given `block`. - /// - Wrappers with `block_number > block` are kept for future decrypt windows. - /// - Wrappers with `block_number < block` are considered stale and dropped. + /// - Wrappers with `block_number > block` are kept for future decrypt passes. + /// - Wrappers with `block_number < block` are considered stale and dropped, and + /// we emit `mark_decryption_failed` calls for them so they are visible on-chain. fn drain_for_block( &mut self, block: u64, + failed_calls: &mut Vec<(H256, node_subtensor_runtime::RuntimeCall)>, ) -> Vec<(H256, u64, sp_runtime::AccountId32, Vec)> { let mut ready = Vec::new(); let mut kept_future: usize = 0; @@ -53,7 +89,7 @@ impl WrapperBuffer { kept_future = kept_future.saturating_add(1); true } else { - // block_number < block => stale / missed reveal window; drop. + // block_number < block => stale / missed decrypt opportunity; drop and mark failed. dropped_past = dropped_past.saturating_add(1); log::debug!( target: "mev-shield", @@ -62,6 +98,16 @@ impl WrapperBuffer { *block_number, block ); + + // Mark decryption failed on-chain so clients can observe the missed wrapper. + failed_calls.push(( + *id, + create_failed_call( + *id, + "missed decrypt window (wrapper submitted in an earlier block)", + ), + )); + false } }); @@ -82,7 +128,8 @@ impl WrapperBuffer { /// Start a background worker that: /// • watches imported blocks and captures `MevShield::submit_encrypted` /// • buffers those wrappers per originating block, -/// • during the last `decrypt_window_ms` of the slot: decrypt & submit `submit_one` +/// • on each **locally authored** block: decrypt & submit wrappers for that block. +/// pub fn spawn_revealer( task_spawner: &SpawnTaskHandle, client: Arc, @@ -105,19 +152,21 @@ pub fn spawn_revealer( let buffer: Arc> = Arc::new(Mutex::new(WrapperBuffer::default())); - // ── 1) buffer wrappers ─────────────────────────────────────── { let client = Arc::clone(&client); + let pool = Arc::clone(&pool); let buffer = Arc::clone(&buffer); + let ctx = ctx.clone(); task_spawner.spawn( - "mev-shield-buffer-wrappers", + "mev-shield-block-revealer", None, async move { - log::debug!(target: "mev-shield", "buffer-wrappers task started"); + log::debug!(target: "mev-shield", "Revealer task started"); let mut import_stream = client.import_notification_stream(); while let Some(notif) = import_stream.next().await { + let at_hash = notif.hash; let block_number_u64: u64 = (*notif.header.number()).saturated_into(); @@ -129,6 +178,7 @@ pub fn spawn_revealer( notif.origin ); + // ── 1) buffer wrappers from this (locally authored) block ─────────── match client.block_body(at_hash) { Ok(Some(body)) => { log::debug!( @@ -232,55 +282,8 @@ pub fn spawn_revealer( " block_body error for hash={at_hash:?}: {e:?}", ), } - } - }, - ); - } - - // ── 2) decrypt window revealer ────────────────────────────── - { - let client = Arc::clone(&client); - let pool = Arc::clone(&pool); - let buffer = Arc::clone(&buffer); - let ctx = ctx.clone(); - task_spawner.spawn( - "mev-shield-last-window-revealer", - None, - async move { - log::debug!(target: "mev-shield", "last-window-revealer task started"); - - // Respect the configured slot_ms, but clamp the decrypt window so it never - // exceeds the slot length (important for fast runtimes). - let slot_ms = ctx.timing.slot_ms; - let mut decrypt_window_ms = ctx.timing.decrypt_window_ms; - - if decrypt_window_ms > slot_ms { - log::warn!( - target: "mev-shield", - "spawn_revealer: decrypt_window_ms ({decrypt_window_ms}) > slot_ms ({slot_ms}); clamping to slot_ms", - ); - decrypt_window_ms = slot_ms; - } - - let tail_ms = slot_ms.saturating_sub(decrypt_window_ms); - - log::debug!( - target: "mev-shield", - "revealer timing: slot_ms={slot_ms} decrypt_window_ms={decrypt_window_ms} (effective) tail_ms={tail_ms}", - ); - - loop { - log::debug!( - target: "mev-shield", - "revealer: sleeping {tail_ms} ms before decrypt window (slot_ms={slot_ms}, decrypt_window_ms={decrypt_window_ms})", - ); - - if tail_ms > 0 { - sleep(Duration::from_millis(tail_ms)).await; - } - - // Snapshot the current ML‑KEM secret. + // ── 2) snapshot current ML‑KEM secret for this block ──────────────── let snapshot_opt = match ctx.keys.lock() { Ok(k) => { let sk_hash = sp_core::hashing::blake2_256(&k.current_sk); @@ -300,24 +303,23 @@ pub fn spawn_revealer( } }; - let (curr_sk_bytes, curr_pk_len, next_pk_len, sk_hash) = - match snapshot_opt { - Some(v) => v, - None => { - // Skip this decrypt window entirely, without holding any guard. - if decrypt_window_ms > 0 { - sleep(Duration::from_millis(decrypt_window_ms)).await; - } - continue; - } - }; + let (curr_sk_bytes, curr_pk_len, next_pk_len, sk_hash) = match snapshot_opt { + Some(v) => v, + None => { + log::debug!( + target: "mev-shield", + "revealer: Cannot snapshot key for this block", + ); + continue; + } + }; - // Use best block number as the block whose submissions we reveal now. - let curr_block: u64 = client.info().best_number.saturated_into(); + // Use this block as the reveal block. + let curr_block: u64 = block_number_u64; log::debug!( target: "mev-shield", - "revealer: decrypt window start. reveal_block={} sk_len={} sk_hash=0x{} curr_pk_len={} next_pk_len={}", + "revealer: decrypt for block {}. sk_len={} sk_hash=0x{} curr_pk_len={} next_pk_len={}", curr_block, curr_sk_bytes.len(), hex::encode(sk_hash), @@ -325,10 +327,16 @@ pub fn spawn_revealer( next_pk_len ); - // Only process wrappers whose originating block matches the reveal_block. + // ── 3) drain & decrypt wrappers for this block ───────────────────── + let mut to_submit: Vec<(H256, node_subtensor_runtime::UncheckedExtrinsic)> = + Vec::new(); + let mut failed_calls: Vec<(H256, node_subtensor_runtime::RuntimeCall)> = + Vec::new(); + + // Only process wrappers whose originating block matches this block. let drained: Vec<(H256, u64, sp_runtime::AccountId32, Vec)> = match buffer.lock() { - Ok(mut buf) => buf.drain_for_block(curr_block), + Ok(mut buf) => buf.drain_for_block(curr_block, &mut failed_calls), Err(e) => { log::debug!( target: "mev-shield", @@ -340,37 +348,15 @@ pub fn spawn_revealer( log::debug!( target: "mev-shield", - "revealer: drained {} buffered wrappers for reveal_block={}", + "revealer: drained {} buffered wrappers for block={}", drained.len(), curr_block ); - let mut to_submit: Vec<(H256, node_subtensor_runtime::UncheckedExtrinsic)> = - Vec::new(); - let mut failed_calls: Vec<(H256, node_subtensor_runtime::RuntimeCall)> = - Vec::new(); - - // Helper to create mark_decryption_failed call - let create_failed_call = |id: H256, reason: &str| -> node_subtensor_runtime::RuntimeCall { - use sp_runtime::BoundedVec; - let reason_bytes = reason.as_bytes(); - let reason_bounded = BoundedVec::try_from(reason_bytes.to_vec()) - .unwrap_or_else(|_| { // Fallback if the reason is too long - BoundedVec::try_from(b"Decryption failed".to_vec()).unwrap_or_default() - }); - - node_subtensor_runtime::RuntimeCall::MevShield( - pallet_shield::Call::mark_decryption_failed { - id, - reason: reason_bounded, - }, - ) - }; - for (id, block_number, author, blob) in drained.into_iter() { log::debug!( target: "mev-shield", - "revealer: candidate id=0x{} submitted_in={} (reveal_block={}) author={} blob_len={}", + "revealer: candidate id=0x{} submitted_in={} (block={}) author={} blob_len={}", hex::encode(id.as_bytes()), block_number, curr_block, @@ -387,10 +373,7 @@ pub fn spawn_revealer( hex::encode(id.as_bytes()), error_message ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } @@ -407,10 +390,7 @@ pub fn spawn_revealer( hex::encode(id.as_bytes()), error_message ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -427,10 +407,7 @@ pub fn spawn_revealer( cursor, kem_len_end ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -445,10 +422,7 @@ pub fn spawn_revealer( hex::encode(id.as_bytes()), error_message ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -469,10 +443,7 @@ pub fn spawn_revealer( cursor, kem_len ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -489,10 +460,7 @@ pub fn spawn_revealer( cursor, kem_ct_end ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -511,10 +479,7 @@ pub fn spawn_revealer( error_message, cursor ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -531,10 +496,7 @@ pub fn spawn_revealer( cursor, nonce_end ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -552,10 +514,7 @@ pub fn spawn_revealer( error_message, cursor ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -590,10 +549,7 @@ pub fn spawn_revealer( curr_sk_bytes.len(), e ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -610,10 +566,7 @@ pub fn spawn_revealer( error_message, e ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -628,10 +581,7 @@ pub fn spawn_revealer( hex::encode(id.as_bytes()), error_message ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -646,18 +596,14 @@ pub fn spawn_revealer( error_message, ss_bytes.len() ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } let mut ss32 = [0u8; 32]; ss32.copy_from_slice(ss_bytes); let ss_hash = sp_core::hashing::blake2_256(&ss32); - let aead_key = - crate::mev_shield::author::derive_aead_key(&ss32); + let aead_key = crate::mev_shield::author::derive_aead_key(&ss32); let key_hash_dbg = sp_core::hashing::blake2_256(&aead_key); log::debug!( @@ -700,6 +646,7 @@ pub fn spawn_revealer( error_message, hex::encode(aead_body_hash), ); + //failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -711,8 +658,6 @@ pub fn spawn_revealer( plaintext.len() ); - // Safely parse plaintext layout without panics. - if plaintext.is_empty() { let error_message = "plaintext too short"; log::debug!( @@ -723,10 +668,7 @@ pub fn spawn_revealer( plaintext.len(), 1 ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } @@ -740,15 +682,11 @@ pub fn spawn_revealer( hex::encode(id.as_bytes()), error_message ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; - let signed_extrinsic: node_subtensor_runtime::UncheckedExtrinsic = match Decode::decode(&mut &signed_extrinsic_bytes[..]) { Ok(c) => c, @@ -762,10 +700,7 @@ pub fn spawn_revealer( signed_extrinsic_bytes.len(), e ); - failed_calls.push(( - id, - create_failed_call(id, error_message), - )); + failed_calls.push((id, create_failed_call(id, error_message))); continue; } }; @@ -773,7 +708,7 @@ pub fn spawn_revealer( to_submit.push((id, signed_extrinsic)); } - // Submit as external the signed extrinsics. + // ── 4) submit decrypted extrinsics to pool ────────────────────────── let at = client.info().best_hash; log::debug!( target: "mev-shield", @@ -809,27 +744,45 @@ pub fn spawn_revealer( ); } Err(e) => { + // Emit an on-chain failure event even when the *inner* + // transaction fails pre-dispatch validation in the pool. + let err_dbg = format!("{e:?}"); + let reason = truncate_utf8_to_bytes( + &format!( + "inner extrinsic rejected by tx-pool (pre-dispatch): {err_dbg}" + ), + 240, + ); log::debug!( target: "mev-shield", - " id=0x{}: submit_one(...) FAILED: {:?}", + " id=0x{}: submit_one(...) FAILED (will mark_decryption_failed): {:?}", hex::encode(id.as_bytes()), e ); + failed_calls.push((id, create_failed_call(id, &reason))); } } } Err(e) => { + let err_dbg = format!("{e:?}"); + let reason = truncate_utf8_to_bytes( + &format!( + "invalid decrypted extrinsic bytes (OpaqueExtrinsic::from_bytes): {err_dbg}" + ), + 240, + ); log::debug!( target: "mev-shield", - " id=0x{}: OpaqueExtrinsic::from_bytes failed: {:?}", + " id=0x{}: OpaqueExtrinsic::from_bytes failed (will mark_decryption_failed): {:?}", hex::encode(id.as_bytes()), e ); + failed_calls.push((id, create_failed_call(id, &reason))); } } } - // Submit failed decryption calls + // ── 5) submit decryption-failed markers ───────────────────────────── if !failed_calls.is_empty() { log::debug!( target: "mev-shield", @@ -887,11 +840,6 @@ pub fn spawn_revealer( } } } - - // Let the decrypt window elapse. - if decrypt_window_ms > 0 { - sleep(Duration::from_millis(decrypt_window_ms)).await; - } } }, ); diff --git a/pallets/admin-utils/src/lib.rs b/pallets/admin-utils/src/lib.rs index c3999312b3..2a33262073 100644 --- a/pallets/admin-utils/src/lib.rs +++ b/pallets/admin-utils/src/lib.rs @@ -143,6 +143,8 @@ pub mod pallet { Proxy, /// Leasing precompile Leasing, + /// Address mapping precompile + AddressMapping, } #[pallet::type_value] @@ -2240,6 +2242,21 @@ pub mod pallet { pallet_subtensor::Pallet::::set_min_non_immune_uids(netuid, min); Ok(()) } + + /// Sets the delay before a subnet can call start + #[pallet::call_index(85)] + #[pallet::weight(( + Weight::from_parts(14_000_000, 0) + .saturating_add(::DbWeight::get().writes(1)), + DispatchClass::Operational, + Pays::Yes + ))] + pub fn sudo_set_start_call_delay(origin: OriginFor, delay: u64) -> DispatchResult { + ensure_root(origin)?; + pallet_subtensor::Pallet::::set_start_call_delay(delay); + log::debug!("StartCallDelay( delay: {delay:?} ) "); + Ok(()) + } } } diff --git a/pallets/admin-utils/src/tests/mock.rs b/pallets/admin-utils/src/tests/mock.rs index 0140808baa..0117dff889 100644 --- a/pallets/admin-utils/src/tests/mock.rs +++ b/pallets/admin-utils/src/tests/mock.rs @@ -145,7 +145,7 @@ parameter_types! { pub const InitialDissolveNetworkScheduleDuration: u64 = 5 * 24 * 60 * 60 / 12; // 5 days pub const InitialTaoWeight: u64 = u64::MAX/10; // 10% global weight. pub const InitialEmaPriceHalvingPeriod: u64 = 201_600_u64; // 4 weeks - pub const DurationOfStartCall: u64 = 7 * 24 * 60 * 60 / 12; // 7 days + pub const InitialStartCallDelay: u64 = 0; // 0 days pub const InitialKeySwapOnSubnetCost: u64 = 10_000_000; pub const HotkeySwapOnSubnetInterval: u64 = 7 * 24 * 60 * 60 / 12; // 7 days pub const LeaseDividendsDistributionInterval: u32 = 100; // 100 blocks @@ -215,7 +215,7 @@ impl pallet_subtensor::Config for Test { type InitialDissolveNetworkScheduleDuration = InitialDissolveNetworkScheduleDuration; type InitialTaoWeight = InitialTaoWeight; type InitialEmaPriceHalvingPeriod = InitialEmaPriceHalvingPeriod; - type DurationOfStartCall = DurationOfStartCall; + type InitialStartCallDelay = InitialStartCallDelay; type SwapInterface = Swap; type KeySwapOnSubnetCost = InitialKeySwapOnSubnetCost; type HotkeySwapOnSubnetInterval = HotkeySwapOnSubnetInterval; diff --git a/pallets/admin-utils/src/tests/mod.rs b/pallets/admin-utils/src/tests/mod.rs index 024871e60f..93d56ec343 100644 --- a/pallets/admin-utils/src/tests/mod.rs +++ b/pallets/admin-utils/src/tests/mod.rs @@ -2887,3 +2887,92 @@ fn test_sudo_set_min_non_immune_uids() { assert_eq!(SubtensorModule::get_min_non_immune_uids(netuid), to_be_set); }); } + +#[test] +fn test_sudo_set_start_call_delay_permissions_and_zero_delay() { + new_test_ext().execute_with(|| { + let netuid = NetUid::from(1); + let tempo: u16 = 13; + let coldkey_account_id = U256::from(0); + let non_root_account = U256::from(1); + + // Get initial delay value (should be non-zero) + let initial_delay = pallet_subtensor::StartCallDelay::::get(); + assert_eq!(initial_delay, 0); + + // Test 1: Non-root account should fail to set delay + assert_noop!( + AdminUtils::sudo_set_start_call_delay( + <::RuntimeOrigin>::signed(non_root_account), + 0 + ), + DispatchError::BadOrigin + ); + + // Test 2: Create a subnet + add_network(netuid, tempo); + assert_eq!( + pallet_subtensor::FirstEmissionBlockNumber::::get(netuid), + None, + "Emission block should not be set yet" + ); + assert_eq!( + pallet_subtensor::SubnetOwner::::get(netuid), + coldkey_account_id, + "Default owner should be account 0" + ); + + // Test 3: Can successfully start the subnet immediately + assert_ok!(pallet_subtensor::Pallet::::start_call( + <::RuntimeOrigin>::signed(coldkey_account_id), + netuid + )); + + // Verify emission has been set + assert!( + pallet_subtensor::FirstEmissionBlockNumber::::get(netuid).is_some(), + "Emission should be set" + ); + + // Test 4: Root sets delay to zero + assert_ok!(AdminUtils::sudo_set_start_call_delay( + <::RuntimeOrigin>::root(), + 0 + )); + assert_eq!( + pallet_subtensor::StartCallDelay::::get(), + 0, + "Delay should now be zero" + ); + + // Verify event was emitted + frame_system::Pallet::::assert_last_event(RuntimeEvent::SubtensorModule( + pallet_subtensor::Event::StartCallDelaySet(0), + )); + + // Test 5: Try to start the subnet again - should be FAILED (first emission block already set) + let current_block = frame_system::Pallet::::block_number(); + assert_err!( + pallet_subtensor::Pallet::::start_call( + <::RuntimeOrigin>::signed(coldkey_account_id), + netuid + ), + pallet_subtensor::Error::::FirstEmissionBlockNumberAlreadySet + ); + + assert_eq!( + pallet_subtensor::FirstEmissionBlockNumber::::get(netuid), + Some(current_block + 1), + "Emission should start at next block" + ); + + // Test 6: Try to start it a third time - should FAIL (already started) + assert_err!( + pallet_subtensor::Pallet::::start_call( + <::RuntimeOrigin>::signed(coldkey_account_id), + netuid + ), + pallet_subtensor::Error::::FirstEmissionBlockNumberAlreadySet + ); + }); +} diff --git a/pallets/subtensor/src/benchmarks.rs b/pallets/subtensor/src/benchmarks.rs index 476be905e9..f61c35aede 100644 --- a/pallets/subtensor/src/benchmarks.rs +++ b/pallets/subtensor/src/benchmarks.rs @@ -648,7 +648,7 @@ mod pallet_benchmarks { assert_eq!(FirstEmissionBlockNumber::::get(netuid), None); let current_block: u64 = Subtensor::::get_current_block_as_u64(); - let duration = ::DurationOfStartCall::get(); + let duration = StartCallDelay::::get(); let block: BlockNumberFor = (current_block + duration) .try_into() .ok() diff --git a/pallets/subtensor/src/coinbase/root.rs b/pallets/subtensor/src/coinbase/root.rs index 328ce3805c..83567b6f57 100644 --- a/pallets/subtensor/src/coinbase/root.rs +++ b/pallets/subtensor/src/coinbase/root.rs @@ -542,6 +542,10 @@ impl Pallet { NetworkImmunityPeriod::::set(net_immunity_period); Self::deposit_event(Event::NetworkImmunityPeriodSet(net_immunity_period)); } + pub fn set_start_call_delay(delay: u64) { + StartCallDelay::::set(delay); + Self::deposit_event(Event::StartCallDelaySet(delay)); + } pub fn set_network_min_lock(net_min_lock: TaoCurrency) { NetworkMinLockCost::::set(net_min_lock); Self::deposit_event(Event::NetworkMinLockCostSet(net_min_lock)); diff --git a/pallets/subtensor/src/lib.rs b/pallets/subtensor/src/lib.rs index 7d42880a21..6ae43ac384 100644 --- a/pallets/subtensor/src/lib.rs +++ b/pallets/subtensor/src/lib.rs @@ -1514,6 +1514,10 @@ pub mod pallet { pub type NetworkImmunityPeriod = StorageValue<_, u64, ValueQuery, DefaultNetworkImmunityPeriod>; + /// ITEM( start_call_delay ) + #[pallet::storage] + pub type StartCallDelay = StorageValue<_, u64, ValueQuery, T::InitialStartCallDelay>; + /// ITEM( min_network_lock_cost ) #[pallet::storage] pub type NetworkMinLockCost = @@ -2377,6 +2381,8 @@ pub mod pallet { pub stakes: Vec<(T::AccountId, Vec<(T::AccountId, (u64, u16))>)>, /// The total issued balance in genesis pub balances_issuance: TaoCurrency, + /// The delay before a subnet can call start + pub start_call_delay: Option, } impl Default for GenesisConfig { @@ -2384,6 +2390,7 @@ pub mod pallet { Self { stakes: Default::default(), balances_issuance: TaoCurrency::ZERO, + start_call_delay: None, } } } diff --git a/pallets/subtensor/src/macros/config.rs b/pallets/subtensor/src/macros/config.rs index a735bde1e1..2124ec5f3f 100644 --- a/pallets/subtensor/src/macros/config.rs +++ b/pallets/subtensor/src/macros/config.rs @@ -233,9 +233,9 @@ mod config { /// Initial EMA price halving period #[pallet::constant] type InitialEmaPriceHalvingPeriod: Get; - /// Block number after a new subnet accept the start call extrinsic. + /// Delay after which a new subnet can dispatch start call extrinsic. #[pallet::constant] - type DurationOfStartCall: Get; + type InitialStartCallDelay: Get; /// Cost of swapping a hotkey in a subnet. #[pallet::constant] type KeySwapOnSubnetCost: Get; diff --git a/pallets/subtensor/src/macros/dispatches.rs b/pallets/subtensor/src/macros/dispatches.rs index 03dc6fab7f..2a362783ef 100644 --- a/pallets/subtensor/src/macros/dispatches.rs +++ b/pallets/subtensor/src/macros/dispatches.rs @@ -1935,7 +1935,7 @@ mod dispatches { /// Emits a `FirstEmissionBlockNumberSet` event on success. #[pallet::call_index(92)] #[pallet::weight(( - Weight::from_parts(29_780_000, 0).saturating_add(T::DbWeight::get().reads_writes(4, 2)), + Weight::from_parts(29_780_000, 0).saturating_add(T::DbWeight::get().reads_writes(5, 2)), DispatchClass::Normal, Pays::Yes ))] diff --git a/pallets/subtensor/src/macros/events.rs b/pallets/subtensor/src/macros/events.rs index a06e035d86..c86cc1a1e5 100644 --- a/pallets/subtensor/src/macros/events.rs +++ b/pallets/subtensor/src/macros/events.rs @@ -147,6 +147,8 @@ mod events { NetworkRateLimitSet(u64), /// the network immunity period is set. NetworkImmunityPeriodSet(u64), + /// the start call delay is set. + StartCallDelaySet(u64), /// the network minimum locking cost is set. NetworkMinLockCostSet(TaoCurrency), /// the maximum number of subnets is set diff --git a/pallets/subtensor/src/macros/genesis.rs b/pallets/subtensor/src/macros/genesis.rs index 7bf8ba2a53..0014b63540 100644 --- a/pallets/subtensor/src/macros/genesis.rs +++ b/pallets/subtensor/src/macros/genesis.rs @@ -30,6 +30,11 @@ mod genesis { // Set initial total issuance from balances TotalIssuance::::put(self.balances_issuance); + // Set start call delay if provided in genesis config + if let Some(delay) = self.start_call_delay { + StartCallDelay::::put(delay); + } + // Set the root network as added. NetworksAdded::::insert(NetUid::ROOT, true); diff --git a/pallets/subtensor/src/macros/hooks.rs b/pallets/subtensor/src/macros/hooks.rs index 31be3e5e4f..ed57d52c8b 100644 --- a/pallets/subtensor/src/macros/hooks.rs +++ b/pallets/subtensor/src/macros/hooks.rs @@ -162,7 +162,9 @@ mod hooks { // Remove old identity map entries(Identities, SubnetIdentities, SubnetIdentitiesV2) .saturating_add(migrations::migrate_remove_old_identity_maps::migrate_remove_old_identity_maps::()) // Remove unknown neuron axon, certificate prom - .saturating_add(migrations::migrate_remove_unknown_neuron_axon_cert_prom::migrate_remove_unknown_neuron_axon_cert_prom::()); + .saturating_add(migrations::migrate_remove_unknown_neuron_axon_cert_prom::migrate_remove_unknown_neuron_axon_cert_prom::()) + // Fix staking hot keys + .saturating_add(migrations::migrate_fix_staking_hot_keys::migrate_fix_staking_hot_keys::()); weight } diff --git a/pallets/subtensor/src/migrations/migrate_fix_staking_hot_keys.rs b/pallets/subtensor/src/migrations/migrate_fix_staking_hot_keys.rs new file mode 100644 index 0000000000..8c0358614d --- /dev/null +++ b/pallets/subtensor/src/migrations/migrate_fix_staking_hot_keys.rs @@ -0,0 +1,56 @@ +use super::*; +use frame_support::{traits::Get, weights::Weight}; +use log; +use scale_info::prelude::string::String; +use sp_std::collections::btree_map::BTreeMap; + +pub fn migrate_fix_staking_hot_keys() -> Weight { + let migration_name = b"migrate_fix_staking_hot_keys".to_vec(); + let mut weight = T::DbWeight::get().reads(1); + + // Skip if already executed + if HasMigrationRun::::get(&migration_name) { + log::info!( + target: "runtime", + "Migration '{}' already run - skipping.", + String::from_utf8_lossy(&migration_name) + ); + return weight; + } + + let mut cache: BTreeMap> = BTreeMap::new(); + let mut storage_reads: u64 = 0; + let mut storage_writes: u64 = 0; + + for ((hotkey, coldkey, _netuid), alpha) in Alpha::::iter() { + storage_reads = storage_reads.saturating_add(1); + + if alpha == 0 { + continue; + } + + let staking_hotkeys = cache.entry(coldkey.clone()).or_insert_with(|| { + storage_reads = storage_reads.saturating_add(1); + StakingHotkeys::::get(&coldkey) + }); + + if !staking_hotkeys.contains(&hotkey) { + staking_hotkeys.push(hotkey.clone()); + storage_writes = storage_writes.saturating_add(1); + StakingHotkeys::::insert(&coldkey, staking_hotkeys.clone()); + } + } + weight = weight.saturating_add(T::DbWeight::get().reads_writes(storage_reads, storage_writes)); + + // Mark migration done + HasMigrationRun::::insert(&migration_name, true); + weight = weight.saturating_add(T::DbWeight::get().writes(1)); + + log::info!( + target: "runtime", + "Migration '{}' completed.", + String::from_utf8_lossy(&migration_name) + ); + + weight +} diff --git a/pallets/subtensor/src/migrations/mod.rs b/pallets/subtensor/src/migrations/mod.rs index 4c9d5f01d1..a03da9289e 100644 --- a/pallets/subtensor/src/migrations/mod.rs +++ b/pallets/subtensor/src/migrations/mod.rs @@ -19,6 +19,7 @@ pub mod migrate_fix_childkeys; pub mod migrate_fix_is_network_member; pub mod migrate_fix_root_subnet_tao; pub mod migrate_fix_root_tao_and_alpha_in; +pub mod migrate_fix_staking_hot_keys; pub mod migrate_init_tao_flow; pub mod migrate_init_total_issuance; pub mod migrate_kappa_map_to_default; diff --git a/pallets/subtensor/src/staking/helpers.rs b/pallets/subtensor/src/staking/helpers.rs index 1176064e36..099f8e26b6 100644 --- a/pallets/subtensor/src/staking/helpers.rs +++ b/pallets/subtensor/src/staking/helpers.rs @@ -91,6 +91,43 @@ impl Pallet { .into() } + // Returns the total amount of stake under a coldkey on a subnet + // + pub fn get_total_stake_for_coldkey_on_subnet( + coldkey: &T::AccountId, + netuid: NetUid, + ) -> TaoCurrency { + let hotkeys = StakingHotkeys::::get(coldkey); + hotkeys + .iter() + .map(|hotkey| { + Alpha::::iter_prefix((hotkey, coldkey)) + .map(|(netuid_on_storage, _)| { + if netuid_on_storage == netuid { + let alpha_stake = Self::get_stake_for_hotkey_and_coldkey_on_subnet( + hotkey, coldkey, netuid, + ); + let order = GetTaoForAlpha::::with_amount(alpha_stake); + T::SwapInterface::sim_swap(netuid.into(), order) + .map(|r| { + let fee: u64 = U96F32::saturating_from_num(r.fee_paid) + .saturating_mul(T::SwapInterface::current_alpha_price( + netuid.into(), + )) + .saturating_to_num(); + r.amount_paid_out.to_u64().saturating_add(fee) + }) + .unwrap_or_default() + } else { + 0 + } + }) + .sum::() + }) + .sum::() + .into() + } + // Creates a cold - hot pairing account if the hotkey is not already an active account. // pub fn create_account_if_non_existent(coldkey: &T::AccountId, hotkey: &T::AccountId) { diff --git a/pallets/subtensor/src/staking/remove_stake.rs b/pallets/subtensor/src/staking/remove_stake.rs index 423cb97493..74a6bf34a6 100644 --- a/pallets/subtensor/src/staking/remove_stake.rs +++ b/pallets/subtensor/src/staking/remove_stake.rs @@ -480,7 +480,6 @@ impl Pallet { // - per (hot,cold) α VALUE (not shares) with fallback to raw share if pool uninitialized, // - track hotkeys to clear pool totals. let mut keys_to_remove: Vec<(T::AccountId, T::AccountId)> = Vec::new(); - let mut hotkeys_seen: Vec = Vec::new(); let mut stakers: Vec<(T::AccountId, T::AccountId, u128)> = Vec::new(); let mut total_alpha_value_u128: u128 = 0; @@ -495,9 +494,6 @@ impl Pallet { continue; } keys_to_remove.push((hot.clone(), cold.clone())); - if !hotkeys_seen.contains(hot) { - hotkeys_seen.push(hot.clone()); - } // Primary: actual α value via share pool. let pool = Self::get_alpha_share_pool(hot.clone(), netuid); @@ -579,7 +575,7 @@ impl Pallet { Alpha::::remove((hot, cold, netuid)); } // 7.b) Clear share‑pool totals for each hotkey on this subnet. - for hot in hotkeys_seen { + for hot in hotkeys_in_subnet { TotalHotkeyAlpha::::remove(&hot, netuid); TotalHotkeyShares::::remove(&hot, netuid); } diff --git a/pallets/subtensor/src/subnets/subnet.rs b/pallets/subtensor/src/subnets/subnet.rs index 12e317885c..ecb5ce0452 100644 --- a/pallets/subtensor/src/subnets/subnet.rs +++ b/pallets/subtensor/src/subnets/subnet.rs @@ -356,7 +356,7 @@ impl Pallet { ensure!( current_block_number - >= registration_block_number.saturating_add(T::DurationOfStartCall::get()), + >= registration_block_number.saturating_add(StartCallDelay::::get()), Error::::NeedWaitingMoreBlocksToStarCall ); let next_block_number = current_block_number.saturating_add(1); diff --git a/pallets/subtensor/src/tests/coinbase.rs b/pallets/subtensor/src/tests/coinbase.rs index f6c92c8079..a79f4b713a 100644 --- a/pallets/subtensor/src/tests/coinbase.rs +++ b/pallets/subtensor/src/tests/coinbase.rs @@ -2701,7 +2701,7 @@ fn test_run_coinbase_not_started_start_after() { // We expect that the epoch ran. assert_eq!(BlocksSinceLastStep::::get(netuid), 0); - let block_number = DurationOfStartCall::get(); + let block_number = StartCallDelay::::get(); run_to_block_no_epoch(netuid, block_number); let current_block = System::block_number(); diff --git a/pallets/subtensor/src/tests/migration.rs b/pallets/subtensor/src/tests/migration.rs index 1d78b4dffd..bed77e797f 100644 --- a/pallets/subtensor/src/tests/migration.rs +++ b/pallets/subtensor/src/tests/migration.rs @@ -1138,6 +1138,41 @@ fn test_migrate_rate_limit_keys() { }); } +#[test] +fn test_migrate_fix_staking_hot_keys() { + new_test_ext(1).execute_with(|| { + const MIGRATION_NAME: &[u8] = b"migrate_fix_staking_hot_keys"; + + assert!( + !HasMigrationRun::::get(MIGRATION_NAME.to_vec()), + "Migration should not have run yet" + ); + + // Add some data + Alpha::::insert( + (U256::from(1), U256::from(2), NetUid::ROOT), + U64F64::from(1_u64), + ); + // Run migration + let weight = + migrations::migrate_fix_staking_hot_keys::migrate_fix_staking_hot_keys::(); + + assert!( + HasMigrationRun::::get(MIGRATION_NAME.to_vec()), + "Migration should be marked as completed" + ); + + // Check migration has been marked as run + assert!(HasMigrationRun::::get(MIGRATION_NAME.to_vec())); + + // Verify results + assert_eq!( + StakingHotkeys::::get(U256::from(2)), + vec![U256::from(1)] + ); + }); +} + #[test] fn test_migrate_fix_root_subnet_tao() { new_test_ext(1).execute_with(|| { diff --git a/pallets/subtensor/src/tests/mock.rs b/pallets/subtensor/src/tests/mock.rs index 090fcf8f75..b744c9b771 100644 --- a/pallets/subtensor/src/tests/mock.rs +++ b/pallets/subtensor/src/tests/mock.rs @@ -218,7 +218,7 @@ parameter_types! { pub const InitialDissolveNetworkScheduleDuration: u64 = 5 * 24 * 60 * 60 / 12; // Default as 5 days pub const InitialTaoWeight: u64 = 0; // 100% global weight. pub const InitialEmaPriceHalvingPeriod: u64 = 201_600_u64; // 4 weeks - pub const DurationOfStartCall: u64 = 7 * 24 * 60 * 60 / 12; // Default as 7 days + pub const InitialStartCallDelay: u64 = 0; // 0 days pub const InitialKeySwapOnSubnetCost: u64 = 10_000_000; pub const HotkeySwapOnSubnetInterval: u64 = 15; // 15 block, should be bigger than subnet number, then trigger clean up for all subnets pub const MaxContributorsPerLeaseToRemove: u32 = 3; @@ -289,7 +289,7 @@ impl crate::Config for Test { type InitialDissolveNetworkScheduleDuration = InitialDissolveNetworkScheduleDuration; type InitialTaoWeight = InitialTaoWeight; type InitialEmaPriceHalvingPeriod = InitialEmaPriceHalvingPeriod; - type DurationOfStartCall = DurationOfStartCall; + type InitialStartCallDelay = InitialStartCallDelay; type SwapInterface = pallet_subtensor_swap::Pallet; type KeySwapOnSubnetCost = InitialKeySwapOnSubnetCost; type HotkeySwapOnSubnetInterval = HotkeySwapOnSubnetInterval; diff --git a/pallets/subtensor/src/tests/subnet.rs b/pallets/subtensor/src/tests/subnet.rs index d2a73a919d..a547b30a14 100644 --- a/pallets/subtensor/src/tests/subnet.rs +++ b/pallets/subtensor/src/tests/subnet.rs @@ -27,7 +27,7 @@ fn test_do_start_call_ok() { // account 0 is the default owner for any subnet assert_eq!(SubnetOwner::::get(netuid), coldkey_account_id); - let block_number = System::block_number() + DurationOfStartCall::get(); + let block_number = System::block_number() + StartCallDelay::::get(); System::set_block_number(block_number); assert_ok!(SubtensorModule::start_call( @@ -76,7 +76,7 @@ fn test_do_start_call_fail_not_owner() { assert_eq!(SubnetOwner::::get(netuid), coldkey_account_id); - System::set_block_number(System::block_number() + DurationOfStartCall::get()); + System::set_block_number(System::block_number() + StartCallDelay::::get()); assert_noop!( SubtensorModule::start_call( @@ -89,7 +89,7 @@ fn test_do_start_call_fail_not_owner() { } #[test] -fn test_do_start_call_fail_with_cannot_start_call_now() { +fn test_do_start_call_can_start_now() { new_test_ext(0).execute_with(|| { let netuid = NetUid::from(1); let tempo: u16 = 13; @@ -106,13 +106,10 @@ fn test_do_start_call_fail_with_cannot_start_call_now() { assert_eq!(SubnetOwner::::get(netuid), coldkey_account_id); - assert_noop!( - SubtensorModule::start_call( - <::RuntimeOrigin>::signed(coldkey_account_id), - netuid - ), - Error::::NeedWaitingMoreBlocksToStarCall - ); + assert_ok!(SubtensorModule::start_call( + <::RuntimeOrigin>::signed(coldkey_account_id), + netuid + )); }); } @@ -143,7 +140,7 @@ fn test_do_start_call_fail_for_set_again() { assert_eq!(SubnetOwner::::get(netuid), coldkey_account_id); - let block_number = System::block_number() + DurationOfStartCall::get(); + let block_number = System::block_number() + StartCallDelay::::get(); System::set_block_number(block_number); assert_ok!(SubtensorModule::start_call( @@ -174,7 +171,7 @@ fn test_do_start_call_ok_with_same_block_number_after_coinbase() { assert_eq!(SubnetOwner::::get(netuid), coldkey_account_id); - let block_number = System::block_number() + DurationOfStartCall::get(); + let block_number = System::block_number() + StartCallDelay::::get(); System::set_block_number(block_number); assert_ok!(SubtensorModule::start_call( @@ -368,7 +365,7 @@ fn test_subtoken_enable() { add_network_disable_subtoken(netuid, 10, 0); assert!(!SubtokenEnabled::::get(netuid)); - let block_number = System::block_number() + DurationOfStartCall::get(); + let block_number = System::block_number() + StartCallDelay::::get(); System::set_block_number(block_number); assert_ok!(SubtensorModule::start_call( diff --git a/pallets/transaction-fee/src/tests/mock.rs b/pallets/transaction-fee/src/tests/mock.rs index ee5b1693ba..3bad4a275f 100644 --- a/pallets/transaction-fee/src/tests/mock.rs +++ b/pallets/transaction-fee/src/tests/mock.rs @@ -210,7 +210,7 @@ parameter_types! { pub const InitialDissolveNetworkScheduleDuration: u64 = 5 * 24 * 60 * 60 / 12; // 5 days pub const InitialTaoWeight: u64 = u64::MAX/10; // 10% global weight. pub const InitialEmaPriceHalvingPeriod: u64 = 201_600_u64; // 4 weeks - pub const DurationOfStartCall: u64 = 7 * 24 * 60 * 60 / 12; // 7 days + pub const InitialStartCallDelay: u64 = 0; // 0 days pub const InitialKeySwapOnSubnetCost: u64 = 10_000_000; pub const HotkeySwapOnSubnetInterval: u64 = 7 * 24 * 60 * 60 / 12; // 7 days pub const LeaseDividendsDistributionInterval: u32 = 100; // 100 blocks @@ -280,7 +280,7 @@ impl pallet_subtensor::Config for Test { type InitialDissolveNetworkScheduleDuration = InitialDissolveNetworkScheduleDuration; type InitialTaoWeight = InitialTaoWeight; type InitialEmaPriceHalvingPeriod = InitialEmaPriceHalvingPeriod; - type DurationOfStartCall = DurationOfStartCall; + type InitialStartCallDelay = InitialStartCallDelay; type SwapInterface = Swap; type KeySwapOnSubnetCost = InitialKeySwapOnSubnetCost; type HotkeySwapOnSubnetInterval = HotkeySwapOnSubnetInterval; diff --git a/precompiles/Cargo.toml b/precompiles/Cargo.toml index 12460dcfbb..400e1caa9f 100644 --- a/precompiles/Cargo.toml +++ b/precompiles/Cargo.toml @@ -11,6 +11,7 @@ repository = "https://github.com/opentensor/subtensor/" targets = ["x86_64-unknown-linux-gnu"] [dependencies] +# codec.workspace = true ed25519-dalek = { workspace = true, features = ["alloc"] } fp-evm.workspace = true frame-support.workspace = true @@ -25,6 +26,7 @@ pallet-evm-precompile-simple.workspace = true pallet-evm-precompile-bn128.workspace = true pallet-subtensor-proxy.workspace = true precompile-utils.workspace = true +scale-info.workspace = true sp-core.workspace = true sp-io.workspace = true sp-runtime.workspace = true @@ -43,6 +45,7 @@ workspace = true [features] default = ["std"] std = [ + # "codec/std", "ed25519-dalek/std", "fp-evm/std", "frame-support/std", @@ -50,17 +53,18 @@ std = [ "log/std", "pallet-admin-utils/std", "pallet-balances/std", + "pallet-crowdloan/std", + "pallet-evm-precompile-bn128/std", "pallet-evm-precompile-dispatch/std", "pallet-evm-precompile-modexp/std", "pallet-evm-precompile-sha3fips/std", "pallet-evm-precompile-simple/std", - "pallet-evm-precompile-bn128/std", "pallet-evm/std", - "pallet-crowdloan/std", "pallet-subtensor-proxy/std", - "pallet-subtensor/std", "pallet-subtensor-swap/std", + "pallet-subtensor/std", "precompile-utils/std", + "scale-info/std", "sp-core/std", "sp-io/std", "sp-runtime/std", diff --git a/precompiles/src/address_mapping.rs b/precompiles/src/address_mapping.rs new file mode 100644 index 0000000000..fa34692657 --- /dev/null +++ b/precompiles/src/address_mapping.rs @@ -0,0 +1,77 @@ +extern crate alloc; +use core::marker::PhantomData; +use pallet_evm::AddressMapping; + +use crate::PrecompileExt; +use sp_core::{ByteArray, H256}; + +use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}; +use frame_support::traits::IsSubType; +use pallet_evm::PrecompileHandle; +use pallet_subtensor_proxy as pallet_proxy; +use precompile_utils::EvmResult; +use precompile_utils::prelude::Address; +use sp_runtime::traits::{AsSystemOriginSigner, Dispatchable}; + +pub struct AddressMappingPrecompile(PhantomData); + +impl PrecompileExt for AddressMappingPrecompile +where + R: frame_system::Config + + pallet_balances::Config + + pallet_crowdloan::Config + + pallet_evm::Config + + pallet_proxy::Config + + pallet_subtensor::Config + + Send + + Sync + + scale_info::TypeInfo, + R::AccountId: From<[u8; 32]> + ByteArray + Into<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, + ::RuntimeCall: From> + + GetDispatchInfo + + Dispatchable + + IsSubType> + + IsSubType>, + ::RuntimeCall: From> + + GetDispatchInfo + + Dispatchable, + ::AddressMapping: AddressMapping, +{ + const INDEX: u64 = 2060; +} + +#[precompile_utils::precompile] +impl AddressMappingPrecompile +where + R: frame_system::Config + + pallet_balances::Config + + pallet_crowdloan::Config + + pallet_evm::Config + + pallet_proxy::Config + + pallet_subtensor::Config + + Send + + Sync + + scale_info::TypeInfo, + R::AccountId: From<[u8; 32]> + ByteArray + Into<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, + ::RuntimeCall: From> + + GetDispatchInfo + + Dispatchable + + IsSubType> + + IsSubType>, + ::RuntimeCall: From> + + GetDispatchInfo + + Dispatchable, + ::AddressMapping: AddressMapping, +{ + #[precompile::public("addressMapping(address)")] + #[precompile::view] + fn address_mapping( + _handle: &mut impl PrecompileHandle, + target_address: Address, + ) -> EvmResult { + let target_address: [u8; 32] = R::AddressMapping::into_account_id(target_address.0).into(); + Ok(target_address.into()) + } +} diff --git a/precompiles/src/balance_transfer.rs b/precompiles/src/balance_transfer.rs index b132125f22..c1cdab6ca5 100644 --- a/precompiles/src/balance_transfer.rs +++ b/precompiles/src/balance_transfer.rs @@ -1,11 +1,12 @@ use core::marker::PhantomData; -use frame_support::dispatch::{GetDispatchInfo, PostDispatchInfo}; +use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}; +use frame_support::traits::IsSubType; use frame_system::RawOrigin; use pallet_evm::PrecompileHandle; use precompile_utils::EvmResult; use sp_core::{H256, U256}; -use sp_runtime::traits::{Dispatchable, StaticLookup, UniqueSaturatedInto}; +use sp_runtime::traits::{AsSystemOriginSigner, Dispatchable, StaticLookup, UniqueSaturatedInto}; use crate::{PrecompileExt, PrecompileHandleExt}; @@ -13,13 +14,22 @@ pub(crate) struct BalanceTransferPrecompile(PhantomData); impl PrecompileExt for BalanceTransferPrecompile where - R: frame_system::Config + pallet_balances::Config + pallet_evm::Config, + R: frame_system::Config + + pallet_balances::Config + + pallet_evm::Config + + pallet_subtensor::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]>, - ::RuntimeCall: - GetDispatchInfo + Dispatchable, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, + ::RuntimeCall: GetDispatchInfo + + Dispatchable + + IsSubType> + + IsSubType>, ::RuntimeCall: From> + GetDispatchInfo - + Dispatchable, + + Dispatchable, <::Lookup as StaticLookup>::Source: From, ::Balance: TryFrom, { @@ -29,13 +39,22 @@ where #[precompile_utils::precompile] impl BalanceTransferPrecompile where - R: frame_system::Config + pallet_balances::Config + pallet_evm::Config, + R: frame_system::Config + + pallet_balances::Config + + pallet_evm::Config + + pallet_subtensor::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]>, - ::RuntimeCall: - GetDispatchInfo + Dispatchable, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, + ::RuntimeCall: GetDispatchInfo + + Dispatchable + + IsSubType> + + IsSubType>, ::RuntimeCall: From> + GetDispatchInfo - + Dispatchable, + + Dispatchable, <::Lookup as StaticLookup>::Source: From, ::Balance: TryFrom, { diff --git a/precompiles/src/crowdloan.rs b/precompiles/src/crowdloan.rs index 246c65c70c..f0971015d9 100644 --- a/precompiles/src/crowdloan.rs +++ b/precompiles/src/crowdloan.rs @@ -2,7 +2,8 @@ use alloc::string::String; use core::marker::PhantomData; use fp_evm::{ExitError, PrecompileFailure}; -use frame_support::dispatch::{GetDispatchInfo, PostDispatchInfo}; +use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}; +use frame_support::traits::IsSubType; use frame_system::RawOrigin; use pallet_evm::AddressMapping; use pallet_evm::PrecompileHandle; @@ -10,7 +11,7 @@ use pallet_subtensor_proxy as pallet_proxy; use precompile_utils::prelude::Address; use precompile_utils::{EvmResult, solidity::Codec}; use sp_core::{ByteArray, H256}; -use sp_runtime::traits::{Dispatchable, UniqueSaturatedInto}; +use sp_runtime::traits::{AsSystemOriginSigner, Dispatchable, UniqueSaturatedInto}; use crate::{PrecompileExt, PrecompileHandleExt}; @@ -18,11 +19,22 @@ pub struct CrowdloanPrecompile(PhantomData); impl PrecompileExt for CrowdloanPrecompile where - R: frame_system::Config + pallet_evm::Config + pallet_crowdloan::Config + pallet_proxy::Config, + R: frame_system::Config + + pallet_balances::Config + + pallet_crowdloan::Config + + pallet_evm::Config + + pallet_proxy::Config + + pallet_subtensor::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + ByteArray, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, { const INDEX: u64 = 2057; @@ -31,14 +43,25 @@ where #[precompile_utils::precompile] impl CrowdloanPrecompile where - R: frame_system::Config + pallet_evm::Config + pallet_crowdloan::Config + pallet_proxy::Config, + R: frame_system::Config + + pallet_balances::Config + + pallet_crowdloan::Config + + pallet_evm::Config + + pallet_proxy::Config + + pallet_subtensor::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + ByteArray, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::RuntimeCall: From> + GetDispatchInfo - + Dispatchable, + + Dispatchable, ::AddressMapping: AddressMapping, { #[precompile::public("getCrowdloan(uint32)")] diff --git a/precompiles/src/extensions.rs b/precompiles/src/extensions.rs index fab35a8b79..df5ebf3fa2 100644 --- a/precompiles/src/extensions.rs +++ b/precompiles/src/extensions.rs @@ -3,15 +3,25 @@ extern crate alloc; use alloc::format; use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, Pays, PostDispatchInfo}; +use frame_support::traits::IsSubType; use frame_system::RawOrigin; use pallet_admin_utils::{PrecompileEnable, PrecompileEnum}; use pallet_evm::{ AddressMapping, BalanceConverter, EvmBalance, ExitError, GasWeightMapping, Precompile, PrecompileFailure, PrecompileHandle, PrecompileResult, }; +use pallet_subtensor::transaction_extension::SubtensorTransactionExtension; use precompile_utils::EvmResult; +use scale_info::TypeInfo; use sp_core::{H160, U256, blake2_256}; -use sp_runtime::traits::Dispatchable; +use sp_runtime::{ + DispatchResult, + traits::{ + AsSystemOriginSigner, Dispatchable, ExtensionPostDispatchWeightHandler, + TransactionExtension, TxBaseImplication, + }, + transaction_validity::{TransactionSource, TransactionValidityError}, +}; use sp_std::vec::Vec; pub(crate) trait PrecompileHandleExt: PrecompileHandle { @@ -44,19 +54,33 @@ pub(crate) trait PrecompileHandleExt: PrecompileHandle { origin: RawOrigin, ) -> EvmResult<()> where - R: frame_system::Config + pallet_evm::Config, - R::RuntimeCall: From, - R::RuntimeCall: GetDispatchInfo + Dispatchable, - R::RuntimeOrigin: From>, + R: frame_system::Config + + pallet_balances::Config + + pallet_evm::Config + + pallet_subtensor::Config + + Send + + Sync + + TypeInfo, + ::RuntimeCall: From, + ::RuntimeCall: GetDispatchInfo + + Dispatchable + + IsSubType> + + IsSubType>, + ::RuntimeOrigin: + From> + AsSystemOriginSigner + Clone, { - let call = R::RuntimeCall::from(call); - let info = GetDispatchInfo::get_dispatch_info(&call); + let call = ::RuntimeCall::from(call); + let mut info = GetDispatchInfo::get_dispatch_info(&call); + let subtensor_extension = SubtensorTransactionExtension::::new(); + info.extension_weight = info + .extension_weight + .saturating_add(subtensor_extension.weight(&call)); let target_gas = self.gas_limit(); if let Some(gas) = target_gas { let valid_weight = ::GasWeightMapping::gas_to_weight(gas, false).ref_time(); - if info.call_weight.ref_time() > valid_weight { + if info.total_weight().ref_time() > valid_weight { return Err(PrecompileFailure::Error { exit_status: ExitError::OutOfGas, }); @@ -64,26 +88,56 @@ pub(crate) trait PrecompileHandleExt: PrecompileHandle { } self.record_external_cost( - Some(info.call_weight.ref_time()), - Some(info.call_weight.proof_size()), + Some(info.total_weight().ref_time()), + Some(info.total_weight().proof_size()), None, )?; - match call.dispatch(R::RuntimeOrigin::from(origin)) { - Ok(post_info) => { + let origin = ::RuntimeOrigin::from(origin); + let (_, val, origin) = subtensor_extension + .validate( + origin, + &call, + &info, + 0, + (), + &TxBaseImplication(()), + TransactionSource::External, + ) + .map_err(extension_error)?; + subtensor_extension + .prepare(val, &origin, &call, &info, 0) + .map_err(extension_error)?; + + match call.dispatch(origin) { + Ok(mut post_info) => { + post_info.set_extension_weight(&info); + let result: DispatchResult = Ok(()); + as TransactionExtension< + ::RuntimeCall, + >>::post_dispatch((), &info, &mut post_info, 0, &result) + .map_err(extension_error)?; log::debug!("Dispatch succeeded. Post info: {post_info:?}"); self.charge_and_refund_after_dispatch::(&info, &post_info)?; Ok(()) } Err(e) => { + let err_str: &'static str = e.into(); + let mut post_info = e.post_info; + post_info.set_extension_weight(&info); + let result: DispatchResult = Err(e.error); + as TransactionExtension< + ::RuntimeCall, + >>::post_dispatch((), &info, &mut post_info, 0, &result) + .map_err(extension_error)?; log::error!("Dispatch failed. Error: {e:?}"); log::warn!("Returning error PrecompileFailure::Error"); - self.charge_and_refund_after_dispatch::(&info, &e.post_info)?; + self.charge_and_refund_after_dispatch::(&info, &post_info)?; Err(PrecompileFailure::Error { exit_status: ExitError::Other( - format!("dispatch execution failed: {}", <&'static str>::from(e)).into(), + format!("dispatch execution failed: {err_str}").into(), ), }) } @@ -99,18 +153,18 @@ pub(crate) trait PrecompileHandleExt: PrecompileHandle { R: frame_system::Config + pallet_evm::Config, { if post_info.pays_fee(info) == Pays::Yes { - let actual_weight = post_info.actual_weight.unwrap_or(info.call_weight); + let actual_weight = post_info.calc_actual_weight(info); let cost = ::GasWeightMapping::weight_to_gas(actual_weight); self.record_cost(cost)?; self.refund_external_cost( Some( - info.call_weight + info.total_weight() .ref_time() .saturating_sub(actual_weight.ref_time()), ), Some( - info.call_weight + info.total_weight() .proof_size() .saturating_sub(actual_weight.proof_size()), ), @@ -121,6 +175,12 @@ pub(crate) trait PrecompileHandleExt: PrecompileHandle { } } +fn extension_error(err: TransactionValidityError) -> PrecompileFailure { + PrecompileFailure::Error { + exit_status: ExitError::Other(format!("transaction extension rejected: {err:?}").into()), + } +} + impl PrecompileHandleExt for T where T: PrecompileHandle {} pub(crate) trait PrecompileExt>: Precompile { diff --git a/precompiles/src/leasing.rs b/precompiles/src/leasing.rs index c4d64f428a..01a8db4354 100644 --- a/precompiles/src/leasing.rs +++ b/precompiles/src/leasing.rs @@ -2,7 +2,8 @@ use alloc::{boxed::Box, string::String}; use core::marker::PhantomData; use fp_evm::{ExitError, PrecompileFailure}; -use frame_support::dispatch::{GetDispatchInfo, PostDispatchInfo}; +use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}; +use frame_support::traits::IsSubType; use frame_system::RawOrigin; use pallet_evm::AddressMapping; use pallet_evm::PrecompileHandle; @@ -10,7 +11,7 @@ use precompile_utils::{EvmResult, solidity::Codec}; use sp_core::{ByteArray, H256}; use sp_runtime::{ Percent, - traits::{Dispatchable, UniqueSaturatedInto}, + traits::{AsSystemOriginSigner, Dispatchable, UniqueSaturatedInto}, }; use subtensor_runtime_common::NetUid; @@ -21,14 +22,21 @@ pub struct LeasingPrecompile(PhantomData); impl PrecompileExt for LeasingPrecompile where R: frame_system::Config + + pallet_balances::Config + pallet_evm::Config + pallet_subtensor::Config - + pallet_crowdloan::Config, + + pallet_crowdloan::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + ByteArray, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, { const INDEX: u64 = 2058; @@ -38,14 +46,21 @@ where impl LeasingPrecompile where R: frame_system::Config + + pallet_balances::Config + pallet_evm::Config + pallet_subtensor::Config - + pallet_crowdloan::Config, + + pallet_crowdloan::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + ByteArray, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, { #[precompile::public("getLease(uint32)")] diff --git a/precompiles/src/lib.rs b/precompiles/src/lib.rs index 8069a1eb92..864119d89f 100644 --- a/precompiles/src/lib.rs +++ b/precompiles/src/lib.rs @@ -5,8 +5,9 @@ extern crate alloc; use core::marker::PhantomData; use fp_evm::{ExitError, PrecompileFailure}; +use frame_support::traits::IsSubType; use frame_support::{ - dispatch::{GetDispatchInfo, PostDispatchInfo}, + dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}, pallet_prelude::Decode, }; use pallet_evm::{ @@ -20,12 +21,12 @@ use pallet_evm_precompile_sha3fips::Sha3FIPS256; use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; use pallet_subtensor_proxy as pallet_proxy; use sp_core::{H160, U256, crypto::ByteArray}; -use sp_runtime::traits::Dispatchable; -use sp_runtime::traits::StaticLookup; +use sp_runtime::traits::{AsSystemOriginSigner, Dispatchable, StaticLookup}; use subtensor_runtime_common::ProxyType; use pallet_admin_utils::PrecompileEnum; +use crate::address_mapping::*; use crate::alpha::*; use crate::balance_transfer::*; use crate::crowdloan::*; @@ -41,6 +42,7 @@ use crate::storage_query::*; use crate::subnet::*; use crate::uid_lookup::*; +mod address_mapping; mod alpha; mod balance_transfer; mod crowdloan; @@ -55,6 +57,7 @@ mod staking; mod storage_query; mod subnet; mod uid_lookup; + pub struct Precompiles(PhantomData); impl Default for Precompiles @@ -66,15 +69,21 @@ where + pallet_subtensor::Config + pallet_subtensor_swap::Config + pallet_proxy::Config - + pallet_crowdloan::Config, + + pallet_crowdloan::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + ByteArray + Into<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + From> + From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, ::Balance: TryFrom, <::Lookup as StaticLookup>::Source: From, @@ -93,15 +102,21 @@ where + pallet_subtensor::Config + pallet_subtensor_swap::Config + pallet_proxy::Config - + pallet_crowdloan::Config, + + pallet_crowdloan::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + ByteArray + Into<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + From> + From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, ::Balance: TryFrom, <::Lookup as StaticLookup>::Source: From, @@ -110,7 +125,7 @@ where Self(Default::default()) } - pub fn used_addresses() -> [H160; 25] { + pub fn used_addresses() -> [H160; 26] { [ hash(1), hash(2), @@ -137,6 +152,7 @@ where hash(CrowdloanPrecompile::::INDEX), hash(LeasingPrecompile::::INDEX), hash(ProxyPrecompile::::INDEX), + hash(AddressMappingPrecompile::::INDEX), ] } } @@ -149,15 +165,21 @@ where + pallet_subtensor::Config + pallet_subtensor_swap::Config + pallet_proxy::Config - + pallet_crowdloan::Config, + + pallet_crowdloan::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + ByteArray + Into<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + From> + From> + From> + GetDispatchInfo - + Dispatchable + + Dispatchable + + IsSubType> + + IsSubType> + Decode, <::RuntimeCall as Dispatchable>::RuntimeOrigin: From>>, @@ -226,6 +248,12 @@ where a if a == hash(ProxyPrecompile::::INDEX) => { ProxyPrecompile::::try_execute::(handle, PrecompileEnum::Proxy) } + a if a == hash(AddressMappingPrecompile::::INDEX) => { + AddressMappingPrecompile::::try_execute::( + handle, + PrecompileEnum::AddressMapping, + ) + } _ => None, } } diff --git a/precompiles/src/neuron.rs b/precompiles/src/neuron.rs index 3e49387bb3..0b998b3c07 100644 --- a/precompiles/src/neuron.rs +++ b/precompiles/src/neuron.rs @@ -1,11 +1,12 @@ use core::marker::PhantomData; -use frame_support::dispatch::{GetDispatchInfo, PostDispatchInfo}; +use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}; +use frame_support::traits::IsSubType; use frame_system::RawOrigin; use pallet_evm::{AddressMapping, PrecompileHandle}; use precompile_utils::{EvmResult, prelude::UnboundedBytes}; use sp_core::H256; -use sp_runtime::traits::Dispatchable; +use sp_runtime::traits::{AsSystemOriginSigner, Dispatchable}; use sp_std::vec::Vec; use crate::{PrecompileExt, PrecompileHandleExt}; @@ -14,11 +15,20 @@ pub struct NeuronPrecompile(PhantomData); impl PrecompileExt for NeuronPrecompile where - R: frame_system::Config + pallet_evm::Config + pallet_subtensor::Config, + R: frame_system::Config + + pallet_balances::Config + + pallet_evm::Config + + pallet_subtensor::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, { const INDEX: u64 = 2052; @@ -27,11 +37,20 @@ where #[precompile_utils::precompile] impl NeuronPrecompile where - R: frame_system::Config + pallet_evm::Config + pallet_subtensor::Config, + R: frame_system::Config + + pallet_balances::Config + + pallet_evm::Config + + pallet_subtensor::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, { #[precompile::public("setWeights(uint16,uint16[],uint16[],uint64)")] diff --git a/precompiles/src/proxy.rs b/precompiles/src/proxy.rs index c8396be264..5139477f00 100644 --- a/precompiles/src/proxy.rs +++ b/precompiles/src/proxy.rs @@ -4,7 +4,8 @@ use crate::{PrecompileExt, PrecompileHandleExt}; use alloc::format; use fp_evm::{ExitError, PrecompileFailure}; -use frame_support::dispatch::{GetDispatchInfo, PostDispatchInfo}; +use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}; +use frame_support::traits::IsSubType; use frame_system::RawOrigin; use pallet_evm::{AddressMapping, PrecompileHandle}; use pallet_subtensor_proxy as pallet_proxy; @@ -12,7 +13,7 @@ use precompile_utils::EvmResult; use sp_core::{H256, U256}; use sp_runtime::{ codec::DecodeLimit, - traits::{Dispatchable, StaticLookup}, + traits::{AsSystemOriginSigner, Dispatchable, StaticLookup}, }; use sp_std::boxed::Box; use sp_std::convert::{TryFrom, TryInto}; @@ -25,15 +26,22 @@ const MAX_DECODE_DEPTH: u32 = 8; impl PrecompileExt for ProxyPrecompile where R: frame_system::Config + + pallet_balances::Config + pallet_evm::Config + pallet_subtensor::Config - + pallet_proxy::Config, + + pallet_proxy::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + Into<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::AddressMapping: AddressMapping, ::RuntimeCall: From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, <::Lookup as StaticLookup>::Source: From, { @@ -44,15 +52,22 @@ where impl ProxyPrecompile where R: frame_system::Config + + pallet_balances::Config + pallet_evm::Config + pallet_subtensor::Config - + pallet_proxy::Config, + + pallet_proxy::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + Into<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::AddressMapping: AddressMapping, ::RuntimeCall: From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, <::Lookup as StaticLookup>::Source: From, { #[precompile::public("createPureProxy(uint8,uint32,uint16)")] diff --git a/precompiles/src/solidity/addressMapping.abi b/precompiles/src/solidity/addressMapping.abi new file mode 100644 index 0000000000..40773e9d77 --- /dev/null +++ b/precompiles/src/solidity/addressMapping.abi @@ -0,0 +1,21 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "target_address", + "type": "address" + } + ], + "name": "addressMapping", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/precompiles/src/solidity/addressMapping.sol b/precompiles/src/solidity/addressMapping.sol new file mode 100644 index 0000000000..8c5decb6cc --- /dev/null +++ b/precompiles/src/solidity/addressMapping.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +address constant IADDRESS_MAPPING_ADDRESS = 0x000000000000000000000000000000000000080C; + +interface IAddressMapping { + /** + * @dev Converts an Ethereum address (H160) to a Substrate AccountId32 (H256). + * + * This function uses the AddressMapping configured in the runtime to convert + * an Ethereum address to its corresponding Substrate account ID. The mapping + * is implemented using HashedAddressMapping with Blake2b hashing as configured + * in the runtime. + * + * @param target_address The Ethereum address (20 bytes) to convert. + * @return The corresponding Substrate AccountId32 (32 bytes). + */ + function addressMapping( + address target_address + ) external view returns (bytes32); +} diff --git a/precompiles/src/staking.rs b/precompiles/src/staking.rs index 35daaf4f47..9cc2a2aaa4 100644 --- a/precompiles/src/staking.rs +++ b/precompiles/src/staking.rs @@ -27,7 +27,8 @@ use alloc::vec::Vec; use core::marker::PhantomData; -use frame_support::dispatch::{GetDispatchInfo, PostDispatchInfo}; +use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}; +use frame_support::traits::IsSubType; use frame_system::RawOrigin; use pallet_evm::{ AddressMapping, BalanceConverter, EvmBalance, ExitError, PrecompileFailure, PrecompileHandle, @@ -36,7 +37,7 @@ use pallet_evm::{ use pallet_subtensor_proxy as pallet_proxy; use precompile_utils::EvmResult; use sp_core::{H256, U256}; -use sp_runtime::traits::{Dispatchable, StaticLookup, UniqueSaturatedInto}; +use sp_runtime::traits::{AsSystemOriginSigner, Dispatchable, StaticLookup, UniqueSaturatedInto}; use sp_std::vec; use subtensor_runtime_common::{Currency, NetUid, ProxyType}; @@ -52,14 +53,21 @@ pub(crate) struct StakingPrecompileV2(PhantomData); impl PrecompileExt for StakingPrecompileV2 where R: frame_system::Config + + pallet_balances::Config + pallet_evm::Config + pallet_subtensor::Config - + pallet_proxy::Config, + + pallet_proxy::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + Into<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, <::Lookup as StaticLookup>::Source: From, { @@ -70,14 +78,21 @@ where impl StakingPrecompileV2 where R: frame_system::Config + + pallet_balances::Config + pallet_evm::Config + pallet_subtensor::Config - + pallet_proxy::Config, + + pallet_proxy::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]> + Into<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, <::Lookup as StaticLookup>::Source: From, { @@ -407,6 +422,23 @@ where handle.try_dispatch_runtime_call::(call, RawOrigin::Signed(account_id)) } + + #[precompile::public("getTotalColdkeyStakeOnSubnet(bytes32,uint256)")] + #[precompile::view] + fn get_total_coldkey_stake_on_subnet( + _handle: &mut impl PrecompileHandle, + coldkey: H256, + netuid: U256, + ) -> EvmResult { + let coldkey = R::AccountId::from(coldkey.0); + let netuid = try_u16_from_u256(netuid)?; + let stake = pallet_subtensor::Pallet::::get_total_stake_for_coldkey_on_subnet( + &coldkey, + netuid.into(), + ); + + Ok(stake.to_u64().into()) + } } // Deprecated, exists for backward compatibility. @@ -418,13 +450,19 @@ where + pallet_evm::Config + pallet_subtensor::Config + pallet_proxy::Config - + pallet_balances::Config, + + pallet_balances::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, ::Balance: TryFrom, <::Lookup as StaticLookup>::Source: From, @@ -439,13 +477,19 @@ where + pallet_evm::Config + pallet_subtensor::Config + pallet_proxy::Config - + pallet_balances::Config, + + pallet_balances::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, ::Balance: TryFrom, <::Lookup as StaticLookup>::Source: From, diff --git a/precompiles/src/subnet.rs b/precompiles/src/subnet.rs index b7f5cdb098..4df373c116 100644 --- a/precompiles/src/subnet.rs +++ b/precompiles/src/subnet.rs @@ -1,12 +1,13 @@ use core::marker::PhantomData; -use frame_support::dispatch::{GetDispatchInfo, PostDispatchInfo}; +use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}; use frame_support::traits::ConstU32; +use frame_support::traits::IsSubType; use frame_system::RawOrigin; use pallet_evm::{AddressMapping, PrecompileHandle}; use precompile_utils::{EvmResult, prelude::BoundedString}; use sp_core::H256; -use sp_runtime::traits::Dispatchable; +use sp_runtime::traits::{AsSystemOriginSigner, Dispatchable}; use sp_std::vec; use subtensor_runtime_common::{Currency, NetUid}; @@ -17,14 +18,21 @@ pub struct SubnetPrecompile(PhantomData); impl PrecompileExt for SubnetPrecompile where R: frame_system::Config + + pallet_balances::Config + pallet_evm::Config + pallet_subtensor::Config - + pallet_admin_utils::Config, + + pallet_admin_utils::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, { const INDEX: u64 = 2051; @@ -34,14 +42,21 @@ where impl SubnetPrecompile where R: frame_system::Config + + pallet_balances::Config + pallet_evm::Config + pallet_subtensor::Config - + pallet_admin_utils::Config, + + pallet_admin_utils::Config + + Send + + Sync + + scale_info::TypeInfo, R::AccountId: From<[u8; 32]>, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, ::RuntimeCall: From> + From> + GetDispatchInfo - + Dispatchable, + + Dispatchable + + IsSubType> + + IsSubType>, ::AddressMapping: AddressMapping, { #[precompile::public("registerNetwork(bytes32)")] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 1af76d502b..225c2e2706 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -241,7 +241,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // `spec_version`, and `authoring_version` are the same between Wasm and native. // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use // the compatible custom types. - spec_version: 367, + spec_version: 371, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -340,7 +340,7 @@ impl frame_system::Config for Runtime { // The data to be stored in an account. type AccountData = pallet_balances::AccountData; // Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); + type SystemWeightInfo = frame_system::weights::SubstrateWeight; // This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; // The set code logic, just the default since we're not a parachain. @@ -353,7 +353,7 @@ impl frame_system::Config for Runtime { type PreInherents = (); type PostInherents = (); type PostTransactions = (); - type ExtensionsWeightInfo = (); + type ExtensionsWeightInfo = frame_system::SubstrateExtensionsWeight; } impl pallet_insecure_randomness_collective_flip::Config for Runtime {} @@ -371,7 +371,7 @@ impl pallet_grandpa::Config for Runtime { type KeyOwnerProof = sp_core::Void; - type WeightInfo = (); + type WeightInfo = (); // pallet_grandpa exports only default implementation type MaxAuthorities = ConstU32<32>; type MaxSetIdSessionEntries = ConstU64<0>; type MaxNominators = ConstU32<20>; @@ -409,7 +409,7 @@ impl pallet_timestamp::Config for Runtime { type Moment = u64; type OnTimestampSet = Aura; type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; - type WeightInfo = (); + type WeightInfo = pallet_timestamp::weights::SubstrateWeight; } impl pallet_utility::Config for Runtime { @@ -1057,8 +1057,8 @@ parameter_types! { pub const InitialDissolveNetworkScheduleDuration: BlockNumber = 5 * 24 * 60 * 60 / 12; // 5 days pub const SubtensorInitialTaoWeight: u64 = 971_718_665_099_567_868; // 0.05267697438728329% tao weight. pub const InitialEmaPriceHalvingPeriod: u64 = 201_600_u64; // 4 weeks - // 7 * 24 * 60 * 60 / 12 = 7 days - pub const DurationOfStartCall: u64 = prod_or_fast!(7 * 24 * 60 * 60 / 12, 10); + // 0 days + pub const InitialStartCallDelay: u64 = 0; pub const SubtensorInitialKeySwapOnSubnetCost: u64 = 1_000_000; // 0.001 TAO pub const HotkeySwapOnSubnetInterval : BlockNumber = 5 * 24 * 60 * 60 / 12; // 5 days pub const LeaseDividendsDistributionInterval: BlockNumber = 100; // 100 blocks @@ -1128,7 +1128,7 @@ impl pallet_subtensor::Config for Runtime { type InitialColdkeySwapRescheduleDuration = InitialColdkeySwapRescheduleDuration; type InitialDissolveNetworkScheduleDuration = InitialDissolveNetworkScheduleDuration; type InitialEmaPriceHalvingPeriod = InitialEmaPriceHalvingPeriod; - type DurationOfStartCall = DurationOfStartCall; + type InitialStartCallDelay = InitialStartCallDelay; type SwapInterface = Swap; type KeySwapOnSubnetCost = SubtensorInitialKeySwapOnSubnetCost; type HotkeySwapOnSubnetInterval = HotkeySwapOnSubnetInterval; diff --git a/scripts/localnet_patch.sh b/scripts/localnet_patch.sh index e3bee8c5b8..f36c912512 100755 --- a/scripts/localnet_patch.sh +++ b/scripts/localnet_patch.sh @@ -4,29 +4,51 @@ set -e -DurationOfStartCall="runtime/src/lib.rs" -DefaultPendingCooldown="pallets/subtensor/src/lib.rs" -SetChildren="pallets/subtensor/src/utils/rate_limiting.rs" - -# Checkers -if ! grep -q 'pub const DurationOfStartCall: u64' "$DurationOfStartCall"; then - echo "Error: Target string not found in $DurationOfStartCall" - exit 1 -fi - -if ! grep -q 'pub fn DefaultPendingCooldown() -> u64 {' "$DefaultPendingCooldown"; then - echo "Error: Target function not found in $DefaultPendingCooldown" - exit 1 -fi - -if ! grep -q 'Self::SetChildren => 150, // 30 minutes' "$SetChildren"; then - echo "Error: Target string not found in $SetChildren" - exit 1 -fi - -# replace -perl -0777 -i -pe 's|pub const DurationOfStartCall: u64 = prod_or_fast!\(7 \* 24 \* 60 \* 60 / 12, 10\);|pub const DurationOfStartCall: u64 = prod_or_fast!(5, 10);|' "$DurationOfStartCall" -perl -0777 -i -pe 's|pub fn DefaultPendingCooldown\(\) -> u64 \{\s*prod_or_fast!\(7_200, 15\)\s*\}|pub fn DefaultPendingCooldown() -> u64 {\n prod_or_fast!(15, 15)\n }|g' "$DefaultPendingCooldown" -perl -0777 -i -pe 's|Self::SetChildren => 150, // 30 minutes|Self::SetChildren => 15, // 3 min|' "$SetChildren" - -echo "Patch applied successfully." +# Function to check for a pattern and apply a replacement +# Args: file_path, search_pattern, replacement_pattern, description +patch_file() { + local file_path="$1" + local search_pattern="$2" + local replacement_pattern="$3" + local description="$4" + + # Check if the search pattern exists + if ! grep -qF "$search_pattern" "$file_path" 2>/dev/null && ! grep -qP "$search_pattern" "$file_path" 2>/dev/null; then + echo "Error: Target pattern '$search_pattern' not found in $file_path" + echo "Description: $description" + echo "This may indicate the codebase has changed. Please verify the target code exists." + exit 1 + fi + + # Apply the replacement + if ! perl -0777 -i -pe "$replacement_pattern" "$file_path"; then + echo "Error: Failed to apply replacement in $file_path" + echo "Description: $description" + exit 1 + fi +} + +echo "Applying patches..." + +# Patch 1: InitialStartCallDelay +patch_file \ + "runtime/src/lib.rs" \ + "pub const InitialStartCallDelay: u64" \ + 's|pub const InitialStartCallDelay: u64 = prod_or_fast!\(7 \* 24 \* 60 \* 60 / 12, 10\);|pub const InitialStartCallDelay: u64 = prod_or_fast!(5, 10);|' \ + "Reduce InitialStartCallDelay for local testing" + +# Patch 2: DefaultPendingCooldown +patch_file \ + "pallets/subtensor/src/lib.rs" \ + "pub fn DefaultPendingCooldown() -> u64 {" \ + 's|pub fn DefaultPendingCooldown\(\) -> u64 \{\s*prod_or_fast!\(7_200, 15\)\s*\}|pub fn DefaultPendingCooldown() -> u64 {\n prod_or_fast!(15, 15)\n }|g' \ + "Reduce DefaultPendingCooldown for local testing" + +# Patch 3: SetChildren rate limit +patch_file \ + "pallets/subtensor/src/utils/rate_limiting.rs" \ + "Self::SetChildren => 150, // 30 minutes" \ + 's|Self::SetChildren => 150, // 30 minutes|Self::SetChildren => 15, // 3 min|' \ + "Reduce SetChildren rate limit for local testing" + +echo "✓ All patches applied successfully."