diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a24a6426..740a5a71 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -188,7 +188,7 @@ jobs: strategy: fail-fast: false matrix: - suite: ["eth_test", "viem_test"] + suite: ["eth_test", "viem_test", "papi_readonly"] steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 diff --git a/packages/cli/package.json b/packages/cli/package.json index c0a3e87d..19a34031 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -87,6 +87,7 @@ "inquirer-press-to-continue": "*", "jsonc-parser": "3.3.1", "minimatch": "9.0.5", + "polkadot-api": "^1.7.4", "semver": "*", "tiny-invariant": "*", "viem": "*", diff --git a/packages/cli/src/internal/providerFactories.ts b/packages/cli/src/internal/providerFactories.ts index 3ff08755..654d3ef0 100644 --- a/packages/cli/src/internal/providerFactories.ts +++ b/packages/cli/src/internal/providerFactories.ts @@ -7,6 +7,8 @@ import { createWalletClient, http, publicActions } from "viem"; import { privateKeyToAccount } from "viem/accounts"; import { Web3 } from "web3"; import { WebSocketProvider } from "web3-providers-ws"; +import { createClient, type PolkadotClient } from "polkadot-api"; +import { getWsProvider, WsEvent } from "polkadot-api/ws-provider/web"; import Debug from "debug"; const debug = Debug("global:providers"); @@ -31,6 +33,8 @@ export class ProviderFactory { return this.createEthers(); case "viem": return this.createViem(); + case "papi": + return this.createPapi(); default: return this.createDefault(); } @@ -105,6 +109,33 @@ export class ProviderFactory { }; } + private createPapi(): MoonwallProvider { + debug(`🟢 Papi provider ${this.providerConfig.name} details prepared`); + return { + name: this.providerConfig.name, + type: this.providerConfig.type, + connect: () => { + const provider = getWsProvider(this.url, (status) => { + switch (status.type) { + case WsEvent.CONNECTING: + console.log("Connecting... 🔌"); + break; + case WsEvent.CONNECTED: + console.log("Connected! ⚡"); + break; + case WsEvent.ERROR: + console.log("Errored... 😢"); + break; + case WsEvent.CLOSE: + console.log("Closed 🚪"); + break; + } + }); + return createClient(provider); + }, + }; + } + private createDefault(): MoonwallProvider { debug(`🟢 Default provider ${this.providerConfig.name} details prepared`); return { @@ -211,7 +242,7 @@ export interface ProviderInterface { name: string; api: any; type: ProviderType; - greet: () => void | Promise | { rtVersion: number; rtName: string }; + greet: () => Promise | Promise<{ rtVersion: number; rtName: string }>; disconnect: () => void | Promise | any; } @@ -219,7 +250,13 @@ export class ProviderInterfaceFactory { constructor( private name: string, private type: ProviderType, - private connect: () => Promise | Wallet | Web3 | Promise | null + private connect: () => + | Promise + | Wallet + | Web3 + | Promise + | PolkadotClient + | null ) {} public async create(): Promise { @@ -232,6 +269,8 @@ export class ProviderInterfaceFactory { return this.createEthers(); case "viem": return this.createViem(); + case "papi": + return this.createPapi(); default: throw new Error("UNKNOWN TYPE"); } @@ -246,7 +285,7 @@ export class ProviderInterfaceFactory { name: this.name, api, type: this.type, - greet: () => { + greet: async () => { debug( `👋 Provider ${this.name} is connected to chain` + ` ${(api.consts.system.version as any).specName.toString()} ` + @@ -319,10 +358,27 @@ export class ProviderInterfaceFactory { }; } + private async createPapi(): Promise { + const api = (await this.connect()) as PolkadotClient; + return { + name: this.name, + api, + type: this.type, + greet: async () => { + const unsafeApi = await api.getUnsafeApi(); + const { spec_version, spec_name } = await unsafeApi.constants.System.Version(); + return { rtVersion: spec_version as number, rtName: spec_name as string }; + }, + async disconnect() { + api.destroy(); + }, + }; + } + public static async populate( name: string, type: ProviderType, - connect: () => Promise | Wallet | Web3 | Promise | null + connect: () => Promise | Wallet | Web3 | Promise | PolkadotClient | null ): Promise { debug(`🔄 Populating provider: ${name} of type: ${type}`); try { diff --git a/packages/cli/src/lib/runnerContext.ts b/packages/cli/src/lib/runnerContext.ts index 7defc203..b6f0c12e 100644 --- a/packages/cli/src/lib/runnerContext.ts +++ b/packages/cli/src/lib/runnerContext.ts @@ -24,6 +24,7 @@ import { chopsticksHandler } from "./handlers/chopsticksHandler"; import { devHandler } from "./handlers/devHandler"; import { readOnlyHandler } from "./handlers/readOnlyHandler"; import { zombieHandler } from "./handlers/zombieHandler"; +import { PolkadotClient } from "polkadot-api"; const RT_VERSION = Number(process.env.MOON_RTVERSION); const RT_NAME = process.env.MOON_RTNAME; @@ -150,6 +151,7 @@ export function describeSuite({ polkadotJs: (apiName?: string): ApiPromise => getApi("polkadotJs", apiName), ethers: (apiName?: string): Wallet => getApi("ethers", apiName), web3: (apiName?: string): Web3 => getApi("web3", apiName), + papi: (apiName?: string): PolkadotClient => getApi("papi", apiName), }; const foundationHandlers: Record> = { diff --git a/packages/types/config_schema.json b/packages/types/config_schema.json index 116363d6..80a10fde 100644 --- a/packages/types/config_schema.json +++ b/packages/types/config_schema.json @@ -307,8 +307,8 @@ "type": "object" }, "ProviderType": { - "description": "The type of provider. Can be \"polkadotJs\", \"ethers\", \"web3\", \"viem\"", - "enum": ["ethers", "polkadotJs", "viem", "web3"], + "description": "The type of provider. Can be \"polkadotJs\", \"ethers\", \"web3\", \"viem\", \"papi\"", + "enum": ["ethers", "papi", "polkadotJs", "viem", "web3"], "type": "string" }, "ReadOnlyLaunchSpec": { diff --git a/packages/types/package.json b/packages/types/package.json index 436cd3e3..7b99be8a 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -56,14 +56,15 @@ "@polkadot/api": "*", "@polkadot/api-base": "*", "@polkadot/keyring": "*", - "@polkadot/util-crypto": "*", "@polkadot/types": "*", "@polkadot/util": "*", + "@polkadot/util-crypto": "*", "@types/node": "*", "@zombienet/utils": "*", "bottleneck": "*", "debug": "*", "ethers": "*", + "polkadot-api": "^1.7.4", "viem": "*", "web3": "*" }, @@ -72,7 +73,7 @@ }, "devDependencies": { "@biomejs/biome": "*", - "@types/debug":"*", + "@types/debug": "*", "tsup": "*", "typescript": "*", "typescript-json-schema": "0.64.0" diff --git a/packages/types/src/config.ts b/packages/types/src/config.ts index 99edc3b9..28dc78df 100644 --- a/packages/types/src/config.ts +++ b/packages/types/src/config.ts @@ -404,9 +404,9 @@ export interface ProviderConfig { /** * @name ProviderType - * @description The type of provider. Can be "polkadotJs", "ethers", "web3", "viem" + * @description The type of provider. Can be "polkadotJs", "ethers", "web3", "viem", "papi" */ -export type ProviderType = "polkadotJs" | "ethers" | "web3" | "viem"; +export type ProviderType = "polkadotJs" | "ethers" | "web3" | "viem" | "papi"; /** * @name ZombieNodeType diff --git a/packages/types/src/context.ts b/packages/types/src/context.ts index 16967964..8f86e973 100644 --- a/packages/types/src/context.ts +++ b/packages/types/src/context.ts @@ -11,6 +11,7 @@ import type { Web3 } from "web3"; import type { FoundationType, ProviderType } from "./config"; import type { CallType } from "./foundations"; import type { ViemClient } from "./runner"; +import type { PolkadotClient } from "polkadot-api"; /** * @name MoonwallEnvironment @@ -38,7 +39,13 @@ export type MoonwallEnvironment = { export interface MoonwallProvider { name: string; type: ProviderType; - connect: () => Promise | Wallet | Web3 | Promise | null; + connect: () => + | Promise + | Wallet + | Web3 + | Promise + | PolkadotClient + | null; ws?: () => WsProvider; } @@ -56,7 +63,7 @@ export interface ConnectedProvider { type: ProviderType; api: ProviderApi; disconnect: () => Promise; - greet: () => Promise | void | { rtName: string; rtVersion: number }; + greet: () => Promise | Promise<{ rtName: string; rtVersion: number }>; } export type ProviderApi = { @@ -69,6 +76,7 @@ export type ProviderMap = { web3: Web3; moon: ApiPromise; viem: ViemClient; + papi: PolkadotClient; }; /** diff --git a/packages/types/src/runner.ts b/packages/types/src/runner.ts index 95305519..8cb93761 100644 --- a/packages/types/src/runner.ts +++ b/packages/types/src/runner.ts @@ -20,6 +20,7 @@ import type { ContractDeploymentOptions } from "./contracts"; import type { TransactionType } from "./eth"; import type { CallType } from "./foundations"; import type { DeepPartial } from "./helpers"; +import type { PolkadotClient } from "polkadot-api"; /** * @name CustomTest @@ -189,10 +190,12 @@ export interface GenericContext { api(type: "ethers", name?: string): Wallet; api(type: "web3", name?: string): Web3; api(type: "viem", name?: string): ViemClient; + api(type: "papi", name?: string): PolkadotClient; viem(name?: string): ViemClient; polkadotJs(apiName?: string): ApiPromise; ethers(name?: string): Wallet; web3(name?: string): Web3; + papi(name?: string): PolkadotClient; } /** diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4163b817..21a33ce7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -229,6 +229,9 @@ importers: minimatch: specifier: 9.0.5 version: 9.0.5 + polkadot-api: + specifier: ^1.7.4 + version: 1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.1)(yaml@2.4.5) semver: specifier: '*' version: 7.6.2 @@ -326,6 +329,9 @@ importers: ethers: specifier: '*' version: 6.13.4 + polkadot-api: + specifier: ^1.7.4 + version: 1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(yaml@2.4.5) viem: specifier: '*' version: 2.21.44(typescript@5.6.3)(zod@3.23.8) @@ -456,6 +462,13 @@ importers: version: 5.6.3 test: + dependencies: + '@polkadot-api/descriptors': + specifier: file:.papi/descriptors + version: file:test/.papi/descriptors(polkadot-api@1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.1)(yaml@2.4.5)) + polkadot-api: + specifier: ^1.7.4 + version: 1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.1)(yaml@2.4.5) devDependencies: '@acala-network/chopsticks': specifier: '*' @@ -647,6 +660,10 @@ packages: '@asamuzakjp/dom-selector@2.0.2': resolution: {integrity: sha512-x1KXOatwofR6ZAYzXRBL5wrdV0vwNxlTCK9NCuLqAzQYARqGcvFwiJA6A1ERuh+dgeA4Dxm3JBYictIes+SqUQ==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} @@ -833,6 +850,11 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} + '@commander-js/extra-typings@12.1.0': + resolution: {integrity: sha512-wf/lwQvWAA0goIghcb91dQYpkLBcyhOhQNqG/VgWhnKzgt+UOMvra7EX/2fv70arm5RW+PUHoQHHDa6/p77Eqg==} + peerDependencies: + commander: ~12.1.0 + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -1467,30 +1489,107 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@polkadot-api/cli@0.9.18': + resolution: {integrity: sha512-biax8MLK8GO6/YTy0NfkCYB1HT5OEAeHr+9ITyv4klNvF/4uqj3gb0XODjCpFX0aCUp6q8aIFMDhUc7rN47AYg==} + hasBin: true + + '@polkadot-api/codegen@0.12.8': + resolution: {integrity: sha512-uFDi6EYUVyqccTbu8vUsLHMrMTSPh/0D5CwoHuz5rhNH559cdR1kBf/EInhI6AVlnzzUBMAatOc4y5c2bkR+QA==} + + '@polkadot-api/descriptors@file:test/.papi/descriptors': + resolution: {directory: test/.papi/descriptors, type: directory} + peerDependencies: + polkadot-api: '*' + + '@polkadot-api/ink-contracts@0.2.1': + resolution: {integrity: sha512-K7iJv6lE2Z3npXdk12CGHKfQZ0CGN90mXqTNZd3wDli5BX7hGTzBDdZ34hpe537G7rG88SBYeLz7JJ3n+16CDg==} + '@polkadot-api/json-rpc-provider-proxy@0.1.0': resolution: {integrity: sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==} + '@polkadot-api/json-rpc-provider-proxy@0.2.3': + resolution: {integrity: sha512-dukH94xmV2MUYNZZFhGhnaE1WIjVOPlNpcuzYQRdKYLj3zZJnkA6PHPNHiHd4N8XaCTjaDF3GcBTi6MZ0wtbhg==} + '@polkadot-api/json-rpc-provider@0.0.1': resolution: {integrity: sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==} + '@polkadot-api/json-rpc-provider@0.0.4': + resolution: {integrity: sha512-9cDijLIxzHOBuq6yHqpqjJ9jBmXrctjc1OFqU+tQrS96adQze3mTIH6DTgfb/0LMrqxzxffz1HQGrIlEH00WrA==} + + '@polkadot-api/known-chains@0.5.6': + resolution: {integrity: sha512-DYxpIfhIvWpjjZ3Y7X6Aomfs1/IbDyU+8R2ijDd6e4OBJzGrSjoU1wq4MZktbCivDXVCSF+NfIQpaHB8roBmOQ==} + + '@polkadot-api/logs-provider@0.0.6': + resolution: {integrity: sha512-4WgHlvy+xee1ADaaVf6+MlK/+jGMtsMgAzvbQOJZnP4PfQuagoTqaeayk8HYKxXGphogLlPbD06tANxcb+nvAg==} + '@polkadot-api/metadata-builders@0.3.2': resolution: {integrity: sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==} + '@polkadot-api/metadata-builders@0.9.1': + resolution: {integrity: sha512-yZPm9KKn7QydbjMQMzhKHekDuQSdSZXYdCyqGt74HSNz9DdJSdpFNwHv0p+vmp+9QDlVsKK7nbUTjYxLZT4vCA==} + + '@polkadot-api/metadata-compatibility@0.1.11': + resolution: {integrity: sha512-XHl3McfuPSKDAIviGbiuK0epwzcspmvsWSoBywv0l6+adCPw1IpNKKkoj7Wwx4836duD/y/47hQEmkgIbtNQ3A==} + '@polkadot-api/observable-client@0.3.2': resolution: {integrity: sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==} peerDependencies: '@polkadot-api/substrate-client': 0.1.4 rxjs: '>=7.8.0' + '@polkadot-api/observable-client@0.6.2': + resolution: {integrity: sha512-0GsJDg95FA8idC+epQTrwkLmWdDl6JdSGuAVmy70TE1dVXC8l6lmVWpSX2ltF8ENqA7oXy7DlDEP7FrbvjvHfg==} + peerDependencies: + '@polkadot-api/substrate-client': 0.3.0 + rxjs: '>=7.8.0' + + '@polkadot-api/pjs-signer@0.6.0': + resolution: {integrity: sha512-Dfji5Xbq820iKv5HTCWE1iDlXI/DtNYXTZOFLiL8banrSrcF5wvTq3QFknUv+q1TfwNYEZazT4eG3Dx/XAsosw==} + + '@polkadot-api/polkadot-sdk-compat@2.3.1': + resolution: {integrity: sha512-rb8IWmPRhKWD9NG4zh2n4q0HlEAvq+Cv1CbD+8YxH0XAqIIiFA+ch5JeDCIxQYngkn/43B0Gs7Gtzh18yv2yoA==} + + '@polkadot-api/polkadot-signer@0.1.6': + resolution: {integrity: sha512-X7ghAa4r7doETtjAPTb50IpfGtrBmy3BJM5WCfNKa1saK04VFY9w+vDn+hwEcM4p0PcDHt66Ts74hzvHq54d9A==} + + '@polkadot-api/signer@0.1.10': + resolution: {integrity: sha512-SW4aqfM0hxsZqjX/pHdCZmVdS9bAXKwRSKzcb8vT9AA5YAq3si/Rue5eGGw8gRVcHOr5TdTicMjjaFDfebDyfQ==} + + '@polkadot-api/signers-common@0.1.1': + resolution: {integrity: sha512-327dpMXr1lccrmG94MJqprkGGF5yZFYDBwl+YXl1ATeTDcaW1vzffCAPqx0vWytb2x3AWilJWyc3Q6xFUWzy4A==} + + '@polkadot-api/sm-provider@0.1.6': + resolution: {integrity: sha512-+1lRIH6srYFpeFCN35GtFiw+H4Cs+6NmoJMDRdv9EOYg7I2LKmt97N8JNQ/3UVmnH5Rud0U+iaqnat5cJsv1wg==} + peerDependencies: + '@polkadot-api/smoldot': '>=0.3' + + '@polkadot-api/smoldot@0.3.5': + resolution: {integrity: sha512-QiCkI3Z2bSc8yMXChi6dsN7bGB5q8i/a/LGuNEDmMECoLdyEmz7pRBMmi4fnvfbthb+5/c5w5kl/7VOBEJ83tA==} + '@polkadot-api/substrate-bindings@0.6.0': resolution: {integrity: sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==} + '@polkadot-api/substrate-bindings@0.9.3': + resolution: {integrity: sha512-ygaZo8+xssTdb6lj9mA8RTlanDfyd0iMex3aBFC1IzOSm08XUWdRpuSLRuerFCimLzKuz/oBOTKdqBFGb7ybUQ==} + '@polkadot-api/substrate-client@0.1.4': resolution: {integrity: sha512-MljrPobN0ZWTpn++da9vOvt+Ex+NlqTlr/XT7zi9sqPtDJiQcYl+d29hFAgpaeTqbeQKZwz3WDE9xcEfLE8c5A==} + '@polkadot-api/substrate-client@0.3.0': + resolution: {integrity: sha512-0hEvQLKH2zhaFzE8DPkWehvJilec8u2O2wbIEUStm0OJ8jIFtJ40MFjXQfB01dXBWUz1KaVBqS6xd3sZA90Dpw==} + '@polkadot-api/utils@0.1.0': resolution: {integrity: sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA==} + '@polkadot-api/utils@0.1.2': + resolution: {integrity: sha512-yhs5k2a8N1SBJcz7EthZoazzLQUkZxbf+0271Xzu42C5AEM9K9uFLbsB+ojzHEM72O5X8lPtSwGKNmS7WQyDyg==} + + '@polkadot-api/wasm-executor@0.1.2': + resolution: {integrity: sha512-a5wGenltB3EFPdf72u8ewi6HsUg2qubUAf3ekJprZf24lTK3+w8a/GUF/y6r08LJF35MALZ32SAtLqtVTIOGnQ==} + + '@polkadot-api/ws-provider@0.3.5': + resolution: {integrity: sha512-YZJpWhgCuBH9F5VMG85Em212iEHVz/SiyM0ruqxRvXl/L+LVeh0kJ3RHUHi4xgnb24OfBvfCUG4X2PtvfuCbwA==} + '@polkadot/api-augment@14.0.1': resolution: {integrity: sha512-+ZHq3JaQZ/3Q45r6/YQBeLfoP8S5ibgkOvLKnKA9cJeF7oP5Qgi6pAEnGW0accfnT9PyCEco9fD/ZOLR9Yka7w==} engines: {node: '>=18'} @@ -1826,6 +1925,9 @@ packages: '@scure/bip39@1.4.0': resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@shikijs/core@1.22.2': resolution: {integrity: sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==} @@ -1844,6 +1946,10 @@ packages: '@shikijs/vscode-textmate@9.3.0': resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@sqltools/formatter@1.2.5': resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} @@ -1935,6 +2041,9 @@ packages: '@types/node@22.9.0': resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -2439,6 +2548,10 @@ packages: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + cli-highlight@2.1.11: resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} @@ -2502,6 +2615,10 @@ packages: command-exists@1.2.9: resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -2617,6 +2734,10 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} + deepmerge-ts@7.1.3: + resolution: {integrity: sha512-qCSH6I0INPxd9Y1VtAiLpnYvz5O//6rCfJXKk0z66Up9/VOSr+1yS8XSKA5IWRxjocFGlzPyaZYe+jxq7OOLtQ==} + engines: {node: '>=16.0.0'} + defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} @@ -2651,6 +2772,10 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -2683,6 +2808,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2783,6 +2911,10 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + execa@9.5.1: + resolution: {integrity: sha512-QY5PPtSonnGwhhHDNI7+3RvY285c7iuJFFB+lU+oEzMY/gEGJ808owqJsrr8Otd1E/x07po1LkUBmdAc5duPAg==} + engines: {node: ^18.19.0 || >=20.5.0} + expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} @@ -2830,6 +2962,10 @@ packages: fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -2898,6 +3034,9 @@ packages: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} + fs.promises.exists@1.1.4: + resolution: {integrity: sha512-lJzUGWbZn8vhGWBedA+RYjB/BeJ+3458ljUfmplqhIeb6ewzTFWNPCR1HCiYCkXV9zxcHz9zXkJzMsEgDLzh3Q==} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -2921,6 +3060,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} @@ -2939,6 +3082,10 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} @@ -3051,6 +3198,10 @@ packages: hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -3084,6 +3235,10 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + human-signals@8.0.0: + resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} + engines: {node: '>=18.18.0'} + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -3113,6 +3268,10 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + engines: {node: '>=18'} + infer-owner@1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} @@ -3230,6 +3389,10 @@ packages: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -3247,6 +3410,10 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -3271,6 +3438,10 @@ packages: resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} engines: {node: '>=12'} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} @@ -3320,6 +3491,9 @@ packages: js-sha3@0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -3413,6 +3587,10 @@ packages: resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} engines: {node: '>=12'} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + long@4.0.0: resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} @@ -3570,6 +3748,10 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -3758,6 +3940,10 @@ packages: engines: {node: '>=6'} hasBin: true + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -3766,6 +3952,10 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -3811,6 +4001,10 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + oniguruma-to-js@0.4.3: resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} @@ -3822,6 +4016,10 @@ packages: resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + ora@8.1.1: + resolution: {integrity: sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==} + engines: {node: '>=18'} + os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -3875,6 +4073,14 @@ packages: package-manager-detector@0.2.2: resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + engines: {node: '>=18'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + parse5-htmlparser2-tree-adapter@6.0.1: resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} @@ -3902,6 +4108,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -3970,6 +4180,12 @@ packages: engines: {node: '>=18.12'} hasBin: true + polkadot-api@1.7.4: + resolution: {integrity: sha512-4O9ThkdrW0HGTSfhSyj8HXyC70OKZ6rgfLFkpS9hqV8PfzUShnYy2GqU7YJJ14MGqRTAF6EdKftKzV2g+j09Ow==} + hasBin: true + peerDependencies: + rxjs: '>=7.8.0' + possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -4015,6 +4231,10 @@ packages: engines: {node: '>=10.13.0'} hasBin: true + pretty-ms@9.1.0: + resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==} + engines: {node: '>=18'} + process-warning@4.0.0: resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} @@ -4080,6 +4300,10 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -4143,6 +4367,10 @@ packages: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} @@ -4203,8 +4431,8 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scale-ts@1.6.0: - resolution: {integrity: sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q==} + scale-ts@1.6.1: + resolution: {integrity: sha512-PBMc2AWc6wSEqJYBDPcyCLUj9/tMKnLX70jLOSndMtcUoLQucP/DM0vnQo1wJAYjTrQiq8iG9rD0q6wFzgjH7g==} search-insights@2.17.2: resolution: {integrity: sha512-zFNpOpUO+tY2D85KrxJ+aqwnIfdEGi06UH2+xEb+Bp9Mwznmauqc9djbnBibJO5mpfUPPa8st6Sx65+vbeO45g==} @@ -4306,6 +4534,9 @@ packages: smoldot@2.0.26: resolution: {integrity: sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig==} + smoldot@2.0.31: + resolution: {integrity: sha512-nkPbjTb1G0hGji0/GwJELIehkXGIDh/X8PK/p3RjnklvUj4NrbdNuKx3K+PFATgbL7dfhSSYoFFdJ7Ql0T7zWQ==} + socks-proxy-agent@6.2.1: resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} engines: {node: '>= 10'} @@ -4327,6 +4558,10 @@ packages: sonic-boom@4.2.0: resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} + sort-keys@5.1.0: + resolution: {integrity: sha512-aSbHV0DaBcr7u0PVHXzM6NbZNAtrr9sF6+Qfs9UUVG7Ll3jQ6hHi8F/xqIIcn2rvIVbr0v/2zyjSdwSV47AgLQ==} + engines: {node: '>=12'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4345,6 +4580,18 @@ packages: spawndamnit@2.0.0: resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + speakingurl@14.0.1: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} @@ -4376,6 +4623,10 @@ packages: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -4388,6 +4639,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -4410,6 +4665,10 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -4554,6 +4813,12 @@ packages: '@swc/wasm': optional: true + tsc-prog@2.3.0: + resolution: {integrity: sha512-ycET2d75EgcX7y8EmG4KiZkLAwUzbY4xRhA6NU0uVbHkY4ZjrAAuzTMxXI85kOwATqPnBI5C/7y7rlpY0xdqHA==} + engines: {node: '>=12'} + peerDependencies: + typescript: '>=4' + tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} @@ -4604,6 +4869,10 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + type-fest@4.27.0: + resolution: {integrity: sha512-3IMSWgP7C5KSQqmo1wjhKrwsvXAtF33jO3QY+Uy++ia7hqvgSK6iXbbg5PbDBc1P2ZbNEDgejOrN4YooXvhwCw==} + engines: {node: '>=16'} + typeorm@0.3.20: resolution: {integrity: sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==} engines: {node: '>=16.13.0'} @@ -4687,6 +4956,14 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} @@ -4747,6 +5024,9 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} @@ -5035,6 +5315,18 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + write-json-file@6.0.0: + resolution: {integrity: sha512-MNHcU3f9WxnNyR6MxsYSj64Jz0+dwIpisWKWq9gqLj/GwmA9INg3BZ3vt70/HB3GEwrnDQWr4RPrywnhNzmUFA==} + engines: {node: '>=18'} + + write-package@7.1.0: + resolution: {integrity: sha512-DqUx8GI3r9BFWwU2DPKddL1E7xWfbFED82mLVhGXKlFEPe8IkBftzO7WfNwHtk7oGDHDeuH/o8VMpzzfMwmLUA==} + engines: {node: '>=18'} + ws@8.17.1: resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} @@ -5113,6 +5405,10 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -5361,6 +5657,12 @@ snapshots: css-tree: 2.3.1 is-potential-custom-element-name: 1.0.1 + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/helper-string-parser@7.25.9': {} '@babel/helper-validator-identifier@7.25.9': {} @@ -5593,6 +5895,10 @@ snapshots: '@colors/colors@1.5.0': optional: true + '@commander-js/extra-typings@12.1.0(commander@12.1.0)': + dependencies: + commander: 12.1.0 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -6040,18 +6346,135 @@ snapshots: '@polka/url@1.0.0-next.28': {} + '@polkadot-api/cli@0.9.18(postcss@8.4.49)(tsx@4.19.1)(yaml@2.4.5)': + dependencies: + '@commander-js/extra-typings': 12.1.0(commander@12.1.0) + '@polkadot-api/codegen': 0.12.8 + '@polkadot-api/ink-contracts': 0.2.1 + '@polkadot-api/json-rpc-provider': 0.0.4 + '@polkadot-api/known-chains': 0.5.6 + '@polkadot-api/metadata-compatibility': 0.1.11 + '@polkadot-api/observable-client': 0.6.2(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1) + '@polkadot-api/polkadot-sdk-compat': 2.3.1 + '@polkadot-api/sm-provider': 0.1.6(@polkadot-api/smoldot@0.3.5) + '@polkadot-api/smoldot': 0.3.5 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/substrate-client': 0.3.0 + '@polkadot-api/utils': 0.1.2 + '@polkadot-api/wasm-executor': 0.1.2 + '@polkadot-api/ws-provider': 0.3.5 + '@types/node': 22.9.0 + commander: 12.1.0 + execa: 9.5.1 + fs.promises.exists: 1.1.4 + ora: 8.1.1 + read-pkg: 9.0.1 + rxjs: 7.8.1 + tsc-prog: 2.3.0(typescript@5.6.3) + tsup: 8.3.5(postcss@8.4.49)(tsx@4.19.1)(typescript@5.6.3)(yaml@2.4.5) + typescript: 5.6.3 + write-package: 7.1.0 + transitivePeerDependencies: + - '@microsoft/api-extractor' + - '@swc/core' + - bufferutil + - jiti + - postcss + - supports-color + - tsx + - utf-8-validate + - yaml + + '@polkadot-api/cli@0.9.18(postcss@8.4.49)(tsx@4.19.2)(yaml@2.4.5)': + dependencies: + '@commander-js/extra-typings': 12.1.0(commander@12.1.0) + '@polkadot-api/codegen': 0.12.8 + '@polkadot-api/ink-contracts': 0.2.1 + '@polkadot-api/json-rpc-provider': 0.0.4 + '@polkadot-api/known-chains': 0.5.6 + '@polkadot-api/metadata-compatibility': 0.1.11 + '@polkadot-api/observable-client': 0.6.2(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1) + '@polkadot-api/polkadot-sdk-compat': 2.3.1 + '@polkadot-api/sm-provider': 0.1.6(@polkadot-api/smoldot@0.3.5) + '@polkadot-api/smoldot': 0.3.5 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/substrate-client': 0.3.0 + '@polkadot-api/utils': 0.1.2 + '@polkadot-api/wasm-executor': 0.1.2 + '@polkadot-api/ws-provider': 0.3.5 + '@types/node': 22.9.0 + commander: 12.1.0 + execa: 9.5.1 + fs.promises.exists: 1.1.4 + ora: 8.1.1 + read-pkg: 9.0.1 + rxjs: 7.8.1 + tsc-prog: 2.3.0(typescript@5.6.3) + tsup: 8.3.5(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.4.5) + typescript: 5.6.3 + write-package: 7.1.0 + transitivePeerDependencies: + - '@microsoft/api-extractor' + - '@swc/core' + - bufferutil + - jiti + - postcss + - supports-color + - tsx + - utf-8-validate + - yaml + + '@polkadot-api/codegen@0.12.8': + dependencies: + '@polkadot-api/ink-contracts': 0.2.1 + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/metadata-compatibility': 0.1.11 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/utils': 0.1.2 + + '@polkadot-api/descriptors@file:test/.papi/descriptors(polkadot-api@1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.1)(yaml@2.4.5))': + dependencies: + polkadot-api: 1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.1)(yaml@2.4.5) + + '@polkadot-api/ink-contracts@0.2.1': + dependencies: + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/utils': 0.1.2 + scale-ts: 1.6.1 + '@polkadot-api/json-rpc-provider-proxy@0.1.0': optional: true + '@polkadot-api/json-rpc-provider-proxy@0.2.3': {} + '@polkadot-api/json-rpc-provider@0.0.1': optional: true + '@polkadot-api/json-rpc-provider@0.0.4': {} + + '@polkadot-api/known-chains@0.5.6': {} + + '@polkadot-api/logs-provider@0.0.6': + dependencies: + '@polkadot-api/json-rpc-provider': 0.0.4 + '@polkadot-api/metadata-builders@0.3.2': dependencies: '@polkadot-api/substrate-bindings': 0.6.0 '@polkadot-api/utils': 0.1.0 optional: true + '@polkadot-api/metadata-builders@0.9.1': + dependencies: + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/utils': 0.1.2 + + '@polkadot-api/metadata-compatibility@0.1.11': + dependencies: + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/observable-client@0.3.2(@polkadot-api/substrate-client@0.1.4)(rxjs@7.8.1)': dependencies: '@polkadot-api/metadata-builders': 0.3.2 @@ -6061,23 +6484,99 @@ snapshots: rxjs: 7.8.1 optional: true + '@polkadot-api/observable-client@0.6.2(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1)': + dependencies: + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/substrate-client': 0.3.0 + '@polkadot-api/utils': 0.1.2 + rxjs: 7.8.1 + + '@polkadot-api/pjs-signer@0.6.0': + dependencies: + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/polkadot-signer': 0.1.6 + '@polkadot-api/signers-common': 0.1.1 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/utils': 0.1.2 + + '@polkadot-api/polkadot-sdk-compat@2.3.1': + dependencies: + '@polkadot-api/json-rpc-provider': 0.0.4 + + '@polkadot-api/polkadot-signer@0.1.6': {} + + '@polkadot-api/signer@0.1.10': + dependencies: + '@noble/hashes': 1.5.0 + '@polkadot-api/polkadot-signer': 0.1.6 + '@polkadot-api/signers-common': 0.1.1 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/utils': 0.1.2 + + '@polkadot-api/signers-common@0.1.1': + dependencies: + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/polkadot-signer': 0.1.6 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/utils': 0.1.2 + + '@polkadot-api/sm-provider@0.1.6(@polkadot-api/smoldot@0.3.5)': + dependencies: + '@polkadot-api/json-rpc-provider': 0.0.4 + '@polkadot-api/json-rpc-provider-proxy': 0.2.3 + '@polkadot-api/smoldot': 0.3.5 + + '@polkadot-api/smoldot@0.3.5': + dependencies: + '@types/node': 22.9.0 + smoldot: 2.0.31 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@polkadot-api/substrate-bindings@0.6.0': dependencies: '@noble/hashes': 1.5.0 '@polkadot-api/utils': 0.1.0 '@scure/base': 1.1.9 - scale-ts: 1.6.0 + scale-ts: 1.6.1 optional: true + '@polkadot-api/substrate-bindings@0.9.3': + dependencies: + '@noble/hashes': 1.5.0 + '@polkadot-api/utils': 0.1.2 + '@scure/base': 1.1.9 + scale-ts: 1.6.1 + '@polkadot-api/substrate-client@0.1.4': dependencies: '@polkadot-api/json-rpc-provider': 0.0.1 '@polkadot-api/utils': 0.1.0 optional: true + '@polkadot-api/substrate-client@0.3.0': + dependencies: + '@polkadot-api/json-rpc-provider': 0.0.4 + '@polkadot-api/utils': 0.1.2 + '@polkadot-api/utils@0.1.0': optional: true + '@polkadot-api/utils@0.1.2': {} + + '@polkadot-api/wasm-executor@0.1.2': {} + + '@polkadot-api/ws-provider@0.3.5': + dependencies: + '@polkadot-api/json-rpc-provider': 0.0.4 + '@polkadot-api/json-rpc-provider-proxy': 0.2.3 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@polkadot/api-augment@14.0.1': dependencies: '@polkadot/api-base': 14.0.1 @@ -6635,6 +7134,8 @@ snapshots: '@noble/hashes': 1.5.0 '@scure/base': 1.1.9 + '@sec-ant/readable-stream@0.4.1': {} + '@shikijs/core@1.22.2': dependencies: '@shikijs/engine-javascript': 1.22.2 @@ -6666,6 +7167,8 @@ snapshots: '@shikijs/vscode-textmate@9.3.0': {} + '@sindresorhus/merge-streams@4.0.0': {} + '@sqltools/formatter@1.2.5': {} '@substrate/connect-extension-protocol@2.1.0': @@ -6765,6 +7268,8 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/normalize-package-data@2.4.4': {} + '@types/semver@7.5.8': {} '@types/unist@2.0.11': {} @@ -7355,6 +7860,10 @@ snapshots: dependencies: restore-cursor: 4.0.0 + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + cli-highlight@2.1.11: dependencies: chalk: 4.1.2 @@ -7415,6 +7924,8 @@ snapshots: command-exists@1.2.9: {} + commander@12.1.0: {} + commander@4.1.1: {} commander@5.1.0: {} @@ -7530,6 +8041,8 @@ snapshots: deep-extend@0.6.0: {} + deepmerge-ts@7.1.3: {} + defaults@1.0.4: dependencies: clone: 1.0.4 @@ -7565,6 +8078,8 @@ snapshots: detect-indent@6.1.0: {} + detect-indent@7.0.1: {} + detect-libc@2.0.3: {} detect-node@2.1.0: {} @@ -7587,6 +8102,8 @@ snapshots: eastasianwidth@0.2.0: {} + emoji-regex@10.4.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -7765,6 +8282,21 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + execa@9.5.1: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.5 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.1.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + expand-template@2.0.3: {} expect-type@1.1.0: {} @@ -7806,6 +8338,10 @@ snapshots: fflate@0.8.2: {} + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + file-uri-to-path@1.0.0: {} fill-range@7.1.1: @@ -7877,6 +8413,8 @@ snapshots: dependencies: minipass: 3.3.6 + fs.promises.exists@1.1.4: {} + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -7900,6 +8438,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.3.0: {} + get-func-name@2.0.2: {} get-intrinsic@1.2.2: @@ -7921,6 +8461,11 @@ snapshots: get-stream@6.0.1: {} + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -8060,6 +8605,10 @@ snapshots: hookable@5.5.3: {} + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -8104,6 +8653,8 @@ snapshots: human-signals@2.1.0: {} + human-signals@8.0.0: {} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 @@ -8123,12 +8674,13 @@ snapshots: ignore@5.3.2: {} - imurmurhash@0.1.4: - optional: true + imurmurhash@0.1.4: {} indent-string@4.0.0: optional: true + index-to-position@0.1.2: {} + infer-owner@1.0.4: optional: true @@ -8252,6 +8804,8 @@ snapshots: is-plain-obj@2.1.0: {} + is-plain-obj@4.1.0: {} + is-potential-custom-element-name@1.0.1: {} is-regex@1.1.4: @@ -8267,6 +8821,8 @@ snapshots: is-stream@2.0.1: {} + is-stream@4.0.1: {} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 @@ -8287,6 +8843,8 @@ snapshots: is-unicode-supported@1.3.0: {} + is-unicode-supported@2.1.0: {} + is-weakmap@2.0.1: {} is-weakset@2.0.2: @@ -8329,6 +8887,8 @@ snapshots: js-sha3@0.8.0: {} + js-tokens@4.0.0: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -8441,6 +9001,11 @@ snapshots: chalk: 5.3.0 is-unicode-supported: 1.3.0 + log-symbols@6.0.0: + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + long@4.0.0: {} loupe@2.3.7: @@ -8702,6 +9267,8 @@ snapshots: mimic-fn@2.1.0: {} + mimic-function@5.0.1: {} + mimic-response@3.1.0: {} minimatch@3.1.2: @@ -8891,12 +9458,23 @@ snapshots: abbrev: 1.1.1 optional: true + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.6.2 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} npm-run-path@4.0.1: dependencies: path-key: 3.1.1 + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + npmlog@6.0.2: dependencies: are-we-there-yet: 3.0.1 @@ -8941,6 +9519,10 @@ snapshots: dependencies: mimic-fn: 2.1.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + oniguruma-to-js@0.4.3: dependencies: regex: 4.4.0 @@ -8969,6 +9551,18 @@ snapshots: strip-ansi: 7.1.0 wcwidth: 1.0.1 + ora@8.1.1: + dependencies: + chalk: 5.3.0 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + os-tmpdir@1.0.2: {} outdent@0.5.0: {} @@ -9020,6 +9614,14 @@ snapshots: package-manager-detector@0.2.2: {} + parse-json@8.1.0: + dependencies: + '@babel/code-frame': 7.26.2 + index-to-position: 0.1.2 + type-fest: 4.27.0 + + parse-ms@4.0.0: {} + parse5-htmlparser2-tree-adapter@6.0.1: dependencies: parse5: 6.0.1 @@ -9040,6 +9642,8 @@ snapshots: path-key@3.1.1: {} + path-key@4.0.0: {} + path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 @@ -9114,6 +9718,70 @@ snapshots: pnpm@9.12.3: {} + polkadot-api@1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.1)(yaml@2.4.5): + dependencies: + '@polkadot-api/cli': 0.9.18(postcss@8.4.49)(tsx@4.19.1)(yaml@2.4.5) + '@polkadot-api/ink-contracts': 0.2.1 + '@polkadot-api/json-rpc-provider': 0.0.4 + '@polkadot-api/known-chains': 0.5.6 + '@polkadot-api/logs-provider': 0.0.6 + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/metadata-compatibility': 0.1.11 + '@polkadot-api/observable-client': 0.6.2(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1) + '@polkadot-api/pjs-signer': 0.6.0 + '@polkadot-api/polkadot-sdk-compat': 2.3.1 + '@polkadot-api/polkadot-signer': 0.1.6 + '@polkadot-api/signer': 0.1.10 + '@polkadot-api/sm-provider': 0.1.6(@polkadot-api/smoldot@0.3.5) + '@polkadot-api/smoldot': 0.3.5 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/substrate-client': 0.3.0 + '@polkadot-api/utils': 0.1.2 + '@polkadot-api/ws-provider': 0.3.5 + rxjs: 7.8.1 + transitivePeerDependencies: + - '@microsoft/api-extractor' + - '@swc/core' + - bufferutil + - jiti + - postcss + - supports-color + - tsx + - utf-8-validate + - yaml + + polkadot-api@1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(yaml@2.4.5): + dependencies: + '@polkadot-api/cli': 0.9.18(postcss@8.4.49)(tsx@4.19.2)(yaml@2.4.5) + '@polkadot-api/ink-contracts': 0.2.1 + '@polkadot-api/json-rpc-provider': 0.0.4 + '@polkadot-api/known-chains': 0.5.6 + '@polkadot-api/logs-provider': 0.0.6 + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/metadata-compatibility': 0.1.11 + '@polkadot-api/observable-client': 0.6.2(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1) + '@polkadot-api/pjs-signer': 0.6.0 + '@polkadot-api/polkadot-sdk-compat': 2.3.1 + '@polkadot-api/polkadot-signer': 0.1.6 + '@polkadot-api/signer': 0.1.10 + '@polkadot-api/sm-provider': 0.1.6(@polkadot-api/smoldot@0.3.5) + '@polkadot-api/smoldot': 0.3.5 + '@polkadot-api/substrate-bindings': 0.9.3 + '@polkadot-api/substrate-client': 0.3.0 + '@polkadot-api/utils': 0.1.2 + '@polkadot-api/ws-provider': 0.3.5 + rxjs: 7.8.1 + transitivePeerDependencies: + - '@microsoft/api-extractor' + - '@swc/core' + - bufferutil + - jiti + - postcss + - supports-color + - tsx + - utf-8-validate + - yaml + possible-typed-array-names@1.0.0: {} postcss-load-config@6.0.1(postcss@8.4.49)(tsx@4.19.1)(yaml@2.4.5): @@ -9166,6 +9834,10 @@ snapshots: prettier@2.8.8: {} + pretty-ms@9.1.0: + dependencies: + parse-ms: 4.0.0 + process-warning@4.0.0: {} process@0.11.10: {} @@ -9231,6 +9903,14 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 + read-pkg@9.0.1: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 6.0.2 + parse-json: 8.1.0 + type-fest: 4.27.0 + unicorn-magic: 0.1.0 + read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -9292,6 +9972,11 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + retry@0.12.0: optional: true @@ -9364,8 +10049,7 @@ snapshots: dependencies: xmlchars: 2.2.0 - scale-ts@1.6.0: - optional: true + scale-ts@1.6.1: {} search-insights@2.17.2: {} @@ -9478,6 +10162,13 @@ snapshots: - utf-8-validate optional: true + smoldot@2.0.31: + dependencies: + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 @@ -9521,6 +10212,10 @@ snapshots: dependencies: atomic-sleep: 1.0.0 + sort-keys@5.1.0: + dependencies: + is-plain-obj: 4.1.0 + source-map-js@1.2.1: {} source-map@0.6.1: {} @@ -9536,6 +10231,20 @@ snapshots: cross-spawn: 5.1.0 signal-exit: 3.0.7 + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.20 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-license-ids@3.0.20: {} + speakingurl@14.0.1: {} split2@4.2.0: {} @@ -9569,6 +10278,8 @@ snapshots: dependencies: bl: 5.1.0 + stdin-discarder@0.2.2: {} + stop-iteration-iterator@1.0.0: dependencies: internal-slot: 1.0.6 @@ -9585,6 +10296,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -9606,6 +10323,8 @@ snapshots: strip-final-newline@2.0.0: {} + strip-final-newline@4.0.0: {} + strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} @@ -9772,6 +10491,10 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + tsc-prog@2.3.0(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + tslib@2.7.0: {} tslib@2.8.1: {} @@ -9854,6 +10577,8 @@ snapshots: type-fest@0.21.3: {} + type-fest@4.27.0: {} + typeorm@0.3.20(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@22.9.0)(typescript@5.6.3)): dependencies: '@sqltools/formatter': 1.2.5 @@ -9904,6 +10629,10 @@ snapshots: undici-types@6.19.8: {} + unicorn-magic@0.1.0: {} + + unicorn-magic@0.3.0: {} + unique-filename@1.1.1: dependencies: unique-slug: 2.0.2 @@ -9975,6 +10704,11 @@ snapshots: v8-compile-cache-lib@3.0.1: {} + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 @@ -10488,6 +11222,26 @@ snapshots: wrappy@1.0.2: {} + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + + write-json-file@6.0.0: + dependencies: + detect-indent: 7.0.1 + is-plain-obj: 4.1.0 + sort-keys: 5.1.0 + write-file-atomic: 5.0.1 + + write-package@7.1.0: + dependencies: + deepmerge-ts: 7.1.3 + read-pkg: 9.0.1 + sort-keys: 5.1.0 + type-fest: 4.27.0 + write-json-file: 6.0.0 + ws@8.17.1: {} ws@8.18.0: {} @@ -10541,6 +11295,8 @@ snapshots: yoctocolors-cjs@2.1.2: {} + yoctocolors@2.1.1: {} + zod@3.23.8: {} zwitch@2.0.4: {} diff --git a/test/.papi/descriptors/.gitignore b/test/.papi/descriptors/.gitignore new file mode 100644 index 00000000..46d96ea4 --- /dev/null +++ b/test/.papi/descriptors/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore +!package.json \ No newline at end of file diff --git a/test/.papi/descriptors/package.json b/test/.papi/descriptors/package.json new file mode 100644 index 00000000..2d6d33df --- /dev/null +++ b/test/.papi/descriptors/package.json @@ -0,0 +1,24 @@ +{ + "version": "0.1.0-autogenerated.12090119445759399432", + "name": "@polkadot-api/descriptors", + "files": [ + "dist" + ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "module": "./dist/index.mjs", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./package.json": "./package.json" + }, + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "browser": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "sideEffects": false, + "peerDependencies": { + "polkadot-api": "*" + } +} diff --git a/test/.papi/metadata/dot.scale b/test/.papi/metadata/dot.scale new file mode 100644 index 00000000..69f5f445 Binary files /dev/null and b/test/.papi/metadata/dot.scale differ diff --git a/test/moonwall.config.json b/test/moonwall.config.json index eff1245b..98a5a3e9 100644 --- a/test/moonwall.config.json +++ b/test/moonwall.config.json @@ -904,6 +904,25 @@ "endpoints": ["ws://localhost:8000"] } ] + }, + { + "name": "papi_readonly", + "testFileDir": ["suites/papi"], + "include": ["**/read_only*"], + "envVars": [""], + "foundation": { + "type": "read_only", + "launchSpec": { + "disableRuntimeVersionCheck": true + } + }, + "connections": [ + { + "name": "papi", + "type": "papi", + "endpoints": ["wss://rpc.polkadot.io"] + } + ] } ] } diff --git a/test/package.json b/test/package.json index 0e174c2e..08e5766b 100644 --- a/test/package.json +++ b/test/package.json @@ -14,7 +14,8 @@ "fmt": "biome format .", "fmt:fix": "biome format . --write", "node_test": "node --no-warnings --loader tsx --test suites/node_test/*.ts", - "bun_test": "bun test suites/bun_test/*" + "bun_test": "bun test suites/bun_test/*", + "postinstall": "papi" }, "devDependencies": { "@acala-network/chopsticks": "*", @@ -24,10 +25,10 @@ "@moonwall/types": "workspace:*", "@moonwall/util": "workspace:*", "@openzeppelin/contracts": "5.0.2", - "@polkadot/api": "*", - "@polkadot/util": "*", + "@polkadot/api": "*", + "@polkadot/util": "*", "@types/node": "*", - "@types/yargs": "*", + "@types/yargs": "*", "@vitest/ui": "*", "chai": "5.1.1", "chalk": "*", @@ -40,6 +41,10 @@ "viem": "*", "vitest": "*", "web3": "*", - "yargs": "*" + "yargs": "*" + }, + "dependencies": { + "@polkadot-api/descriptors": "file:.papi/descriptors", + "polkadot-api": "^1.7.4" } } diff --git a/test/suites/papi/read_only.test.ts b/test/suites/papi/read_only.test.ts new file mode 100644 index 00000000..ab0215d5 --- /dev/null +++ b/test/suites/papi/read_only.test.ts @@ -0,0 +1,76 @@ +import { describeSuite, expect, beforeAll, afterAll } from "@moonwall/cli"; +import type { PolkadotClient } from "polkadot-api"; +import { dot } from "@polkadot-api/descriptors"; + +describeSuite({ + id: "P01", + title: "Polkadot API - Read Only ", + foundationMethods: "read_only", + testCases: ({ it, context, log }) => { + let papi: PolkadotClient; + + beforeAll(() => { + log("Should be before all test cases"); + papi = context.papi(); + }); + + it({ + id: "T1", + title: "Can connect to polkadot relaychain", + test: async () => { + const { number } = await papi.getFinalizedBlock(); + expect(number).toBeGreaterThan(0); + const { name } = await papi.getChainSpecData(); + expect(name).toBe("Polkadot"); + }, + }); + + it({ + id: "T2", + title: "Can do queries with untyped api", + test: async () => { + const unsafeApi = await papi.getUnsafeApi(); + const gav = "16SDAKg9N6kKAbhgDyxBXdHEwpwHUHs2CNEiLNGeZV55qHna"; + const { + data: { free }, + } = await unsafeApi.query.System.Account.getValue(gav); + expect(free).toBeGreaterThan(0n); + }, + }); + + it({ + id: "T3", + title: "Can do queries with typed api", + test: async () => { + const typedApi = await papi.getUnsafeApi(); + const gav = "16SDAKg9N6kKAbhgDyxBXdHEwpwHUHs2CNEiLNGeZV55qHna"; + const { + data: { free }, + } = await typedApi.query.System.Account.getValue(gav); + expect(free).toBeGreaterThan(0n); + }, + }); + + it({ + id: "T4", + title: "Can fetch chain constants", + test: async () => { + const typedApi = await papi.getUnsafeApi(); + const { spec_version, spec_name } = await typedApi.constants.System.Version(); + + expect(spec_version).toBeGreaterThan(0); + expect(spec_name).toBe("polkadot"); + }, + }); + + it({ + id: "T5", + title: "Can get safeApi ", + test: async () => { + const safeApi = await context.papi().getTypedApi(dot) + expect(safeApi).not.toBeNull(); + const block = await safeApi.query.System.Number.getValue(); + }, + }) + }, +});