diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 99168a34..ed51d8b7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,7 +1,7 @@ on: push: branches: - - '**' + - "**" name: tests @@ -17,7 +17,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: '14' - cache: 'yarn' + node-version: "16" + cache: "yarn" - name: Lint run: yarn && yarn lint diff --git a/jest.config.js b/jest.config.js index 78fc0e1a..b44a74f6 100644 --- a/jest.config.js +++ b/jest.config.js @@ -17,7 +17,7 @@ const config = { statements: 95, }, }, - setupFilesAfterEnv: ['jest-extended/all'], + setupFilesAfterEnv: ['jest-extended/all', './src/helpers/console.ts'], transform: { '^.+\\.[t|j]sx?$': 'babel-jest', }, diff --git a/package.json b/package.json index 3c9f82e7..2531df38 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,8 @@ "license": "Apache-2.0", "dependencies": { "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@cosmos-client/core": "0.45.13", - "@cosmos-client/cosmwasm": "^0.20.1", + "@cosmos-client/core": "^0.47.1", + "@cosmos-client/cosmwasm": "^0.40.1", "@cosmos-client/ibc": "^1.2.1", "@types/lodash": "^4.14.182", "@types/long": "^4.0.2", @@ -82,4 +82,4 @@ "engines": { "node": ">=11.0 <17" } -} +} \ No newline at end of file diff --git a/src/helpers/console.ts b/src/helpers/console.ts new file mode 100644 index 00000000..79955de2 --- /dev/null +++ b/src/helpers/console.ts @@ -0,0 +1,2 @@ +import console from 'console'; +global.console = console; diff --git a/src/helpers/cosmos.ts b/src/helpers/cosmos.ts index 0c5eb17c..c009fbae 100644 --- a/src/helpers/cosmos.ts +++ b/src/helpers/cosmos.ts @@ -1,6 +1,6 @@ -import { cosmosclient, proto, rest } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; import { AccAddress, ValAddress } from '@cosmos-client/core/cjs/types'; -import { cosmwasmproto } from '@cosmos-client/cosmwasm'; +import cosmwasmclient from '@cosmos-client/cosmwasm'; import { cosmos as AdminProto, ibc as ibcProto } from '../generated/ibc/proto'; import { neutron } from '../generated/proto'; import axios from 'axios'; @@ -8,9 +8,8 @@ import { CodeId, Wallet } from '../types'; import Long from 'long'; import { BlockWaiter, getWithAttempts } from './wait'; import { - Coin, + BroadcastTx200ResponseTxResponse, CosmosTxV1beta1GetTxResponse, - InlineResponse20075TxResponse, } from '@cosmos-client/core/cjs/openapi/api'; import { cosmos, google } from '@cosmos-client/core/cjs/proto'; import { CosmosSDK } from '@cosmos-client/core/cjs/sdk'; @@ -28,7 +27,7 @@ import { PinnedCodesResponse, IcaHostParamsResponse, } from './types'; -import { getContractBinary } from './env'; +import { DEBUG_SUBMIT_TX, getContractBinary } from './env'; const adminmodule = AdminProto.adminmodule.adminmodule; export const NEUTRON_DENOM = process.env.NEUTRON_DENOM || 'untrn'; @@ -70,7 +69,7 @@ cosmosclient.codec.register( ); cosmosclient.codec.register( '/cosmos.params.v1beta1.ParameterChangeProposal', - proto.cosmos.params.v1beta1.ParameterChangeProposal, + cosmosclient.proto.cosmos.params.v1beta1.ParameterChangeProposal, ); cosmosclient.codec.register( @@ -79,7 +78,7 @@ cosmosclient.codec.register( ); cosmosclient.codec.register( '/cosmos.params.v1beta1.ParameterChangeProposal', - proto.cosmos.params.v1beta1.ParameterChangeProposal, + cosmosclient.proto.cosmos.params.v1beta1.ParameterChangeProposal, ); cosmosclient.codec.register( '/ibc.applications.transfer.v1.MsgTransfer', @@ -134,33 +133,28 @@ export class CosmosWrapper { contract: string, query: Record, ): Promise { - const url = `${this.sdk.url}/wasm/contract/${contract}/smart/${Buffer.from( + const url = `${ + this.sdk.url + }/cosmwasm/wasm/v1/contract/${contract}/smart/${Buffer.from( JSON.stringify(query), ).toString('base64')}?encoding=base64`; - const resp = await axios - .get<{ - result: { smart: string }; - height: number; - }>(url) - .catch((error) => { - if (error.response) { - throw new Error( - `Status: ${JSON.stringify(error.response.status)} \n` + - `Response: ${JSON.stringify(error.response.data)} \n` + - `Headers: ${JSON.stringify(error.response.headers)}`, - ); - } else if (error.request) { - throw new Error(error.request); - } - throw new Error('Error: ' + error.message); - }); - return JSON.parse( - Buffer.from(resp.data.result.smart, 'base64').toString(), - ) as T; + const resp = await axios.get(url).catch((error) => { + if (error.response) { + throw new Error( + `Status: ${JSON.stringify(error.response.status)} \n` + + `Response: ${JSON.stringify(error.response.data)} \n` + + `Headers: ${JSON.stringify(error.response.headers)}`, + ); + } else if (error.request) { + throw new Error(error.request); + } + throw new Error('Error: ' + error.message); + }); + return resp.data.data as T; } async getContractInfo(contract: string): Promise { - const url = `${this.sdk.url}/cosmwasm/wasm/v1/contract/${contract}?encoding=base64`; + const url = `${this.sdk.url}/cosmwasm/wasm/v1/contract/${contract}`; try { const resp = await axios.get(url); return resp.data; @@ -170,7 +164,7 @@ export class CosmosWrapper { } async getSeq(address: cosmosclient.AccAddress): Promise { - const account = await rest.auth + const account = await cosmosclient.rest.auth .account(this.sdk, address) .then((res) => cosmosclient.codec.protoJSONToInstance( @@ -182,7 +176,9 @@ export class CosmosWrapper { throw e; }); - if (!(account instanceof proto.cosmos.auth.v1beta1.BaseAccount)) { + if ( + !(account instanceof cosmosclient.proto.cosmos.auth.v1beta1.BaseAccount) + ) { throw new Error("can't get account"); } @@ -198,7 +194,7 @@ export class CosmosWrapper { } async queryDelegations(delegatorAddr: cosmosclient.AccAddress): Promise { - const balances = await rest.staking.delegatorDelegations( + const balances = await cosmosclient.rest.staking.delegatorDelegations( this.sdk, delegatorAddr, ); @@ -206,7 +202,7 @@ export class CosmosWrapper { } async queryBalances(addr: string): Promise { - const balances = await rest.bank.allBalances( + const balances = await cosmosclient.rest.bank.allBalances( this.sdk, addr as unknown as AccAddress, ); @@ -217,7 +213,7 @@ export class CosmosWrapper { addr: string | AccAddress | ValAddress, denom: string, ): Promise { - const { data } = await rest.bank.allBalances( + const { data } = await cosmosclient.rest.bank.allBalances( this.sdk, addr.toString() as unknown as AccAddress, ); @@ -276,7 +272,7 @@ export class CosmosWrapper { ): Promise { try { const req = await axios.get( - `${this.sdk.url}/cosmos/bank/v1beta1/supply/${denom}`, + `${this.sdk.url}/cosmos/bank/v1beta1/supply/by_denom?denom=${denom}`, ); return req.data; } catch (e) { @@ -418,26 +414,28 @@ export class WalletWrapper { * execTx broadcasts messages and returns the transaction result. */ async execTx( - fee: proto.cosmos.tx.v1beta1.IFee, + fee: cosmosclient.proto.cosmos.tx.v1beta1.IFee, msgs: T[], numAttempts = 10, - mode: rest.tx.BroadcastTxMode = rest.tx.BroadcastTxMode.Async, + mode: cosmosclient.rest.tx.BroadcastTxMode = cosmosclient.rest.tx + .BroadcastTxMode.Sync, sequence: number = this.wallet.account.sequence, ): Promise { const protoMsgs: Array = []; msgs.forEach((msg) => { protoMsgs.push(cosmosclient.codec.instanceToProtoAny(msg)); }); - const txBody = new proto.cosmos.tx.v1beta1.TxBody({ + const txBody = new cosmosclient.proto.cosmos.tx.v1beta1.TxBody({ messages: protoMsgs, }); - const authInfo = new proto.cosmos.tx.v1beta1.AuthInfo({ + const authInfo = new cosmosclient.proto.cosmos.tx.v1beta1.AuthInfo({ signer_infos: [ { public_key: cosmosclient.codec.instanceToProtoAny(this.wallet.pubKey), mode_info: { single: { - mode: proto.cosmos.tx.signing.v1beta1.SignMode.SIGN_MODE_DIRECT, + mode: cosmosclient.proto.cosmos.tx.signing.v1beta1.SignMode + .SIGN_MODE_DIRECT, }, }, sequence, @@ -454,20 +452,33 @@ export class WalletWrapper { this.wallet.account.account_number, ); txBuilder.addSignature(this.wallet.privKey.sign(signDocBytes)); - const res = await rest.tx.broadcastTx(this.chain.sdk as CosmosSDK, { - tx_bytes: txBuilder.txBytes(), - mode, - }); + if (DEBUG_SUBMIT_TX) { + console.log('\n\n\nStart broadcasting tx: ----------------------'); + console.log(JSON.stringify(txBuilder.toProtoJSON())); + } + const res = await cosmosclient.rest.tx.broadcastTx( + this.chain.sdk as CosmosSDK, + { + tx_bytes: txBuilder.txBytes(), + mode, + }, + ); const code = res.data?.tx_response.code; + if (DEBUG_SUBMIT_TX) { + console.log('async response code: ', code); + } if (code !== 0) { throw new Error(`broadcast error: ${res.data?.tx_response.raw_log}`); } const txhash = res.data?.tx_response.txhash; + if (DEBUG_SUBMIT_TX) { + console.log('tx hash: ', txhash); + } let error = null; while (numAttempts > 0) { await this.chain.blockWaiter.waitBlocks(1); numAttempts--; - const data = await rest.tx + const data = await cosmosclient.rest.tx .getTx(this.chain.sdk as CosmosSDK, txhash) .catch((reason) => { error = reason; @@ -475,6 +486,14 @@ export class WalletWrapper { }); if (data != null) { this.wallet.account.sequence++; + if (DEBUG_SUBMIT_TX) { + const code = +data.data?.tx_response.code; + console.log('response code: ', code); + if (code > 0) { + console.log('\x1b[31m error log: ', data.data?.tx_response.raw_log); + } + console.log('response: ', JSON.stringify(data.data)); + } return data.data; } } @@ -484,7 +503,7 @@ export class WalletWrapper { // storeWasm stores the wasm code by the passed path on the blockchain. async storeWasm(fileName: string): Promise { - const msg = new cosmwasmproto.cosmwasm.wasm.v1.MsgStoreCode({ + const msg = new cosmwasmclient.proto.cosmwasm.wasm.v1.MsgStoreCode({ sender: this.wallet.address.toString(), wasm_byte_code: await getContractBinary(fileName), instantiate_permission: null, @@ -514,13 +533,14 @@ export class WalletWrapper { label: string, admin: string = this.wallet.address.toString(), ): Promise>> { - const msgInit = new cosmwasmproto.cosmwasm.wasm.v1.MsgInstantiateContract({ - code_id: codeId + '', - sender: this.wallet.address.toString(), - admin: admin, - label, - msg: Buffer.from(msg), - }); + const msgInit = + new cosmwasmclient.proto.cosmwasm.wasm.v1.MsgInstantiateContract({ + code_id: codeId + '', + sender: this.wallet.address.toString(), + admin: admin, + label, + msg: Buffer.from(msg), + }); const data = await this.execTx( { @@ -529,7 +549,7 @@ export class WalletWrapper { }, [msgInit], 10, - rest.tx.BroadcastTxMode.Block, + cosmosclient.rest.tx.BroadcastTxMode.Sync, ); if (data.tx_response.code !== 0) { @@ -545,15 +565,16 @@ export class WalletWrapper { async executeContract( contract: string, msg: string, - funds: proto.cosmos.base.v1beta1.ICoin[] = [], - ): Promise { + funds: cosmosclient.proto.cosmos.base.v1beta1.ICoin[] = [], + ): Promise { const sender = this.wallet.address.toString(); - const msgExecute = new cosmwasmproto.cosmwasm.wasm.v1.MsgExecuteContract({ - sender, - contract, - msg: Buffer.from(msg), - funds, - }); + const msgExecute = + new cosmwasmclient.proto.cosmwasm.wasm.v1.MsgExecuteContract({ + sender, + contract, + msg: Buffer.from(msg), + funds, + }); const res = await this.execTx( { @@ -586,11 +607,12 @@ export class WalletWrapper { amount: [{ denom: this.chain.denom, amount: '1000' }], }, sequence: number = this.wallet.account.sequence, - mode: rest.tx.BroadcastTxMode = rest.tx.BroadcastTxMode.Async, - ): Promise { + mode: cosmosclient.rest.tx.BroadcastTxMode = cosmosclient.rest.tx + .BroadcastTxMode.Sync, + ): Promise { const { amount, denom = this.chain.denom } = typeof coin === 'string' ? { amount: coin } : coin; - const msgSend = new proto.cosmos.bank.v1beta1.MsgSend({ + const msgSend = new cosmosclient.proto.cosmos.bank.v1beta1.MsgSend({ from_address: this.wallet.address.toString(), to_address: to, amount: [{ denom, amount }], @@ -608,15 +630,16 @@ export class WalletWrapper { amount: [{ denom: this.chain.denom, amount: '1000' }], }, sequence: number = this.wallet.account.sequence, - mode: rest.tx.BroadcastTxMode = rest.tx.BroadcastTxMode.Async, - ): Promise { + mode: cosmosclient.rest.tx.BroadcastTxMode = cosmosclient.rest.tx + .BroadcastTxMode.Sync, + ): Promise { const msg = new adminmodule.MsgSubmitProposal({ content: cosmosclient.codec.instanceToProtoAny( - new proto.cosmos.params.v1beta1.ParameterChangeProposal({ + new cosmosclient.proto.cosmos.params.v1beta1.ParameterChangeProposal({ title: 'mock', description: 'mock', changes: [ - new proto.cosmos.params.v1beta1.ParamChange({ + new cosmosclient.proto.cosmos.params.v1beta1.ParamChange({ key: key, subspace: subspace, value: value, @@ -713,8 +736,8 @@ export class WalletWrapper { */ async simulateFeeBurning( amount: number, - ): Promise { - const msgSend = new proto.cosmos.bank.v1beta1.MsgSend({ + ): Promise { + const msgSend = new cosmosclient.proto.cosmos.bank.v1beta1.MsgSend({ from_address: this.wallet.address.toString(), to_address: this.wallet.address.toString(), amount: [{ denom: this.chain.denom, amount: '1' }], @@ -740,7 +763,7 @@ export class WalletWrapper { async msgRemoveInterchainQuery( queryId: number, sender: string, - ): Promise { + ): Promise { const msgRemove = new neutron.interchainqueries.MsgRemoveInterchainQueryRequest({ query_id: queryId, @@ -767,7 +790,7 @@ export class WalletWrapper { receiver: string, timeoutHeight: IHeight, memo?: string, - ): Promise { + ): Promise { const msgSend = new ibcProto.applications.transfer.v1.MsgTransfer({ source_port: sourcePort, source_channel: sourceChannel, @@ -792,12 +815,13 @@ export class WalletWrapper { delegatorAddress: string, validatorAddress: string, amount: string, - ): Promise { - const msgDelegate = new proto.cosmos.staking.v1beta1.MsgDelegate({ - delegator_address: delegatorAddress, - validator_address: validatorAddress, - amount: { denom: this.chain.denom, amount: amount }, - }); + ): Promise { + const msgDelegate = + new cosmosclient.proto.cosmos.staking.v1beta1.MsgDelegate({ + delegator_address: delegatorAddress, + validator_address: validatorAddress, + amount: { denom: this.chain.denom, amount: amount }, + }); const res = await this.execTx( { gas_limit: Long.fromString('200000'), @@ -809,7 +833,7 @@ export class WalletWrapper { } } -type TxResponseType = Awaited>; +type TxResponseType = Awaited>; export const getEventAttributesFromTx = ( data: TxResponseType['data'], @@ -855,7 +879,7 @@ export const mnemonicToWallet = async ( addrPrefix: string, validate = true, ): Promise => { - const privKey = new proto.cosmos.crypto.secp256k1.PrivKey({ + const privKey = new cosmosclient.proto.cosmos.crypto.secp256k1.PrivKey({ key: await cosmosclient.generatePrivKeyFromMnemonic(mnemonic), }); @@ -872,7 +896,7 @@ export const mnemonicToWallet = async ( const address = walletType.fromPublicKey(pubKey); // eslint-disable-next-line no-prototype-builtins if (cosmosclient.ValAddress !== walletType && validate) { - account = await rest.auth + account = await cosmosclient.rest.auth .account(sdk, address) .then((res) => cosmosclient.codec.protoJSONToInstance( @@ -884,7 +908,9 @@ export const mnemonicToWallet = async ( throw e; }); - if (!(account instanceof proto.cosmos.auth.v1beta1.BaseAccount)) { + if ( + !(account instanceof cosmosclient.proto.cosmos.auth.v1beta1.BaseAccount) + ) { throw new Error("can't get account"); } } @@ -939,16 +965,15 @@ export const getEventAttribute = ( .map((event) => event.attributes) .flat(); - const encodedAttr = attributes?.find( - (attr) => attr.key === Buffer.from(attribute).toString('base64'), - )?.value as string; + const attrValue = attributes?.find((attr) => attr.key === attribute) + ?.value as string; - expect(encodedAttr).toBeDefined(); + expect(attrValue).toBeDefined(); - return Buffer.from(encodedAttr, 'base64').toString('ascii'); + return attrValue; }; -export const filterIBCDenoms = (list: Coin[]) => +export const filterIBCDenoms = (list: ICoin[]) => list.filter( (coin) => coin.denom && ![IBC_ATOM_DENOM, IBC_USDC_DENOM].includes(coin.denom), diff --git a/src/helpers/dao.ts b/src/helpers/dao.ts index e131e6dc..53fa5ad5 100644 --- a/src/helpers/dao.ts +++ b/src/helpers/dao.ts @@ -6,7 +6,7 @@ import { WalletWrapper, wrapMsg, } from './cosmos'; -import { InlineResponse20075TxResponse } from '@cosmos-client/core/cjs/openapi/api'; +import { BroadcastTx200ResponseTxResponse } from '@cosmos-client/core/cjs/openapi/api'; import { getWithAttempts } from './wait'; import { MultiChoiceOption, @@ -30,7 +30,7 @@ import { upgradeProposal, } from './proposal'; import { ibc } from '../generated/ibc/proto'; -import { cosmosclient } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; export type GetSubdaoResponse = { addr: string; charter: string }; @@ -509,7 +509,7 @@ export class DaoMember { async voteYes( proposalId: number, customModule = 'single', - ): Promise { + ): Promise { return await this.user.executeContract( this.dao.contracts.proposals[customModule].address, JSON.stringify({ vote: { proposal_id: proposalId, vote: 'yes' } }), @@ -522,7 +522,7 @@ export class DaoMember { async voteNo( proposalId: number, customModule = 'single', - ): Promise { + ): Promise { return await this.user.executeContract( this.dao.contracts.proposals[customModule].address, JSON.stringify({ vote: { proposal_id: proposalId, vote: 'no' } }), @@ -535,7 +535,7 @@ export class DaoMember { async voteForOption( proposalId: number, optionId: number, - ): Promise { + ): Promise { return await this.user.executeContract( this.dao.contracts.proposals.multiple.address, JSON.stringify({ @@ -544,7 +544,7 @@ export class DaoMember { ); } - async bondFunds(amount: string): Promise { + async bondFunds(amount: string): Promise { const vaultAddress = (this.dao.contracts.voting as VotingVaultsModule) .vaults.neutron.address; return await this.user.executeContract( @@ -556,7 +556,7 @@ export class DaoMember { ); } - async unbondFunds(amount: string): Promise { + async unbondFunds(amount: string): Promise { const vaultAddress = (this.dao.contracts.voting as VotingVaultsModule) .vaults.neutron.address; return await this.user.executeContract( @@ -614,7 +614,7 @@ export class DaoMember { async executeProposal( proposalId: number, customModule = 'single', - ): Promise { + ): Promise { return await this.user.executeContract( this.dao.contracts.proposals[customModule].address, JSON.stringify({ execute: { proposal_id: proposalId } }), @@ -853,7 +853,7 @@ export class DaoMember { async executeTimelockedProposal( proposalId: number, customModule = 'single', - ): Promise { + ): Promise { return this.user.executeContract( this.dao.contracts.proposals[customModule].pre_propose.timelock.address, JSON.stringify({ @@ -867,7 +867,7 @@ export class DaoMember { async overruleTimelockedProposal( timelockAddress: string, proposalId: number, - ): Promise { + ): Promise { const overruleProposalId = await this.dao.getOverruleProposalId( timelockAddress, proposalId, diff --git a/src/helpers/env.ts b/src/helpers/env.ts index e9128581..d442bc96 100644 --- a/src/helpers/env.ts +++ b/src/helpers/env.ts @@ -7,6 +7,7 @@ import path from 'path'; import crypto from 'crypto'; const CONTRACTS_PATH = process.env.CONTRACTS_PATH || './contracts'; +export const DEBUG_SUBMIT_TX = process.env.DEBUG_SUBMIT_TX; const BLOCKS_COUNT_BEFORE_START = process.env.BLOCKS_COUNT_BEFORE_START ? parseInt(process.env.BLOCKS_COUNT_BEFORE_START, 10) @@ -62,7 +63,7 @@ export const setup = async (host1: string, host2: string) => { const waitForHTTP = async ( host = 'http://127.0.0.1:1317', - path = `blocks/${BLOCKS_COUNT_BEFORE_START}`, + path = `cosmos/base/tendermint/v1beta1/blocks/${BLOCKS_COUNT_BEFORE_START}`, timeout = 280000, ) => { const start = Date.now(); diff --git a/src/helpers/icq.ts b/src/helpers/icq.ts index 89d250ba..f0c842b4 100644 --- a/src/helpers/icq.ts +++ b/src/helpers/icq.ts @@ -2,7 +2,7 @@ import { CosmosSDK } from '@cosmos-client/core/cjs/sdk'; import axios, { AxiosResponse } from 'axios'; import { CosmosWrapper, WalletWrapper } from './cosmos'; import { getWithAttempts } from './wait'; -import { rest } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; /** * getRegisteredQuery queries the contract for a registered query details registered by the given @@ -150,7 +150,7 @@ export const registerTransfersQuery = async ( }), ); expect(res.code).toEqual(0); - const tx = await rest.tx.getTx( + const tx = await cosmosclient.rest.tx.getTx( cm.chain.sdk as CosmosSDK, res.txhash as string, ); diff --git a/src/helpers/tge.ts b/src/helpers/tge.ts index 62cec7b8..18710742 100644 --- a/src/helpers/tge.ts +++ b/src/helpers/tge.ts @@ -16,7 +16,7 @@ import { LockdropVaultConfig, VestingLpVaultConfig, } from './dao'; -import { InlineResponse20075TxResponse } from '@cosmos-client/core/cjs/openapi/api'; +import { BroadcastTx200ResponseTxResponse } from '@cosmos-client/core/cjs/openapi/api'; import { msgMintDenom, msgCreateDenom } from './tokenfactory'; // subdenom of rewards asset distributed by the generator contract. @@ -1212,7 +1212,7 @@ export const executeLockdropVaultUpdateConfig = async ( oracleAtomContract: string | null, name: string | null, description: string | null, -): Promise => +): Promise => cm.executeContract( contractAddress, JSON.stringify({ diff --git a/src/helpers/tokenfactory.ts b/src/helpers/tokenfactory.ts index dfa62938..e85df9bf 100644 --- a/src/helpers/tokenfactory.ts +++ b/src/helpers/tokenfactory.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { cosmosclient } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; import { cosmos, osmosis } from '../generated/proto'; import ICoin = cosmos.base.v1beta1.ICoin; -import { InlineResponse20075TxResponse } from '@cosmos-client/core/cjs/openapi/api'; +import { BroadcastTx200ResponseTxResponse } from '@cosmos-client/core/cjs/openapi/api'; import { WalletWrapper } from '../helpers/cosmos'; import Long from 'long'; @@ -27,7 +27,7 @@ export const msgMintDenom = async ( cmNeutron: WalletWrapper, creator: string, amount: ICoin, -): Promise => { +): Promise => { const msgMint = new osmosis.tokenfactory.v1beta1.MsgMint({ sender: creator, amount, @@ -48,7 +48,7 @@ export const msgCreateDenom = async ( cmNeutron: WalletWrapper, creator: string, subdenom: string, -): Promise => { +): Promise => { const msgCreateDenom = new osmosis.tokenfactory.v1beta1.MsgCreateDenom({ sender: creator, subdenom, @@ -70,7 +70,7 @@ export const msgBurn = async ( creator: string, denom: string, amountToBurn: string, -): Promise => { +): Promise => { const msgBurn = new osmosis.tokenfactory.v1beta1.MsgBurn({ sender: creator, amount: { @@ -96,7 +96,7 @@ export const msgChangeAdmin = async ( creator: string, denom: string, newAdmin: string, -): Promise => { +): Promise => { const msgChangeAdmin = new osmosis.tokenfactory.v1beta1.MsgChangeAdmin({ sender: creator, denom, diff --git a/src/helpers/wait.ts b/src/helpers/wait.ts index 93443df4..add8bf64 100644 --- a/src/helpers/wait.ts +++ b/src/helpers/wait.ts @@ -1,4 +1,4 @@ -import { rest, websocket } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; import { CosmosSDK } from '@cosmos-client/core/cjs/sdk'; global.WebSocket = require('ws'); @@ -9,7 +9,7 @@ export const wait = async (seconds: number) => }); export const getHeight = async (sdk: CosmosSDK) => { - const block = await rest.tendermint.getLatestBlock(sdk); + const block = await cosmosclient.rest.tendermint.getLatestBlock(sdk); return +block.data.block.header.height; }; @@ -29,14 +29,14 @@ export class BlockWaiter { } reject(new Error('waitBlocks: timeout')); }, timeout); - ws = websocket.connect(this.url); + ws = cosmosclient.websocket.connect(this.url); ws.next({ id: '1', jsonrpc: '2.0', method: 'subscribe', params: ["tm.event='NewBlock'"], }); - ws.subscribe((res: websocket.ResponseSchema) => { + ws.subscribe((res: cosmosclient.websocket.ResponseSchema) => { if (Object.entries(res.result).length !== 0) { n--; if (n == 0) { diff --git a/src/testcases/common_localcosmosnet.ts b/src/testcases/common_localcosmosnet.ts index 34807c33..8a2c0bee 100644 --- a/src/testcases/common_localcosmosnet.ts +++ b/src/testcases/common_localcosmosnet.ts @@ -1,5 +1,5 @@ import { exec } from 'child_process'; -import { cosmosclient, rest } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; import { Wallet } from '../types'; import { COSMOS_DENOM, @@ -14,7 +14,8 @@ import { BlockWaiter } from '../helpers/wait'; import { generateMnemonic } from 'bip39'; import Long from 'long'; import { AccAddress } from '@cosmos-client/core/cjs/types'; -import { Coin } from '@cosmos-client/core/cjs/openapi/api'; +import { cosmos } from '@cosmos-client/core/cjs/proto'; +import ICoin = cosmos.base.v1beta1.ICoin; const config = require('../config.json'); @@ -192,10 +193,11 @@ export class TestStateLocalCosmosTestNet { { amount, denom }, fee, sequence, - rest.tx.BroadcastTxMode.Block, + cosmosclient.rest.tx.BroadcastTxMode.Async, ); break; } catch (e) { + console.log(e); await cm.chain.blockWaiter.waitBlocks(1); attemptCount++; } @@ -211,7 +213,7 @@ export class TestStateLocalCosmosTestNet { blockWaiter: BlockWaiter, wallet: Wallet, denom: string, - balances: Coin[] = [], + balances: ICoin[] = [], ) { if (balances.length === 0) { balances = [ diff --git a/src/testcases/parallel/dao_assert.test.ts b/src/testcases/parallel/dao_assert.test.ts index c0d850d2..12d4c3fa 100644 --- a/src/testcases/parallel/dao_assert.test.ts +++ b/src/testcases/parallel/dao_assert.test.ts @@ -239,7 +239,10 @@ describe('DAO / Check', () => { sudao.voting.address, // (sudao.voting as VotingCw4Module).cw4group.address, // todo fix this ]; - if (sudao.proposals.single.pre_propose.timelock) { + if ( + sudao.proposals.single.pre_propose.timelock && + sudao.proposals.single.pre_propose.timelock.address != null // TODO: figure out where a null value come from? + ) { contractsList.push( sudao.proposals.single.pre_propose.timelock.address, ); diff --git a/src/testcases/parallel/governance.test.ts b/src/testcases/parallel/governance.test.ts index dd08df71..47a2cc0f 100644 --- a/src/testcases/parallel/governance.test.ts +++ b/src/testcases/parallel/governance.test.ts @@ -951,14 +951,17 @@ describe('Neutron / Governance', () => { }); describe('check that only admin can create valid proposals', () => { test('submit admin proposal from non-admin addr, should fail', async () => { + console.log('1'); const hostStatus = await neutronChain.queryHostEnabled(); expect(hostStatus).toEqual(false); + console.log('2'); const res = await daoMember1.user.msgSendDirectProposal( 'icahost', 'HostEnabled', 'true', ); expect(res.code).toEqual(1); // must be admin to submit proposals to admin-module + console.log('3'); const afterProposalHostStatus = await neutronChain.queryHostEnabled(); expect(afterProposalHostStatus).toEqual(false); }); diff --git a/src/testcases/parallel/overrule.test.ts b/src/testcases/parallel/overrule.test.ts index 76cf88d3..87294c39 100644 --- a/src/testcases/parallel/overrule.test.ts +++ b/src/testcases/parallel/overrule.test.ts @@ -10,7 +10,7 @@ import { deploySubdao, } from '../../helpers/dao'; import { TestStateLocalCosmosTestNet } from '../common_localcosmosnet'; -import { InlineResponse20075TxResponse } from '@cosmos-client/core/cjs/openapi/api'; +import { BroadcastTx200ResponseTxResponse } from '@cosmos-client/core/cjs/openapi/api'; describe('Neutron / Subdao', () => { let testState: TestStateLocalCosmosTestNet; @@ -174,7 +174,7 @@ async function voteAgainstOverrule( member: DaoMember, timelockAddress: string, proposalId: number, -): Promise { +): Promise { const propId = await member.dao.getOverruleProposalId( timelockAddress, proposalId, diff --git a/src/testcases/parallel/subdao.test.ts b/src/testcases/parallel/subdao.test.ts index 90cfcb9a..50c01318 100644 --- a/src/testcases/parallel/subdao.test.ts +++ b/src/testcases/parallel/subdao.test.ts @@ -18,7 +18,7 @@ import { getHeight, wait } from '../../helpers/wait'; import { TestStateLocalCosmosTestNet } from '../common_localcosmosnet'; import { AccAddress, ValAddress } from '@cosmos-client/core/cjs/types'; import { Wallet } from '../../types'; -import { InlineResponse20075TxResponse } from '@cosmos-client/core/cjs/openapi/api'; +import { BroadcastTx200ResponseTxResponse } from '@cosmos-client/core/cjs/openapi/api'; describe('Neutron / Subdao', () => { let testState: TestStateLocalCosmosTestNet; @@ -545,7 +545,7 @@ describe('Neutron / Subdao', () => { test('Update config: owner success', async () => { await neutronAccount1.executeContract( - subDao.contracts.proposals.single.pre_propose.timelock.address, + subDao.contracts.proposals.single.pre_propose.timelock!.address, JSON.stringify({ update_config: { owner: demo2Addr.toString(), @@ -561,7 +561,7 @@ describe('Neutron / Subdao', () => { }; const c = await neutronChain.queryContract( - subDao.contracts.proposals.single.pre_propose.timelock.address, + subDao.contracts.proposals.single.pre_propose.timelock!.address, { config: {}, }, @@ -572,7 +572,7 @@ describe('Neutron / Subdao', () => { test('Update config: old owner lost update rights', async () => { await expect( neutronAccount1.executeContract( - subDao.contracts.proposals.single.pre_propose.timelock.address, + subDao.contracts.proposals.single.pre_propose.timelock!.address, JSON.stringify({ update_config: {}, }), @@ -582,7 +582,7 @@ describe('Neutron / Subdao', () => { test('Update config: update both params with new owner', async () => { await neutronAccount2.executeContract( - subDao.contracts.proposals.single.pre_propose.timelock.address, + subDao.contracts.proposals.single.pre_propose.timelock!.address, JSON.stringify({ update_config: { owner: demo1Addr.toString(), @@ -598,7 +598,7 @@ describe('Neutron / Subdao', () => { }; const c = await neutronChain.queryContract( - subDao.contracts.proposals.single.pre_propose.timelock.address, + subDao.contracts.proposals.single.pre_propose.timelock!.address, { config: {}, }, @@ -640,7 +640,7 @@ describe('Neutron / Subdao', () => { test('Query proposals', async () => { const proposals = await neutronChain.queryContract( - subDAOQueryTestScope.contracts.proposals.single.pre_propose.timelock + subDAOQueryTestScope.contracts.proposals.single.pre_propose.timelock! .address, { list_proposals: { @@ -657,7 +657,7 @@ describe('Neutron / Subdao', () => { test('Query proposals: no params', async () => { const proposals = await neutronChain.queryContract( - subDAOQueryTestScope.contracts.proposals.single.pre_propose.timelock + subDAOQueryTestScope.contracts.proposals.single.pre_propose.timelock! .address, { list_proposals: {}, @@ -672,7 +672,7 @@ describe('Neutron / Subdao', () => { test('Query proposals: no params', async () => { const proposals = await neutronChain.queryContract( - subDAOQueryTestScope.contracts.proposals.single.pre_propose.timelock + subDAOQueryTestScope.contracts.proposals.single.pre_propose.timelock! .address, { list_proposals: { @@ -689,7 +689,7 @@ describe('Neutron / Subdao', () => { test('Query proposals: limit 100', async () => { const proposals = await neutronChain.queryContract( - subDAOQueryTestScope.contracts.proposals.single.pre_propose.timelock + subDAOQueryTestScope.contracts.proposals.single.pre_propose.timelock! .address, { list_proposals: { @@ -775,9 +775,9 @@ async function overruleTimelockedProposalMock( acc: DaoMember, proposalId: number, customModule = 'single', -): Promise { +): Promise { return acc.user.executeContract( - acc.dao.contracts.proposals[customModule].pre_propose.timelock.address, + acc.dao.contracts.proposals[customModule].pre_propose.timelock!.address, JSON.stringify({ overrule_proposal: { proposal_id: proposalId, diff --git a/src/testcases/parallel/tge.credits_vault.test.ts b/src/testcases/parallel/tge.credits_vault.test.ts index 8bf2be19..9109bc49 100644 --- a/src/testcases/parallel/tge.credits_vault.test.ts +++ b/src/testcases/parallel/tge.credits_vault.test.ts @@ -8,7 +8,7 @@ import { AccAddress, ValAddress } from '@cosmos-client/core/cjs/types'; import { Wallet } from '../../types'; import { CreditsVaultConfig } from '../../helpers/dao'; import { NeutronContract } from '../../helpers/types'; -import { InlineResponse20075TxResponse } from '@cosmos-client/core/cjs/openapi/api'; +import { BroadcastTx200ResponseTxResponse } from '@cosmos-client/core/cjs/openapi/api'; import { getHeight } from '../../helpers/wait'; describe('Neutron / Credits Vault', () => { @@ -333,7 +333,7 @@ const updateCreditsContractConfig = async ( airdropAddress: string, lockdropAddress: string, whenWithdrawable: number, -): Promise => +): Promise => wallet.executeContract( creditsContractAddress, JSON.stringify({ @@ -383,7 +383,7 @@ const mintTokens = async ( wallet: WalletWrapper, creditsContractAddress: string, amount: string, -): Promise => +): Promise => wallet.executeContract( creditsContractAddress, JSON.stringify({ @@ -402,7 +402,7 @@ const sendTokens = async ( creditsContractAddress: string, recipient: string, amount: string, -): Promise => +): Promise => wallet.executeContract( creditsContractAddress, JSON.stringify({ @@ -420,7 +420,7 @@ const updateVaultConfig = async ( name: string, description: string, owner?: string, -): Promise => +): Promise => wallet.executeContract( vaultContract, JSON.stringify({ diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index a3757c1b..54b3506f 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-non-null-assertion */ import { TestStateLocalCosmosTestNet } from '../common_localcosmosnet'; import { CosmosWrapper, diff --git a/src/testcases/run_in_band/interchain_kv_query.test.ts b/src/testcases/run_in_band/interchain_kv_query.test.ts index 95f710bc..1137b367 100644 --- a/src/testcases/run_in_band/interchain_kv_query.test.ts +++ b/src/testcases/run_in_band/interchain_kv_query.test.ts @@ -1,4 +1,4 @@ -import { proto, rest } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; import { COSMOS_DENOM, CosmosWrapper, @@ -18,8 +18,9 @@ import { import { NeutronContract } from '../../helpers/types'; import { Dao, DaoMember, getDaoContracts } from '../../helpers/dao'; import { paramChangeProposal } from '../../helpers/proposal'; -import { Coin } from '@cosmos-client/core/cjs/openapi/api'; import { CodeId } from '../../types'; +import { cosmos } from '@cosmos-client/core/cjs/proto'; +import ICoin = cosmos.base.v1beta1.ICoin; const getKvCallbackStatus = ( cm: CosmosWrapper, contractAddress: string, @@ -216,12 +217,12 @@ const validateBalanceQuery = async ( contractAddress, queryId, ); - const directQueryResult = await rest.bank.allBalances( + const directQueryResult = await cosmosclient.rest.bank.allBalances( targetCm.sdk as CosmosSDK, address, ); expect(filterIBCDenoms(interchainQueryResult.balances.coins)).toEqual( - filterIBCDenoms(directQueryResult.data.balances as Coin[]), + filterIBCDenoms(directQueryResult.data.balances as ICoin[]), ); }; @@ -304,7 +305,9 @@ describe('Neutron / Interchain KV Query', () => { ); } catch (err) { const error = err as Error; - expect(error.message).toMatch(/0untrn is smaller than 1000000untrn/i); + expect(error.message).toMatch( + /spendable balance {2}is smaller than 1000000untrn/i, + ); } }); @@ -688,12 +691,13 @@ describe('Neutron / Interchain KV Query', () => { `"${querySubmitTimeoutParam.toString()}"`, ); - const queryDepositParam: proto.cosmos.base.v1beta1.ICoin[] = [ - { - amount: '10000', - denom: NEUTRON_DENOM, - }, - ]; + const queryDepositParam: cosmosclient.proto.cosmos.base.v1beta1.ICoin[] = + [ + { + amount: '10000', + denom: NEUTRON_DENOM, + }, + ]; await acceptInterchainqueriesParamsChangeProposal( neutronAccount, @@ -755,7 +759,7 @@ describe('Neutron / Interchain KV Query', () => { testState.wallets.neutron.demo1.address.toString(), ); balancesBeforeRegistration.balances = filterIBCDenoms( - balancesBeforeRegistration.balances as Coin[], + balancesBeforeRegistration.balances as ICoin[], ); const queryId = await registerBalanceQuery( @@ -781,7 +785,7 @@ describe('Neutron / Interchain KV Query', () => { testState.wallets.neutron.demo1.address.toString(), ); balancesAfterRegistration.balances = filterIBCDenoms( - balancesAfterRegistration.balances as Coin[], + balancesAfterRegistration.balances as ICoin[], ); await removeQueryViaTx(neutronAccount, queryId); @@ -793,7 +797,7 @@ describe('Neutron / Interchain KV Query', () => { testState.wallets.neutron.demo1.address.toString(), ), async (response) => { - const balances = filterIBCDenoms(response.balances as Coin[]); + const balances = filterIBCDenoms(response.balances as ICoin[]); const beforeBalances = balancesAfterRegistration.balances; return ( balances[0].denom === balances[0].denom && @@ -809,7 +813,7 @@ describe('Neutron / Interchain KV Query', () => { testState.wallets.neutron.demo1.address.toString(), ); balancesAfterRemoval.balances = filterIBCDenoms( - balancesAfterRemoval.balances as Coin[], + balancesAfterRemoval.balances as ICoin[], ); // Add fees (100) that was deducted during removeQueryViaTx call const balancesAfterRemovalWithFee = { diff --git a/src/testcases/run_in_band/interchain_tx_query_plain.test.ts b/src/testcases/run_in_band/interchain_tx_query_plain.test.ts index d268d700..f6e22350 100644 --- a/src/testcases/run_in_band/interchain_tx_query_plain.test.ts +++ b/src/testcases/run_in_band/interchain_tx_query_plain.test.ts @@ -4,7 +4,7 @@ import { NEUTRON_DENOM, WalletWrapper, } from '../../helpers/cosmos'; -import { proto } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; import { TestStateLocalCosmosTestNet } from '../common_localcosmosnet'; import Long from 'long'; import { @@ -409,14 +409,14 @@ describe('Neutron / Interchain TX Query', () => { amount: [{ denom: gaiaChain.denom, amount: '1000' }], }, [ - new proto.cosmos.bank.v1beta1.MsgSend({ + new cosmosclient.proto.cosmos.bank.v1beta1.MsgSend({ from_address: gaiaAccount.wallet.address.toString(), to_address: watchedAddr1, amount: [ { denom: gaiaChain.denom, amount: amountToAddrFirst2.toString() }, ], }), - new proto.cosmos.bank.v1beta1.MsgSend({ + new cosmosclient.proto.cosmos.bank.v1beta1.MsgSend({ from_address: gaiaAccount.wallet.address.toString(), to_address: watchedAddr2, amount: [ diff --git a/src/testcases/run_in_band/interchaintx.test.ts b/src/testcases/run_in_band/interchaintx.test.ts index 7eed6ca4..34008089 100644 --- a/src/testcases/run_in_band/interchaintx.test.ts +++ b/src/testcases/run_in_band/interchaintx.test.ts @@ -1,5 +1,5 @@ import 'jest-extended'; -import { cosmosclient, rest } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; import { AccAddress } from '@cosmos-client/core/cjs/types'; import { COSMOS_DENOM, @@ -201,7 +201,7 @@ describe('Neutron / Interchain TXs', () => { const res1 = await getWithAttempts( gaiaChain.blockWaiter, () => - rest.staking.delegatorDelegations( + cosmosclient.rest.staking.delegatorDelegations( gaiaChain.sdk as CosmosSDK, icaAddress1 as unknown as AccAddress, ), @@ -219,7 +219,7 @@ describe('Neutron / Interchain TXs', () => { }, }, ]); - const res2 = await rest.staking.delegatorDelegations( + const res2 = await cosmosclient.rest.staking.delegatorDelegations( gaiaChain.sdk as CosmosSDK, icaAddress2 as unknown as AccAddress, ); @@ -511,7 +511,7 @@ describe('Neutron / Interchain TXs', () => { }); }); test('check validator state after ICA recreation', async () => { - const res = await rest.staking.delegatorDelegations( + const res = await cosmosclient.rest.staking.delegatorDelegations( gaiaChain.sdk as CosmosSDK, icaAddress1 as unknown as AccAddress, ); diff --git a/src/types.ts b/src/types.ts index 63d9cdc1..e7925589 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,15 +1,15 @@ -import { cosmosclient, proto } from '@cosmos-client/core'; +import cosmosclient from '@cosmos-client/core'; import bech32 from 'bech32'; export class Wallet { address: cosmosclient.AccAddress | cosmosclient.ValAddress; - account: proto.cosmos.auth.v1beta1.BaseAccount | null; + account: cosmosclient.proto.cosmos.auth.v1beta1.BaseAccount | null; pubKey: cosmosclient.PubKey; privKey: cosmosclient.PrivKey; addrPrefix: string; constructor( address: cosmosclient.AccAddress | cosmosclient.ValAddress, - account: proto.cosmos.auth.v1beta1.BaseAccount | null, + account: cosmosclient.proto.cosmos.auth.v1beta1.BaseAccount | null, pubKey: cosmosclient.PubKey, privKey: cosmosclient.PrivKey, addrPrefix: string, diff --git a/yarn.lock b/yarn.lock index d1e5e5be..cdf29ac7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1118,6 +1118,13 @@ "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-transform-typescript" "^7.18.6" +"@babel/runtime@^7.11.2": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" + integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/runtime@^7.8.4": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" @@ -1230,29 +1237,218 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cosmos-client/core@0.45.13": - version "0.45.13" - resolved "https://registry.yarnpkg.com/@cosmos-client/core/-/core-0.45.13.tgz#53a99f65c53b0cdefee245582a8bbea6f2a04e7d" - integrity sha512-OTszam3HnH+PSRh9oW/NkEocrOuQnClCGxRmFSOk25Lck8CTtDeKLzkpNbeyFDJVyJvW5IGLL//n9f43UMwbXQ== +"@confio/ics23@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@confio/ics23/-/ics23-0.6.8.tgz#2a6b4f1f2b7b20a35d9a0745bb5a446e72930b3d" + integrity sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w== + dependencies: + "@noble/hashes" "^1.0.0" + protobufjs "^6.8.8" + +"@cosmjs/amino@0.28.13", "@cosmjs/amino@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.28.13.tgz#b51417a23c1ff8ef8b85a6862eba8492c6c44f38" + integrity sha512-IHnH2zGwaY69qT4mVAavr/pfzx6YE+ud1NHJbvVePlbGiz68CXTi5LHR+K0lrKB5mQ7E+ZErWz2mw5U/x+V1wQ== + dependencies: + "@cosmjs/crypto" "0.28.13" + "@cosmjs/encoding" "0.28.13" + "@cosmjs/math" "0.28.13" + "@cosmjs/utils" "0.28.13" + +"@cosmjs/cli@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/cli/-/cli-0.28.13.tgz#501cab1454353b6e90c0d4928a15adc3a9ca8ddb" + integrity sha512-6mbtKmaamKYgaXblSyLCsyEUJTa0GpZLt+ODfwdEUpEdx/Ebwqt09yuCmk0kOQ/TqmruX8aN/ty1py3Opxa/FQ== + dependencies: + "@cosmjs/amino" "0.28.13" + "@cosmjs/cosmwasm-stargate" "0.28.13" + "@cosmjs/crypto" "0.28.13" + "@cosmjs/encoding" "0.28.13" + "@cosmjs/faucet-client" "0.28.13" + "@cosmjs/math" "0.28.13" + "@cosmjs/proto-signing" "0.28.13" + "@cosmjs/stargate" "0.28.13" + "@cosmjs/tendermint-rpc" "0.28.13" + "@cosmjs/utils" "0.28.13" + axios "^0.21.2" + babylon "^6.18.0" + chalk "^4" + cosmjs-types "^0.4.0" + diff "^4" + recast "^0.20" + ts-node "^8" + typescript "~4.4" + yargs "^15.3.1" + +"@cosmjs/cosmwasm-stargate@0.28.13", "@cosmjs/cosmwasm-stargate@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.28.13.tgz#bea77bc999aaafdb677f446465f648cd000c5b4a" + integrity sha512-dVZNOiRd8btQreRUabncGhVXGCS2wToXqxi9l3KEHwCJQ2RWTshuqV+EZAdCaYHE5W6823s2Ol2W/ukA9AXJPw== + dependencies: + "@cosmjs/amino" "0.28.13" + "@cosmjs/crypto" "0.28.13" + "@cosmjs/encoding" "0.28.13" + "@cosmjs/math" "0.28.13" + "@cosmjs/proto-signing" "0.28.13" + "@cosmjs/stargate" "0.28.13" + "@cosmjs/tendermint-rpc" "0.28.13" + "@cosmjs/utils" "0.28.13" + cosmjs-types "^0.4.0" + long "^4.0.0" + pako "^2.0.2" + +"@cosmjs/crypto@0.28.13", "@cosmjs/crypto@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.28.13.tgz#541b6a36f616b2da5a568ead46d4e83841ceb412" + integrity sha512-ynKfM0q/tMBQMHJby6ad8lR3gkgBKaelQhIsCZTjClsnuC7oYT9y3ThSZCUWr7Pa9h0J8ahU2YV2oFWFVWJQzQ== + dependencies: + "@cosmjs/encoding" "0.28.13" + "@cosmjs/math" "0.28.13" + "@cosmjs/utils" "0.28.13" + "@noble/hashes" "^1" + bn.js "^5.2.0" + elliptic "^6.5.3" + libsodium-wrappers "^0.7.6" + +"@cosmjs/encoding@0.28.13", "@cosmjs/encoding@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.28.13.tgz#7994e8e2c435beaf0690296ffb0f7f3eaec8150b" + integrity sha512-jtXbAYtV77rLHxoIrjGFsvgGjeTKttuHRv6cvuy3toCZzY7JzTclKH5O2g36IIE4lXwD9xwuhGJ2aa6A3dhNkA== + dependencies: + base64-js "^1.3.0" + bech32 "^1.1.4" + readonly-date "^1.0.0" + +"@cosmjs/faucet-client@0.28.13", "@cosmjs/faucet-client@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/faucet-client/-/faucet-client-0.28.13.tgz#0de75edbb997c852a62003f07c619899b3403a68" + integrity sha512-M6f0Wbw3hvdfYbVpfGDXwjbRAcCgMRm5slWK6cU8BpotckLvBb0xoBvrhklG/ooz6ZTZfAc2e/EJ8GVhksdvpA== + dependencies: + axios "^0.21.2" + +"@cosmjs/json-rpc@0.28.13": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.28.13.tgz#ff3f0c4a2f363b1a2c6779f8624a897e217fe297" + integrity sha512-fInSvg7x9P6p+GWqet+TMhrMTM3OWWdLJOGS5w2ryubMjgpR1rLiAx77MdTNkArW+/6sUwku0sN4veM4ENQu6A== + dependencies: + "@cosmjs/stream" "0.28.13" + xstream "^11.14.0" + +"@cosmjs/ledger-amino@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/ledger-amino/-/ledger-amino-0.28.13.tgz#b14cbcc72f600c7dd806def4c9e71fc35fce5eb0" + integrity sha512-KSwYjIFu/KXarvxxEyq3lpcJl5VvV0gAbY+tebeOvuCGHy9Px7CDOLOEHsR3ykJjYWh0hGrYwYmVk9zVHd474A== + dependencies: + "@cosmjs/amino" "0.28.13" + "@cosmjs/crypto" "0.28.13" + "@cosmjs/encoding" "0.28.13" + "@cosmjs/math" "0.28.13" + "@cosmjs/utils" "0.28.13" + ledger-cosmos-js "^2.1.8" + semver "^7.3.2" + +"@cosmjs/math@0.28.13", "@cosmjs/math@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.28.13.tgz#50c05bc67007a04216f7f5e0c93f57270f8cc077" + integrity sha512-PDpL8W/kbyeWi0mQ2OruyqE8ZUAdxPs1xCbDX3WXJwy2oU+X2UTbkuweJHVpS9CIqmZulBoWQAmlf6t6zr1N/g== + dependencies: + bn.js "^5.2.0" + +"@cosmjs/proto-signing@0.28.13", "@cosmjs/proto-signing@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.28.13.tgz#95ac12f0da0f0814f348f5ae996c3e96d015df61" + integrity sha512-nSl/2ZLsUJYz3Ad0RY3ihZUgRHIow2OnYqKsESMu+3RA/jTi9bDYhiBu8mNMHI0xrEJry918B2CyI56pOUHdPQ== + dependencies: + "@cosmjs/amino" "0.28.13" + "@cosmjs/crypto" "0.28.13" + "@cosmjs/encoding" "0.28.13" + "@cosmjs/math" "0.28.13" + "@cosmjs/utils" "0.28.13" + cosmjs-types "^0.4.0" + long "^4.0.0" + +"@cosmjs/socket@0.28.13": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.28.13.tgz#d8443ad6e91d080fc6b80a7e9cf297a56b1f6833" + integrity sha512-lavwGxQ5VdeltyhpFtwCRVfxeWjH5D5mmN7jgx9nuCf3XSFbTcOYxrk2pQ4usenu1Q1KZdL4Yl5RCNrJuHD9Ug== + dependencies: + "@cosmjs/stream" "0.28.13" + isomorphic-ws "^4.0.1" + ws "^7" + xstream "^11.14.0" + +"@cosmjs/stargate@0.28.13", "@cosmjs/stargate@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.28.13.tgz#a73d837a46ee8944e6eafe162f2ff6943c14350e" + integrity sha512-dVBMazDz8/eActHsRcZjDHHptOBMqvibj5CFgEtZBp22gP6ASzoAUXTlkSVk5FBf4sfuUHoff6st134/+PGMAg== + dependencies: + "@confio/ics23" "^0.6.8" + "@cosmjs/amino" "0.28.13" + "@cosmjs/encoding" "0.28.13" + "@cosmjs/math" "0.28.13" + "@cosmjs/proto-signing" "0.28.13" + "@cosmjs/stream" "0.28.13" + "@cosmjs/tendermint-rpc" "0.28.13" + "@cosmjs/utils" "0.28.13" + cosmjs-types "^0.4.0" + long "^4.0.0" + protobufjs "~6.11.3" + xstream "^11.14.0" + +"@cosmjs/stream@0.28.13": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.28.13.tgz#1e79d1116fda1e63e5ecddbd9d803d403942b1fa" + integrity sha512-AnjtfwT8NwPPkd3lhZhjOlOzT0Kn9bgEu2IPOZjQ1nmG2bplsr6TJmnwn0dJxHT7UGtex17h6whKB5N4wU37Wg== + dependencies: + xstream "^11.14.0" + +"@cosmjs/tendermint-rpc@0.28.13": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.13.tgz#0bf587ae66fa3f88319edbd258492d28e73f9f29" + integrity sha512-GB+ZmfuJIGQm0hsRtLYjeR3lOxF7Z6XyCBR0cX5AAYOZzSEBJjevPgUHD6tLn8zIhvzxaW3/VKnMB+WmlxdH4w== + dependencies: + "@cosmjs/crypto" "0.28.13" + "@cosmjs/encoding" "0.28.13" + "@cosmjs/json-rpc" "0.28.13" + "@cosmjs/math" "0.28.13" + "@cosmjs/socket" "0.28.13" + "@cosmjs/stream" "0.28.13" + "@cosmjs/utils" "0.28.13" + axios "^0.21.2" + readonly-date "^1.0.0" + xstream "^11.14.0" + +"@cosmjs/utils@0.28.13", "@cosmjs/utils@^0.28.3": + version "0.28.13" + resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.28.13.tgz#2fd2844ec832d7833811e2ae1691305d09791a08" + integrity sha512-dVeMBiyg+46x7XBZEfJK8yTihphbCFpjVYmLJVqmTsHfJwymQ65cpyW/C+V/LgWARGK8hWQ/aX9HM5Ao8QmMSg== + +"@cosmos-client/core@^0.47.1": + version "0.47.1" + resolved "https://registry.yarnpkg.com/@cosmos-client/core/-/core-0.47.1.tgz#f362ffbb26f98dc0f52aeaf5d5c1b9d342a9eafe" + integrity sha512-N/2MEm9ciZB9oeojY2y5/bQ8xn4wA/fqZ2mdR2OeRrd8w04cby3vG9qiQkJ1SK61EigOIETpthQtNw05+Swnsw== dependencies: axios "^0.23.0" bech32 "^1.1.4" bip32 "^2.0.6" bip39 "^3.0.4" - protobufjs "^6.11.2" + process "^0.11.10" + protobufjs "^6.11.3" rxjs "^7.4.0" secp256k1 "^4.0.2" tweetnacl "^1.0.3" -"@cosmos-client/cosmwasm@^0.20.1": - version "0.20.1" - resolved "https://registry.yarnpkg.com/@cosmos-client/cosmwasm/-/cosmwasm-0.20.1.tgz#8eebfc9231c4d55f98d1f3595cd6a26835ebee70" - integrity sha512-yrAHT08YjIanfZkGE7yZL5yTucZeEQcASVh5SSZDE05Wj84YlqUGGWi/9DgTRYnaDu+3Dj7CrGrVZc2xYXNGXA== +"@cosmos-client/cosmwasm@^0.40.1": + version "0.40.1" + resolved "https://registry.yarnpkg.com/@cosmos-client/cosmwasm/-/cosmwasm-0.40.1.tgz#6f02fa233e0ff7ff32ee8db2a151e20560b91df9" + integrity sha512-KjIZT8nMHkFMWzLmEcBIEaY5ktCS+MFlbrhR4QlLwCUR+wW/vvge4tMwgw1NfhVru5UWJXZTJIE1EAt8OCnyTw== dependencies: axios "^0.23.0" bech32 "^1.1.4" bip32 "^2.0.6" bip39 "^3.0.4" + cosmwasm "^1.1.1" + process "^0.11.10" protobufjs "^6.11.2" rxjs "^7.4.0" tiny-secp256k1 "^2.0.1" @@ -1591,6 +1787,40 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@ledgerhq/devices@^5.51.1": + version "5.51.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" + integrity sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA== + dependencies: + "@ledgerhq/errors" "^5.50.0" + "@ledgerhq/logs" "^5.50.0" + rxjs "6" + semver "^7.3.5" + +"@ledgerhq/errors@^5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" + integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== + +"@ledgerhq/hw-transport@^5.25.0": + version "5.51.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz#8dd14a8e58cbee4df0c29eaeef983a79f5f22578" + integrity sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw== + dependencies: + "@ledgerhq/devices" "^5.51.1" + "@ledgerhq/errors" "^5.50.0" + events "^3.3.0" + +"@ledgerhq/logs@^5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" + integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== + +"@noble/hashes@^1", "@noble/hashes@^1.0.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" + integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== + "@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" @@ -2127,6 +2357,13 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +ast-types@0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== + dependencies: + tslib "^2.0.1" + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -2137,6 +2374,13 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +axios@^0.21.2: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + axios@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/axios/-/axios-0.23.0.tgz#b0fa5d0948a8d1d75e3d5635238b6c4625b05149" @@ -2275,6 +2519,11 @@ babel-preset-jest@^29.2.0: babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -2287,6 +2536,11 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" +base64-js@^1.3.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + bech32@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -2484,7 +2738,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.3.1: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -2513,7 +2767,7 @@ chalk@^2.0.0, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: +chalk@^4, chalk@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2572,6 +2826,15 @@ cli-truncate@^3.1.0: slice-ansi "^5.0.0" string-width "^5.0.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -2693,6 +2956,31 @@ core-js@^3.23.5: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.5.tgz#1f82b0de5eece800827a2f59d597509c67650475" integrity sha512-7Vh11tujtAZy82da4duVreQysIoO2EvVrur7y6IzZkH1IHPSekuDi8Vuw1+YKjkbfWLRD7Nc9ICQ/sIUDutcyg== +cosmjs-types@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.4.1.tgz#3b2a53ba60d33159dd075596ce8267cfa7027063" + integrity sha512-I7E/cHkIgoJzMNQdFF0YVqPlaTqrqKHrskuSTIqlEyxfB5Lf3WKCajSXVK2yHOfOFfSux/RxEdpMzw/eO4DIog== + dependencies: + long "^4.0.0" + protobufjs "~6.11.2" + +cosmwasm@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cosmwasm/-/cosmwasm-1.1.1.tgz#02b22a269044c61714c85fa55e624b2f83f7c086" + integrity sha512-tjpjwnRIQ6VEcTVB0Pq8+F+Xp6jdnC3BcXmcDHCJHIc5Gg4Mm++AA+6fTfR0yuiPbEAk6wYkokfLtv12I0sPNQ== + dependencies: + "@cosmjs/amino" "^0.28.3" + "@cosmjs/cli" "^0.28.3" + "@cosmjs/cosmwasm-stargate" "^0.28.3" + "@cosmjs/crypto" "^0.28.3" + "@cosmjs/encoding" "^0.28.3" + "@cosmjs/faucet-client" "^0.28.3" + "@cosmjs/ledger-amino" "^0.28.3" + "@cosmjs/math" "^0.28.3" + "@cosmjs/proto-signing" "^0.28.3" + "@cosmjs/stargate" "^0.28.3" + "@cosmjs/utils" "^0.28.3" + create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -2787,6 +3075,11 @@ debug@^4.1.1: dependencies: ms "2.1.2" +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + decimal.js@^10.2.1: version "10.3.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" @@ -2844,7 +3137,7 @@ diff-sequences@^28.1.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== -diff@^4.0.1: +diff@^4, diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== @@ -2890,7 +3183,7 @@ electron-to-chromium@^1.4.84: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz#e7a3bfa9d745dd9b9e597616cb17283cc349781a" integrity sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg== -elliptic@^6.4.0, elliptic@^6.5.4: +elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -3062,7 +3355,7 @@ espree@^9.3.1: acorn-jsx "^5.3.1" eslint-visitor-keys "^3.3.0" -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -3148,6 +3441,11 @@ ethjs-unit@0.1.6: bn.js "4.11.6" number-to-bn "1.7.0" +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -3321,16 +3619,16 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +follow-redirects@^1.14.0, follow-redirects@^1.14.9: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + follow-redirects@^1.14.4: version "1.15.1" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== -follow-redirects@^1.14.9: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -3384,7 +3682,7 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.5: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -3446,6 +3744,13 @@ globals@^13.6.0, globals@^13.9.0: dependencies: type-fest "^0.20.2" +globalthis@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + globby@^11.0.4: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -3688,6 +3993,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -4331,6 +4641,16 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +ledger-cosmos-js@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/ledger-cosmos-js/-/ledger-cosmos-js-2.1.8.tgz#b409ecd1e77f630e6fb212a9f602fe5c6e8f054b" + integrity sha512-Gl7SWMq+3R9OTkF1hLlg5+1geGOmcHX9OdS+INDsGNxSiKRWlsWCvQipGoDnRIQ6CPo2i/Ze58Dw0Mt/l3UYyA== + dependencies: + "@babel/runtime" "^7.11.2" + "@ledgerhq/hw-transport" "^5.25.0" + bech32 "^1.1.4" + ripemd160 "^2.0.2" + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -4352,6 +4672,18 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +libsodium-wrappers@^0.7.6: + version "0.7.11" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz#53bd20606dffcc54ea2122133c7da38218f575f7" + integrity sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q== + dependencies: + libsodium "^0.7.11" + +libsodium@^0.7.11: + version "0.7.11" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.11.tgz#cd10aae7bcc34a300cc6ad0ac88fcca674cfbc2e" + integrity sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A== + lilconfig@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" @@ -4761,6 +5093,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pako@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -4897,6 +5234,11 @@ pretty-format@^28.0.0, pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -4905,7 +5247,7 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -protobufjs@^6.11.2: +protobufjs@^6.11.2, protobufjs@^6.11.3, protobufjs@^6.8.8, protobufjs@~6.11.2, protobufjs@~6.11.3: version "6.11.3" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== @@ -4995,6 +5337,21 @@ readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readonly-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9" + integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== + +recast@^0.20: + version "0.20.5" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" + integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== + dependencies: + ast-types "0.14.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + regenerate-unicode-properties@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" @@ -5058,6 +5415,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -5123,7 +5485,7 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: +ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== @@ -5145,6 +5507,13 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +rxjs@6: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + rxjs@^7.4.0: version "7.5.6" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" @@ -5248,6 +5617,11 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -5481,6 +5855,11 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +symbol-observable@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" + integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -5579,6 +5958,17 @@ treeify@^1.1.0: resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== +ts-node@^8: + version "8.10.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" + integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + ts-node@^9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" @@ -5591,11 +5981,16 @@ ts-node@^9.1.1: source-map-support "^0.5.17" yn "3.1.1" -tslib@^1.8.0, tslib@^1.8.1: +tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.0.1: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== + tslib@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" @@ -5693,6 +6088,11 @@ typescript@^4.1.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== +typescript@~4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== + uint8array-tools@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/uint8array-tools/-/uint8array-tools-0.0.7.tgz#a7a2bb5d8836eae2fade68c771454e6a438b390d" @@ -5850,6 +6250,11 @@ whatwg-url@^8.0.0, whatwg-url@^8.5.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -5910,6 +6315,11 @@ write-file-atomic@^4.0.1: imurmurhash "^0.1.4" signal-exit "^3.0.7" +ws@^7: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + ws@^7.4.6: version "7.5.7" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" @@ -5930,6 +6340,19 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== +xstream@^11.14.0: + version "11.14.0" + resolved "https://registry.yarnpkg.com/xstream/-/xstream-11.14.0.tgz#2c071d26b18310523b6877e86b4e54df068a9ae5" + integrity sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw== + dependencies: + globalthis "^1.0.1" + symbol-observable "^2.0.3" + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -5950,11 +6373,36 @@ yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"