diff --git a/package.json b/package.json index 4d19a6b..07aa0f4 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "dependencies": { "@oclif/core": "^2", "@phala/pink-env": "^1.0.13", - "@phala/sdk": "^0.5.6", + "@phala/sdk": "0.6.0-beta.3", "@types/node-fetch": "2", "chalk": "4", "dotenv": "^16.3.1", @@ -38,7 +38,6 @@ "typescript": "^5.2.2", "undici": "^5.27.0", "upath": "^2.0.1", - "viem": "^1.20.3", "webpack": "^5.88.2", "webpack-merge": "^5.9.0", "webpack-virtual-modules": "^0.5.0" diff --git a/src/commands/add-evm-account.ts b/src/commands/add-evm-account.ts index d12a0b9..8ba3ac8 100644 --- a/src/commands/add-evm-account.ts +++ b/src/commands/add-evm-account.ts @@ -1,5 +1,7 @@ import { Flags } from '@oclif/core' import { getContract } from '@phala/sdk' +import type { u64, Result } from '@polkadot/types' +import type { AccountId } from '@polkadot/types/interfaces' import PhatBaseCommand, { type ParsedFlags, type BrickProfileContract } from '../lib/PhatBaseCommand' @@ -23,36 +25,26 @@ export default class AddEvmAccount extends PhatBaseCommand { evmRpcEndpoint: string } - // Verify the RPC endpoint + // verify the RPC endpoint await this.verifyRpcEndpoint(evmRpcEndpoint) - const pair = await this.getDecodedPair({ - suri: this.parsedFlags.suri || process.env.POLKADOT_WALLET_SURI, - accountFilePath: this.parsedFlags.accountFilePath || process.env.POLKADOT_WALLET_ACCOUNT_FILE, - accountPassword: this.parsedFlags.accountPassword || process.env.POLKADOT_WALLET_ACCOUNT_PASSWORD, - }) - - // Step 1: Connect to the endpoint. + // connect to the endpoint const endpoint = this.getEndpoint() - const [apiPromise, registry, cert] = await this.connect({ - endpoint, - pair, - }) + const [apiPromise, registry] = await this.connect({ endpoint }) + const provider = await this.getProvider({ apiPromise }) - // Step 2: Query the brick profile contract id. + // query the brick profile contract id this.action.start('Querying your Brick Profile contract ID') const brickProfileContractId = await this.getBrickProfileContractId({ endpoint, registry, - apiPromise, - pair, - cert, + provider, }) this.action.succeed(`Your Brick Profile contract ID: ${brickProfileContractId}`) - // Step 3: generate evm account + // generate evm account try { - this.action.start('Adding evm account') + this.action.start('Adding EVM account') const brickProfileAbi = await this.loadAbiByContractId( registry, brickProfileContractId @@ -61,39 +53,33 @@ export default class AddEvmAccount extends PhatBaseCommand { client: registry, contractId: brickProfileContractId, abi: brickProfileAbi, + provider, }) as BrickProfileContract - const { output } = await brickProfile.query.externalAccountCount(cert.address, { - cert, - }) + const { output } = await brickProfile.q.externalAccountCount() if (output.isErr) { throw new Error(output.asErr.toString()) } const externalAccountCount = output.asOk.toNumber() - const result = await brickProfile.send.generateEvmAccount( - { cert, address: pair.address, pair }, - evmRpcEndpoint - ) + const result = await brickProfile.exec.generateEvmAccount({ + args: [evmRpcEndpoint] + }) await result.waitFinalized(async () => { - const { output } = await brickProfile.query.externalAccountCount(cert.address, { - cert, - }) + const { output } = await brickProfile.q.externalAccountCount() return output.isOk && output.asOk.toNumber() === externalAccountCount + 1 }) - const { output: evmAccountAddressOutput } = await brickProfile.query.getEvmAccountAddress( - cert.address, - { cert }, - externalAccountCount - ) + const { output: evmAccountAddressOutput } = await brickProfile.q.getEvmAccountAddress>({ + args: [externalAccountCount] + }) if (evmAccountAddressOutput.isErr) { throw new Error(evmAccountAddressOutput.asErr.toString()) } const evmAddress = evmAccountAddressOutput.asOk.asOk.toHex() - this.action.succeed(`Added successfully, your evm address is: ${evmAddress}`) + this.action.succeed(`Added successfully, your new EVM account address is: [${externalAccountCount}] ${evmAddress}`) process.exit(0) } catch (error) { - this.action.fail('Failed to add evm account.') + this.action.fail('Failed to add EVM account.') return this.error(error as Error) } } diff --git a/src/commands/create-brick-profile.ts b/src/commands/create-brick-profile.ts index 6cff1d0..ef7fa79 100644 --- a/src/commands/create-brick-profile.ts +++ b/src/commands/create-brick-profile.ts @@ -1,10 +1,9 @@ import { Flags } from '@oclif/core' -import type { Struct, u128 } from '@polkadot/types' -import { PinkContractPromise, OnChainRegistry, type CertificateData } from '@phala/sdk' -import { type KeyringPair } from '@polkadot/keyring/types' +import type { Struct, u128, u64, Result } from '@polkadot/types' +import { getContract } from '@phala/sdk' +import type { AccountId } from '@polkadot/types/interfaces' import PhatBaseCommand, { type ParsedFlags, type BrickProfileFactoryContract, type BrickProfileContract } from '../lib/PhatBaseCommand' -import { bindWaitPRuntimeFinalized } from '../lib/utils' interface PartialAccountQueryResult extends Struct { data: { @@ -36,70 +35,61 @@ export default class CreateBrickProfile extends PhatBaseCommand { await this.verifyRpcEndpoint(evmRpcEndpoint) } - const pair = await this.getDecodedPair({ - suri: this.parsedFlags.suri || process.env.POLKADOT_WALLET_SURI, - accountFilePath: this.parsedFlags.accountFilePath || process.env.POLKADOT_WALLET_ACCOUNT_FILE, - accountPassword: this.parsedFlags.accountPassword || process.env.POLKADOT_WALLET_ACCOUNT_PASSWORD, - }) - - // Step 1: Connect to the endpoint. + // connect to the endpoint const endpoint = this.getEndpoint() - const [apiPromise, registry, cert, type] = await this.connect({ - endpoint, - pair, - }) + const [apiPromise, registry, type] = await this.connect({ endpoint }) + const provider = await this.getProvider({ apiPromise }) + + // check if brick profile already exists + this.action.start('Checking your brick profile contract ID') + const brickProfileFactoryContractId = await this.getBrickProfileFactoryContractId(endpoint) + const brickProfileFactoryAbi = await this.loadAbiByContractId( + registry, + brickProfileFactoryContractId + ) + const brickProfileFactory = await getContract({ + client: registry, + contractId: brickProfileFactoryContractId, + abi: brickProfileFactoryAbi, + provider, + }) as BrickProfileFactoryContract + const { output } = await brickProfileFactory.q.getUserProfileAddress>() + if (output.isOk && output.asOk.isOk) { + this.action.succeed(`Your Brick Profile already exists, contract ID: ${output.asOk.asOk.toHex()}`) + process.exit(0) + } + this.action.succeed('Your brick profile does not exist') - // Step 2: Check balance - const account = await apiPromise.query.system.account(cert.address) - const balance = Number(account.data.free.toBigInt() / BigInt(1e12)) + // check balance + this.action.start('Checking account balance') + const accountQueryResult = await registry.api.query.system.account(provider.address) + const balance = Number(accountQueryResult.data.free.toBigInt() / BigInt(1e12)) if (balance < 50) { this.action.fail(`Insufficient on-chain balance, please go to ${type.isDevelopment || type.isLocal ? 'https://phala.network/faucet' : 'https://docs.phala.network/introduction/basic-guidance/get-pha-and-transfer'} to get more than 50 PHA before continuing the process.`) - this.exit(0) + process.exit(0) } + this.action.succeed(`Account balance: ${balance} PHA`) + try { this.action.start('Creating your brick profile') - const brickProfileFactoryContractId = await this.getBrickProfileFactoryContractId(endpoint) - const brickProfileFactoryAbi = await this.loadAbiByContractId( - registry, - brickProfileFactoryContractId - ) - const brickProfileFactoryContractKey = await registry.getContractKeyOrFail( - brickProfileFactoryContractId - ) - const brickProfileFactory: BrickProfileFactoryContract = new PinkContractPromise( - apiPromise, - registry, - brickProfileFactoryAbi, - brickProfileFactoryContractId, - brickProfileFactoryContractKey - ) - const waitForPRuntimeFinalized = bindWaitPRuntimeFinalized(registry) - // Step 3: create user profile - await waitForPRuntimeFinalized( - brickProfileFactory.send.createUserProfile( - { cert, address: pair.address, pair }, - ), - async function () { - const { output } = await brickProfileFactory.query.getUserProfileAddress(cert.address, { - cert, - }) - const created = output && output.isOk && output.asOk.isOk - if (!created) { - return false - } - const result = await registry.getContractKey( - output.asOk.asOk.toHex() - ) - if (result) { - return true - } + const result = await brickProfileFactory.exec.createUserProfile() + await result.waitFinalized(async () => { + const { output } = await brickProfileFactory.q.getUserProfileAddress>() + const created = output && output.isOk && output.asOk.isOk + if (!created) { return false } - ) - // Step 4: query profile - const { output } = await brickProfileFactory.query.getUserProfileAddress(cert.address, { - cert, + const result = await registry.getContractKey( + output.asOk.asOk.toHex() + ) + if (result) { + return true + } + return false }) + + // query profile + const { output } = await brickProfileFactory.q.getUserProfileAddress>() if (output.isErr) { throw new Error(output.asErr.toString()) } @@ -108,41 +98,31 @@ export default class CreateBrickProfile extends PhatBaseCommand { registry, brickProfileContractId ) - const brickProfileContractKey = await registry.getContractKeyOrFail( - brickProfileContractId - ) - const brickProfile: BrickProfileContract = new PinkContractPromise( - apiPromise, - registry, - brickProfileAbi, - brickProfileContractId, - brickProfileContractKey - ) - // Step 5: unsafeConfigureJsRunner + const brickProfile = await getContract({ + client: registry, + contractId: brickProfileContractId, + abi: brickProfileAbi, + provider, + }) as BrickProfileContract + + // unsafeConfigureJsRunner const jsRunnerContractId = await this.getJsRunnerContractId(endpoint) await this.unsafeConfigureJsRunner({ - registry, contract: brickProfile, jsRunnerContractId, - pair, - cert, - }) - // Step 6: unsafeGenerateEtherAccount - const { output: queryCount } = await brickProfile.query.externalAccountCount(cert.address, { - cert, }) + + // unsafeGenerateEtherAccount + const { output: queryCount } = await brickProfile.q.externalAccountCount() if (queryCount.isErr) { throw new Error(queryCount.asErr.toString()) } const externalAccountCount = output.asOk.toNumber() if (externalAccountCount === 0) { await this.unsafeGenerateEtherAccount({ - registry, contract: brickProfile, externalAccountCount, evmRpcEndpoint: evmRpcEndpoint || (type.isDevelopment || type.isLocal) ? 'https://polygon-mumbai.g.alchemy.com/v2/YWlujLKt0nSn5GrgEpGCUA0C_wKV1sVQ' : 'https://polygon-mainnet.g.alchemy.com/v2/W1kyx17tiFQFT2b19mGOqppx90BLHp0a', - pair, - cert }) } this.action.succeed(`Created successfully.`) @@ -154,62 +134,40 @@ export default class CreateBrickProfile extends PhatBaseCommand { } async unsafeGenerateEtherAccount({ - registry, contract, externalAccountCount, evmRpcEndpoint, - pair, - cert, }: { - registry: OnChainRegistry contract: BrickProfileContract externalAccountCount: number evmRpcEndpoint: string - pair: KeyringPair - cert: CertificateData }) { - const waitForPRuntimeFinalized = bindWaitPRuntimeFinalized(registry) - await waitForPRuntimeFinalized( - contract.send.generateEvmAccount( - { cert, address: pair.address, pair }, - evmRpcEndpoint - ), - async function () { - const { output } = await contract.query.externalAccountCount(cert.address, { - cert, - }) - return output.isOk && output.asOk.toNumber() === externalAccountCount + 1 - } - ) + const result = await contract.exec.generateEvmAccount({ + args: [evmRpcEndpoint] + }) + await result.waitFinalized(async () => { + const { output } = await contract.q.externalAccountCount() + return output.isOk && output.asOk.toNumber() === externalAccountCount + 1 + }) } async unsafeConfigureJsRunner({ - registry, contract, jsRunnerContractId, - pair, - cert, }: { - registry: OnChainRegistry contract: BrickProfileContract jsRunnerContractId: string - pair: KeyringPair - cert: CertificateData }) { - const waitForPRuntimeFinalized = bindWaitPRuntimeFinalized(registry) - await waitForPRuntimeFinalized( - contract.send.config( - { cert, address: pair.address, pair }, - jsRunnerContractId - ), - async function () { - const { output } = await contract.query.getJsRunner(cert.address, { cert }) - return ( - output.isOk && - output.asOk.isOk && - output.asOk.asOk.toHex() === jsRunnerContractId - ) - } - ) + const result = await contract.exec.config({ + args: [jsRunnerContractId] + }) + await result.waitFinalized(async () => { + const { output } = await contract.q.getJsRunner>() + return ( + output.isOk && + output.asOk.isOk && + output.asOk.asOk.toHex() === jsRunnerContractId + ) + }) } } diff --git a/src/commands/list-evm-accounts.ts b/src/commands/list-evm-accounts.ts index 878c3e8..699fd93 100644 --- a/src/commands/list-evm-accounts.ts +++ b/src/commands/list-evm-accounts.ts @@ -1,10 +1,11 @@ import { - PinkContractPromise, + getContract, } from '@phala/sdk' import chalk from 'chalk' +import type { Result, Vec } from '@polkadot/types' import PhatBaseCommand from '../lib/PhatBaseCommand' -import type { BrickProfileContract } from '../lib/PhatBaseCommand' +import type { BrickProfileContract, ExternalAccountCodec } from '../lib/PhatBaseCommand' export default class ListEvmAccounts extends PhatBaseCommand { static description = 'List EVM accounts' @@ -18,50 +19,34 @@ export default class ListEvmAccounts extends PhatBaseCommand { } public async run(): Promise { - const pair = await this.getDecodedPair({ - suri: this.parsedFlags.suri || process.env.POLKADOT_WALLET_SURI, - accountFilePath: this.parsedFlags.accountFilePath || process.env.POLKADOT_WALLET_ACCOUNT_FILE, - accountPassword: this.parsedFlags.accountPassword || process.env.POLKADOT_WALLET_ACCOUNT_PASSWORD, - }) - - // Step 1: Connect to the endpoint. + // connect to the endpoint const endpoint = this.getEndpoint() - const [apiPromise, registry, cert] = await this.connect({ - endpoint, - pair, - }) + const [apiPromise, registry] = await this.connect({ endpoint }) + const provider = await this.getProvider({ apiPromise }) - // Step 2: Query the brick profile contract id. + // query the brick profile contract id this.action.start('Querying your Brick Profile contract ID') const brickProfileContractId = await this.getBrickProfileContractId({ endpoint, registry, - apiPromise, - pair, - cert, + provider, }) this.action.succeed(`Your Brick Profile contract ID: ${brickProfileContractId}`) - // Step 3: Querying your external accounts + // querying your external accounts try { this.action.start('Querying your external accounts') const brickProfileAbi = await this.loadAbiByContractId( registry, brickProfileContractId ) - const brickProfileContractKey = await registry.getContractKeyOrFail( - brickProfileContractId - ) - const brickProfile: BrickProfileContract = new PinkContractPromise( - apiPromise, - registry, - brickProfileAbi, - brickProfileContractId, - brickProfileContractKey - ) - const { output } = await brickProfile.query.getAllEvmAccounts(cert.address, { - cert, - }) + const brickProfile = await getContract({ + client: registry, + contractId: brickProfileContractId, + abi: brickProfileAbi, + provider, + }) as BrickProfileContract + const { output } = await brickProfile.q.getAllEvmAccounts, any>>() if (output.isErr) { throw new Error(output.asErr.toString()) } @@ -77,7 +62,7 @@ export default class ListEvmAccounts extends PhatBaseCommand { rpcEndpoint: obj.rpc, } }) - accounts.map(account => this.log(`[${account.id}] ${account.address}. ${chalk.dim(account.rpcEndpoint)}`)) + accounts.map(account => this.log(`[${account.id}] ${account.address} ${chalk.dim(account.rpcEndpoint)}`)) process.exit(0) } catch (error) { this.action.fail('Failed to query your external accounts.') diff --git a/src/commands/update.ts b/src/commands/update.ts index 5d78f74..d888310 100644 --- a/src/commands/update.ts +++ b/src/commands/update.ts @@ -1,10 +1,10 @@ import fs from 'node:fs' import { Flags } from '@oclif/core' import type { Result, Struct, u16, Text, Bool } from '@polkadot/types' -import { PinkContractPromise } from '@phala/sdk' +import { getContract } from '@phala/sdk' import inquirer from 'inquirer' -import PhatBaseCommand, { type ParsedFlags } from '../lib/PhatBaseCommand' +import PhatBaseCommand, { type ParsedFlags, type BrickProfileContract, type ActionOffChainRollupContract } from '../lib/PhatBaseCommand' interface WorkflowCodec extends Struct { id: u16 @@ -30,51 +30,37 @@ export default class Update extends PhatBaseCommand { public async run(): Promise { const workflowId = await this.getWorkflowId() - const pair = await this.getDecodedPair({ - suri: this.parsedFlags.suri || process.env.POLKADOT_WALLET_SURI, - accountFilePath: this.parsedFlags.accountFilePath || process.env.POLKADOT_WALLET_ACCOUNT_FILE, - accountPassword: this.parsedFlags.accountPassword || process.env.POLKADOT_WALLET_ACCOUNT_PASSWORD, - }) - const buildScriptPath = await this.buildOrGetScriptPath() - // Step 1: Connect to the endpoint. + // connect to the endpoint const endpoint = this.getEndpoint() - const [apiPromise, registry, cert] = await this.connect({ - endpoint, - pair, - }) + const [apiPromise, registry] = await this.connect({ endpoint }) + const provider = await this.getProvider({ apiPromise }) - // Step 2: Query the brick profile contract id. + // query the brick profile contract id this.action.start('Querying your Brick Profile contract ID') const brickProfileContractId = await this.getBrickProfileContractId({ endpoint, registry, - apiPromise, - pair, - cert, + provider, }) this.action.succeed(`Your Brick Profile contract ID: ${brickProfileContractId}`) - // Step 3: Check current user workflow settings. + // check current user workflow settings this.action.start('Checking your workflow settings') const brickProfileAbi = await this.loadAbiByContractId( registry, brickProfileContractId ) - const brickProfileContractKey = await registry.getContractKeyOrFail( - brickProfileContractId - ) - const brickProfile = new PinkContractPromise( - apiPromise, - registry, - brickProfileAbi, - brickProfileContractId, - brickProfileContractKey - ) - const { output: workflowQuery } = await brickProfile.query.getWorkflow< - Result - >(pair.address, { cert }, workflowId) + const brickProfile = await getContract({ + client: registry, + contractId: brickProfileContractId, + abi: brickProfileAbi, + provider, + }) as BrickProfileContract + const { output: workflowQuery } = await brickProfile.q.getWorkflow>({ + args: [workflowId] + }) if (!workflowQuery.isOk || !workflowQuery.asOk.isOk) { this.error('Workflow not found.') } @@ -92,24 +78,19 @@ export default class Update extends PhatBaseCommand { // Step 4: Update the JS. this.action.start('Updating') const actionOffchainRollupContractId = actions[0].config.callee - const rollupContractKey = await registry.getContractKeyOrFail( - actionOffchainRollupContractId - ) - const rollupContract = new PinkContractPromise( - apiPromise, - registry, - rollupAbi, - actionOffchainRollupContractId, - rollupContractKey - ) - await rollupContract.send.configCoreScript( - { cert, address: pair.address, pair }, - fs.readFileSync(buildScriptPath, 'utf8'), - ) + const rollupContract = await getContract({ + client: registry, + contractId: actionOffchainRollupContractId, + abi: rollupAbi, + provider, + }) as ActionOffChainRollupContract + await rollupContract.exec.configCoreScript({ + args: [fs.readFileSync(buildScriptPath, 'utf8')] + }) this.action.succeed( `The JavaScript code for workflow ${workflowId} has been updated.` ) - this.exit(0) + process.exit(0) } async getWorkflowId() { diff --git a/src/commands/upload.ts b/src/commands/upload.ts index 9b062ec..52c1933 100644 --- a/src/commands/upload.ts +++ b/src/commands/upload.ts @@ -1,12 +1,12 @@ import fs from 'node:fs' import type { u16 } from '@polkadot/types' import { - PinkContractPromise, + getContract, PinkBlueprintPromise, } from '@phala/sdk' import PhatBaseCommand from '../lib/PhatBaseCommand' -import type { BrickProfileContract } from '../lib/PhatBaseCommand' +import type { BrickProfileContract, ActionOffChainRollupContract } from '../lib/PhatBaseCommand' export default class Upload extends PhatBaseCommand { static description = 'Upload JS to Phat Contract' @@ -22,48 +22,36 @@ export default class Upload extends PhatBaseCommand { public async run(): Promise { const rpc = this.parsedFlags.rpc || (await this.promptRpc()) const consumerAddress = this.parsedFlags.consumerAddress || (await this.promptConsumerAddress()) - const pair = await this.getDecodedPair({ - suri: this.parsedFlags.suri || process.env.POLKADOT_WALLET_SURI, - accountFilePath: this.parsedFlags.accountFilePath || process.env.POLKADOT_WALLET_ACCOUNT_FILE, - accountPassword: this.parsedFlags.accountPassword || process.env.POLKADOT_WALLET_ACCOUNT_PASSWORD, - }) const buildScriptPath = await this.buildOrGetScriptPath() - // Step 1: Connect to the endpoint. + // connect to the endpoint const endpoint = this.getEndpoint() - const [apiPromise, registry, cert] = await this.connect({ - endpoint, - pair, - }) + const [apiPromise, registry] = await this.connect({ endpoint }) + const provider = await this.getProvider({ apiPromise }) - // Step 2: Query the brick profile contract id. + // query the brick profile contract id this.action.start('Querying your Brick Profile contract ID') const brickProfileContractId = await this.getBrickProfileContractId({ endpoint, registry, - apiPromise, - pair, - cert, + provider, }) - this.action.succeed(`Your Brick Profile contract ID: ${brickProfileContractId}`) - - // Step 3: Instantiating the ActionOffchainRollup contract. - this.action.start('Instantiating the ActionOffchainRollup contract') const brickProfileAbi = await this.loadAbiByContractId( registry, brickProfileContractId ) - const brickProfileContractKey = await registry.getContractKeyOrFail( - brickProfileContractId - ) - const brickProfile: BrickProfileContract = new PinkContractPromise( - apiPromise, - registry, - brickProfileAbi, - brickProfileContractId, - brickProfileContractKey - ) + const brickProfile = await getContract({ + client: registry, + contractId: brickProfileContractId, + abi: brickProfileAbi, + provider, + }) as BrickProfileContract + this.action.succeed(`Your Brick Profile contract ID: ${brickProfileContractId}`) + + // instantiating the ActionOffchainRollup contract + this.action.start('Instantiating the ActionOffchainRollup contract') + const rollupAbi = await this.getRollupAbi() const blueprint = new PinkBlueprintPromise( apiPromise, @@ -71,32 +59,31 @@ export default class Upload extends PhatBaseCommand { rollupAbi, rollupAbi.info.source.wasmHash.toHex() ) - - const result = await blueprint.send.withConfiguration( - { cert, address: pair.address, pair }, + const instantiateResult = await blueprint.send.withConfiguration( + { + provider, + }, rpc, consumerAddress, fs.readFileSync(buildScriptPath, 'utf8'), this.parsedFlags.coreSettings || '', brickProfileContractId ) - await result.waitFinalized() - const contractPromise = result.contract + await instantiateResult.waitFinalized() + const { contract } = instantiateResult + contract.provider = provider this.action.succeed( - `The ActionOffchainRollup contract has been instantiated: ${contractPromise.address.toHex()}`, + `The ActionOffchainRollup contract has been instantiated: ${contract.address.toHex()}`, ) - // Step 4: Select an external account. + // select an external account const externalAccountId = await this.promptEvmAccountId({ contract: brickProfile, - cert, }) - - // Step 5: Checking your settings. + // check your settings this.action.start('Checking your settings') - const { output: attestorQuery } = - await contractPromise.query.getAttestAddress(cert.address, { cert }) + const { output: attestorQuery } = await (contract as ActionOffChainRollupContract).q.getAttestAddress() const attestor = attestorQuery.asOk.toHex() const selectorUint8Array = rollupAbi.messages .find((i) => i.identifier === 'answer_request') @@ -110,7 +97,7 @@ export default class Upload extends PhatBaseCommand { cmd: 'call', config: { codeHash: rollupAbi.info.source.wasmHash.toHex(), - callee: contractPromise.address.toHex(), + callee: contract.address.toHex(), selector, input: [], }, @@ -119,23 +106,21 @@ export default class Upload extends PhatBaseCommand { cmd: 'log', }, ] - const { output: numberQuery } = await brickProfile.query.workflowCount( - pair.address, - { cert } - ) + const { output: numberQuery } = await brickProfile.q.workflowCount() const num = numberQuery.asOk.toNumber() this.action.succeed() const projectName = await this.promptProjectName(`My Phat Contract ${numberQuery.asOk.toNumber()}`) - // Step 6: Setting up the actions. + // setting up the actions this.action.start('Setting up the actions') - const result2 = await brickProfile.send.addWorkflowAndAuthorize( - { cert, address: pair.address, pair }, - projectName, - JSON.stringify(actions), - externalAccountId - ) + const result2 = await brickProfile.exec.addWorkflowAndAuthorize({ + args: [ + projectName, + JSON.stringify(actions), + externalAccountId + ] + }) await result2.waitFinalized() this.action.succeed( `🎉 Your workflow has been added, you can check it out here: https://bricks.phala.network/workflows/${brickProfileContractId}/${num}` diff --git a/src/commands/watch.ts b/src/commands/watch.ts index a3439d1..aacb20f 100644 --- a/src/commands/watch.ts +++ b/src/commands/watch.ts @@ -92,7 +92,7 @@ export default class Watch extends Command { [action], ) if (flags.once) { - process.exit() + process.exit(0) } }) } diff --git a/src/lib/PhatBaseCommand.ts b/src/lib/PhatBaseCommand.ts index 6e8cf72..609ee3f 100644 --- a/src/lib/PhatBaseCommand.ts +++ b/src/lib/PhatBaseCommand.ts @@ -8,21 +8,26 @@ import { Args, Flags } from '@oclif/core' import { getClient, OnChainRegistry, - signCertificate, unsafeGetAbiFromGitHubRepoByCodeHash, PinkContractPromise, PinkContractQuery, - type CertificateData, + EvmAccountMappingProvider, + KeyringPairProvider, + getContract, type PinkContractTx, + type LiteralRpc, + type AnyProvider } from '@phala/sdk' import { ApiPromise } from '@polkadot/api' import { Abi } from '@polkadot/api-contract' import { waitReady } from '@polkadot/wasm-crypto' import { Keyring } from '@polkadot/keyring' import { type KeyringPair } from '@polkadot/keyring/types' -import type { Result, Vec, u64, u8, Text, Struct } from '@polkadot/types' +import type { Result, Vec, u64, u8, Text, Bool, Struct } from '@polkadot/types' import type { AccountId, ChainType, Hash } from '@polkadot/types/interfaces' -import { createPublicClient, http } from 'viem' +import { createPublicClient, createWalletClient, http } from 'viem' +import { mainnet } from 'viem/chains' +import { privateKeyToAccount } from 'viem/accounts' import { MAX_BUILD_SIZE, @@ -42,6 +47,7 @@ export interface ParsedFlags { readonly suri: string readonly accountFilePath: string readonly accountPassword: string + readonly privateKey: string readonly coreSettings: string readonly pruntimeUrl: string readonly externalAccountId: string @@ -58,6 +64,13 @@ export interface ExternalAccountCodec extends Struct { rpc: Text } +export interface WorkflowCodec extends Struct { + id: u64 + name: Text + enabled: Bool + commandline: Text +} + export type BrickProfileFactoryContract = PinkContractPromise< { version: PinkContractQuery<[], u64[]> @@ -72,7 +85,6 @@ export type BrickProfileFactoryContract = PinkContractPromise< } > - export type BrickProfileContract = PinkContractPromise< { getJsRunner: PinkContractQuery<[], Result> @@ -80,6 +92,7 @@ export type BrickProfileContract = PinkContractPromise< [], Result, any> > + getWorkflow: PinkContractQuery<[number | u64], Result> workflowCount: PinkContractQuery<[], u64> externalAccountCount: PinkContractQuery<[], u64> getEvmAccountAddress: PinkContractQuery< @@ -88,7 +101,20 @@ export type BrickProfileContract = PinkContractPromise< > }, { + config: PinkContractTx<[string | AccountId]> generateEvmAccount: PinkContractTx<[string | Text]> + addWorkflowAndAuthorize: PinkContractTx< + [string | Text, string | Text, number | u64] + > + } +> + +export type ActionOffChainRollupContract = PinkContractPromise< + { + getAttestAddress: PinkContractQuery<[], Vec, any> + }, + { + configCoreScript: PinkContractTx<[string]> } > @@ -111,18 +137,23 @@ export default abstract class PhatBaseCommand extends BaseCommand { char: 'a', required: false, description: 'Path to polkadot account JSON file', - exclusive: ['suri'], + exclusive: ['suri', 'privateKey'], }), accountPassword: Flags.string({ char: 'p', required: false, description: 'Polkadot account password', - exclusive: ['suri'], + exclusive: ['suri', 'privateKey'], }), suri: Flags.string({ required: false, description: 'Substrate uri', - exclusive: ['accountFilePath'], + exclusive: ['accountFilePath', 'privateKey'], + }), + privateKey: Flags.string({ + description: 'EVM account private key', + required: false, + exclusive: ['suri', 'accountFilePath'], }), endpoint: Flags.string({ description: 'Phala Blockchain RPC endpoint', @@ -209,7 +240,7 @@ export default abstract class PhatBaseCommand extends BaseCommand { ? 'wss://poc6.phala.network/ws' : 'wss://api.phala.network/ws' } - return endpoint + return endpoint as LiteralRpc } async getBrickProfileFactoryContractId(endpoint: string) { @@ -243,62 +274,49 @@ export default abstract class PhatBaseCommand extends BaseCommand { async getBrickProfileContractId({ endpoint, registry, - apiPromise, - pair, - cert, + provider, }: { endpoint: string registry: OnChainRegistry - apiPromise: ApiPromise - pair: KeyringPair - cert: CertificateData + provider: AnyProvider }) { const brickProfileFactoryContractId = await this.getBrickProfileFactoryContractId(endpoint) const brickProfileFactoryAbi = await this.loadAbiByContractId( registry, brickProfileFactoryContractId ) - const brickProfileFactoryContractKey = await registry.getContractKeyOrFail( - brickProfileFactoryContractId - ) - const brickProfileFactory = new PinkContractPromise( - apiPromise, - registry, - brickProfileFactoryAbi, - brickProfileFactoryContractId, - brickProfileFactoryContractKey - ) - const { output: brickProfileAddressQuery } = - await brickProfileFactory.query.getUserProfileAddress>(pair.address, { cert }) - - if (!brickProfileAddressQuery.isOk || !brickProfileAddressQuery.asOk.isOk) { - this.action.fail('You need to create the Brick Profile before continuing.\nPlease go to: https://bricks.phala.network/') + const contract = await getContract({ + client: registry, + contractId: brickProfileFactoryContractId, + abi: brickProfileFactoryAbi, + provider, + }) as BrickProfileFactoryContract + const { output } = await contract.q.getUserProfileAddress>() + + if (!output.isOk || !output.asOk.isOk) { + this.action.fail('You need to create the Brick Profile before continuing.\nPlease run the command: npx @phala/fn create-brick-profile') this.exit(1) } - const brickProfileContractId = brickProfileAddressQuery.asOk.asOk.toHex() - return brickProfileContractId + return output.asOk.asOk.toHex() } async connect({ endpoint, - pair, }: { - endpoint: string - pair: KeyringPair - }): Promise<[ApiPromise, OnChainRegistry, CertificateData, ChainType]> { + endpoint: LiteralRpc + }): Promise<[ApiPromise, OnChainRegistry, ChainType]> { this.action.start(`Connecting to the endpoint: ${endpoint}`) const registry = await getClient({ transport: endpoint, pruntimeURL: this.parsedFlags.pruntimeUrl, }) - const cert = await signCertificate({ pair }) - this.action.succeed(`Connected to the endpoint: ${endpoint}`) const type = await registry.api.rpc.system.chainType() + this.action.succeed(`Connected to the endpoint: ${endpoint}`) if (type.isDevelopment || type.isLocal) { this.log(chalk.yellow(`\nYou are connecting to a testnet.\n`)) } - return [registry.api, registry, cert, type] + return [registry.api, registry, type] } async getRollupAbi() { @@ -368,19 +386,15 @@ export default abstract class PhatBaseCommand extends BaseCommand { async promptEvmAccountId({ contract, - cert, }: { contract: BrickProfileContract, - cert: CertificateData, }) { if (this.parsedFlags.externalAccountId) { return this.parsedFlags.externalAccountId } try { this.action.start('Querying your external accounts') - const { output } = await contract.query.getAllEvmAccounts(cert.address, { - cert, - }) + const { output } = await contract.q.getAllEvmAccounts, any>>() if (output.isErr) { throw new Error(output.asErr.toString()) @@ -396,7 +410,11 @@ export default abstract class PhatBaseCommand extends BaseCommand { rpcEndpoint: obj.rpc, } }) - this.action.stop() + if (accounts.length === 0) { + this.action.fail('You need to add an EVM account before continuing.\nPlease run the command: npx @phala/fn add-evm-account') + this.exit(1) + } + this.action.succeed() const { account } = await inquirer.prompt({ name: 'account', message: 'Please select an external account:', @@ -479,6 +497,31 @@ export default abstract class PhatBaseCommand extends BaseCommand { return jsRunner } + async getProvider({ + apiPromise, + }: { + apiPromise: ApiPromise + }) { + if (this.parsedFlags.privateKey || (process.env.PRIVATE_KEY && !this.parsedFlags.suri && !this.parsedFlags.accountFilePath)) { + const privateKey = this.parsedFlags.privateKey || process.env.PRIVATE_KEY + const account = privateKeyToAccount(privateKey as `0x${string}`) + const client = createWalletClient({ + account, + chain: mainnet, + transport: http() + }) + const provider = await EvmAccountMappingProvider.create(apiPromise, client, account) + return provider + } + const pair = await this.getDecodedPair({ + suri: this.parsedFlags.suri || process.env.POLKADOT_WALLET_SURI, + accountFilePath: this.parsedFlags.accountFilePath || process.env.POLKADOT_WALLET_ACCOUNT_FILE, + accountPassword: this.parsedFlags.accountPassword || process.env.POLKADOT_WALLET_ACCOUNT_PASSWORD, + }) + const provider = await KeyringPairProvider.create(apiPromise, pair) + return provider + } + async getDecodedPair({ suri, accountFilePath, accountPassword }: { suri?: string, accountFilePath?: string, accountPassword?: string }): Promise { await waitReady() const keyring = new Keyring({ type: 'sr25519' }) diff --git a/src/lib/types.ts b/src/lib/types.ts deleted file mode 100644 index 9e0d17a..0000000 --- a/src/lib/types.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface WaitPRuntimeFinalized { - (awaitable: Promise, predicate?: () => Promise): Promise -} diff --git a/src/lib/utils.ts b/src/lib/utils.ts index eb982b2..62d3e78 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,42 +1,7 @@ import os from 'node:os' import upath from 'upath' -import type { OnChainRegistry } from '@phala/sdk' - -import { WaitPRuntimeFinalized } from './types' export function resolveToAbsolutePath(inputPath: string): string { const regex = /^~(?=$|[/\\])/ return upath.resolve(inputPath.replace(regex, os.homedir())) } - -export function bindWaitPRuntimeFinalized( - phatRegistry: OnChainRegistry, - confirmations = 10, - pollingIntervalMs = 1000 -): WaitPRuntimeFinalized { - return async function waitPRuntimeFinalized( - awaitable: Promise, - predicate?: () => Promise - ) { - const { blocknum: initBlockNum } = await phatRegistry.phactory.getInfo({}) - const result = await awaitable - while (true) { - const { blocknum } = await phatRegistry.phactory.getInfo({}) - if (blocknum > initBlockNum + confirmations) { - if (!predicate) { - return result - } - throw new Error( - `Wait for transaction finalized in PRuntime but timeout after ${confirmations} blocks.` - ) - } - if (predicate) { - const predicateResult = await predicate() - if (predicateResult) { - return result - } - } - await new Promise((resolve) => setTimeout(resolve, pollingIntervalMs)) - } - } -} diff --git a/yarn.lock b/yarn.lock index 7dc6d2a..3f372f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,9 +20,9 @@ "@babel/highlight" "^7.10.4" "@babel/code-frame@^7.0.0": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" - integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: "@babel/highlight" "^7.23.4" chalk "^2.4.2" @@ -42,9 +42,9 @@ js-tokens "^4.0.0" "@babel/runtime@^7.21.0": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" - integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" + integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== dependencies: regenerator-runtime "^0.14.0" @@ -183,18 +183,30 @@ resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919" integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== -"@noble/curves@1.2.0", "@noble/curves@^1.2.0", "@noble/curves@~1.2.0": +"@noble/curves@1.2.0", "@noble/curves@~1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== dependencies: "@noble/hashes" "1.3.2" -"@noble/hashes@1.3.2", "@noble/hashes@^1.3.2", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.2": +"@noble/curves@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" + integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== + dependencies: + "@noble/hashes" "1.3.3" + +"@noble/hashes@1.3.2": version "1.3.2" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== +"@noble/hashes@1.3.3", "@noble/hashes@^1.3.3", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.2": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -590,21 +602,26 @@ resolved "https://registry.yarnpkg.com/@phala/pink-env/-/pink-env-1.0.13.tgz#8dda19538733588f7fb9c5d81f61bf118d37d63d" integrity sha512-yo/mxBRs+auJz7/k3jeSiQFk6UZpvAdivrFPpQZb2a76vrSLHH5eU86CuZedpvZNBggUde7QUVo8TT6MGQWV+Q== -"@phala/sdk@^0.5.6": - version "0.5.6" - resolved "https://registry.yarnpkg.com/@phala/sdk/-/sdk-0.5.6.tgz#8453df04d668b7abddb7ce72afd0712512bfd08f" - integrity sha512-bNAJ1CCt01KT6WrWWiO++o+qMFM2eD8xSEksRybjK9rIjO0oDtfxd2nhLAg06J9LM043E9dkHtWJjTfrkqT6jA== - dependencies: - "@polkadot/api" "^10.9.1" - "@polkadot/api-contract" "^10.9.1" - "@polkadot/keyring" "^12.3.2" - "@polkadot/types" "^10.9.1" - "@polkadot/types-augment" "^10.9.1" - "@polkadot/util" "^12.3.2" - "@polkadot/util-crypto" "^12.3.2" +"@phala/sdk@0.6.0-beta.3": + version "0.6.0-beta.3" + resolved "https://registry.yarnpkg.com/@phala/sdk/-/sdk-0.6.0-beta.3.tgz#5fac667d80c3ab5568446702ccc3ffcc1211d039" + integrity sha512-Snh2K/Soyv+WDcSxsQMH+U9zbesK/DXbaRWRm7Haoz9HWo8PLQFjVpIZf/pofBPK5sxhZXn0YqkSzuNnC2EF8w== + dependencies: + "@polkadot/api" "~10.11.1" + "@polkadot/api-contract" "~10.11.1" + "@polkadot/extension-inject" "~0.46.6" + "@polkadot/keyring" "~12.6.1" + "@polkadot/networks" "~12.6.1" + "@polkadot/types" "~10.11.1" + "@polkadot/types-augment" "~10.11.1" + "@polkadot/ui-keyring" "~3.6.4" + "@polkadot/ui-settings" "~3.6.4" + "@polkadot/util" "~12.6.1" + "@polkadot/util-crypto" "~12.6.1" browserify-cipher "^1.0.1" cross-fetch "^4.0.0" protobufjs "^7.2.4" + ramda "^0.29.1" randombytes "^2.1.0" rxjs "^7.8.1" viem "^1.5.0" @@ -614,345 +631,383 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@polkadot/api-augment@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.11.1.tgz#63a5ccc3b33c18fa71263d5e58e0a4c6041a8504" - integrity sha512-9Sk7fi6wzvxAoxvGJPcMt0hU4WzuIAlBy4Rng6WPiS6Ed0HJLr1dkZaqFFmV5my2pb3tu//1JGYkt+MUVB0Kqw== - dependencies: - "@polkadot/api-base" "10.11.1" - "@polkadot/rpc-augment" "10.11.1" - "@polkadot/types" "10.11.1" - "@polkadot/types-augment" "10.11.1" - "@polkadot/types-codec" "10.11.1" - "@polkadot/util" "^12.6.1" +"@polkadot/api-augment@10.11.2": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.11.2.tgz#9ea6f3a25edb61a03d571f06f6ec87ced6d29a2a" + integrity sha512-PTpnqpezc75qBqUtgrc0GYB8h9UHjfbHSRZamAbecIVAJ2/zc6CqtnldeaBlIu1IKTgBzi3FFtTyYu+ZGbNT2Q== + dependencies: + "@polkadot/api-base" "10.11.2" + "@polkadot/rpc-augment" "10.11.2" + "@polkadot/types" "10.11.2" + "@polkadot/types-augment" "10.11.2" + "@polkadot/types-codec" "10.11.2" + "@polkadot/util" "^12.6.2" tslib "^2.6.2" -"@polkadot/api-base@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-10.11.1.tgz#843fec74989b466278c42516a86fba65778b69bf" - integrity sha512-A645Hj9bGtq0EOEWcwTaGoD40vp8/ih1suwinl5il8Psg+bdDmzodnVH5Jhuwe1dNKOuXuvxZvOmbYUPWyIqyg== +"@polkadot/api-base@10.11.2": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-10.11.2.tgz#135de5ab83769a1fd3ad9f845f27338a65b0ffe3" + integrity sha512-4LIjaUfO9nOzilxo7XqzYKCNMtmUypdk8oHPdrRnSjKEsnK7vDsNi+979z2KXNXd2KFSCFHENmI523fYnMnReg== dependencies: - "@polkadot/rpc-core" "10.11.1" - "@polkadot/types" "10.11.1" - "@polkadot/util" "^12.6.1" + "@polkadot/rpc-core" "10.11.2" + "@polkadot/types" "10.11.2" + "@polkadot/util" "^12.6.2" rxjs "^7.8.1" tslib "^2.6.2" -"@polkadot/api-contract@^10.9.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-10.11.1.tgz#ad479bcc83b5d67008588f2cf82193cd07748218" - integrity sha512-0m/WR6OfbjOkYlKtOMaJgGiaBi4xmDxNxnT9BoCzHEB+O9OVqzUC4v7LGKZyBQQfcAnwVbJ/UaFaAMI/P63Pqg== - dependencies: - "@polkadot/api" "10.11.1" - "@polkadot/api-augment" "10.11.1" - "@polkadot/types" "10.11.1" - "@polkadot/types-codec" "10.11.1" - "@polkadot/types-create" "10.11.1" - "@polkadot/util" "^12.6.1" - "@polkadot/util-crypto" "^12.6.1" +"@polkadot/api-contract@~10.11.1": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-10.11.2.tgz#2211fc17ea470413b279bafccea8f70f3308fa4d" + integrity sha512-n+G1puptaQA5CwO2EHmD29QR1qlV/dVs6R0cBSGFaXvYJxqYJvN2LEir3i9vWjO0IVqulTjLPWvv7MbR3CxhmA== + dependencies: + "@polkadot/api" "10.11.2" + "@polkadot/api-augment" "10.11.2" + "@polkadot/types" "10.11.2" + "@polkadot/types-codec" "10.11.2" + "@polkadot/types-create" "10.11.2" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" rxjs "^7.8.1" tslib "^2.6.2" -"@polkadot/api-derive@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-10.11.1.tgz#528f90e33577258997cb998c0b597ba54bc9c683" - integrity sha512-i48okJr0l1IrFTPa9KVkoJnDL2EHKExR6XC0Z7I9+kW9noxYWqo0tIoi5s1bNVD475xWK/rUjT7qHxiDbPaCUQ== - dependencies: - "@polkadot/api" "10.11.1" - "@polkadot/api-augment" "10.11.1" - "@polkadot/api-base" "10.11.1" - "@polkadot/rpc-core" "10.11.1" - "@polkadot/types" "10.11.1" - "@polkadot/types-codec" "10.11.1" - "@polkadot/util" "^12.6.1" - "@polkadot/util-crypto" "^12.6.1" +"@polkadot/api-derive@10.11.2": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-10.11.2.tgz#eb9e3f681ef3dda88ee2dfa538a6bded937de77e" + integrity sha512-m3BQbPionkd1iSlknddxnL2hDtolPIsT+aRyrtn4zgMRPoLjHFmTmovvg8RaUyYofJtZeYrnjMw0mdxiSXx7eA== + dependencies: + "@polkadot/api" "10.11.2" + "@polkadot/api-augment" "10.11.2" + "@polkadot/api-base" "10.11.2" + "@polkadot/rpc-core" "10.11.2" + "@polkadot/types" "10.11.2" + "@polkadot/types-codec" "10.11.2" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" rxjs "^7.8.1" tslib "^2.6.2" -"@polkadot/api@10.11.1", "@polkadot/api@^10.9.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-10.11.1.tgz#3667ae1cf2f9c1955e138438c313efdba081314d" - integrity sha512-WEgUYvY90AHX9drmsvWQ4DDuqlE7h4x3f28K5eOoJF4dQ5AkWsFogxwJ4TH57POWLfyi8AIn6/f1vsqPtReDhA== +"@polkadot/api@10.11.2", "@polkadot/api@^10.11.1", "@polkadot/api@~10.11.1": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-10.11.2.tgz#16cd07062d51cc9cf77a3a6afa3cb4e526e44a82" + integrity sha512-AorCZxCWCoTtdbl4DPUZh+ACe/pbLIS1BkdQY0AFJuZllm0x/yWzjgampcPd5jQAA/O3iKShRBkZqj6Mk9yG/A== + dependencies: + "@polkadot/api-augment" "10.11.2" + "@polkadot/api-base" "10.11.2" + "@polkadot/api-derive" "10.11.2" + "@polkadot/keyring" "^12.6.2" + "@polkadot/rpc-augment" "10.11.2" + "@polkadot/rpc-core" "10.11.2" + "@polkadot/rpc-provider" "10.11.2" + "@polkadot/types" "10.11.2" + "@polkadot/types-augment" "10.11.2" + "@polkadot/types-codec" "10.11.2" + "@polkadot/types-create" "10.11.2" + "@polkadot/types-known" "10.11.2" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + eventemitter3 "^5.0.1" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/extension-inject@~0.46.6": + version "0.46.6" + resolved "https://registry.yarnpkg.com/@polkadot/extension-inject/-/extension-inject-0.46.6.tgz#0fa2b79d5f9b91ae2cc8d9c943af6e19bc2125c8" + integrity sha512-5lJzL/iQ9oUcIDcER22Hxdjj4S9CoWS09yQoAKkfAmZMuTJkL/j36m7AnpNPN5ohWoPyd1Yl/JfwtoLmtRoZog== dependencies: - "@polkadot/api-augment" "10.11.1" - "@polkadot/api-base" "10.11.1" - "@polkadot/api-derive" "10.11.1" - "@polkadot/keyring" "^12.6.1" - "@polkadot/rpc-augment" "10.11.1" - "@polkadot/rpc-core" "10.11.1" - "@polkadot/rpc-provider" "10.11.1" - "@polkadot/types" "10.11.1" - "@polkadot/types-augment" "10.11.1" - "@polkadot/types-codec" "10.11.1" - "@polkadot/types-create" "10.11.1" - "@polkadot/types-known" "10.11.1" + "@polkadot/api" "^10.11.1" + "@polkadot/rpc-provider" "^10.11.1" + "@polkadot/types" "^10.11.1" "@polkadot/util" "^12.6.1" "@polkadot/util-crypto" "^12.6.1" - eventemitter3 "^5.0.1" - rxjs "^7.8.1" + "@polkadot/x-global" "^12.6.1" tslib "^2.6.2" -"@polkadot/keyring@^12.3.2", "@polkadot/keyring@^12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-12.6.1.tgz#0984dd625edd582750d8975f1898a4acb14bda8b" - integrity sha512-cicTctZr5Jy5vgNT2FsNiKoTZnz6zQkgDoIYv79NI+p1Fhwc9C+DN/iMCnk3Cm9vR2gSAd2fSV+Y5iKVDhAmUw== +"@polkadot/keyring@^12.6.1", "@polkadot/keyring@^12.6.2", "@polkadot/keyring@~12.6.1": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-12.6.2.tgz#6067e6294fee23728b008ac116e7e9db05cecb9b" + integrity sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw== dependencies: - "@polkadot/util" "12.6.1" - "@polkadot/util-crypto" "12.6.1" + "@polkadot/util" "12.6.2" + "@polkadot/util-crypto" "12.6.2" tslib "^2.6.2" -"@polkadot/networks@12.6.1", "@polkadot/networks@^12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-12.6.1.tgz#eb0b1fb9e04fbaba066d44df4ff18b0567ca5fcc" - integrity sha512-pzyirxTYAnsx+6kyLYcUk26e4TLz3cX6p2KhTgAVW77YnpGX5VTKTbYykyXC8fXFd/migeQsLaa2raFN47mwoA== +"@polkadot/networks@12.6.2", "@polkadot/networks@^12.6.1", "@polkadot/networks@^12.6.2", "@polkadot/networks@~12.6.1": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-12.6.2.tgz#791779fee1d86cc5b6cd371858eea9b7c3f8720d" + integrity sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w== dependencies: - "@polkadot/util" "12.6.1" + "@polkadot/util" "12.6.2" "@substrate/ss58-registry" "^1.44.0" tslib "^2.6.2" -"@polkadot/rpc-augment@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.11.1.tgz#f100165e60777a58583ea97cb672692a31a185f2" - integrity sha512-wrtxHnEwqS3b1GuZ3sA1pzLuUjjLnW4FPawOklONRcIuKbGmFuvu7QvEIHmxBV1FAS/fs8gbvp8ImKWUPnT93Q== +"@polkadot/rpc-augment@10.11.2": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.11.2.tgz#4458ee62bd95cd1f016f097f607767d1e6dfc709" + integrity sha512-9AhT0WW81/8jYbRcAC6PRmuxXqNhJje8OYiulBQHbG1DTCcjAfz+6VQBke9BwTStzPq7d526+yyBKD17O3zlAA== dependencies: - "@polkadot/rpc-core" "10.11.1" - "@polkadot/types" "10.11.1" - "@polkadot/types-codec" "10.11.1" - "@polkadot/util" "^12.6.1" + "@polkadot/rpc-core" "10.11.2" + "@polkadot/types" "10.11.2" + "@polkadot/types-codec" "10.11.2" + "@polkadot/util" "^12.6.2" tslib "^2.6.2" -"@polkadot/rpc-core@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-10.11.1.tgz#557958e57514d93fd3270a99910bf0d9f066df82" - integrity sha512-3l4l+zL7MDWzQx3WnaieXXUKsbeA1Miu4wsje5trYJEE+hm+nMW8h7fiFKfYzXBi7ty/wMS+S7BfQPTrDkYHxA== +"@polkadot/rpc-core@10.11.2": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-10.11.2.tgz#a63ef288133d32abfeff8e80a94d3787e91e87be" + integrity sha512-Ot0CFLWx8sZhLZog20WDuniPA01Bk2StNDsdAQgcFKPwZw6ShPaZQCHuKLQK6I6DodOrem9FXX7c1hvoKJP5Ww== dependencies: - "@polkadot/rpc-augment" "10.11.1" - "@polkadot/rpc-provider" "10.11.1" - "@polkadot/types" "10.11.1" - "@polkadot/util" "^12.6.1" + "@polkadot/rpc-augment" "10.11.2" + "@polkadot/rpc-provider" "10.11.2" + "@polkadot/types" "10.11.2" + "@polkadot/util" "^12.6.2" rxjs "^7.8.1" tslib "^2.6.2" -"@polkadot/rpc-provider@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-10.11.1.tgz#8d94e96bba71ee8bbce9baf407b411c523fc2f28" - integrity sha512-86aDUOnaG42si0jSOAgn6Fs3F3rz57x+iNBK1JpM0PLL2XvmPuoMZL5dZwzqSIey3nVdGJqRYfnFquWuyQpnOQ== - dependencies: - "@polkadot/keyring" "^12.6.1" - "@polkadot/types" "10.11.1" - "@polkadot/types-support" "10.11.1" - "@polkadot/util" "^12.6.1" - "@polkadot/util-crypto" "^12.6.1" - "@polkadot/x-fetch" "^12.6.1" - "@polkadot/x-global" "^12.6.1" - "@polkadot/x-ws" "^12.6.1" +"@polkadot/rpc-provider@10.11.2", "@polkadot/rpc-provider@^10.11.1": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-10.11.2.tgz#b50a11d4baffa39519f786951e68d8c4953672a8" + integrity sha512-he5jWMpDJp7e+vUzTZDzpkB7ps3H8psRally+/ZvZZScPvFEjfczT7I1WWY9h58s8+ImeVP/lkXjL9h/gUOt3Q== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types" "10.11.2" + "@polkadot/types-support" "10.11.2" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-fetch" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + "@polkadot/x-ws" "^12.6.2" eventemitter3 "^5.0.1" mock-socket "^9.3.1" - nock "^13.3.8" + nock "^13.4.0" tslib "^2.6.2" optionalDependencies: "@substrate/connect" "0.7.35" -"@polkadot/types-augment@10.11.1", "@polkadot/types-augment@^10.9.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-10.11.1.tgz#273762db2e0dd932378860555e0d24672c583c7f" - integrity sha512-Exd5mMCuSOXXz73iWqy8ocScWTrwAPqHz0Kxpz5OWlAu+5usipMuhjoeaZA803FHQntZh9lHUN31fuc50Exhew== +"@polkadot/types-augment@10.11.2", "@polkadot/types-augment@~10.11.1": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-10.11.2.tgz#197b24f2c85c9ca483d5cb6d2acc06f42c707abd" + integrity sha512-8eB8ew04wZiE5GnmFvEFW1euJWmF62SGxb1O+8wL3zoUtB9Xgo1vB6w6xbTrd+HLV6jNSeXXnbbF1BEUvi9cNg== dependencies: - "@polkadot/types" "10.11.1" - "@polkadot/types-codec" "10.11.1" - "@polkadot/util" "^12.6.1" + "@polkadot/types" "10.11.2" + "@polkadot/types-codec" "10.11.2" + "@polkadot/util" "^12.6.2" tslib "^2.6.2" -"@polkadot/types-codec@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-10.11.1.tgz#063afd17c1648279de2f9add42b23792026a402f" - integrity sha512-B9Fu2hq3cRpJpGPcgfZ8Qi1OSX9u82J46adlbIG95ktoA+70eZ83VS3Zvtt9ACsdLVGETCJfDjSO25XptjhZKQ== +"@polkadot/types-codec@10.11.2": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-10.11.2.tgz#e4570f8c92ffad090fb1d04a94731979537ced33" + integrity sha512-3xjOQL+LOOMzYqlgP9ROL0FQnzU8lGflgYewzau7AsDlFziSEtb49a9BpYo6zil4koC+QB8zQ9OHGFumG08T8w== dependencies: - "@polkadot/util" "^12.6.1" - "@polkadot/x-bigint" "^12.6.1" + "@polkadot/util" "^12.6.2" + "@polkadot/x-bigint" "^12.6.2" tslib "^2.6.2" -"@polkadot/types-create@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-10.11.1.tgz#3f850e9f5e5b4f04da3ea4def5240d9d4e2789d3" - integrity sha512-oeaI185F3XeWSz9/fe//qZ0KsQyE6C6c13WuOa+5cX/Yuz7cSAXawrhl58HRaU+fueaE/ijEHLcuK1sdM6e1JQ== +"@polkadot/types-create@10.11.2": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-10.11.2.tgz#dfd52cdde45619c90f42ec4c681bc5ec8d9e6f43" + integrity sha512-SJt23NxYvefRxVZZm6mT9ed1pR6FDoIGQ3xUpbjhTLfU2wuhpKjekMVorYQ6z/gK2JLMu2kV92Ardsz+6GX5XQ== dependencies: - "@polkadot/types-codec" "10.11.1" - "@polkadot/util" "^12.6.1" + "@polkadot/types-codec" "10.11.2" + "@polkadot/util" "^12.6.2" tslib "^2.6.2" -"@polkadot/types-known@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-10.11.1.tgz#6159b13c81660fd2db1c797e28356aee4691b0c0" - integrity sha512-BPHI7EbdRaznZR4RVVrQC5epyxL6caJ5dkluZP6rRwx7VmQK0FTGIwgh3UP724mzQhM8rT77MD3h2ftnq1cteg== +"@polkadot/types-known@10.11.2": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-10.11.2.tgz#2ce647b0dd49dec07032547a53d7aa30208a825f" + integrity sha512-kbEIX7NUQFxpDB0FFGNyXX/odY7jbp56RGD+Z4A731fW2xh/DgAQrI994xTzuh0c0EqPE26oQm3kATSpseqo9w== dependencies: - "@polkadot/networks" "^12.6.1" - "@polkadot/types" "10.11.1" - "@polkadot/types-codec" "10.11.1" - "@polkadot/types-create" "10.11.1" - "@polkadot/util" "^12.6.1" + "@polkadot/networks" "^12.6.2" + "@polkadot/types" "10.11.2" + "@polkadot/types-codec" "10.11.2" + "@polkadot/types-create" "10.11.2" + "@polkadot/util" "^12.6.2" tslib "^2.6.2" -"@polkadot/types-support@10.11.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-10.11.1.tgz#227c702526f9702a5b6882ecf55bc264f9d3beaf" - integrity sha512-eCvWjdpELsHvXiTq201DdbIeOIaEr53zTD7HqC2wR/Z1bkQuw79Z+CyIU4sp79GL1vZ1PxS7vUH9M3FKNaTl1Q== +"@polkadot/types-support@10.11.2": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-10.11.2.tgz#3ab2252688ea50dbb35055789d0b775b0f5a7b2f" + integrity sha512-X11hoykFYv/3efg4coZy2hUOUc97JhjQMJLzDhHniFwGLlYU8MeLnPdCVGkXx0xDDjTo4/ptS1XpZ5HYcg+gRw== dependencies: - "@polkadot/util" "^12.6.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types@10.11.2", "@polkadot/types@^10.11.1", "@polkadot/types@~10.11.1": + version "10.11.2" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-10.11.2.tgz#3317b6fcee53bbfba7bf654413f93ccd742c478e" + integrity sha512-d52j3xXni+C8GdYZVTSfu8ROAnzXFMlyRvXtor0PudUc8UQHOaC4+mYAkTBGA2gKdmL8MHSfRSbhcxHhsikY6Q== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types-augment" "10.11.2" + "@polkadot/types-codec" "10.11.2" + "@polkadot/types-create" "10.11.2" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" tslib "^2.6.2" -"@polkadot/types@10.11.1", "@polkadot/types@^10.9.1": - version "10.11.1" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-10.11.1.tgz#d2b8c747c103b0a5f725090980d4be10037ddef0" - integrity sha512-4uKnzW2GZqNA5qRZpTPJ7z+G/ARTvXI89etv9xXXVttUdfTaYZsMf4rMuMThOAE/mAUn70LoH0JKthZLwzVgNQ== +"@polkadot/ui-keyring@~3.6.4": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@polkadot/ui-keyring/-/ui-keyring-3.6.4.tgz#3270d00d0302a51520181756f256148c86dd546f" + integrity sha512-yfzf+TCtfSQUp+NIqY6aMunnjCZcKobzFzMNOSGbbkHQf0TnAERmmhc/i0XUw9BkEMKWskEHapP9HRztRHKZ5Q== dependencies: "@polkadot/keyring" "^12.6.1" - "@polkadot/types-augment" "10.11.1" - "@polkadot/types-codec" "10.11.1" - "@polkadot/types-create" "10.11.1" + "@polkadot/ui-settings" "3.6.4" "@polkadot/util" "^12.6.1" "@polkadot/util-crypto" "^12.6.1" + mkdirp "^3.0.1" rxjs "^7.8.1" + store "^2.0.12" tslib "^2.6.2" -"@polkadot/util-crypto@12.6.1", "@polkadot/util-crypto@^12.3.2", "@polkadot/util-crypto@^12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-12.6.1.tgz#f1e354569fb039822db5e57297296e22af575af8" - integrity sha512-2ezWFLmdgeDXqB9NAUdgpp3s2rQztNrZLY+y0SJYNOG4ch+PyodTW/qSksnOrVGVdRhZ5OESRE9xvo9LYV5UAw== - dependencies: - "@noble/curves" "^1.2.0" - "@noble/hashes" "^1.3.2" - "@polkadot/networks" "12.6.1" - "@polkadot/util" "12.6.1" - "@polkadot/wasm-crypto" "^7.3.1" - "@polkadot/wasm-util" "^7.3.1" - "@polkadot/x-bigint" "12.6.1" - "@polkadot/x-randomvalues" "12.6.1" - "@scure/base" "^1.1.3" +"@polkadot/ui-settings@3.6.4", "@polkadot/ui-settings@~3.6.4": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-3.6.4.tgz#459ee4bee8aa9a81c21ad1bac96130a43a0f14bd" + integrity sha512-0vZPiMqGP9wv1SNBt0Snt6ScmrNHI2aqd9mixKs0pneDI0EO6ZndGanF3xgC51SCpS/N9qNh+VXckghmQMgaNQ== + dependencies: + "@polkadot/networks" "^12.6.1" + "@polkadot/util" "^12.6.1" + eventemitter3 "^5.0.1" + store "^2.0.12" tslib "^2.6.2" -"@polkadot/util@12.6.1", "@polkadot/util@^12.3.2", "@polkadot/util@^12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.6.1.tgz#477b8e2c601e8aae0662670ed33da46f1b335e5a" - integrity sha512-10ra3VfXtK8ZSnWI7zjhvRrhupg3rd4iFC3zCaXmRpOU+AmfIoCFVEmuUuC66gyXiz2/g6k5E6j0lWQCOProSQ== +"@polkadot/util-crypto@12.6.2", "@polkadot/util-crypto@^12.6.1", "@polkadot/util-crypto@^12.6.2", "@polkadot/util-crypto@~12.6.1": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz#d2d51010e8e8ca88951b7d864add797dad18bbfc" + integrity sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg== + dependencies: + "@noble/curves" "^1.3.0" + "@noble/hashes" "^1.3.3" + "@polkadot/networks" "12.6.2" + "@polkadot/util" "12.6.2" + "@polkadot/wasm-crypto" "^7.3.2" + "@polkadot/wasm-util" "^7.3.2" + "@polkadot/x-bigint" "12.6.2" + "@polkadot/x-randomvalues" "12.6.2" + "@scure/base" "^1.1.5" + tslib "^2.6.2" + +"@polkadot/util@12.6.2", "@polkadot/util@^12.6.1", "@polkadot/util@^12.6.2", "@polkadot/util@~12.6.1": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.6.2.tgz#9396eff491221e1f0fd28feac55fc16ecd61a8dc" + integrity sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw== dependencies: - "@polkadot/x-bigint" "12.6.1" - "@polkadot/x-global" "12.6.1" - "@polkadot/x-textdecoder" "12.6.1" - "@polkadot/x-textencoder" "12.6.1" + "@polkadot/x-bigint" "12.6.2" + "@polkadot/x-global" "12.6.2" + "@polkadot/x-textdecoder" "12.6.2" + "@polkadot/x-textencoder" "12.6.2" "@types/bn.js" "^5.1.5" bn.js "^5.2.1" tslib "^2.6.2" -"@polkadot/wasm-bridge@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.3.1.tgz#8438363aa98296f8be949321ca1d3a4cbcc4fc49" - integrity sha512-wPtDkGaOQx5BUIYP+kJv5aV3BnCQ+HXr36khGKYrRQAMBrG+ybCNPOTVXDQnSbraPQRSw7fSIJmiQpEmFsIz0w== +"@polkadot/wasm-bridge@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.3.2.tgz#e1b01906b19e06cbca3d94f10f5666f2ae0baadc" + integrity sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g== dependencies: - "@polkadot/wasm-util" "7.3.1" + "@polkadot/wasm-util" "7.3.2" tslib "^2.6.2" -"@polkadot/wasm-crypto-asmjs@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.3.1.tgz#8322a554635bcc689eb3a944c87ea64061b6ba81" - integrity sha512-pTUOCIP0nUc4tjzdG1vtEBztKEWde4DBEZm7NaxBLvwNUxsbYhLKYvuhASEyEIz0ZyE4rOBWEmRF4Buic8oO+g== +"@polkadot/wasm-crypto-asmjs@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.3.2.tgz#c6d41bc4b48b5359d57a24ca3066d239f2d70a34" + integrity sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q== dependencies: tslib "^2.6.2" -"@polkadot/wasm-crypto-init@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.3.1.tgz#5a140f9e2746ce3009dbcc4d05827e0703fd344d" - integrity sha512-Fx15ItLcxCe7uJCWZVXhFbsrXqHUKAp9KGYQFKBRK7r1C2va4Y7qnirjwkxoMHQcunusLe2KdbrD+YJuzh4wlA== +"@polkadot/wasm-crypto-init@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.3.2.tgz#7e1fe79ba978fb0a4a0f74a92d976299d38bc4b8" + integrity sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g== dependencies: - "@polkadot/wasm-bridge" "7.3.1" - "@polkadot/wasm-crypto-asmjs" "7.3.1" - "@polkadot/wasm-crypto-wasm" "7.3.1" - "@polkadot/wasm-util" "7.3.1" + "@polkadot/wasm-bridge" "7.3.2" + "@polkadot/wasm-crypto-asmjs" "7.3.2" + "@polkadot/wasm-crypto-wasm" "7.3.2" + "@polkadot/wasm-util" "7.3.2" tslib "^2.6.2" -"@polkadot/wasm-crypto-wasm@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.3.1.tgz#8f0906ab5dd11fa706db4c3547304b0e1d99f671" - integrity sha512-hBMRwrBLCfVsFHSdnwwIxEPshoZdW/dHehYRxMSpUdmqOxtD1gnjocXGE1KZUYGX675+EFuR+Ch6OoTKFJxwTA== +"@polkadot/wasm-crypto-wasm@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.3.2.tgz#44e08ed5cf6499ce4a3aa7247071a5d01f6a74f4" + integrity sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw== dependencies: - "@polkadot/wasm-util" "7.3.1" + "@polkadot/wasm-util" "7.3.2" tslib "^2.6.2" -"@polkadot/wasm-crypto@^7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-7.3.1.tgz#178e43ab68385c90d40f53590d3fdb59ee1aa5f4" - integrity sha512-BSK0YyCN4ohjtwbiHG71fgf+7ufgfLrHxjn7pKsvXhyeiEVuDhbDreNcpUf3eGOJ5tNk75aSbKGF4a3EJGIiNA== - dependencies: - "@polkadot/wasm-bridge" "7.3.1" - "@polkadot/wasm-crypto-asmjs" "7.3.1" - "@polkadot/wasm-crypto-init" "7.3.1" - "@polkadot/wasm-crypto-wasm" "7.3.1" - "@polkadot/wasm-util" "7.3.1" +"@polkadot/wasm-crypto@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-7.3.2.tgz#61bbcd9e591500705c8c591e6aff7654bdc8afc9" + integrity sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw== + dependencies: + "@polkadot/wasm-bridge" "7.3.2" + "@polkadot/wasm-crypto-asmjs" "7.3.2" + "@polkadot/wasm-crypto-init" "7.3.2" + "@polkadot/wasm-crypto-wasm" "7.3.2" + "@polkadot/wasm-util" "7.3.2" tslib "^2.6.2" -"@polkadot/wasm-util@7.3.1", "@polkadot/wasm-util@^7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-7.3.1.tgz#047fbce91e9bdd944d46bea8f636d2fdc268fba2" - integrity sha512-0m6ozYwBrJgnGl6QvS37ZiGRu4FFPPEtMYEVssfo1Tz4skHJlByWaHWhRNoNCVFAKiGEBu+rfx5HAQMAhoPkvg== +"@polkadot/wasm-util@7.3.2", "@polkadot/wasm-util@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-7.3.2.tgz#4fe6370d2b029679b41a5c02cd7ebf42f9b28de1" + integrity sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg== dependencies: tslib "^2.6.2" -"@polkadot/x-bigint@12.6.1", "@polkadot/x-bigint@^12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.6.1.tgz#82b6a3639e1bc1195b2858482f0421b403641b80" - integrity sha512-YlABeVIlgYQZJ4ZpW/+akFGGxw5jMGt4g5vaP7EumlORGneJHzzWJYDmI5v2y7j1zvC9ofOle7z4tRmtN/QDew== +"@polkadot/x-bigint@12.6.2", "@polkadot/x-bigint@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz#59b7a615f205ae65e1ac67194aefde94d3344580" + integrity sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q== dependencies: - "@polkadot/x-global" "12.6.1" + "@polkadot/x-global" "12.6.2" tslib "^2.6.2" -"@polkadot/x-fetch@^12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-12.6.1.tgz#6cd3023177f842ef51f05324c971671cbe010eca" - integrity sha512-iyBv0ecfCsqGSv26CPJk9vSoKtry/Fn7x549ysA4hlc9KboraMHxOHTpcNZYC/OdgvbFZl40zIXCY0SA1ai8aw== +"@polkadot/x-fetch@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz#b1bca028db90263bafbad2636c18d838d842d439" + integrity sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw== dependencies: - "@polkadot/x-global" "12.6.1" + "@polkadot/x-global" "12.6.2" node-fetch "^3.3.2" tslib "^2.6.2" -"@polkadot/x-global@12.6.1", "@polkadot/x-global@^12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.6.1.tgz#1a00ae466e344539bdee57eb7b1dd4e4d5b1dc95" - integrity sha512-w5t19HIdBPuyu7X/AiCyH2DsKqxBF0KpF4Ymolnx8PfcSIgnq9ZOmgs74McPR6FgEmeEkr9uNKujZrsfURi1ug== +"@polkadot/x-global@12.6.2", "@polkadot/x-global@^12.6.1", "@polkadot/x-global@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.6.2.tgz#31d4de1c3d4c44e4be3219555a6d91091decc4ec" + integrity sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g== dependencies: tslib "^2.6.2" -"@polkadot/x-randomvalues@12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-12.6.1.tgz#f0ad7afa5b0bac123b634ac19d6625cd301a9307" - integrity sha512-1uVKlfYYbgIgGV5v1Dgn960cGovenWm5pmg+aTMeUGXVYiJwRD2zOpLyC1i/tP454iA74j74pmWb8Nkn0tJZUQ== +"@polkadot/x-randomvalues@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz#13fe3619368b8bf5cb73781554859b5ff9d900a2" + integrity sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg== dependencies: - "@polkadot/x-global" "12.6.1" + "@polkadot/x-global" "12.6.2" tslib "^2.6.2" -"@polkadot/x-textdecoder@12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.6.1.tgz#ee6e9a0f1819204aa60e0ef5a576e8b222501123" - integrity sha512-IasodJeV1f2Nr/VtA207+LXCQEqYcG8y9qB/EQcRsrEP58NbwwxM5Z2obV0lSjJOxRTJ4/OlhUwnLHwcbIp6+g== +"@polkadot/x-textdecoder@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz#b86da0f8e8178f1ca31a7158257e92aea90b10e4" + integrity sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w== dependencies: - "@polkadot/x-global" "12.6.1" + "@polkadot/x-global" "12.6.2" tslib "^2.6.2" -"@polkadot/x-textencoder@12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.6.1.tgz#b39d4afb50c8bc2ff6add9f20cfc2338abff90d4" - integrity sha512-sTq/+tXqBhGe01a1rjieSHFh3y935vuRgtahVgVJZnfqh5SmLPgSN5tTPxZWzyx7gHIfotle8laTJbJarv7V1A== +"@polkadot/x-textencoder@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz#81d23bd904a2c36137a395c865c5fefa21abfb44" + integrity sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw== dependencies: - "@polkadot/x-global" "12.6.1" + "@polkadot/x-global" "12.6.2" tslib "^2.6.2" -"@polkadot/x-ws@^12.6.1": - version "12.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-12.6.1.tgz#340830d4500bbb301c63a9c5b289da85a5cc898c" - integrity sha512-fs9V+XekjJLpVLLwxnqq3llqSZu2T/b9brvld8anvzS/htDLPbi7+c5W3VGJ9Po8fS67IsU3HCt0Gu6F6mGrMA== +"@polkadot/x-ws@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-12.6.2.tgz#b99094d8e53a03be1de903d13ba59adaaabc767a" + integrity sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw== dependencies: - "@polkadot/x-global" "12.6.1" + "@polkadot/x-global" "12.6.2" tslib "^2.6.2" - ws "^8.14.2" + ws "^8.15.1" "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" @@ -1007,10 +1062,10 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@scure/base@^1.1.3", "@scure/base@~1.1.0", "@scure/base@~1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" - integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== +"@scure/base@^1.1.5", "@scure/base@~1.1.0", "@scure/base@~1.1.2": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" + integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== "@scure/bip32@1.3.2": version "1.3.2" @@ -1169,9 +1224,9 @@ "@types/estree" "*" "@types/eslint@*": - version "8.44.7" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.7.tgz#430b3cc96db70c81f405e6a08aebdb13869198f5" - integrity sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ== + version "8.56.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.0.tgz#e28d045b8e530a33c9cbcfbf02332df0d1380a2c" + integrity sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1235,9 +1290,9 @@ form-data "^4.0.0" "@types/node@*", "@types/node@>=13.7.0": - version "20.10.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.0.tgz#16ddf9c0a72b832ec4fcce35b8249cf149214617" - integrity sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ== + version "20.10.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.5.tgz#47ad460b514096b7ed63a1dae26fad0914ed3ab2" + integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw== dependencies: undici-types "~5.26.4" @@ -1252,9 +1307,9 @@ integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== "@types/node@^16.18.41": - version "16.18.65" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.65.tgz#b07eb49a14a808777b82879288a7e6f5a296ccfa" - integrity sha512-5E9WgTy95B7i90oISjui9U5Zu7iExUPfU4ygtv4yXEy6zJFE3oQYHCnh5H1jZRPkjphJt2Ml3oQW6M0qtK534A== + version "16.18.68" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.68.tgz#3155f64a961b3d8d10246c80657f9a7292e3421a" + integrity sha512-sG3hPIQwJLoewrN7cr0dwEy+yF5nD4D/4FxtQpFciRD/xwUzgD+G05uxZHv5mhfXo4F9Jkp13jjn0CC2q325sg== "@types/normalize-package-data@^2.4.0": version "2.4.4" @@ -1301,15 +1356,15 @@ "@types/node" "*" "@typescript-eslint/eslint-plugin@^6.5.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz#2a647d278bb48bf397fef07ba0507612ff9dd812" - integrity sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA== + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz#cc29fbd208ea976de3db7feb07755bba0ce8d8bc" + integrity sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.12.0" - "@typescript-eslint/type-utils" "6.12.0" - "@typescript-eslint/utils" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/type-utils" "6.16.0" + "@typescript-eslint/utils" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -1318,71 +1373,72 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.5.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.12.0.tgz#9fb21ed7d88065a4a2ee21eb80b8578debb8217c" - integrity sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg== - dependencies: - "@typescript-eslint/scope-manager" "6.12.0" - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/typescript-estree" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.16.0.tgz#36f39f63b126aa25af2ad2df13d9891e9fd5b40c" + integrity sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw== + dependencies: + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/typescript-estree" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz#5833a16dbe19cfbad639d4d33bcca5e755c7044b" - integrity sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw== +"@typescript-eslint/scope-manager@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz#f3e9a00fbc1d0701356359cd56489c54d9e37168" + integrity sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw== dependencies: - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" -"@typescript-eslint/type-utils@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz#968f7c95162808d69950ab5dff710ad730e58287" - integrity sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng== +"@typescript-eslint/type-utils@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz#5f21c3e49e540ad132dc87fc99af463c184d5ed1" + integrity sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg== dependencies: - "@typescript-eslint/typescript-estree" "6.12.0" - "@typescript-eslint/utils" "6.12.0" + "@typescript-eslint/typescript-estree" "6.16.0" + "@typescript-eslint/utils" "6.16.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.12.0.tgz#ffc5297bcfe77003c8b7b545b51c2505748314ac" - integrity sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q== +"@typescript-eslint/types@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.16.0.tgz#a3abe0045737d44d8234708d5ed8fef5d59dc91e" + integrity sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ== -"@typescript-eslint/typescript-estree@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz#764ccc32598549e5b48ec99e3b85f89b1385310c" - integrity sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw== +"@typescript-eslint/typescript-estree@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz#d6e0578e4f593045f0df06c4b3a22bd6f13f2d03" + integrity sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA== dependencies: - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.12.0.tgz#c6ce8c06fe9b0212620e5674a2036f6f8f611754" - integrity sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ== +"@typescript-eslint/utils@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.16.0.tgz#1c291492d34670f9210d2b7fcf6b402bea3134ae" + integrity sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.12.0" - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/typescript-estree" "6.12.0" + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/typescript-estree" "6.16.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz#5877950de42a0f3344261b7a1eee15417306d7e9" - integrity sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw== +"@typescript-eslint/visitor-keys@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz#d50da18a05d91318ed3e7e8889bda0edc35f3a10" + integrity sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A== dependencies: - "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/types" "6.16.0" eslint-visitor-keys "^3.4.1" "@ungap/promise-all-settled@1.1.2": @@ -1549,9 +1605,9 @@ acorn-jsx@^5.3.1: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" - integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== + version "8.3.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" + integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== acorn@^7.4.0: version "7.4.1" @@ -1765,9 +1821,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1231.0: - version "2.1502.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1502.0.tgz#13bc01d63f19bae4ddc3992d8971861d58a740e0" - integrity sha512-mUXUaWmbIyqE6zyIcbUUQIUgw1evK7gV1vQP7ZZEE0qi6hO2Mw99Nc25Bh+187yvRxamMTsFXvvmBViR0Q75SA== + version "2.1525.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1525.0.tgz#2d55fa7bbc110c96bb2e10a30af6b0d64a7d422b" + integrity sha512-M6wNOrq9HliJoWgmgHeRzMHHrgK6UY20RL2tUhNqq45ETZnj1ihrqG5vSt5ywLrV9WUyI/lUQAVmCP/2PYjpQw== dependencies: buffer "4.9.2" events "1.1.1" @@ -1890,13 +1946,13 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserslist@^4.14.5: - version "4.22.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" - integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== dependencies: - caniuse-lite "^1.0.30001541" - electron-to-chromium "^1.4.535" - node-releases "^2.0.13" + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" update-browserslist-db "^1.0.13" buffer-from@^1.0.0: @@ -2049,10 +2105,10 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001541: - version "1.0.30001564" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz#eaa8bbc58c0cbccdcb7b41186df39dd2ba591889" - integrity sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg== +caniuse-lite@^1.0.30001565: + version "1.0.30001571" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001571.tgz#4182e93d696ff42930f4af7eba515ddeb57917ac" + integrity sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ== cardinal@^2.1.1: version "2.1.1" @@ -2546,10 +2602,10 @@ ejs@^3.1.8: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.535: - version "1.4.594" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz#f69f207fba80735a44a988df42f3f439115d0515" - integrity sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ== +electron-to-chromium@^1.4.601: + version "1.4.616" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz#4bddbc2c76e1e9dbf449ecd5da3d8119826ea4fb" + integrity sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg== emoji-regex@^8.0.0: version "8.0.0" @@ -2753,9 +2809,9 @@ esutils@^2.0.2: integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== ethers@^6.7.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.8.1.tgz#ee2a1a39b5f62a13678f90ccd879175391d0a2b4" - integrity sha512-iEKm6zox5h1lDn6scuRWdIdFJUCGg3+/aQWu0F4K0GVyEZiktFkqrJbRjTn1FlYEPz7RKA707D6g5Kdk6j7Ljg== + version "6.9.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.9.1.tgz#4d50c77b46b6661e00f5cc6292e6bcd933fe4cba" + integrity sha512-kuV8fGd4/8Gj7wkurbsuUsm1DCG6N5gKGYdw3fnWG/7QGknhy1xtHD7kbkCWQAcbAYmzLCLqCPedS3FYncFkKQ== dependencies: "@adraffy/ens-normalize" "1.10.0" "@noble/curves" "1.2.0" @@ -2880,9 +2936,9 @@ fastest-levenshtein@^1.0.7: integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== dependencies: reusify "^1.0.4" @@ -3200,9 +3256,9 @@ glob@^8.0.1: once "^1.3.0" globals@^13.6.0, globals@^13.9.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" @@ -3441,9 +3497,9 @@ ignore-walk@^4.0.1: minimatch "^3.0.4" ignore-walk@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.3.tgz#0fcdb6decaccda35e308a7b0948645dd9523b7bb" - integrity sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA== + version "6.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9" + integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw== dependencies: minimatch "^9.0.0" @@ -3757,9 +3813,9 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-parse-even-better-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" - integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== json-schema-traverse@^0.4.1: version "0.4.1" @@ -4101,6 +4157,13 @@ minimatch@4.2.1: dependencies: brace-expansion "^1.1.7" +minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -4122,13 +4185,6 @@ minimatch@^7.2.0: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimist@^1.2.3, minimist@^1.2.5: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -4242,6 +4298,11 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== + mocha@^9: version "9.2.2" resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" @@ -4333,10 +4394,10 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nock@^13.3.3, nock@^13.3.8: - version "13.3.8" - resolved "https://registry.yarnpkg.com/nock/-/nock-13.3.8.tgz#7adf3c66f678b02ef0a78d5697ae8bc2ebde0142" - integrity sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw== +nock@^13.3.3, nock@^13.4.0: + version "13.4.0" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.4.0.tgz#60aa3f7a4afa9c12052e74d8fb7550f682ef0115" + integrity sha512-W8NVHjO/LCTNA64yxAPHV/K47LpGYcVzgKd3Q0n6owhwvD0Dgoterc25R4rnZbckJEb6Loxz1f5QMuJpJnbSyQ== dependencies: debug "^4.1.0" json-stringify-safe "^5.0.1" @@ -4396,10 +4457,10 @@ node-gyp@^9.0.0: tar "^6.1.2" which "^2.0.2" -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== nopt@^5.0.0: version "5.0.0" @@ -5050,6 +5111,11 @@ quickjs-emscripten@^0.23.0: resolved "https://registry.yarnpkg.com/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#94f412d0ee5f3021fc12ddf6c0b00bd8ce0d28b9" integrity sha512-CIP+NDRYDDqbT3cTiN8Bon1wsZ7IgISVYCJHYsPc86oxszpepVMPXFfttyQgn1u1okg1HPnCnM7Xv1LrCO/VmQ== +ramda@^0.29.1: + version "0.29.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.1.tgz#408a6165b9555b7ba2fc62555804b6c5a2eca196" + integrity sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -5130,9 +5196,9 @@ readable-stream@^3.4.0, readable-stream@^3.6.0: util-deprecate "^1.0.1" readable-stream@^4.3.0: - version "4.4.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" - integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== + version "4.5.1" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.1.tgz#3f2e4e66eab45606ac8f31597b9edb80c13b12ab" + integrity sha512-uQjbf34vmf/asGnOHQEw07Q4llgMACQZTWWa4MmICS0IKJoHbLwKCy71H3eR99Dw5iYejc6W+pqZZEeqRtUFAw== dependencies: abort-controller "^3.0.0" buffer "^6.0.3" @@ -5172,9 +5238,9 @@ redeyed@~2.1.0: esprima "~4.0.0" regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regexpp@^3.1.0: version "3.2.0" @@ -5585,6 +5651,11 @@ stdout-stderr@^0.1.9: debug "^4.1.1" strip-ansi "^6.0.0" +store@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" + integrity sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw== + "string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5749,9 +5820,9 @@ terser-webpack-plugin@^5.3.7, terser-webpack-plugin@^5.3.9: terser "^5.16.8" terser@^5.16.8: - version "5.24.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.24.0.tgz#4ae50302977bca4831ccc7b4fef63a3c04228364" - integrity sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw== + version "5.26.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" + integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -5819,9 +5890,9 @@ ts-loader@^9.4.4: source-map "^0.7.4" ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -5896,9 +5967,9 @@ type-fest@^0.8.1: integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== typescript@^5.2.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" - integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== undici-types@~5.26.4: version "5.26.5" @@ -5906,9 +5977,9 @@ undici-types@~5.26.4: integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== undici@^5.27.0: - version "5.28.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.0.tgz#09f6aa4a6f34de8996eec585fe4ceebaa9ef3f36" - integrity sha512-gM12DkXhlAc5+/TPe60iy9P6ETgVfqTuRJ6aQ4w8RYu0MqKuXhaq3/b86GfzDQnNA3NUO6aUNdvevrKH59D0Nw== + version "5.28.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91" + integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w== dependencies: "@fastify/busboy" "^2.0.0" @@ -6050,24 +6121,10 @@ validate-npm-package-name@^5.0.0: dependencies: builtins "^5.0.0" -viem@^1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/viem/-/viem-1.20.3.tgz#8b8360daee622295f5385949c02c86d943d14e0f" - integrity sha512-7CrmeCb2KYkeCgUmUyb1hsf+IX/PLwi+Np+Vm4YUTPeG82y3HRSgGHSaCOp3d0YtR2kXD3nv9y5kE7LBFE+wWw== - dependencies: - "@adraffy/ens-normalize" "1.10.0" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@scure/bip32" "1.3.2" - "@scure/bip39" "1.2.1" - abitype "0.9.8" - isows "1.0.3" - ws "8.13.0" - viem@^1.5.0: - version "1.19.9" - resolved "https://registry.yarnpkg.com/viem/-/viem-1.19.9.tgz#a11f3ad4a3323994ebd2010dbc659d1a2b12e583" - integrity sha512-Sf9U2x4jU0S/FALqYypcspWOGene0NZyD470oUripNhE0Ta6uOE/OgE4toTDVfRxov8qw0JFinr/wPGxYE3+HQ== + version "1.21.1" + resolved "https://registry.yarnpkg.com/viem/-/viem-1.21.1.tgz#f0996347fd339b1590dd82e379f18e1ae96bbcf5" + integrity sha512-4Tb2f73FTGN+6PRPmgmKmlIfy/ENS4iU1KKfOPhUA37pZMmVw2rxN0QXMHB4OMa1ZVBlbpde1eG33vyj0L8YeQ== dependencies: "@adraffy/ens-normalize" "1.10.0" "@noble/curves" "1.2.0" @@ -6300,10 +6357,10 @@ ws@8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== -ws@^8.14.2, ws@^8.8.1: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== +ws@^8.15.1, ws@^8.8.1: + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== xml2js@0.5.0: version "0.5.0"