From 9e0f9074e449c9464708c23301570db90f9dcdbe Mon Sep 17 00:00:00 2001 From: Andrei Zavgorodnii Date: Fri, 7 Jun 2024 06:21:08 +0100 Subject: [PATCH 01/33] feat: flashloans --- package.json | 3 +- src/testcases/run_in_band/flashloans.test.ts | 378 +++++++++++++++++++ 2 files changed, 380 insertions(+), 1 deletion(-) create mode 100644 src/testcases/run_in_band/flashloans.test.ts diff --git a/package.json b/package.json index b1a54de0..82b54966 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "test": "yarn test:parallel && yarn test:run_in_band", "test:parallel": "jest -b src/testcases/parallel", - "test:run_in_band": "yarn test:tge:auction && yarn test:tge:credits && yarn test:interchaintx && yarn test:interchain_kv_query && yarn test:interchain_tx_query_plain && yarn test:tokenomics && yarn test:reserve && yarn test:ibc_hooks && yarn test:float && yarn test:parameters && yarn test:dex_stargate && yarn test:globalfee && yarn test:dex_bindings && yarn test:pob && yarn test:slinky && yarn test:chain_manager", + "test:run_in_band": "yarn test:tge:auction && yarn test:tge:credits && yarn test:interchaintx && yarn test:interchain_kv_query && yarn test:interchain_tx_query_plain && yarn test:tokenomics && yarn test:reserve && yarn test:ibc_hooks && yarn test:float && yarn test:parameters && yarn test:dex_stargate && yarn test:globalfee && yarn test:dex_bindings && yarn test:pob && yarn test:slinky && yarn test:chain_manager && yarn test:flashloans", "test:simple": "jest -b src/testcases/parallel/simple", "test:slinky": "jest -b src/testcases/run_in_band/slinky", "test:stargate_queries": "jest -b src/testcases/parallel/stargate_queries", @@ -25,6 +25,7 @@ "test:ibc_hooks": "jest -b src/testcases/run_in_band/ibc_hooks", "test:parameters": "jest -b src/testcases/run_in_band/parameters", "test:chain_manager": "jest -b src/testcases/run_in_band/chain_manager", + "test:flashloans": "jest -b src/testcases/run_in_band/flashloans", "test:tokenfactory": "jest -b src/testcases/parallel/tokenfactory", "test:overrule": "jest -b src/testcases/parallel/overrule", "test:tge:vesting_lp_vault": "jest -b src/testcases/parallel/tge.vesting_lp_vault", diff --git a/src/testcases/run_in_band/flashloans.test.ts b/src/testcases/run_in_band/flashloans.test.ts new file mode 100644 index 00000000..dab8ae43 --- /dev/null +++ b/src/testcases/run_in_band/flashloans.test.ts @@ -0,0 +1,378 @@ +/* eslint-disable @typescript-eslint/no-non-null-assertion */ +import '@neutron-org/neutronjsplus'; +import { + WalletWrapper, + CosmosWrapper, + NEUTRON_DENOM, +} from '@neutron-org/neutronjsplus/dist/cosmos'; +import { TestStateLocalCosmosTestNet } from '@neutron-org/neutronjsplus'; +import { + Dao, + DaoMember, + getDaoContracts, +} from '@neutron-org/neutronjsplus/dist/dao'; +import { Wallet } from '@neutron-org/neutronjsplus/dist/types'; + +import config from '../../config.json'; +import { MsgGrant } from 'cosmjs-types/cosmos/authz/v1beta1/tx'; +import { GenericAuthorization } from 'cosmjs-types/cosmos/authz/v1beta1/authz'; +import Long from 'long'; +import cosmosclient from '@cosmos-client/core'; + +const DAO_INITIAL_BALANCE = 1000; // untrn + +describe('Neutron / Flashloans', () => { + let testState: TestStateLocalCosmosTestNet; + let neutronChain: CosmosWrapper; + let neutronAccount1: WalletWrapper; + let mainDaoMember: DaoMember; + let demo1Wallet: Wallet; + let mainDao: Dao; + let neutronFlashloansAddress: string; + let neutronFlashloansUserAddress: string; + + beforeAll(async () => { + testState = new TestStateLocalCosmosTestNet(config); + await testState.init(); + demo1Wallet = testState.wallets.qaNeutron.genQaWal1; + neutronChain = new CosmosWrapper( + testState.sdk1, + testState.blockWaiter1, + NEUTRON_DENOM, + ); + neutronAccount1 = new WalletWrapper(neutronChain, demo1Wallet); + + // ---------------------SET UP THE DAO + + const daoCoreAddress = await neutronChain.getNeutronDAOCore(); + const daoContracts = await getDaoContracts(neutronChain, daoCoreAddress); + + mainDao = new Dao(neutronChain, daoContracts); + mainDaoMember = new DaoMember(neutronAccount1, mainDao); + await mainDaoMember.bondFunds('10000'); + + await neutronAccount1.msgSend(daoCoreAddress, { + denom: 'untrn', + amount: DAO_INITIAL_BALANCE.toString(), + }); + + // ----------------------INSTANTIATE FLASHLOANS + + const neutronFlashloansCodeId = await neutronAccount1.storeWasm( + 'neutron_flashloans.wasm', + ); + const neutronFlashloansInitMsg = { + owner: demo1Wallet.address, + source: daoCoreAddress, + fee_rate: '0.01', + }; + const neutronFlashloansCodeIdRes = + await neutronAccount1.instantiateContract( + neutronFlashloansCodeId, + JSON.stringify(neutronFlashloansInitMsg), + 'neutron.flashloans', + ); + const f = (arr: Record[], id: number) => + (arr.find((v) => Number(v.code_id) == id) || {})._contract_address; + neutronFlashloansAddress = f( + neutronFlashloansCodeIdRes, + neutronFlashloansCodeId, + ); + + // -----------------INSTANTIATE FLASHLOANS USER CONTRACT + + const neutronFlashloansUserCodeId = await neutronAccount1.storeWasm( + 'neutron_flashloans_user.wasm', + ); + const neutronFlashloansUserInitMsg = {}; + const neutronFlashloansUserCodeIdRes = + await neutronAccount1.instantiateContract( + neutronFlashloansUserCodeId, + JSON.stringify(neutronFlashloansUserInitMsg), + 'neutron.flashloans', + ); + neutronFlashloansUserAddress = f( + neutronFlashloansUserCodeIdRes, + neutronFlashloansUserCodeId, + ); + + await neutronAccount1.msgSend(neutronFlashloansUserAddress, { + denom: 'untrn', + amount: '50', + }); + }); + + describe('Grant a GenericAuthorization from the DAO to the flashloans contract', () => { + let proposalId: number; + + test('Create and submit proposal', async () => { + const daoCoreAddress = await neutronChain.getNeutronDAOCore(); + + const expiration = new Date(); + expiration.setDate(expiration.getDate() + 1); + + const genericAuthorization = GenericAuthorization.fromPartial({ + msg: '/cosmos.bank.v1beta1.MsgSend', + }); + + const msgGrant = MsgGrant.fromPartial({ + granter: daoCoreAddress, + grantee: neutronFlashloansAddress, + grant: { + authorization: { + typeUrl: '/cosmos.authz.v1beta1.GenericAuthorization', + value: GenericAuthorization.encode(genericAuthorization).finish(), + }, + expiration: { + seconds: Long.fromNumber(expiration.getTime() / 1000), + nanos: 0, + }, + }, + }); + + const stargateMsg = { + stargate: new cosmosclient.proto.google.protobuf.Any({ + type_url: '/cosmos.authz.v1beta1.MsgGrant', + value: MsgGrant.encode(msgGrant).finish(), + }), + }; + + proposalId = await mainDaoMember.submitSingleChoiceProposal( + '', + 'Grant authz generic authorization from the DAO core contract' + + ' to the flashloan contract for bank.MsgSend', + [stargateMsg], + '1000', + ); + }); + + test('Vote YES from wallet 1', async () => { + await mainDaoMember.voteYes(proposalId); + }); + + test('Check if proposal is passed', async () => { + await mainDao.checkPassedProposal(proposalId); + }); + test('Execute passed proposal', async () => { + await mainDaoMember.executeProposalWithAttempts(proposalId); + }); + }); + + describe('Test different ways to request a loan', () => { + test('Request a flashloan (and return it)', async () => { + const res = await neutronAccount1.executeContract( + neutronFlashloansUserAddress, + JSON.stringify({ + request_loan: { + flashloans_contract: neutronFlashloansAddress, + execution_mode: 0, // MODE_RETURN_LOAN + amount: [ + { + denom: 'untrn', + amount: '100', + }, + ], + }, + }), + ); + expect(res.code).toEqual(0); + + // We started with 1000untrn on the dao balance, requested 100 with a + // 0.01 fee, and expect to see DAO_INITIAL_BALANCE + 1 after the loan + // is paid back + expect( + await neutronChain.queryDenomBalance( + mainDao.contracts.core.address, + 'untrn', + ), + ).toEqual(DAO_INITIAL_BALANCE + 1); + }); + test('Request a flashloan (and not return it)', async () => { + try { + const res = await neutronAccount1.executeContract( + neutronFlashloansUserAddress, + JSON.stringify({ + request_loan: { + flashloans_contract: neutronFlashloansAddress, + execution_mode: 1, // MODE_WITHHOLD_LOAN + amount: [ + { + denom: 'untrn', + amount: '100', + }, + ], + }, + }), + ); + expect(res.code).toEqual(1); + } catch (error) { + expect(error.message).toContain( + 'Borrower did not return exactly (loan + fee)', + ); + + // Execution failed, the DAO balance should stay the same. + expect( + await neutronChain.queryDenomBalance( + mainDao.contracts.core.address, + 'untrn', + ), + ).toEqual(DAO_INITIAL_BALANCE + 1); + } + }); + test('Request a flashloan (request more that is available)', async () => { + try { + const res = await neutronAccount1.executeContract( + neutronFlashloansUserAddress, + JSON.stringify({ + request_loan: { + flashloans_contract: neutronFlashloansAddress, + execution_mode: 0, // MODE_RETURN_LOAN + amount: [ + { + denom: 'untrn', + amount: '100000', + }, + ], + }, + }), + ); + expect(res.code).toEqual(1); + } catch (error) { + expect(error.message).toContain("Source doesn't have enough untrn"); + // Execution failed, the DAO balance should stay the same. + expect( + await neutronChain.queryDenomBalance( + mainDao.contracts.core.address, + 'untrn', + ), + ).toEqual(DAO_INITIAL_BALANCE + 1); + } + }); + test('Request a flashloan (and return more than required)', async () => { + try { + const res = await neutronAccount1.executeContract( + neutronFlashloansUserAddress, + JSON.stringify({ + request_loan: { + flashloans_contract: neutronFlashloansAddress, + execution_mode: 1, // MODE_WITHHOLD_LOAN + amount: [ + { + denom: 'untrn', + amount: '100', + }, + ], + }, + }), + ); + expect(res.code).toEqual(1); + } catch (error) { + expect(error.message).toContain( + 'Borrower did not return exactly (loan + fee)', + ); + // Execution failed, the DAO balance should stay the same. + expect( + await neutronChain.queryDenomBalance( + mainDao.contracts.core.address, + 'untrn', + ), + ).toEqual(DAO_INITIAL_BALANCE + 1); + } + }); + test('Request a flashloan (and request another one recursively)', async () => { + try { + const res = await neutronAccount1.executeContract( + neutronFlashloansUserAddress, + JSON.stringify({ + request_loan: { + flashloans_contract: neutronFlashloansAddress, + execution_mode: 3, // MODE_WITHHOLD_LOAN + amount: [ + { + denom: 'untrn', + amount: '100', + }, + ], + }, + }), + ); + expect(res.code).toEqual(1); + } catch (error) { + expect(error.message).toContain( + 'A flashloan is already active in this transaction', + ); + // Execution failed, the DAO balance should stay the same. + expect( + await neutronChain.queryDenomBalance( + mainDao.contracts.core.address, + 'untrn', + ), + ).toEqual(DAO_INITIAL_BALANCE + 1); + } + }); + test('Request a flashloan (and fail internally)', async () => { + try { + const res = await neutronAccount1.executeContract( + neutronFlashloansUserAddress, + JSON.stringify({ + request_loan: { + flashloans_contract: neutronFlashloansAddress, + execution_mode: 42, // Not 0, 1, 2, or 3, makes the flashloans user contract fail + amount: [ + { + denom: 'untrn', + amount: '100', + }, + ], + }, + }), + ); + expect(res.code).toEqual(1); + } catch (error) { + expect(error.message).toContain('The ProcessLoan handler failed'); + // Execution failed, the DAO balance should stay the same. + expect( + await neutronChain.queryDenomBalance( + mainDao.contracts.core.address, + 'untrn', + ), + ).toEqual(DAO_INITIAL_BALANCE + 1); + } + }); + test('Change fee to 0.0 and request a flashloan', async () => { + let res = await neutronAccount1.executeContract( + neutronFlashloansAddress, + JSON.stringify({ + update_config: { + fee_rate: '0.0', + }, + }), + ); + expect(res.code).toEqual(0); + + res = await neutronAccount1.executeContract( + neutronFlashloansUserAddress, + JSON.stringify({ + request_loan: { + flashloans_contract: neutronFlashloansAddress, + execution_mode: 0, // MODE_RETURN_LOAN + amount: [ + { + denom: 'untrn', + amount: '100', + }, + ], + }, + }), + ); + expect(res.code).toEqual(0); + // The fee is 0.0, so the DAO balance should stay the same. + expect( + await neutronChain.queryDenomBalance( + mainDao.contracts.core.address, + 'untrn', + ), + ).toEqual(DAO_INITIAL_BALANCE + 1); + }); + }); +}); From 574c0a9cda3ec68d4bb9c88fdacfb3c76fdea548 Mon Sep 17 00:00:00 2001 From: Andrei Zavgorodnii Date: Fri, 7 Jun 2024 15:01:25 +0100 Subject: [PATCH 02/33] formatting --- src/testcases/run_in_band/flashloans.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/testcases/run_in_band/flashloans.test.ts b/src/testcases/run_in_band/flashloans.test.ts index dab8ae43..abcde734 100644 --- a/src/testcases/run_in_band/flashloans.test.ts +++ b/src/testcases/run_in_band/flashloans.test.ts @@ -140,7 +140,7 @@ describe('Neutron / Flashloans', () => { proposalId = await mainDaoMember.submitSingleChoiceProposal( '', 'Grant authz generic authorization from the DAO core contract' + - ' to the flashloan contract for bank.MsgSend', + ' to the flashloan contract for bank.MsgSend', [stargateMsg], '1000', ); From 10b318400641f4b44162c25471d40e0c92c796b6 Mon Sep 17 00:00:00 2001 From: sotnikov-s Date: Fri, 14 Jun 2024 15:30:26 +0300 Subject: [PATCH 03/33] bump neutronjsplus to 0.4.1 --- package.json | 8 +++++--- yarn.lock | 7 ++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 18063cf1..ac7cc337 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@cosmos-client/core": "^0.47.4", "@cosmos-client/cosmwasm": "^0.40.3", "@cosmos-client/ibc": "^1.2.1", - "@neutron-org/neutronjsplus": "https://github.com/neutron-org/neutronjsplus.git#58eb19ae11067de3bd73d0c4cd2889aca422d079", + "@neutron-org/neutronjsplus": "0.4.1", "@types/lodash": "^4.14.182", "@types/long": "^5.0.0", "axios": "^0.27.2", @@ -86,9 +86,11 @@ "eslint --max-warnings=0", "jest --bail --findRelatedTests" ], - "./**/*.{ts,tsx,js,jsx,md,json}": ["prettier --write"] + "./**/*.{ts,tsx,js,jsx,md,json}": [ + "prettier --write" + ] }, "engines": { "node": ">=16.0 <17" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 0dc685ae..561413be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1568,9 +1568,10 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@neutron-org/neutronjsplus@https://github.com/neutron-org/neutronjsplus.git#58eb19ae11067de3bd73d0c4cd2889aca422d079": - version "0.4.0-rc19" - resolved "https://github.com/neutron-org/neutronjsplus.git#58eb19ae11067de3bd73d0c4cd2889aca422d079" +"@neutron-org/neutronjsplus@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@neutron-org/neutronjsplus/-/neutronjsplus-0.4.1.tgz#5e7b6e8f0ea63873719ae9011103c297c3eca209" + integrity sha512-CyRAxai2Pk8tpU+0cUEGGchwwf2wBa8wfCPWJRf07PRTvBJ06sEYMfJqW0kdUtLuBc9tqEt4DD2IGfGkOrVwyg== dependencies: "@bufbuild/protobuf" "^1.4.2" "@cosmos-client/core" "^0.47.4" From 424caf12f8f3e8c23f01fcc5a5eceb78354d133f Mon Sep 17 00:00:00 2001 From: quasisamurai Date: Wed, 19 Jun 2024 09:55:30 -0300 Subject: [PATCH 04/33] add new vars --- setup/docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup/docker-compose.yml b/setup/docker-compose.yml index b6d02891..4865621d 100644 --- a/setup/docker-compose.yml +++ b/setup/docker-compose.yml @@ -62,6 +62,9 @@ services: - RELAYER_NEUTRON_CHAIN_SIGN_KEY_NAME=demowallet3 - RELAYER_NEUTRON_CHAIN_GAS_PRICES=0.5untrn - RELAYER_NEUTRON_CHAIN_GAS_ADJUSTMENT=1.4 + - RELAYER_NEUTRON_CHAIN_DENOM=untrn + RELAYER_NEUTRON_CHAIN_MAX_GAS_PRICE=1000 + RELAYER_NEUTRON_CHAIN_GAS_PRICE_MULTIPLIER=1.1 - RELAYER_NEUTRON_CHAIN_CONNECTION_ID=connection-0 - RELAYER_NEUTRON_CHAIN_DEBUG=true - RELAYER_NEUTRON_CHAIN_ACCOUNT_PREFIX=neutron From 7df688feeb22d0e93751573a7a52b33a5ec130b8 Mon Sep 17 00:00:00 2001 From: quasisamurai Date: Wed, 19 Jun 2024 12:25:45 -0300 Subject: [PATCH 05/33] fix env typos --- setup/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup/docker-compose.yml b/setup/docker-compose.yml index 4865621d..1fdcd7df 100644 --- a/setup/docker-compose.yml +++ b/setup/docker-compose.yml @@ -63,8 +63,8 @@ services: - RELAYER_NEUTRON_CHAIN_GAS_PRICES=0.5untrn - RELAYER_NEUTRON_CHAIN_GAS_ADJUSTMENT=1.4 - RELAYER_NEUTRON_CHAIN_DENOM=untrn - RELAYER_NEUTRON_CHAIN_MAX_GAS_PRICE=1000 - RELAYER_NEUTRON_CHAIN_GAS_PRICE_MULTIPLIER=1.1 + - RELAYER_NEUTRON_CHAIN_MAX_GAS_PRICE=1000 + - RELAYER_NEUTRON_CHAIN_GAS_PRICE_MULTIPLIER=1.1 - RELAYER_NEUTRON_CHAIN_CONNECTION_ID=connection-0 - RELAYER_NEUTRON_CHAIN_DEBUG=true - RELAYER_NEUTRON_CHAIN_ACCOUNT_PREFIX=neutron From 84383a4aa24b0d64f5664cf5d2f7a171336e1e5e Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Thu, 20 Jun 2024 03:19:41 -0400 Subject: [PATCH 06/33] add tokenfactory params tests --- package.json | 4 +- .../run_in_band/chain_manager.test.ts | 81 +++++++++++++++++-- yarn.lock | 7 +- 3 files changed, 81 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index ac7cc337..87e222ed 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@cosmos-client/core": "^0.47.4", "@cosmos-client/cosmwasm": "^0.40.3", "@cosmos-client/ibc": "^1.2.1", - "@neutron-org/neutronjsplus": "0.4.1", + "@neutron-org/neutronjsplus": "neutron-org/neutronjsplus#feat/whitelist-tf-hooks", "@types/lodash": "^4.14.182", "@types/long": "^5.0.0", "axios": "^0.27.2", @@ -93,4 +93,4 @@ "engines": { "node": ">=16.0 <17" } -} \ No newline at end of file +} diff --git a/src/testcases/run_in_band/chain_manager.test.ts b/src/testcases/run_in_band/chain_manager.test.ts index 9b9c5e22..e0c95ee0 100644 --- a/src/testcases/run_in_band/chain_manager.test.ts +++ b/src/testcases/run_in_band/chain_manager.test.ts @@ -15,7 +15,10 @@ import { import { Wallet } from '@neutron-org/neutronjsplus/dist/types'; import cosmosclient from '@cosmos-client/core'; import { waitSeconds } from '@neutron-org/neutronjsplus/dist/wait'; -import { updateCronParamsProposal } from '@neutron-org/neutronjsplus/dist/proposal'; +import { + updateCronParamsProposal, + updateTokenfactoryParamsProposal, +} from '@neutron-org/neutronjsplus/dist/proposal'; import config from '../../config.json'; @@ -128,7 +131,7 @@ describe('Neutron / Chain Manager', () => { }); }); - describe('Add an ALLOW_ONLY strategy (Cron module parameter updates, legacy param changes)', () => { + describe('Add an ALLOW_ONLY strategy (Cron module parameter updates, Tokenfactory module parameter updates, legacy param changes)', () => { let proposalId: number; test('create proposal', async () => { const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; @@ -159,6 +162,16 @@ describe('Neutron / Chain Manager', () => { }, }, }, + { + update_params_permission: { + tokenfactory_update_params_permission: { + denom_creation_fee: true, + denom_creation_gas_consume: true, + fee_collector_address: true, + whitelisted_hooks: true, + }, + }, + }, ], }, }, @@ -197,9 +210,8 @@ describe('Neutron / Chain Manager', () => { '1000', ); - const timelockedProp = await subdaoMember1.supportAndExecuteProposal( - proposalId, - ); + const timelockedProp = + await subdaoMember1.supportAndExecuteProposal(proposalId); expect(timelockedProp.id).toEqual(proposalId); expect(timelockedProp.status).toEqual('timelocked'); @@ -219,4 +231,63 @@ describe('Neutron / Chain Manager', () => { expect(cronParams.params.limit).toEqual('42'); }); }); + + describe('ALLOW_ONLY: change TOKENFACTORY parameters', () => { + let proposalId: number; + beforeAll(async () => { + const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; + proposalId = await subdaoMember1.submitUpdateParamsTokenfactoryProposal( + chainManagerAddress, + 'Proposal #2', + 'Cron update params proposal. Will pass', + updateTokenfactoryParamsProposal({ + denom_creation_fee: [{ denom: 'untrn', amount: 1 }], + denom_creation_gas_consume: 20, + fee_collector_address: + 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', + whitelisted_denoms: [ + { + code_id: 1, + denom_creator: 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', + }, + ], + }), + '1000', + ); + + const timelockedProp = + await subdaoMember1.supportAndExecuteProposal(proposalId); + + expect(timelockedProp.id).toEqual(proposalId); + expect(timelockedProp.status).toEqual('timelocked'); + expect(timelockedProp.msgs).toHaveLength(1); + }); + + test('execute timelocked: success', async () => { + await waitSeconds(10); + + await subdaoMember1.executeTimelockedProposal(proposalId); + const timelockedProp = await subDao.getTimelockedProposal(proposalId); + expect(timelockedProp.id).toEqual(proposalId); + expect(timelockedProp.status).toEqual('executed'); + expect(timelockedProp.msgs).toHaveLength(1); + + const tokenfactoryParams = await neutronChain.queryTokenfactoryParams(); + expect(tokenfactoryParams.params.denom_creation_fee).toEqual([ + { denom: 'untrn', amount: 1 }, + ]); + expect(tokenfactoryParams.params.denom_creation_gas_consume).toEqual( + '20', + ); + expect(tokenfactoryParams.params.fee_collector_address).toEqual( + 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', + ); + expect(tokenfactoryParams.params.whitelisted_denoms).toEqual([ + { + code_id: '1', + denom_creator: 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', + }, + ]); + }); + }); }); diff --git a/yarn.lock b/yarn.lock index 561413be..dc48f2a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1568,10 +1568,9 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@neutron-org/neutronjsplus@0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@neutron-org/neutronjsplus/-/neutronjsplus-0.4.1.tgz#5e7b6e8f0ea63873719ae9011103c297c3eca209" - integrity sha512-CyRAxai2Pk8tpU+0cUEGGchwwf2wBa8wfCPWJRf07PRTvBJ06sEYMfJqW0kdUtLuBc9tqEt4DD2IGfGkOrVwyg== +"@neutron-org/neutronjsplus@neutron-org/neutronjsplus#feat/whitelist-tf-hooks": + version "0.4.0-rc19" + resolved "https://codeload.github.com/neutron-org/neutronjsplus/tar.gz/0d7f29f1f77df8dd2ee730ca4bcac7047500a88b" dependencies: "@bufbuild/protobuf" "^1.4.2" "@cosmos-client/core" "^0.47.4" From d6dbf48bd47ff5943f6eefed345a2bdd886830e2 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Thu, 20 Jun 2024 21:07:30 -0400 Subject: [PATCH 07/33] fix tests --- .../run_in_band/chain_manager.test.ts | 28 ++++++++----------- yarn.lock | 2 +- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/testcases/run_in_band/chain_manager.test.ts b/src/testcases/run_in_band/chain_manager.test.ts index e0c95ee0..008785c7 100644 --- a/src/testcases/run_in_band/chain_manager.test.ts +++ b/src/testcases/run_in_band/chain_manager.test.ts @@ -155,21 +155,17 @@ describe('Neutron / Chain Manager', () => { }, }, { - update_params_permission: { - cron_update_params_permission: { - security_address: true, - limit: true, - }, + update_cron_params_permission: { + security_address: true, + limit: true, }, }, { - update_params_permission: { - tokenfactory_update_params_permission: { - denom_creation_fee: true, - denom_creation_gas_consume: true, - fee_collector_address: true, - whitelisted_hooks: true, - }, + update_tokenfactory_params_permission: { + denom_creation_fee: true, + denom_creation_gas_consume: true, + fee_collector_address: true, + whitelisted_hooks: true, }, }, ], @@ -241,11 +237,11 @@ describe('Neutron / Chain Manager', () => { 'Proposal #2', 'Cron update params proposal. Will pass', updateTokenfactoryParamsProposal({ - denom_creation_fee: [{ denom: 'untrn', amount: 1 }], + denom_creation_fee: [{ denom: 'untrn', amount: '1' }], denom_creation_gas_consume: 20, fee_collector_address: 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', - whitelisted_denoms: [ + whitelisted_hooks: [ { code_id: 1, denom_creator: 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', @@ -274,7 +270,7 @@ describe('Neutron / Chain Manager', () => { const tokenfactoryParams = await neutronChain.queryTokenfactoryParams(); expect(tokenfactoryParams.params.denom_creation_fee).toEqual([ - { denom: 'untrn', amount: 1 }, + { denom: 'untrn', amount: '1' }, ]); expect(tokenfactoryParams.params.denom_creation_gas_consume).toEqual( '20', @@ -282,7 +278,7 @@ describe('Neutron / Chain Manager', () => { expect(tokenfactoryParams.params.fee_collector_address).toEqual( 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', ); - expect(tokenfactoryParams.params.whitelisted_denoms).toEqual([ + expect(tokenfactoryParams.params.whitelisted_hooks).toEqual([ { code_id: '1', denom_creator: 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', diff --git a/yarn.lock b/yarn.lock index dc48f2a1..ad0dc027 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1570,7 +1570,7 @@ "@neutron-org/neutronjsplus@neutron-org/neutronjsplus#feat/whitelist-tf-hooks": version "0.4.0-rc19" - resolved "https://codeload.github.com/neutron-org/neutronjsplus/tar.gz/0d7f29f1f77df8dd2ee730ca4bcac7047500a88b" + resolved "https://codeload.github.com/neutron-org/neutronjsplus/tar.gz/31730ea4456a95530c4b2967719fc1cfc7cba13e" dependencies: "@bufbuild/protobuf" "^1.4.2" "@cosmos-client/core" "^0.47.4" From 924835f9fc37f7dfde9bbc7e88383639eb56cb31 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Thu, 20 Jun 2024 21:14:18 -0400 Subject: [PATCH 08/33] lint --- src/testcases/run_in_band/chain_manager.test.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/testcases/run_in_band/chain_manager.test.ts b/src/testcases/run_in_band/chain_manager.test.ts index 008785c7..8f28c881 100644 --- a/src/testcases/run_in_band/chain_manager.test.ts +++ b/src/testcases/run_in_band/chain_manager.test.ts @@ -206,8 +206,9 @@ describe('Neutron / Chain Manager', () => { '1000', ); - const timelockedProp = - await subdaoMember1.supportAndExecuteProposal(proposalId); + const timelockedProp = await subdaoMember1.supportAndExecuteProposal( + proposalId, + ); expect(timelockedProp.id).toEqual(proposalId); expect(timelockedProp.status).toEqual('timelocked'); @@ -251,8 +252,9 @@ describe('Neutron / Chain Manager', () => { '1000', ); - const timelockedProp = - await subdaoMember1.supportAndExecuteProposal(proposalId); + const timelockedProp = await subdaoMember1.supportAndExecuteProposal( + proposalId, + ); expect(timelockedProp.id).toEqual(proposalId); expect(timelockedProp.status).toEqual('timelocked'); From 0ea9681547a498f51c5be7dc5b17542dd443bcb4 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Fri, 21 Jun 2024 00:46:52 -0400 Subject: [PATCH 09/33] disable setBeforeSendHook tests --- src/testcases/parallel/tokenfactory.test.ts | 281 ++++++++++---------- 1 file changed, 141 insertions(+), 140 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index 73e78476..b990eee6 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -182,114 +182,115 @@ describe('Neutron / Tokenfactory', () => { expect(balanceAfter).toEqual(9900); }); - test('create denom, set before send hook', async () => { - const codeId = await neutronAccount.storeWasm( - NeutronContract.BEFORE_SEND_HOOK_TEST, - ); - expect(codeId).toBeGreaterThan(0); - - const res = await neutronAccount.instantiateContract( - codeId, - '{}', - 'before_send_hook_test', - ); - const contractAddress = res[0]._contract_address; - - const denom = `test5`; - - const data = await msgCreateDenom( - neutronAccount, - ownerWallet.address.toString(), - denom, - ); - const newTokenDenom = getEventAttribute( - (data as any).events, - 'create_denom', - 'new_token_denom', - ); - - await msgMintDenom(neutronAccount, ownerWallet.address.toString(), { - denom: newTokenDenom, - amount: '10000', - }); - - const balanceBefore = await neutronChain.queryDenomBalance( - ownerWallet.address.toString(), - newTokenDenom, - ); - - expect(balanceBefore).toEqual(10000); - - await neutronAccount.msgSend(contractAddress, { - amount: '666', - denom: newTokenDenom, - }); - - const contractBalance = await neutronChain.queryDenomBalance( - contractAddress, - newTokenDenom, - ); - expect(contractBalance).toEqual(666); - - let queryBlock = await neutronChain.queryContract<{ - block: { received: boolean }; - }>(contractAddress, { - sudo_result_block_before: {}, - }); - let queryTrack = await neutronChain.queryContract<{ - track: { received: boolean }; - }>(contractAddress, { - sudo_result_track_before: {}, - }); - - expect(queryTrack.track.received).toEqual(false); - expect(queryBlock.block.received).toEqual(false); - - await msgSetBeforeSendHook( - neutronAccount, - ownerWallet.address.toString(), - newTokenDenom, - contractAddress, - ); - - const hookAfter = await getBeforeSendHook( - neutronChain.sdk.url, - newTokenDenom, - ); - expect(hookAfter.contract_addr).toEqual(contractAddress); - - await neutronAccount.msgSend(contractAddress, { - amount: '1', - denom: newTokenDenom, - }); - - const contractBalanceAfter = await neutronChain.queryDenomBalance( - contractAddress, - newTokenDenom, - ); - expect(contractBalanceAfter).toEqual(667); - - const balanceAfter = await neutronChain.queryDenomBalance( - ownerWallet.address.toString(), - newTokenDenom, - ); - expect(balanceAfter).toEqual(9333); - - queryBlock = await neutronChain.queryContract<{ - block: { received: boolean }; - }>(contractAddress, { - sudo_result_block_before: {}, - }); - - queryTrack = await neutronChain.queryContract<{ - track: { received: boolean }; - }>(contractAddress, { - sudo_result_track_before: {}, - }); - - expect(queryTrack.track.received).toEqual(true); - expect(queryBlock.block.received).toEqual(true); - }); + // TEMP: remove tests for before send hook + // test('create denom, set before send hook', async () => { + // const codeId = await neutronAccount.storeWasm( + // NeutronContract.BEFORE_SEND_HOOK_TEST, + // ); + // expect(codeId).toBeGreaterThan(0); + + // const res = await neutronAccount.instantiateContract( + // codeId, + // '{}', + // 'before_send_hook_test', + // ); + // const contractAddress = res[0]._contract_address; + + // const denom = `test5`; + + // const data = await msgCreateDenom( + // neutronAccount, + // ownerWallet.address.toString(), + // denom, + // ); + // const newTokenDenom = getEventAttribute( + // (data as any).events, + // 'create_denom', + // 'new_token_denom', + // ); + + // await msgMintDenom(neutronAccount, ownerWallet.address.toString(), { + // denom: newTokenDenom, + // amount: '10000', + // }); + + // const balanceBefore = await neutronChain.queryDenomBalance( + // ownerWallet.address.toString(), + // newTokenDenom, + // ); + + // expect(balanceBefore).toEqual(10000); + + // await neutronAccount.msgSend(contractAddress, { + // amount: '666', + // denom: newTokenDenom, + // }); + + // const contractBalance = await neutronChain.queryDenomBalance( + // contractAddress, + // newTokenDenom, + // ); + // expect(contractBalance).toEqual(666); + + // let queryBlock = await neutronChain.queryContract<{ + // block: { received: boolean }; + // }>(contractAddress, { + // sudo_result_block_before: {}, + // }); + // let queryTrack = await neutronChain.queryContract<{ + // track: { received: boolean }; + // }>(contractAddress, { + // sudo_result_track_before: {}, + // }); + + // expect(queryTrack.track.received).toEqual(false); + // expect(queryBlock.block.received).toEqual(false); + + // await msgSetBeforeSendHook( + // neutronAccount, + // ownerWallet.address.toString(), + // newTokenDenom, + // contractAddress, + // ); + + // const hookAfter = await getBeforeSendHook( + // neutronChain.sdk.url, + // newTokenDenom, + // ); + // expect(hookAfter.contract_addr).toEqual(contractAddress); + + // await neutronAccount.msgSend(contractAddress, { + // amount: '1', + // denom: newTokenDenom, + // }); + + // const contractBalanceAfter = await neutronChain.queryDenomBalance( + // contractAddress, + // newTokenDenom, + // ); + // expect(contractBalanceAfter).toEqual(667); + + // const balanceAfter = await neutronChain.queryDenomBalance( + // ownerWallet.address.toString(), + // newTokenDenom, + // ); + // expect(balanceAfter).toEqual(9333); + + // queryBlock = await neutronChain.queryContract<{ + // block: { received: boolean }; + // }>(contractAddress, { + // sudo_result_block_before: {}, + // }); + + // queryTrack = await neutronChain.queryContract<{ + // track: { received: boolean }; + // }>(contractAddress, { + // sudo_result_track_before: {}, + // }); + + // expect(queryTrack.track.received).toEqual(true); + // expect(queryBlock.block.received).toEqual(true); + // }); }); describe('wasmbindings', () => { @@ -429,38 +430,38 @@ describe('Neutron / Tokenfactory', () => { ); expect(res.admin).toEqual(contractAddress); }); - - test('set_before_send_hook', async () => { - await neutronAccount.executeContract( - contractAddress, - JSON.stringify({ - set_before_send_hook: { - denom, - contract_addr: contractAddress, - }, - }), - ); - const res = await neutronChain.queryContract<{ - contract_addr: string; - }>(contractAddress, { - before_send_hook: { - denom, - }, - }); - expect(res.contract_addr).toEqual(contractAddress); - - await neutronAccount.executeContract( - contractAddress, - JSON.stringify({ - set_before_send_hook: { - denom, - contract_addr: '', - }, - }), - ); - - // TODO: check that it actually sets hook by querying tokenfactory module - }); + // TEMP: remove tests for before send hook + // test('set_before_send_hook', async () => { + // await neutronAccount.executeContract( + // contractAddress, + // JSON.stringify({ + // set_before_send_hook: { + // denom, + // contract_addr: contractAddress, + // }, + // }), + // ); + // const res = await neutronChain.queryContract<{ + // contract_addr: string; + // }>(contractAddress, { + // before_send_hook: { + // denom, + // }, + // }); + // expect(res.contract_addr).toEqual(contractAddress); + + // await neutronAccount.executeContract( + // contractAddress, + // JSON.stringify({ + // set_before_send_hook: { + // denom, + // contract_addr: '', + // }, + // }), + // ); + + // // TODO: check that it actually sets hook by querying tokenfactory module + // }); test('force transfer', async () => { const randomAccount = 'neutron14640tst2rx45nxg3evqwlzuaestnnhm8es3rtc'; From 1a129e58feb42a6bb0c2f43e3da5d2b5a4c0ecf7 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Fri, 21 Jun 2024 00:55:57 -0400 Subject: [PATCH 10/33] lint --- src/testcases/parallel/tokenfactory.test.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index b990eee6..11749c28 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -12,11 +12,9 @@ import { msgChangeAdmin, msgCreateDenom, msgMintDenom, - msgSetBeforeSendHook, getDenomsFromCreator, checkTokenfactoryParams, getAuthorityMetadata, - getBeforeSendHook, } from '@neutron-org/neutronjsplus/dist/tokenfactory'; const config = require('../../config.json'); From bd044eba9db1ac1c2e519b2285fa0067866ada95 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Fri, 21 Jun 2024 12:23:50 -0400 Subject: [PATCH 11/33] fix incorrect params in TF test --- src/testcases/run_in_band/parameters.test.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/testcases/run_in_band/parameters.test.ts b/src/testcases/run_in_band/parameters.test.ts index ab4af04d..8d895542 100644 --- a/src/testcases/run_in_band/parameters.test.ts +++ b/src/testcases/run_in_band/parameters.test.ts @@ -129,7 +129,7 @@ describe('Neutron / Parameters', () => { 'Tokenfactory params proposal', updateTokenfacoryParamsProposal({ fee_collector_address: await neutronChain.getNeutronDAOCore(), - denom_creation_fee: null, + denom_creation_fee: [{ denom: 'untrn', amount: '1' }], denom_creation_gas_consume: 100000, }), '1000', @@ -156,13 +156,18 @@ describe('Neutron / Parameters', () => { test('check if params changed after proposal execution', async () => { const paramsAfter = await neutronChain.queryTokenfactoryParams(); - expect(paramsAfter.params.denom_creation_fee).toEqual( + expect(paramsAfter.params.denom_creation_fee).not.toEqual( paramsBefore.params.denom_creation_fee, ); expect(paramsAfter.params.denom_creation_gas_consume).not.toEqual( paramsBefore.params.denom_creation_gas_consume, ); - expect(paramsAfter.params.denom_creation_fee).toHaveLength(0); + expect(paramsAfter.params.denom_creation_fee).toEqual([ + { + denom: 'untrn', + amount: '1', + }, + ]); expect(paramsAfter.params.denom_creation_gas_consume).toEqual('100000'); }); }); From 82cafb01ade96f68e3589569df3155cf4eb0dd47 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Fri, 21 Jun 2024 00:55:57 -0400 Subject: [PATCH 12/33] lint From 84b8f5b043c54a8ba0e0c3fcf4c9f5df84acce66 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Fri, 21 Jun 2024 12:23:50 -0400 Subject: [PATCH 13/33] fix incorrect params in TF test --- src/testcases/run_in_band/parameters.test.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/testcases/run_in_band/parameters.test.ts b/src/testcases/run_in_band/parameters.test.ts index ab4af04d..8d895542 100644 --- a/src/testcases/run_in_band/parameters.test.ts +++ b/src/testcases/run_in_band/parameters.test.ts @@ -129,7 +129,7 @@ describe('Neutron / Parameters', () => { 'Tokenfactory params proposal', updateTokenfacoryParamsProposal({ fee_collector_address: await neutronChain.getNeutronDAOCore(), - denom_creation_fee: null, + denom_creation_fee: [{ denom: 'untrn', amount: '1' }], denom_creation_gas_consume: 100000, }), '1000', @@ -156,13 +156,18 @@ describe('Neutron / Parameters', () => { test('check if params changed after proposal execution', async () => { const paramsAfter = await neutronChain.queryTokenfactoryParams(); - expect(paramsAfter.params.denom_creation_fee).toEqual( + expect(paramsAfter.params.denom_creation_fee).not.toEqual( paramsBefore.params.denom_creation_fee, ); expect(paramsAfter.params.denom_creation_gas_consume).not.toEqual( paramsBefore.params.denom_creation_gas_consume, ); - expect(paramsAfter.params.denom_creation_fee).toHaveLength(0); + expect(paramsAfter.params.denom_creation_fee).toEqual([ + { + denom: 'untrn', + amount: '1', + }, + ]); expect(paramsAfter.params.denom_creation_gas_consume).toEqual('100000'); }); }); From e128aa2e40445fd705d43e299fa8e8f321919a5d Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Tue, 25 Jun 2024 18:10:46 -0400 Subject: [PATCH 14/33] update neutron jsplus dep --- src/testcases/run_in_band/chain_manager.test.ts | 10 ++++------ yarn.lock | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/testcases/run_in_band/chain_manager.test.ts b/src/testcases/run_in_band/chain_manager.test.ts index 8f28c881..008785c7 100644 --- a/src/testcases/run_in_band/chain_manager.test.ts +++ b/src/testcases/run_in_band/chain_manager.test.ts @@ -206,9 +206,8 @@ describe('Neutron / Chain Manager', () => { '1000', ); - const timelockedProp = await subdaoMember1.supportAndExecuteProposal( - proposalId, - ); + const timelockedProp = + await subdaoMember1.supportAndExecuteProposal(proposalId); expect(timelockedProp.id).toEqual(proposalId); expect(timelockedProp.status).toEqual('timelocked'); @@ -252,9 +251,8 @@ describe('Neutron / Chain Manager', () => { '1000', ); - const timelockedProp = await subdaoMember1.supportAndExecuteProposal( - proposalId, - ); + const timelockedProp = + await subdaoMember1.supportAndExecuteProposal(proposalId); expect(timelockedProp.id).toEqual(proposalId); expect(timelockedProp.status).toEqual('timelocked'); diff --git a/yarn.lock b/yarn.lock index ad0dc027..47a42d15 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1570,7 +1570,7 @@ "@neutron-org/neutronjsplus@neutron-org/neutronjsplus#feat/whitelist-tf-hooks": version "0.4.0-rc19" - resolved "https://codeload.github.com/neutron-org/neutronjsplus/tar.gz/31730ea4456a95530c4b2967719fc1cfc7cba13e" + resolved "https://codeload.github.com/neutron-org/neutronjsplus/tar.gz/891da6c41e0801fa8e5422d166c835df5f41eef8" dependencies: "@bufbuild/protobuf" "^1.4.2" "@cosmos-client/core" "^0.47.4" From f2022e86b333dc877b37e1e968fbe3731dbb32c3 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Tue, 25 Jun 2024 18:11:14 -0400 Subject: [PATCH 15/33] lint --- src/testcases/run_in_band/chain_manager.test.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/testcases/run_in_band/chain_manager.test.ts b/src/testcases/run_in_band/chain_manager.test.ts index 008785c7..8f28c881 100644 --- a/src/testcases/run_in_band/chain_manager.test.ts +++ b/src/testcases/run_in_band/chain_manager.test.ts @@ -206,8 +206,9 @@ describe('Neutron / Chain Manager', () => { '1000', ); - const timelockedProp = - await subdaoMember1.supportAndExecuteProposal(proposalId); + const timelockedProp = await subdaoMember1.supportAndExecuteProposal( + proposalId, + ); expect(timelockedProp.id).toEqual(proposalId); expect(timelockedProp.status).toEqual('timelocked'); @@ -251,8 +252,9 @@ describe('Neutron / Chain Manager', () => { '1000', ); - const timelockedProp = - await subdaoMember1.supportAndExecuteProposal(proposalId); + const timelockedProp = await subdaoMember1.supportAndExecuteProposal( + proposalId, + ); expect(timelockedProp.id).toEqual(proposalId); expect(timelockedProp.status).toEqual('timelocked'); From 220532948e84652458b09d75e353883f12eb76a3 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Fri, 28 Jun 2024 21:39:07 -0400 Subject: [PATCH 16/33] whitelist denom hooks for tf tests --- src/testcases/parallel/tokenfactory.test.ts | 418 +++++++++++++------- 1 file changed, 269 insertions(+), 149 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index 11749c28..07e1fec4 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -5,6 +5,7 @@ import { NEUTRON_DENOM, getEventAttribute, } from '@neutron-org/neutronjsplus/dist/cosmos'; +import cosmosclient from '@cosmos-client/core'; import { TestStateLocalCosmosTestNet } from '@neutron-org/neutronjsplus'; import { NeutronContract, Wallet } from '@neutron-org/neutronjsplus/dist/types'; import { @@ -12,18 +13,70 @@ import { msgChangeAdmin, msgCreateDenom, msgMintDenom, + msgSetBeforeSendHook, + getBeforeSendHook, getDenomsFromCreator, checkTokenfactoryParams, getAuthorityMetadata, } from '@neutron-org/neutronjsplus/dist/tokenfactory'; +import { + Dao, + DaoMember, + getDaoContracts, + setupSubDaoTimelockSet, +} from '@neutron-org/neutronjsplus/dist/dao'; +import { updateTokenfactoryParamsProposal } from '@neutron-org/neutronjsplus/dist/proposal'; +import { waitSeconds } from '@neutron-org/neutronjsplus/dist/wait'; const config = require('../../config.json'); +async function whitelistTokenfactoryHook( + neutronChain: CosmosWrapper, + subDao: Dao, + subdaoMember1: DaoMember, + codeID: number, + denomCreator: string, +) { + const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; + let proposalId = await subdaoMember1.submitUpdateParamsTokenfactoryProposal( + chainManagerAddress, + 'Proposal #2', + 'Cron update params proposal. Will pass', + updateTokenfactoryParamsProposal({ + denom_creation_fee: [], + denom_creation_gas_consume: 0, + fee_collector_address: '', + whitelisted_hooks: [ + { + code_id: codeID, + denom_creator: denomCreator, + }, + ], + }), + '1000', + ); + + let timelockedProp = + await subdaoMember1.supportAndExecuteProposal(proposalId); + await waitSeconds(10); + + await subdaoMember1.executeTimelockedProposal(proposalId); + timelockedProp = await subDao.getTimelockedProposal(proposalId); + expect(timelockedProp.id).toEqual(proposalId); + expect(timelockedProp.status).toEqual('executed'); +} + describe('Neutron / Tokenfactory', () => { let testState: TestStateLocalCosmosTestNet; let neutronChain: CosmosWrapper; let neutronAccount: WalletWrapper; let ownerWallet: Wallet; + let subDao: Dao; + let mainDao: Dao; + let subdaoMember1: DaoMember; + let mainDaoMember: DaoMember; + let securityDaoWallet: Wallet; + let securityDaoAddr: cosmosclient.AccAddress | cosmosclient.ValAddress; beforeAll(async () => { testState = new TestStateLocalCosmosTestNet(config); @@ -35,6 +88,54 @@ describe('Neutron / Tokenfactory', () => { NEUTRON_DENOM, ); neutronAccount = new WalletWrapper(neutronChain, ownerWallet); + + // Setup subdao with update tokenfactory params + const daoCoreAddress = await neutronChain.getNeutronDAOCore(); + const daoContracts = await getDaoContracts(neutronChain, daoCoreAddress); + securityDaoWallet = testState.wallets.qaNeutronThree.genQaWal1; + securityDaoAddr = securityDaoWallet.address; + + mainDao = new Dao(neutronChain, daoContracts); + mainDaoMember = new DaoMember(neutronAccount, mainDao); + await mainDaoMember.bondFunds('10000'); + + subDao = await setupSubDaoTimelockSet( + neutronAccount, + mainDao.contracts.core.address, + securityDaoAddr.toString(), + true, + ); + + subdaoMember1 = new DaoMember(neutronAccount, subDao); + + const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; + let proposalId = await mainDaoMember.submitAddChainManagerStrategyProposal( + chainManagerAddress, + 'Proposal #1', + 'Add strategy proposal. It will pass', + { + add_strategy: { + address: subDao.contracts.core.address, + strategy: { + allow_only: [ + { + update_tokenfactory_params_permission: { + denom_creation_fee: true, + denom_creation_gas_consume: true, + fee_collector_address: true, + whitelisted_hooks: true, + }, + }, + ], + }, + }, + }, + '1000', + ); + + await mainDaoMember.voteYes(proposalId); + await mainDao.checkPassedProposal(proposalId); + await mainDaoMember.executeProposalWithAttempts(proposalId); }); test('tokenfactory module is added', async () => { @@ -84,11 +185,17 @@ describe('Neutron / Tokenfactory', () => { 'create_denom', 'new_token_denom', ); - - await msgMintDenom(neutronAccount, ownerWallet.address.toString(), { - denom: newTokenDenom, - amount: '10000', - }); + console.log(`denom ${newTokenDenom}`); + let resp = await msgMintDenom( + neutronAccount, + ownerWallet.address.toString(), + { + denom: newTokenDenom, + amount: '10000', + }, + ); + console.log(JSON.stringify(resp)); + console.log(`tokenholder: ${ownerWallet.address.toString()}`); const balanceBefore = await neutronChain.queryDenomBalance( ownerWallet.address.toString(), @@ -180,115 +287,122 @@ describe('Neutron / Tokenfactory', () => { expect(balanceAfter).toEqual(9900); }); - // TEMP: remove tests for before send hook - // test('create denom, set before send hook', async () => { - // const codeId = await neutronAccount.storeWasm( - // NeutronContract.BEFORE_SEND_HOOK_TEST, - // ); - // expect(codeId).toBeGreaterThan(0); - - // const res = await neutronAccount.instantiateContract( - // codeId, - // '{}', - // 'before_send_hook_test', - // ); - // const contractAddress = res[0]._contract_address; - - // const denom = `test5`; - - // const data = await msgCreateDenom( - // neutronAccount, - // ownerWallet.address.toString(), - // denom, - // ); - // const newTokenDenom = getEventAttribute( - // (data as any).events, - // 'create_denom', - // 'new_token_denom', - // ); - - // await msgMintDenom(neutronAccount, ownerWallet.address.toString(), { - // denom: newTokenDenom, - // amount: '10000', - // }); - - // const balanceBefore = await neutronChain.queryDenomBalance( - // ownerWallet.address.toString(), - // newTokenDenom, - // ); - - // expect(balanceBefore).toEqual(10000); - - // await neutronAccount.msgSend(contractAddress, { - // amount: '666', - // denom: newTokenDenom, - // }); - - // const contractBalance = await neutronChain.queryDenomBalance( - // contractAddress, - // newTokenDenom, - // ); - // expect(contractBalance).toEqual(666); - - // let queryBlock = await neutronChain.queryContract<{ - // block: { received: boolean }; - // }>(contractAddress, { - // sudo_result_block_before: {}, - // }); - // let queryTrack = await neutronChain.queryContract<{ - // track: { received: boolean }; - // }>(contractAddress, { - // sudo_result_track_before: {}, - // }); - - // expect(queryTrack.track.received).toEqual(false); - // expect(queryBlock.block.received).toEqual(false); - - // await msgSetBeforeSendHook( - // neutronAccount, - // ownerWallet.address.toString(), - // newTokenDenom, - // contractAddress, - // ); - - // const hookAfter = await getBeforeSendHook( - // neutronChain.sdk.url, - // newTokenDenom, - // ); - // expect(hookAfter.contract_addr).toEqual(contractAddress); - - // await neutronAccount.msgSend(contractAddress, { - // amount: '1', - // denom: newTokenDenom, - // }); - - // const contractBalanceAfter = await neutronChain.queryDenomBalance( - // contractAddress, - // newTokenDenom, - // ); - // expect(contractBalanceAfter).toEqual(667); - - // const balanceAfter = await neutronChain.queryDenomBalance( - // ownerWallet.address.toString(), - // newTokenDenom, - // ); - // expect(balanceAfter).toEqual(9333); - - // queryBlock = await neutronChain.queryContract<{ - // block: { received: boolean }; - // }>(contractAddress, { - // sudo_result_block_before: {}, - // }); - - // queryTrack = await neutronChain.queryContract<{ - // track: { received: boolean }; - // }>(contractAddress, { - // sudo_result_track_before: {}, - // }); - - // expect(queryTrack.track.received).toEqual(true); - // expect(queryBlock.block.received).toEqual(true); - // }); + test('create denom, set before send hook', async () => { + const codeId = await neutronAccount.storeWasm( + NeutronContract.BEFORE_SEND_HOOK_TEST, + ); + expect(codeId).toBeGreaterThan(0); + + const res = await neutronAccount.instantiateContract( + codeId, + '{}', + 'before_send_hook_test', + ); + const contractAddress = res[0]._contract_address; + + const denom = `test5`; + + const data = await msgCreateDenom( + neutronAccount, + ownerWallet.address.toString(), + denom, + ); + const newTokenDenom = getEventAttribute( + (data as any).events, + 'create_denom', + 'new_token_denom', + ); + + await msgMintDenom(neutronAccount, ownerWallet.address.toString(), { + denom: newTokenDenom, + amount: '10000', + }); + + const balanceBefore = await neutronChain.queryDenomBalance( + ownerWallet.address.toString(), + newTokenDenom, + ); + + expect(balanceBefore).toEqual(10000); + + await neutronAccount.msgSend(contractAddress, { + amount: '666', + denom: newTokenDenom, + }); + + const contractBalance = await neutronChain.queryDenomBalance( + contractAddress, + newTokenDenom, + ); + expect(contractBalance).toEqual(666); + + let queryBlock = await neutronChain.queryContract<{ + block: { received: boolean }; + }>(contractAddress, { + sudo_result_block_before: {}, + }); + let queryTrack = await neutronChain.queryContract<{ + track: { received: boolean }; + }>(contractAddress, { + sudo_result_track_before: {}, + }); + + expect(queryTrack.track.received).toEqual(false); + expect(queryBlock.block.received).toEqual(false); + + await whitelistTokenfactoryHook( + neutronChain, + subDao, + subdaoMember1, + codeId, + ownerWallet.address.toString(), + ); + + await msgSetBeforeSendHook( + neutronAccount, + ownerWallet.address.toString(), + newTokenDenom, + contractAddress, + ); + + const hookAfter = await getBeforeSendHook( + neutronChain.sdk.url, + newTokenDenom, + ); + expect(hookAfter.contract_addr).toEqual(contractAddress); + + await neutronAccount.msgSend(contractAddress, { + amount: '1', + denom: newTokenDenom, + }); + + const contractBalanceAfter = await neutronChain.queryDenomBalance( + contractAddress, + newTokenDenom, + ); + expect(contractBalanceAfter).toEqual(667); + + const balanceAfter = await neutronChain.queryDenomBalance( + ownerWallet.address.toString(), + newTokenDenom, + ); + expect(balanceAfter).toEqual(9333); + + queryBlock = await neutronChain.queryContract<{ + block: { received: boolean }; + }>(contractAddress, { + sudo_result_block_before: {}, + }); + + queryTrack = await neutronChain.queryContract<{ + track: { received: boolean }; + }>(contractAddress, { + sudo_result_track_before: {}, + }); + + expect(queryTrack.track.received).toEqual(true); + expect(queryBlock.block.received).toEqual(true); + }); }); describe('wasmbindings', () => { @@ -297,11 +411,10 @@ describe('Neutron / Tokenfactory', () => { let denom: string; let amount = 10000000; const toBurn = 1000000; + let codeId; test('setup contract', async () => { - const codeId = await neutronAccount.storeWasm( - NeutronContract.TOKENFACTORY, - ); + codeId = await neutronAccount.storeWasm(NeutronContract.TOKENFACTORY); expect(codeId).toBeGreaterThan(0); const res = await neutronAccount.instantiateContract( @@ -428,38 +541,45 @@ describe('Neutron / Tokenfactory', () => { ); expect(res.admin).toEqual(contractAddress); }); - // TEMP: remove tests for before send hook - // test('set_before_send_hook', async () => { - // await neutronAccount.executeContract( - // contractAddress, - // JSON.stringify({ - // set_before_send_hook: { - // denom, - // contract_addr: contractAddress, - // }, - // }), - // ); - // const res = await neutronChain.queryContract<{ - // contract_addr: string; - // }>(contractAddress, { - // before_send_hook: { - // denom, - // }, - // }); - // expect(res.contract_addr).toEqual(contractAddress); - - // await neutronAccount.executeContract( - // contractAddress, - // JSON.stringify({ - // set_before_send_hook: { - // denom, - // contract_addr: '', - // }, - // }), - // ); - - // // TODO: check that it actually sets hook by querying tokenfactory module - // }); + test('set_before_send_hook', async () => { + await whitelistTokenfactoryHook( + neutronChain, + subDao, + subdaoMember1, + codeId, + contractAddress, + ); + + await neutronAccount.executeContract( + contractAddress, + JSON.stringify({ + set_before_send_hook: { + denom, + contract_addr: contractAddress, + }, + }), + ); + const res = await neutronChain.queryContract<{ + contract_addr: string; + }>(contractAddress, { + before_send_hook: { + denom, + }, + }); + expect(res.contract_addr).toEqual(contractAddress); + + await neutronAccount.executeContract( + contractAddress, + JSON.stringify({ + set_before_send_hook: { + denom, + contract_addr: '', + }, + }), + ); + + // TODO: check that it actually sets hook by querying tokenfactory module + }); test('force transfer', async () => { const randomAccount = 'neutron14640tst2rx45nxg3evqwlzuaestnnhm8es3rtc'; From 16e0502c23520d319f6df237aa7a87aaec570044 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Fri, 28 Jun 2024 21:42:06 -0400 Subject: [PATCH 17/33] misc cleanup --- src/testcases/parallel/tokenfactory.test.ts | 65 ++++++++++----------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index 07e1fec4..9720e13a 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -38,7 +38,7 @@ async function whitelistTokenfactoryHook( denomCreator: string, ) { const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; - let proposalId = await subdaoMember1.submitUpdateParamsTokenfactoryProposal( + const proposalId = await subdaoMember1.submitUpdateParamsTokenfactoryProposal( chainManagerAddress, 'Proposal #2', 'Cron update params proposal. Will pass', @@ -56,8 +56,9 @@ async function whitelistTokenfactoryHook( '1000', ); - let timelockedProp = - await subdaoMember1.supportAndExecuteProposal(proposalId); + let timelockedProp = await subdaoMember1.supportAndExecuteProposal( + proposalId, + ); await waitSeconds(10); await subdaoMember1.executeTimelockedProposal(proposalId); @@ -109,29 +110,30 @@ describe('Neutron / Tokenfactory', () => { subdaoMember1 = new DaoMember(neutronAccount, subDao); const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; - let proposalId = await mainDaoMember.submitAddChainManagerStrategyProposal( - chainManagerAddress, - 'Proposal #1', - 'Add strategy proposal. It will pass', - { - add_strategy: { - address: subDao.contracts.core.address, - strategy: { - allow_only: [ - { - update_tokenfactory_params_permission: { - denom_creation_fee: true, - denom_creation_gas_consume: true, - fee_collector_address: true, - whitelisted_hooks: true, + const proposalId = + await mainDaoMember.submitAddChainManagerStrategyProposal( + chainManagerAddress, + 'Proposal #1', + 'Add strategy proposal. It will pass', + { + add_strategy: { + address: subDao.contracts.core.address, + strategy: { + allow_only: [ + { + update_tokenfactory_params_permission: { + denom_creation_fee: true, + denom_creation_gas_consume: true, + fee_collector_address: true, + whitelisted_hooks: true, + }, }, - }, - ], + ], + }, }, }, - }, - '1000', - ); + '1000', + ); await mainDaoMember.voteYes(proposalId); await mainDao.checkPassedProposal(proposalId); @@ -185,17 +187,11 @@ describe('Neutron / Tokenfactory', () => { 'create_denom', 'new_token_denom', ); - console.log(`denom ${newTokenDenom}`); - let resp = await msgMintDenom( - neutronAccount, - ownerWallet.address.toString(), - { - denom: newTokenDenom, - amount: '10000', - }, - ); - console.log(JSON.stringify(resp)); - console.log(`tokenholder: ${ownerWallet.address.toString()}`); + + await msgMintDenom(neutronAccount, ownerWallet.address.toString(), { + denom: newTokenDenom, + amount: '10000', + }); const balanceBefore = await neutronChain.queryDenomBalance( ownerWallet.address.toString(), @@ -439,7 +435,6 @@ describe('Neutron / Tokenfactory', () => { }, }), ); - console.log(JSON.stringify(res.events)); denom = res.events ?.find((event) => event.type == 'create_denom') ?.attributes?.find( From 02686ccdd5a031873eb8be5b096a98af55835fb4 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Fri, 28 Jun 2024 21:47:52 -0400 Subject: [PATCH 18/33] add wait for timelock proposal --- src/testcases/parallel/tokenfactory.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index 9720e13a..df63eec5 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -56,9 +56,8 @@ async function whitelistTokenfactoryHook( '1000', ); - let timelockedProp = await subdaoMember1.supportAndExecuteProposal( - proposalId, - ); + let timelockedProp = + await subdaoMember1.supportAndExecuteProposal(proposalId); await waitSeconds(10); await subdaoMember1.executeTimelockedProposal(proposalId); @@ -137,6 +136,7 @@ describe('Neutron / Tokenfactory', () => { await mainDaoMember.voteYes(proposalId); await mainDao.checkPassedProposal(proposalId); + await waitSeconds(10); await mainDaoMember.executeProposalWithAttempts(proposalId); }); From af21a6a0c9625a7ad6bb6504beb4dd57612c32fb Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Fri, 28 Jun 2024 21:50:21 -0400 Subject: [PATCH 19/33] lint --- src/testcases/parallel/tokenfactory.test.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index df63eec5..b75eeda8 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -56,8 +56,9 @@ async function whitelistTokenfactoryHook( '1000', ); - let timelockedProp = - await subdaoMember1.supportAndExecuteProposal(proposalId); + let timelockedProp = await subdaoMember1.supportAndExecuteProposal( + proposalId, + ); await waitSeconds(10); await subdaoMember1.executeTimelockedProposal(proposalId); From ab6ae4d67401ed2947efa6c0a27b4af08cfdc55a Mon Sep 17 00:00:00 2001 From: nhpd Date: Mon, 1 Jul 2024 15:19:51 +0400 Subject: [PATCH 20/33] fix: add test that empty metadata_JSON does not break contract serialization --- src/testcases/run_in_band/slinky.test.ts | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/testcases/run_in_band/slinky.test.ts b/src/testcases/run_in_band/slinky.test.ts index a9bf3ed2..4de70912 100644 --- a/src/testcases/run_in_band/slinky.test.ts +++ b/src/testcases/run_in_band/slinky.test.ts @@ -94,6 +94,26 @@ describe('Neutron / Slinky', () => { }, ], }, + { + ticker: { + currency_pair: { + Base: 'USDT', + Quote: 'USD', + }, + decimals: 6, + min_provider_count: 1, + enabled: false, + metadata_JSON: '', + }, + provider_configs: [ + { + name: 'kraken_api', + off_chain_ticker: 'USDTUSD', + invert: false, + metadata_JSON: '', + }, + ], + }, ], ); }); @@ -220,6 +240,16 @@ describe('Neutron / Slinky', () => { expect(res.market).toBeDefined(); }); + test('query market with empty metadata_JSON', async () => { + const res = await neutronChain.queryContract( + contractAddress, + { + market: { currency_pair: { Base: 'USDT', Quote: 'USD' } }, + }, + ); + expect(res.market).toBeDefined(); + }); + test('query market map', async () => { const res = await neutronChain.queryContract( contractAddress, From 48b0fa2d0cd88fbf462f62c4f2f24e1599aa79e0 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Mon, 1 Jul 2024 12:42:45 -0400 Subject: [PATCH 21/33] change tf proposal title and description --- src/testcases/parallel/tokenfactory.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index b75eeda8..7128ac4e 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -40,8 +40,8 @@ async function whitelistTokenfactoryHook( const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; const proposalId = await subdaoMember1.submitUpdateParamsTokenfactoryProposal( chainManagerAddress, - 'Proposal #2', - 'Cron update params proposal. Will pass', + 'whitelist proposal', + 'whitelist tokenfactory hook. Will pass', updateTokenfactoryParamsProposal({ denom_creation_fee: [], denom_creation_gas_consume: 0, From 6b33cec227996783fa3e2d4fff488f90940cd8e0 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Mon, 1 Jul 2024 16:57:51 -0400 Subject: [PATCH 22/33] add test for set non-whitelisted hook failure --- src/testcases/parallel/tokenfactory.test.ts | 112 +++++++++++--------- 1 file changed, 61 insertions(+), 51 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index 7128ac4e..253e9800 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -346,59 +346,69 @@ describe('Neutron / Tokenfactory', () => { expect(queryTrack.track.received).toEqual(false); expect(queryBlock.block.received).toEqual(false); - - await whitelistTokenfactoryHook( - neutronChain, - subDao, - subdaoMember1, - codeId, - ownerWallet.address.toString(), - ); - - await msgSetBeforeSendHook( - neutronAccount, - ownerWallet.address.toString(), - newTokenDenom, - contractAddress, - ); - - const hookAfter = await getBeforeSendHook( - neutronChain.sdk.url, - newTokenDenom, - ); - expect(hookAfter.contract_addr).toEqual(contractAddress); - - await neutronAccount.msgSend(contractAddress, { - amount: '1', - denom: newTokenDenom, - }); - - const contractBalanceAfter = await neutronChain.queryDenomBalance( - contractAddress, - newTokenDenom, - ); - expect(contractBalanceAfter).toEqual(667); - - const balanceAfter = await neutronChain.queryDenomBalance( - ownerWallet.address.toString(), - newTokenDenom, - ); - expect(balanceAfter).toEqual(9333); - - queryBlock = await neutronChain.queryContract<{ - block: { received: boolean }; - }>(contractAddress, { - sudo_result_block_before: {}, + test('set non-whitelisted hook fails ', async () => { + const res = await msgSetBeforeSendHook( + neutronAccount, + ownerWallet.address.toString(), + newTokenDenom, + contractAddress, + ); + expect(res.code).not.toEqual(0); // set hook fails }); - - queryTrack = await neutronChain.queryContract<{ - track: { received: boolean }; - }>(contractAddress, { - sudo_result_track_before: {}, + test('set whitelisted hook success ', async () => { + await whitelistTokenfactoryHook( + neutronChain, + subDao, + subdaoMember1, + codeId, + ownerWallet.address.toString(), + ); + + await msgSetBeforeSendHook( + neutronAccount, + ownerWallet.address.toString(), + newTokenDenom, + contractAddress, + ); + + const hookAfter = await getBeforeSendHook( + neutronChain.sdk.url, + newTokenDenom, + ); + expect(hookAfter.contract_addr).toEqual(contractAddress); + + await neutronAccount.msgSend(contractAddress, { + amount: '1', + denom: newTokenDenom, + }); + + const contractBalanceAfter = await neutronChain.queryDenomBalance( + contractAddress, + newTokenDenom, + ); + expect(contractBalanceAfter).toEqual(667); + + const balanceAfter = await neutronChain.queryDenomBalance( + ownerWallet.address.toString(), + newTokenDenom, + ); + expect(balanceAfter).toEqual(9333); + + queryBlock = await neutronChain.queryContract<{ + block: { received: boolean }; + }>(contractAddress, { + sudo_result_block_before: {}, + }); + + queryTrack = await neutronChain.queryContract<{ + track: { received: boolean }; + }>(contractAddress, { + sudo_result_track_before: {}, + }); + + expect(queryTrack.track.received).toEqual(true); + expect(queryBlock.block.received).toEqual(true); }); - - expect(queryTrack.track.received).toEqual(true); - expect(queryBlock.block.received).toEqual(true); }); }); From 153302e907c9ea4c45e9d5d628eb5c0f32285ee2 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Tue, 2 Jul 2024 10:30:21 -0400 Subject: [PATCH 23/33] specify neutronjsplus dep with hash --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 87e222ed..9f35c83e 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@cosmos-client/core": "^0.47.4", "@cosmos-client/cosmwasm": "^0.40.3", "@cosmos-client/ibc": "^1.2.1", - "@neutron-org/neutronjsplus": "neutron-org/neutronjsplus#feat/whitelist-tf-hooks", + "@neutron-org/neutronjsplus": "neutron-org/neutronjsplus#813f9e0c2a8b2377640bc2f1d3934092e9522cdf", "@types/lodash": "^4.14.182", "@types/long": "^5.0.0", "axios": "^0.27.2", From 7ed51757d9956e03d2e5d4352d790bdf9647e962 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Tue, 2 Jul 2024 11:23:58 -0400 Subject: [PATCH 24/33] cleanup test for failing whitelist and change subdao voting period --- package.json | 2 +- src/testcases/parallel/tokenfactory.test.ts | 246 +++++++++++++------- yarn.lock | 4 +- 3 files changed, 159 insertions(+), 93 deletions(-) diff --git a/package.json b/package.json index 9f35c83e..b95135f8 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@cosmos-client/core": "^0.47.4", "@cosmos-client/cosmwasm": "^0.40.3", "@cosmos-client/ibc": "^1.2.1", - "@neutron-org/neutronjsplus": "neutron-org/neutronjsplus#813f9e0c2a8b2377640bc2f1d3934092e9522cdf", + "@neutron-org/neutronjsplus": "neutron-org/neutronjsplus#bcad3b0dc674ad54a63556863515e6832cebed5d", "@types/lodash": "^4.14.182", "@types/long": "^5.0.0", "axios": "^0.27.2", diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index 253e9800..52c197ee 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -56,13 +56,10 @@ async function whitelistTokenfactoryHook( '1000', ); - let timelockedProp = await subdaoMember1.supportAndExecuteProposal( - proposalId, - ); - await waitSeconds(10); - - await subdaoMember1.executeTimelockedProposal(proposalId); - timelockedProp = await subDao.getTimelockedProposal(proposalId); + await subdaoMember1.voteYes(proposalId); + await subDao.checkPassedProposal(proposalId); + await subdaoMember1.executeProposalWithAttempts(proposalId); + let timelockedProp = await subDao.getTimelockedProposal(proposalId); expect(timelockedProp.id).toEqual(proposalId); expect(timelockedProp.status).toEqual('executed'); } @@ -110,35 +107,81 @@ describe('Neutron / Tokenfactory', () => { subdaoMember1 = new DaoMember(neutronAccount, subDao); const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; - const proposalId = - await mainDaoMember.submitAddChainManagerStrategyProposal( - chainManagerAddress, - 'Proposal #1', - 'Add strategy proposal. It will pass', + + // shorten subdao voting period + const currentOverruleProposalConfig = await neutronChain.queryContract( + mainDao.contracts.proposals['overrule'].address, + { + config: {}, + }, + ); + currentOverruleProposalConfig['max_voting_period']['time'] = 5; + let proposalId = await mainDaoMember.submitSingleChoiceProposal( + 'Proposal', + 'Update the max voting period. It will pass', + [ { - add_strategy: { - address: subDao.contracts.core.address, - strategy: { - allow_only: [ - { - update_tokenfactory_params_permission: { - denom_creation_fee: true, - denom_creation_gas_consume: true, - fee_collector_address: true, - whitelisted_hooks: true, + wasm: { + execute: { + contract_addr: mainDao.contracts.proposals['overrule'].address, + msg: Buffer.from( + JSON.stringify({ + update_config: { + threshold: currentOverruleProposalConfig['threshold'], + max_voting_period: + currentOverruleProposalConfig['max_voting_period'], + allow_revoting: + currentOverruleProposalConfig['allow_revoting'], + dao: currentOverruleProposalConfig['dao'], + close_proposal_on_execution_failure: + currentOverruleProposalConfig[ + 'close_proposal_on_execution_failure' + ], }, - }, - ], + }), + ).toString('base64'), + funds: [], }, }, }, - '1000', - ); - + ], + '1000', + ); await mainDaoMember.voteYes(proposalId); await mainDao.checkPassedProposal(proposalId); - await waitSeconds(10); await mainDaoMember.executeProposalWithAttempts(proposalId); + const timelockedProp = await subDao.getTimelockedProposal(proposalId); + + expect(timelockedProp.status).toEqual('executed'); + + let proposalId2 = await mainDaoMember.submitAddChainManagerStrategyProposal( + chainManagerAddress, + 'Proposal #1', + 'Add strategy proposal. It will pass', + { + add_strategy: { + address: subDao.contracts.core.address, + strategy: { + allow_only: [ + { + update_tokenfactory_params_permission: { + denom_creation_fee: true, + denom_creation_gas_consume: true, + fee_collector_address: true, + whitelisted_hooks: true, + }, + }, + ], + }, + }, + }, + '1000', + ); + + await mainDaoMember.voteYes(proposalId2); + await mainDao.checkPassedProposal(proposalId2); + await waitSeconds(10); + await mainDaoMember.executeProposalWithAttempts(proposalId2); }); test('tokenfactory module is added', async () => { @@ -284,7 +327,7 @@ describe('Neutron / Tokenfactory', () => { expect(balanceAfter).toEqual(9900); }); - test('create denom, set before send hook', async () => { + test('set non-whitlisted hook fails', async () => { const codeId = await neutronAccount.storeWasm( NeutronContract.BEFORE_SEND_HOOK_TEST, ); @@ -299,6 +342,39 @@ describe('Neutron / Tokenfactory', () => { const denom = `test5`; + const data = await msgCreateDenom( + neutronAccount, + ownerWallet.address.toString(), + denom, + ); + const newTokenDenom = getEventAttribute( + (data as any).events, + 'create_denom', + 'new_token_denom', + ); + let res2 = await msgSetBeforeSendHook( + neutronAccount, + ownerWallet.address.toString(), + newTokenDenom, + contractAddress, + ); + expect(res2.code).toEqual(14); // "beforeSendHook is not whitelisted" + }); + test('create denom, set before send hook', async () => { + const codeId = await neutronAccount.storeWasm( + NeutronContract.BEFORE_SEND_HOOK_TEST, + ); + expect(codeId).toBeGreaterThan(0); + + const res = await neutronAccount.instantiateContract( + codeId, + '{}', + 'before_send_hook_test', + ); + const contractAddress = res[0]._contract_address; + + const denom = `test6`; + const data = await msgCreateDenom( neutronAccount, ownerWallet.address.toString(), @@ -346,69 +422,59 @@ describe('Neutron / Tokenfactory', () => { expect(queryTrack.track.received).toEqual(false); expect(queryBlock.block.received).toEqual(false); - test('set non-whitelisted hook fails ', async () => { - const res = await msgSetBeforeSendHook( - neutronAccount, - ownerWallet.address.toString(), - newTokenDenom, - contractAddress, - ); - expect(res.code).not.toEqual(0); // set hook fails + + await whitelistTokenfactoryHook( + neutronChain, + subDao, + subdaoMember1, + codeId, + ownerWallet.address.toString(), + ); + + await msgSetBeforeSendHook( + neutronAccount, + ownerWallet.address.toString(), + newTokenDenom, + contractAddress, + ); + + const hookAfter = await getBeforeSendHook( + neutronChain.sdk.url, + newTokenDenom, + ); + expect(hookAfter.contract_addr).toEqual(contractAddress); + + await neutronAccount.msgSend(contractAddress, { + amount: '1', + denom: newTokenDenom, + }); + + const contractBalanceAfter = await neutronChain.queryDenomBalance( + contractAddress, + newTokenDenom, + ); + expect(contractBalanceAfter).toEqual(667); + + const balanceAfter = await neutronChain.queryDenomBalance( + ownerWallet.address.toString(), + newTokenDenom, + ); + expect(balanceAfter).toEqual(9333); + + queryBlock = await neutronChain.queryContract<{ + block: { received: boolean }; + }>(contractAddress, { + sudo_result_block_before: {}, }); - test('set whitelisted hook success ', async () => { - await whitelistTokenfactoryHook( - neutronChain, - subDao, - subdaoMember1, - codeId, - ownerWallet.address.toString(), - ); - - await msgSetBeforeSendHook( - neutronAccount, - ownerWallet.address.toString(), - newTokenDenom, - contractAddress, - ); - - const hookAfter = await getBeforeSendHook( - neutronChain.sdk.url, - newTokenDenom, - ); - expect(hookAfter.contract_addr).toEqual(contractAddress); - - await neutronAccount.msgSend(contractAddress, { - amount: '1', - denom: newTokenDenom, - }); - - const contractBalanceAfter = await neutronChain.queryDenomBalance( - contractAddress, - newTokenDenom, - ); - expect(contractBalanceAfter).toEqual(667); - - const balanceAfter = await neutronChain.queryDenomBalance( - ownerWallet.address.toString(), - newTokenDenom, - ); - expect(balanceAfter).toEqual(9333); - - queryBlock = await neutronChain.queryContract<{ - block: { received: boolean }; - }>(contractAddress, { - sudo_result_block_before: {}, - }); - - queryTrack = await neutronChain.queryContract<{ - track: { received: boolean }; - }>(contractAddress, { - sudo_result_track_before: {}, - }); - - expect(queryTrack.track.received).toEqual(true); - expect(queryBlock.block.received).toEqual(true); + + queryTrack = await neutronChain.queryContract<{ + track: { received: boolean }; + }>(contractAddress, { + sudo_result_track_before: {}, }); + + expect(queryTrack.track.received).toEqual(true); + expect(queryBlock.block.received).toEqual(true); }); }); diff --git a/yarn.lock b/yarn.lock index 47a42d15..ad50ea93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1568,9 +1568,9 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@neutron-org/neutronjsplus@neutron-org/neutronjsplus#feat/whitelist-tf-hooks": +"@neutron-org/neutronjsplus@neutron-org/neutronjsplus#bcad3b0dc674ad54a63556863515e6832cebed5d": version "0.4.0-rc19" - resolved "https://codeload.github.com/neutron-org/neutronjsplus/tar.gz/891da6c41e0801fa8e5422d166c835df5f41eef8" + resolved "https://codeload.github.com/neutron-org/neutronjsplus/tar.gz/bcad3b0dc674ad54a63556863515e6832cebed5d" dependencies: "@bufbuild/protobuf" "^1.4.2" "@cosmos-client/core" "^0.47.4" From d8260ed884a1bb39f2b7bd2315542cdf5503b478 Mon Sep 17 00:00:00 2001 From: nhpd Date: Tue, 2 Jul 2024 19:52:53 +0400 Subject: [PATCH 25/33] also test for last_updated query before marketmap created --- src/testcases/run_in_band/slinky.test.ts | 85 ++++++++++++++---------- 1 file changed, 49 insertions(+), 36 deletions(-) diff --git a/src/testcases/run_in_band/slinky.test.ts b/src/testcases/run_in_band/slinky.test.ts index 4de70912..e85433ee 100644 --- a/src/testcases/run_in_band/slinky.test.ts +++ b/src/testcases/run_in_band/slinky.test.ts @@ -35,6 +35,9 @@ describe('Neutron / Slinky', () => { let proposalId: number; + let oracleContract: string; + let marketmapContract: string; + beforeAll(async () => { testState = new TestStateLocalCosmosTestNet(config); await testState.init(); @@ -66,6 +69,44 @@ describe('Neutron / Slinky', () => { }); }); + describe('prepare: deploy contract', () => { + test('setup oracle contract', async () => { + const codeId = await neutronAccount.storeWasm(NeutronContract.ORACLE); + expect(codeId).toBeGreaterThan(0); + + const res = await neutronAccount.instantiateContract( + codeId, + '{}', + 'oracle', + ); + oracleContract = res[0]._contract_address; + }); + + test('setup marketmap contract', async () => { + const codeId = await neutronAccount.storeWasm(NeutronContract.MARKETMAP); + expect(codeId).toBeGreaterThan(0); + + const res = await neutronAccount.instantiateContract( + codeId, + '{}', + 'marketmap', + ); + marketmapContract = res[0]._contract_address; + }); + }); + + describe('before create market map', () => { + test('query last should return null', async () => { + const res = await neutronChain.queryContract( + marketmapContract, + { + last_updated: {}, + }, + ); + expect(res.last_updated).toBe(null); + }); + }); + describe('submit proposal', () => { test('create proposal', async () => { const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; @@ -157,23 +198,9 @@ describe('Neutron / Slinky', () => { }); describe('wasmbindings oracle', () => { - let contractAddress: string; - - test('setup contract', async () => { - const codeId = await neutronAccount.storeWasm(NeutronContract.ORACLE); - expect(codeId).toBeGreaterThan(0); - - const res = await neutronAccount.instantiateContract( - codeId, - '{}', - 'oracle', - ); - contractAddress = res[0]._contract_address; - }); - test('query prices', async () => { const res = await neutronChain.queryContract( - contractAddress, + oracleContract, { get_prices: { currency_pair_ids: ['TIA/USD'], @@ -186,7 +213,7 @@ describe('Neutron / Slinky', () => { test('query price', async () => { const res = await neutronChain.queryContract( - contractAddress, + oracleContract, { get_price: { currency_pair: { Base: 'TIA', Quote: 'USD' } }, }, @@ -196,7 +223,7 @@ describe('Neutron / Slinky', () => { test('query currencies', async () => { const res = await neutronChain.queryContract( - contractAddress, + oracleContract, { get_all_currency_pairs: {}, }, @@ -206,23 +233,9 @@ describe('Neutron / Slinky', () => { }); }); describe('wasmbindings marketmap', () => { - let contractAddress: string; - - test('setup contract', async () => { - const codeId = await neutronAccount.storeWasm(NeutronContract.MARKETMAP); - expect(codeId).toBeGreaterThan(0); - - const res = await neutronAccount.instantiateContract( - codeId, - '{}', - 'marketmap', - ); - contractAddress = res[0]._contract_address; - }); - test('query last', async () => { const res = await neutronChain.queryContract( - contractAddress, + marketmapContract, { last_updated: {}, }, @@ -232,7 +245,7 @@ describe('Neutron / Slinky', () => { test('query market', async () => { const res = await neutronChain.queryContract( - contractAddress, + marketmapContract, { market: { currency_pair: { Base: 'TIA', Quote: 'USD' } }, }, @@ -242,7 +255,7 @@ describe('Neutron / Slinky', () => { test('query market with empty metadata_JSON', async () => { const res = await neutronChain.queryContract( - contractAddress, + marketmapContract, { market: { currency_pair: { Base: 'USDT', Quote: 'USD' } }, }, @@ -252,7 +265,7 @@ describe('Neutron / Slinky', () => { test('query market map', async () => { const res = await neutronChain.queryContract( - contractAddress, + marketmapContract, { market_map: {}, }, @@ -265,7 +278,7 @@ describe('Neutron / Slinky', () => { test('query params', async () => { const res = await neutronChain.queryContract( - contractAddress, + marketmapContract, { params: {}, }, From b2be1b520f8182a2c29ce68c1ec9e3163649937f Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Tue, 2 Jul 2024 12:18:43 -0400 Subject: [PATCH 26/33] fix whitelist proposal --- src/testcases/parallel/tokenfactory.test.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index 52c197ee..c6fc6232 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -40,12 +40,13 @@ async function whitelistTokenfactoryHook( const chainManagerAddress = (await neutronChain.getChainAdmins())[0]; const proposalId = await subdaoMember1.submitUpdateParamsTokenfactoryProposal( chainManagerAddress, - 'whitelist proposal', + 'whitelist TF hook proposal', 'whitelist tokenfactory hook. Will pass', updateTokenfactoryParamsProposal({ - denom_creation_fee: [], + // TEMP: Validation on neutron is broken and we cannot submit an empty fee_collector_address + denom_creation_fee: [{ denom: 'untrn', amount: '1' }], denom_creation_gas_consume: 0, - fee_collector_address: '', + fee_collector_address: 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', whitelisted_hooks: [ { code_id: codeID, @@ -56,10 +57,11 @@ async function whitelistTokenfactoryHook( '1000', ); - await subdaoMember1.voteYes(proposalId); - await subDao.checkPassedProposal(proposalId); - await subdaoMember1.executeProposalWithAttempts(proposalId); - let timelockedProp = await subDao.getTimelockedProposal(proposalId); + let timelockedProp = + await subdaoMember1.supportAndExecuteProposal(proposalId); + await waitSeconds(10); + await subdaoMember1.executeTimelockedProposal(proposalId); + timelockedProp = await subDao.getTimelockedProposal(proposalId); expect(timelockedProp.id).toEqual(proposalId); expect(timelockedProp.status).toEqual('executed'); } @@ -150,9 +152,6 @@ describe('Neutron / Tokenfactory', () => { await mainDaoMember.voteYes(proposalId); await mainDao.checkPassedProposal(proposalId); await mainDaoMember.executeProposalWithAttempts(proposalId); - const timelockedProp = await subDao.getTimelockedProposal(proposalId); - - expect(timelockedProp.status).toEqual('executed'); let proposalId2 = await mainDaoMember.submitAddChainManagerStrategyProposal( chainManagerAddress, From ca9a9ea3de14cf9bc28754f0bb2d513cce92ea44 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Tue, 2 Jul 2024 12:20:35 -0400 Subject: [PATCH 27/33] lint --- src/testcases/parallel/tokenfactory.test.ts | 50 +++++++++++---------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index c6fc6232..16cbb179 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -57,8 +57,9 @@ async function whitelistTokenfactoryHook( '1000', ); - let timelockedProp = - await subdaoMember1.supportAndExecuteProposal(proposalId); + let timelockedProp = await subdaoMember1.supportAndExecuteProposal( + proposalId, + ); await waitSeconds(10); await subdaoMember1.executeTimelockedProposal(proposalId); timelockedProp = await subDao.getTimelockedProposal(proposalId); @@ -118,7 +119,7 @@ describe('Neutron / Tokenfactory', () => { }, ); currentOverruleProposalConfig['max_voting_period']['time'] = 5; - let proposalId = await mainDaoMember.submitSingleChoiceProposal( + const proposalId = await mainDaoMember.submitSingleChoiceProposal( 'Proposal', 'Update the max voting period. It will pass', [ @@ -153,29 +154,30 @@ describe('Neutron / Tokenfactory', () => { await mainDao.checkPassedProposal(proposalId); await mainDaoMember.executeProposalWithAttempts(proposalId); - let proposalId2 = await mainDaoMember.submitAddChainManagerStrategyProposal( - chainManagerAddress, - 'Proposal #1', - 'Add strategy proposal. It will pass', - { - add_strategy: { - address: subDao.contracts.core.address, - strategy: { - allow_only: [ - { - update_tokenfactory_params_permission: { - denom_creation_fee: true, - denom_creation_gas_consume: true, - fee_collector_address: true, - whitelisted_hooks: true, + const proposalId2 = + await mainDaoMember.submitAddChainManagerStrategyProposal( + chainManagerAddress, + 'Proposal #1', + 'Add strategy proposal. It will pass', + { + add_strategy: { + address: subDao.contracts.core.address, + strategy: { + allow_only: [ + { + update_tokenfactory_params_permission: { + denom_creation_fee: true, + denom_creation_gas_consume: true, + fee_collector_address: true, + whitelisted_hooks: true, + }, }, - }, - ], + ], + }, }, }, - }, - '1000', - ); + '1000', + ); await mainDaoMember.voteYes(proposalId2); await mainDao.checkPassedProposal(proposalId2); @@ -351,7 +353,7 @@ describe('Neutron / Tokenfactory', () => { 'create_denom', 'new_token_denom', ); - let res2 = await msgSetBeforeSendHook( + const res2 = await msgSetBeforeSendHook( neutronAccount, ownerWallet.address.toString(), newTokenDenom, From ace269e0e80efca358c04cd0896579033da374ff Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Tue, 2 Jul 2024 13:43:12 -0400 Subject: [PATCH 28/33] remove temp fee_collector_address --- src/testcases/parallel/tokenfactory.test.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/parallel/tokenfactory.test.ts index 16cbb179..91eb659d 100644 --- a/src/testcases/parallel/tokenfactory.test.ts +++ b/src/testcases/parallel/tokenfactory.test.ts @@ -43,10 +43,9 @@ async function whitelistTokenfactoryHook( 'whitelist TF hook proposal', 'whitelist tokenfactory hook. Will pass', updateTokenfactoryParamsProposal({ - // TEMP: Validation on neutron is broken and we cannot submit an empty fee_collector_address - denom_creation_fee: [{ denom: 'untrn', amount: '1' }], + denom_creation_fee: [], denom_creation_gas_consume: 0, - fee_collector_address: 'neutron1m9l358xunhhwds0568za49mzhvuxx9ux8xafx2', + fee_collector_address: '', whitelisted_hooks: [ { code_id: codeID, From 2b5fc0cc4382c74acf29aac5f3996b45c733affb Mon Sep 17 00:00:00 2001 From: quasisamurai Date: Wed, 3 Jul 2024 07:32:35 -0300 Subject: [PATCH 29/33] attempt to fix njs problem --- package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b95135f8..2cc8a5f3 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@cosmos-client/core": "^0.47.4", "@cosmos-client/cosmwasm": "^0.40.3", "@cosmos-client/ibc": "^1.2.1", - "@neutron-org/neutronjsplus": "neutron-org/neutronjsplus#bcad3b0dc674ad54a63556863515e6832cebed5d", + "@neutron-org/neutronjsplus": "neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d", "@types/lodash": "^4.14.182", "@types/long": "^5.0.0", "axios": "^0.27.2", diff --git a/yarn.lock b/yarn.lock index ad50ea93..5145cdd1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1568,7 +1568,7 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@neutron-org/neutronjsplus@neutron-org/neutronjsplus#bcad3b0dc674ad54a63556863515e6832cebed5d": +"@neutron-org/neutronjsplus@neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d": version "0.4.0-rc19" resolved "https://codeload.github.com/neutron-org/neutronjsplus/tar.gz/bcad3b0dc674ad54a63556863515e6832cebed5d" dependencies: From 2ab117543f057fe294f1c081e9b28cbd205754c2 Mon Sep 17 00:00:00 2001 From: quasisamurai Date: Wed, 3 Jul 2024 08:48:15 -0300 Subject: [PATCH 30/33] another attempt to fix dependency --- package.json | 2 +- yarn.lock | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 2cc8a5f3..985f16e8 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@cosmos-client/core": "^0.47.4", "@cosmos-client/cosmwasm": "^0.40.3", "@cosmos-client/ibc": "^1.2.1", - "@neutron-org/neutronjsplus": "neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d", + "@neutron-org/neutronjsplus": "github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d", "@types/lodash": "^4.14.182", "@types/long": "^5.0.0", "axios": "^0.27.2", diff --git a/yarn.lock b/yarn.lock index 5145cdd1..905e8765 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1568,9 +1568,10 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@neutron-org/neutronjsplus@neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d": - version "0.4.0-rc19" - resolved "https://codeload.github.com/neutron-org/neutronjsplus/tar.gz/bcad3b0dc674ad54a63556863515e6832cebed5d" +"@neutron-org/neutronjsplus@github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@neutron-org/neutronjsplus/-/neutronjsplus-0.4.1.tgz#5e7b6e8f0ea63873719ae9011103c297c3eca209" + integrity sha512-CyRAxai2Pk8tpU+0cUEGGchwwf2wBa8wfCPWJRf07PRTvBJ06sEYMfJqW0kdUtLuBc9tqEt4DD2IGfGkOrVwyg== dependencies: "@bufbuild/protobuf" "^1.4.2" "@cosmos-client/core" "^0.47.4" From bd5a28bc1d530b8d4709d294bcf7c31f35ce24a9 Mon Sep 17 00:00:00 2001 From: Julian Compagni Portis Date: Wed, 3 Jul 2024 15:30:21 -0400 Subject: [PATCH 31/33] run tokenfactory tests in_band --- package.json | 4 ++-- src/testcases/{parallel => run_in_band}/tokenfactory.test.ts | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename src/testcases/{parallel => run_in_band}/tokenfactory.test.ts (100%) diff --git a/package.json b/package.json index 985f16e8..d56713a7 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "test": "yarn test:parallel && yarn test:run_in_band", "test:parallel": "jest -b src/testcases/parallel", - "test:run_in_band": "yarn test:tge:auction && yarn test:tge:credits && yarn test:interchaintx && yarn test:interchain_kv_query && yarn test:interchain_tx_query_plain && yarn test:tokenomics && yarn test:reserve && yarn test:ibc_hooks && yarn test:float && yarn test:parameters && yarn test:dex_stargate && yarn test:dex_bindings && yarn test:slinky && yarn test:chain_manager && yarn test:feemarket && yarn test:globalfee", + "test:run_in_band": "yarn test:tge:auction && yarn test:tge:credits && yarn test:interchaintx && yarn test:interchain_kv_query && yarn test:interchain_tx_query_plain && yarn test:tokenomics && yarn test:reserve && yarn test:ibc_hooks && yarn test:float && yarn test:parameters && yarn test:dex_stargate && yarn test:dex_bindings && yarn test:slinky && yarn test:chain_manager && yarn test:feemarket && yarn test:globalfee && yarn test:tokenfactory", "test:simple": "jest -b src/testcases/parallel/simple", "test:slinky": "jest -b src/testcases/run_in_band/slinky", "test:stargate_queries": "jest -b src/testcases/parallel/stargate_queries", @@ -24,7 +24,7 @@ "test:ibc_hooks": "jest -b src/testcases/run_in_band/ibc_hooks", "test:parameters": "jest -b src/testcases/run_in_band/parameters", "test:chain_manager": "jest -b src/testcases/run_in_band/chain_manager", - "test:tokenfactory": "jest -b src/testcases/parallel/tokenfactory", + "test:tokenfactory": "jest -b src/testcases/run_in_band/tokenfactory", "test:overrule": "jest -b src/testcases/parallel/overrule", "test:tge:vesting_lp_vault": "jest -b src/testcases/parallel/tge.vesting_lp_vault", "test:tge:credits_vault": "jest -b src/testcases/parallel/tge.credits_vault", diff --git a/src/testcases/parallel/tokenfactory.test.ts b/src/testcases/run_in_band/tokenfactory.test.ts similarity index 100% rename from src/testcases/parallel/tokenfactory.test.ts rename to src/testcases/run_in_band/tokenfactory.test.ts From 0645791eb7308cca52efbbfd7a51837f34ad254b Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Thu, 4 Jul 2024 15:41:35 +0300 Subject: [PATCH 32/33] fix tests --- package.json | 2 +- src/testcases/run_in_band/parameters.test.ts | 5 +- yarn.lock | 1527 +++++++++--------- 3 files changed, 768 insertions(+), 766 deletions(-) diff --git a/package.json b/package.json index d56713a7..fa8536c5 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@cosmos-client/core": "^0.47.4", "@cosmos-client/cosmwasm": "^0.40.3", "@cosmos-client/ibc": "^1.2.1", - "@neutron-org/neutronjsplus": "github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d", + "@neutron-org/neutronjsplus": "https://github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d", "@types/lodash": "^4.14.182", "@types/long": "^5.0.0", "axios": "^0.27.2", diff --git a/src/testcases/run_in_band/parameters.test.ts b/src/testcases/run_in_band/parameters.test.ts index 8d895542..bcc417e3 100644 --- a/src/testcases/run_in_band/parameters.test.ts +++ b/src/testcases/run_in_band/parameters.test.ts @@ -18,7 +18,7 @@ import { updateFeerefunderParamsProposal, updateInterchainqueriesParamsProposal, updateInterchaintxsParamsProposal, - updateTokenfacoryParamsProposal, + updateTokenfactoryParamsProposal, updateTransferParamsProposal, } from '@neutron-org/neutronjsplus/dist/proposal'; @@ -127,10 +127,11 @@ describe('Neutron / Parameters', () => { chainManagerAddress, 'Proposal #2', 'Tokenfactory params proposal', - updateTokenfacoryParamsProposal({ + updateTokenfactoryParamsProposal({ fee_collector_address: await neutronChain.getNeutronDAOCore(), denom_creation_fee: [{ denom: 'untrn', amount: '1' }], denom_creation_gas_consume: 100000, + whitelisted_hooks: [], }), '1000', ); diff --git a/yarn.lock b/yarn.lock index 905e8765..57f27441 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,96 +10,97 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2": - version "7.24.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" - integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== dependencies: - "@babel/highlight" "^7.24.2" + "@babel/highlight" "^7.24.7" picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" - integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" + integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.5.tgz#15ab5b98e101972d171aeef92ac70d8d6718f06a" - integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4" + integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.2" - "@babel/generator" "^7.24.5" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.24.5" - "@babel/helpers" "^7.24.5" - "@babel/parser" "^7.24.5" - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.5" - "@babel/types" "^7.24.5" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helpers" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/template" "^7.24.7" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.24.5", "@babel/generator@^7.7.2": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.5.tgz#e5afc068f932f05616b66713e28d0f04e99daeb3" - integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA== +"@babel/generator@^7.24.7", "@babel/generator@^7.7.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" + integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== dependencies: - "@babel/types" "^7.24.5" + "@babel/types" "^7.24.7" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.24.7" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" - integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" + integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== dependencies: - "@babel/types" "^7.22.15" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz#4eb6c4a80d6ffeac25ab8cd9a21b5dfa48d503a9" + integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg== dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" + "@babel/compat-data" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.24.1", "@babel/helper-create-class-features-plugin@^7.24.4", "@babel/helper-create-class-features-plugin@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz#7d19da92c7e0cd8d11c09af2ce1b8e7512a6e723" - integrity sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-member-expression-to-functions" "^7.24.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.24.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.24.5" +"@babel/helper-create-class-features-plugin@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz#2eaed36b3a1c11c53bdf80d53838b293c52f5b3b" + integrity sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.7" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" - integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz#be4f435a80dc2b053c76eeb4b7d16dd22cfc89da" + integrity sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-annotate-as-pure" "^7.24.7" regexpu-core "^5.3.1" semver "^6.3.1" @@ -114,181 +115,187 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== +"@babel/helper-environment-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" + integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.24.7" -"@babel/helper-member-expression-to-functions@^7.23.0", "@babel/helper-member-expression-to-functions@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz#5981e131d5c7003c7d1fa1ad49e86c9b097ec475" - integrity sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA== +"@babel/helper-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2" + integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== dependencies: - "@babel/types" "^7.24.5" - -"@babel/helper-module-imports@^7.24.1", "@babel/helper-module-imports@^7.24.3": - version "7.24.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" - integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== - dependencies: - "@babel/types" "^7.24.0" + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-hoist-variables@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee" + integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== + dependencies: + "@babel/types" "^7.24.7" -"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz#ea6c5e33f7b262a0ae762fd5986355c45f54a545" - integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.24.3" - "@babel/helper-simple-access" "^7.24.5" - "@babel/helper-split-export-declaration" "^7.24.5" - "@babel/helper-validator-identifier" "^7.24.5" - -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz#a924607dd254a65695e5bd209b98b902b3b2f11a" - integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== - -"@babel/helper-remap-async-to-generator@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" - integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-wrap-function" "^7.22.20" - -"@babel/helper-replace-supers@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz#7085bd19d4a0b7ed8f405c1ed73ccb70f323abc1" - integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-member-expression-to-functions" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" - -"@babel/helper-simple-access@^7.22.5", "@babel/helper-simple-access@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz#50da5b72f58c16b07fbd992810be6049478e85ba" - integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== - dependencies: - "@babel/types" "^7.24.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6" - integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q== - dependencies: - "@babel/types" "^7.24.5" - -"@babel/helper-string-parser@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" - integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== - -"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62" - integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== - -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helper-wrap-function@^7.22.20": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz#335f934c0962e2c1ed1fb9d79e06a56115067c09" - integrity sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw== - dependencies: - "@babel/helper-function-name" "^7.23.0" - "@babel/template" "^7.24.0" - "@babel/types" "^7.24.5" - -"@babel/helpers@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.5.tgz#fedeb87eeafa62b621160402181ad8585a22a40a" - integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q== - dependencies: - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.5" - "@babel/types" "^7.24.5" - -"@babel/highlight@^7.24.2": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e" - integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw== - dependencies: - "@babel/helper-validator-identifier" "^7.24.5" +"@babel/helper-member-expression-to-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz#67613d068615a70e4ed5101099affc7a41c5225f" + integrity sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz#31b6c9a2930679498db65b685b1698bfd6c7daf8" + integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz#98c84fe6fe3d0d3ae7bfc3a5e166a46844feb2a0" + integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg== + +"@babel/helper-remap-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz#b3f0f203628522713849d49403f1a414468be4c7" + integrity sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-wrap-function" "^7.24.7" + +"@babel/helper-replace-supers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz#f933b7eed81a1c0265740edc91491ce51250f765" + integrity sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.7" + "@babel/helper-optimise-call-expression" "^7.24.7" + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-split-export-declaration@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" + integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" + integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz#24c3bb77c7a425d1742eec8fb433b5a1b38e62f6" + integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw== + +"@babel/helper-wrap-function@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz#52d893af7e42edca7c6d2c6764549826336aae1f" + integrity sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw== + dependencies: + "@babel/helper-function-name" "^7.24.7" + "@babel/template" "^7.24.7" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helpers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.7.tgz#aa2ccda29f62185acb5d42fb4a3a1b1082107416" + integrity sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg== + dependencies: + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" chalk "^2.4.2" js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790" - integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" + integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz#4c3685eb9cd790bcad2843900fe0250c91ccf895" - integrity sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz#fd059fd27b184ea2b4c7e646868a9a381bbc3055" + integrity sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz#b645d9ba8c2bc5b7af50f0fe949f9edbeb07c8cf" - integrity sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz#468096ca44bbcbe8fcc570574e12eb1950e18107" + integrity sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz#da8261f2697f0f41b0855b91d3a20a1fbfd271d3" - integrity sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" + integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz#1181d9685984c91d657b8ddf14f0487a6bab2988" - integrity sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz#71b21bb0286d5810e63a1538aa901c58e87375ec" + integrity sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -337,19 +344,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz#db3aad724153a00eaac115a3fb898de544e34971" - integrity sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ== +"@babel/plugin-syntax-import-assertions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778" + integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-syntax-import-attributes@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz#c66b966c63b714c4eec508fcf5763b1f2d381093" - integrity sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA== +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" + integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -365,12 +372,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.24.1", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10" - integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== +"@babel/plugin-syntax-jsx@^7.24.7", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -428,12 +435,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.24.1", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844" - integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== +"@babel/plugin-syntax-typescript@^7.24.7", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" + integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -443,424 +450,424 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz#2bf263617060c9cc45bcdbf492b8cc805082bf27" - integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== +"@babel/plugin-transform-arrow-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" + integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-async-generator-functions@^7.24.3": - version "7.24.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz#8fa7ae481b100768cc9842c8617808c5352b8b89" - integrity sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg== +"@babel/plugin-transform-async-generator-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz#7330a5c50e05181ca52351b8fd01642000c96cfd" + integrity sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz#0e220703b89f2216800ce7b1c53cb0cf521c37f4" - integrity sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw== +"@babel/plugin-transform-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" + integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== dependencies: - "@babel/helper-module-imports" "^7.24.1" - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" -"@babel/plugin-transform-block-scoped-functions@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz#1c94799e20fcd5c4d4589523bbc57b7692979380" - integrity sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg== +"@babel/plugin-transform-block-scoped-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" + integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-block-scoping@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz#89574191397f85661d6f748d4b89ee4d9ee69a2a" - integrity sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw== +"@babel/plugin-transform-block-scoping@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz#42063e4deb850c7bd7c55e626bf4e7ab48e6ce02" + integrity sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-class-properties@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz#bcbf1aef6ba6085cfddec9fc8d58871cf011fc29" - integrity sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g== +"@babel/plugin-transform-class-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" + integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.1" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-class-static-block@^7.24.4": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz#1a4653c0cf8ac46441ec406dece6e9bc590356a4" - integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== +"@babel/plugin-transform-class-static-block@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" + integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.4" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz#05e04a09df49a46348299a0e24bfd7e901129339" - integrity sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.24.5" - "@babel/helper-replace-supers" "^7.24.1" - "@babel/helper-split-export-declaration" "^7.24.5" +"@babel/plugin-transform-classes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz#4ae6ef43a12492134138c1e45913f7c46c41b4bf" + integrity sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz#bc7e787f8e021eccfb677af5f13c29a9934ed8a7" - integrity sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw== +"@babel/plugin-transform-computed-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" + integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/template" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/template" "^7.24.7" -"@babel/plugin-transform-destructuring@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz#80843ee6a520f7362686d1a97a7b53544ede453c" - integrity sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg== +"@babel/plugin-transform-destructuring@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz#a097f25292defb6e6cc16d6333a4cfc1e3c72d9e" + integrity sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw== dependencies: - "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-dotall-regex@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz#d56913d2f12795cc9930801b84c6f8c47513ac13" - integrity sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw== +"@babel/plugin-transform-dotall-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" + integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-duplicate-keys@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz#5347a797fe82b8d09749d10e9f5b83665adbca88" - integrity sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA== +"@babel/plugin-transform-duplicate-keys@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" + integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-dynamic-import@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz#2a5a49959201970dd09a5fca856cb651e44439dd" - integrity sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA== +"@babel/plugin-transform-dynamic-import@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" + integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz#6650ebeb5bd5c012d5f5f90a26613a08162e8ba4" - integrity sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw== +"@babel/plugin-transform-exponentiation-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" + integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-export-namespace-from@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz#f033541fc036e3efb2dcb58eedafd4f6b8078acd" - integrity sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ== +"@babel/plugin-transform-export-namespace-from@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" + integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz#67448446b67ab6c091360ce3717e7d3a59e202fd" - integrity sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg== +"@babel/plugin-transform-for-of@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" + integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" -"@babel/plugin-transform-function-name@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz#8cba6f7730626cc4dfe4ca2fa516215a0592b361" - integrity sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA== +"@babel/plugin-transform-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz#6d8601fbffe665c894440ab4470bc721dd9131d6" + integrity sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w== dependencies: - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-json-strings@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz#08e6369b62ab3e8a7b61089151b161180c8299f7" - integrity sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ== +"@babel/plugin-transform-json-strings@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" + integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-literals@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz#0a1982297af83e6b3c94972686067df588c5c096" - integrity sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g== +"@babel/plugin-transform-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz#36b505c1e655151a9d7607799a9988fc5467d06c" + integrity sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-logical-assignment-operators@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz#719d8aded1aa94b8fb34e3a785ae8518e24cfa40" - integrity sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w== +"@babel/plugin-transform-logical-assignment-operators@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" + integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz#896d23601c92f437af8b01371ad34beb75df4489" - integrity sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg== +"@babel/plugin-transform-member-expression-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" + integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-modules-amd@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz#b6d829ed15258536977e9c7cc6437814871ffa39" - integrity sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ== +"@babel/plugin-transform-modules-amd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" + integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-modules-commonjs@^7.18.6", "@babel/plugin-transform-modules-commonjs@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz#e71ba1d0d69e049a22bf90b3867e263823d3f1b9" - integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== +"@babel/plugin-transform-modules-commonjs@^7.18.6", "@babel/plugin-transform-modules-commonjs@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz#9fd5f7fdadee9085886b183f1ad13d1ab260f4ab" + integrity sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ== dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" -"@babel/plugin-transform-modules-systemjs@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz#2b9625a3d4e445babac9788daec39094e6b11e3e" - integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== +"@babel/plugin-transform-modules-systemjs@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz#f8012316c5098f6e8dee6ecd58e2bc6f003d0ce7" + integrity sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw== dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" -"@babel/plugin-transform-modules-umd@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz#69220c66653a19cf2c0872b9c762b9a48b8bebef" - integrity sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg== +"@babel/plugin-transform-modules-umd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" + integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" + integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-new-target@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz#29c59988fa3d0157de1c871a28cd83096363cc34" - integrity sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug== +"@babel/plugin-transform-new-target@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" + integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz#0cd494bb97cb07d428bd651632cb9d4140513988" - integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" + integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz#5bc019ce5b3435c1cadf37215e55e433d674d4e8" - integrity sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw== +"@babel/plugin-transform-numeric-separator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" + integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz#f91bbcb092ff957c54b4091c86bda8372f0b10ef" - integrity sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA== +"@babel/plugin-transform-object-rest-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" + integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== dependencies: - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.24.5" + "@babel/plugin-transform-parameters" "^7.24.7" -"@babel/plugin-transform-object-super@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz#e71d6ab13483cca89ed95a474f542bbfc20a0520" - integrity sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ== +"@babel/plugin-transform-object-super@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" + integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" -"@babel/plugin-transform-optional-catch-binding@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz#92a3d0efe847ba722f1a4508669b23134669e2da" - integrity sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA== +"@babel/plugin-transform-optional-catch-binding@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" + integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.24.1", "@babel/plugin-transform-optional-chaining@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz#a6334bebd7f9dd3df37447880d0bd64b778e600f" - integrity sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg== +"@babel/plugin-transform-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz#b8f6848a80cf2da98a8a204429bec04756c6d454" + integrity sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz#5c3b23f3a6b8fed090f9b98f2926896d3153cc62" - integrity sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA== +"@babel/plugin-transform-parameters@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" + integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== dependencies: - "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-private-methods@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz#a0faa1ae87eff077e1e47a5ec81c3aef383dc15a" - integrity sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw== +"@babel/plugin-transform-private-methods@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" + integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.24.1" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-private-property-in-object@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz#f5d1fcad36e30c960134cb479f1ca98a5b06eda5" - integrity sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ== +"@babel/plugin-transform-private-property-in-object@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" + integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.24.5" - "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz#d6a9aeab96f03749f4eebeb0b6ea8e90ec958825" - integrity sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA== +"@babel/plugin-transform-property-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" + integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-regenerator@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz#625b7545bae52363bdc1fbbdc7252b5046409c8c" - integrity sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw== +"@babel/plugin-transform-regenerator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" + integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz#8de729f5ecbaaf5cf83b67de13bad38a21be57c1" - integrity sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg== +"@babel/plugin-transform-reserved-words@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" + integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-shorthand-properties@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz#ba9a09144cf55d35ec6b93a32253becad8ee5b55" - integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== +"@babel/plugin-transform-shorthand-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" + integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-spread@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz#a1acf9152cbf690e4da0ba10790b3ac7d2b2b391" - integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== +"@babel/plugin-transform-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" + integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" -"@babel/plugin-transform-sticky-regex@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz#f03e672912c6e203ed8d6e0271d9c2113dc031b9" - integrity sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw== +"@babel/plugin-transform-sticky-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" + integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-template-literals@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz#15e2166873a30d8617e3e2ccadb86643d327aab7" - integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== +"@babel/plugin-transform-template-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" + integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-typeof-symbol@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz#703cace5ef74155fb5eecab63cbfc39bdd25fe12" - integrity sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg== +"@babel/plugin-transform-typeof-symbol@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz#f074be466580d47d6e6b27473a840c9f9ca08fb0" + integrity sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg== dependencies: - "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-typescript@^7.24.1": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz#bcba979e462120dc06a75bd34c473a04781931b8" - integrity sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw== +"@babel/plugin-transform-typescript@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz#b006b3e0094bf0813d505e0c5485679eeaf4a881" + integrity sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.24.5" - "@babel/helper-plugin-utils" "^7.24.5" - "@babel/plugin-syntax-typescript" "^7.24.1" + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-typescript" "^7.24.7" -"@babel/plugin-transform-unicode-escapes@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz#fb3fa16676549ac7c7449db9b342614985c2a3a4" - integrity sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw== +"@babel/plugin-transform-unicode-escapes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" + integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-unicode-property-regex@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz#56704fd4d99da81e5e9f0c0c93cabd91dbc4889e" - integrity sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng== +"@babel/plugin-transform-unicode-property-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" + integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-unicode-regex@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz#57c3c191d68f998ac46b708380c1ce4d13536385" - integrity sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g== +"@babel/plugin-transform-unicode-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" + integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-unicode-sets-regex@^7.24.1": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz#c1ea175b02afcffc9cf57a9c4658326625165b7f" - integrity sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA== +"@babel/plugin-transform-unicode-sets-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" + integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" "@babel/preset-env@^7.20.2": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.5.tgz#6a9ac90bd5a5a9dae502af60dfc58c190551bbcd" - integrity sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ== - dependencies: - "@babel/compat-data" "^7.24.4" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-plugin-utils" "^7.24.5" - "@babel/helper-validator-option" "^7.23.5" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.1" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.1" + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.7.tgz#ff067b4e30ba4a72f225f12f123173e77b987f37" + integrity sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ== + dependencies: + "@babel/compat-data" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.7" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.24.1" - "@babel/plugin-syntax-import-attributes" "^7.24.1" + "@babel/plugin-syntax-import-assertions" "^7.24.7" + "@babel/plugin-syntax-import-attributes" "^7.24.7" "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -872,54 +879,54 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.24.1" - "@babel/plugin-transform-async-generator-functions" "^7.24.3" - "@babel/plugin-transform-async-to-generator" "^7.24.1" - "@babel/plugin-transform-block-scoped-functions" "^7.24.1" - "@babel/plugin-transform-block-scoping" "^7.24.5" - "@babel/plugin-transform-class-properties" "^7.24.1" - "@babel/plugin-transform-class-static-block" "^7.24.4" - "@babel/plugin-transform-classes" "^7.24.5" - "@babel/plugin-transform-computed-properties" "^7.24.1" - "@babel/plugin-transform-destructuring" "^7.24.5" - "@babel/plugin-transform-dotall-regex" "^7.24.1" - "@babel/plugin-transform-duplicate-keys" "^7.24.1" - "@babel/plugin-transform-dynamic-import" "^7.24.1" - "@babel/plugin-transform-exponentiation-operator" "^7.24.1" - "@babel/plugin-transform-export-namespace-from" "^7.24.1" - "@babel/plugin-transform-for-of" "^7.24.1" - "@babel/plugin-transform-function-name" "^7.24.1" - "@babel/plugin-transform-json-strings" "^7.24.1" - "@babel/plugin-transform-literals" "^7.24.1" - "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" - "@babel/plugin-transform-member-expression-literals" "^7.24.1" - "@babel/plugin-transform-modules-amd" "^7.24.1" - "@babel/plugin-transform-modules-commonjs" "^7.24.1" - "@babel/plugin-transform-modules-systemjs" "^7.24.1" - "@babel/plugin-transform-modules-umd" "^7.24.1" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.24.1" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" - "@babel/plugin-transform-numeric-separator" "^7.24.1" - "@babel/plugin-transform-object-rest-spread" "^7.24.5" - "@babel/plugin-transform-object-super" "^7.24.1" - "@babel/plugin-transform-optional-catch-binding" "^7.24.1" - "@babel/plugin-transform-optional-chaining" "^7.24.5" - "@babel/plugin-transform-parameters" "^7.24.5" - "@babel/plugin-transform-private-methods" "^7.24.1" - "@babel/plugin-transform-private-property-in-object" "^7.24.5" - "@babel/plugin-transform-property-literals" "^7.24.1" - "@babel/plugin-transform-regenerator" "^7.24.1" - "@babel/plugin-transform-reserved-words" "^7.24.1" - "@babel/plugin-transform-shorthand-properties" "^7.24.1" - "@babel/plugin-transform-spread" "^7.24.1" - "@babel/plugin-transform-sticky-regex" "^7.24.1" - "@babel/plugin-transform-template-literals" "^7.24.1" - "@babel/plugin-transform-typeof-symbol" "^7.24.5" - "@babel/plugin-transform-unicode-escapes" "^7.24.1" - "@babel/plugin-transform-unicode-property-regex" "^7.24.1" - "@babel/plugin-transform-unicode-regex" "^7.24.1" - "@babel/plugin-transform-unicode-sets-regex" "^7.24.1" + "@babel/plugin-transform-arrow-functions" "^7.24.7" + "@babel/plugin-transform-async-generator-functions" "^7.24.7" + "@babel/plugin-transform-async-to-generator" "^7.24.7" + "@babel/plugin-transform-block-scoped-functions" "^7.24.7" + "@babel/plugin-transform-block-scoping" "^7.24.7" + "@babel/plugin-transform-class-properties" "^7.24.7" + "@babel/plugin-transform-class-static-block" "^7.24.7" + "@babel/plugin-transform-classes" "^7.24.7" + "@babel/plugin-transform-computed-properties" "^7.24.7" + "@babel/plugin-transform-destructuring" "^7.24.7" + "@babel/plugin-transform-dotall-regex" "^7.24.7" + "@babel/plugin-transform-duplicate-keys" "^7.24.7" + "@babel/plugin-transform-dynamic-import" "^7.24.7" + "@babel/plugin-transform-exponentiation-operator" "^7.24.7" + "@babel/plugin-transform-export-namespace-from" "^7.24.7" + "@babel/plugin-transform-for-of" "^7.24.7" + "@babel/plugin-transform-function-name" "^7.24.7" + "@babel/plugin-transform-json-strings" "^7.24.7" + "@babel/plugin-transform-literals" "^7.24.7" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" + "@babel/plugin-transform-member-expression-literals" "^7.24.7" + "@babel/plugin-transform-modules-amd" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-modules-systemjs" "^7.24.7" + "@babel/plugin-transform-modules-umd" "^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" + "@babel/plugin-transform-new-target" "^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" + "@babel/plugin-transform-numeric-separator" "^7.24.7" + "@babel/plugin-transform-object-rest-spread" "^7.24.7" + "@babel/plugin-transform-object-super" "^7.24.7" + "@babel/plugin-transform-optional-catch-binding" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" + "@babel/plugin-transform-parameters" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.24.7" + "@babel/plugin-transform-private-property-in-object" "^7.24.7" + "@babel/plugin-transform-property-literals" "^7.24.7" + "@babel/plugin-transform-regenerator" "^7.24.7" + "@babel/plugin-transform-reserved-words" "^7.24.7" + "@babel/plugin-transform-shorthand-properties" "^7.24.7" + "@babel/plugin-transform-spread" "^7.24.7" + "@babel/plugin-transform-sticky-regex" "^7.24.7" + "@babel/plugin-transform-template-literals" "^7.24.7" + "@babel/plugin-transform-typeof-symbol" "^7.24.7" + "@babel/plugin-transform-unicode-escapes" "^7.24.7" + "@babel/plugin-transform-unicode-property-regex" "^7.24.7" + "@babel/plugin-transform-unicode-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" "@babel/preset-modules" "0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2 "^0.4.10" babel-plugin-polyfill-corejs3 "^0.10.4" @@ -937,15 +944,15 @@ esutils "^2.0.2" "@babel/preset-typescript@^7.18.6": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz#89bdf13a3149a17b3b2a2c9c62547f06db8845ec" - integrity sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ== + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" + integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" - "@babel/helper-validator-option" "^7.23.5" - "@babel/plugin-syntax-jsx" "^7.24.1" - "@babel/plugin-transform-modules-commonjs" "^7.24.1" - "@babel/plugin-transform-typescript" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-typescript" "^7.24.7" "@babel/regjsgen@^0.8.0": version "0.8.0" @@ -953,44 +960,44 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.11.2", "@babel/runtime@^7.21.0", "@babel/runtime@^7.8.4": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c" - integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" + integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" - integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" - -"@babel/traverse@^7.24.5": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.5.tgz#972aa0bc45f16983bf64aa1f877b2dd0eea7e6f8" - integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA== - dependencies: - "@babel/code-frame" "^7.24.2" - "@babel/generator" "^7.24.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.24.5" - "@babel/parser" "^7.24.5" - "@babel/types" "^7.24.5" +"@babel/template@^7.24.7", "@babel/template@^7.3.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" + integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/traverse@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5" + integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7" - integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" + integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== dependencies: - "@babel/helper-string-parser" "^7.24.1" - "@babel/helper-validator-identifier" "^7.24.5" + "@babel/helper-string-parser" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -999,9 +1006,9 @@ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@bufbuild/protobuf@^1.4.2": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-1.9.0.tgz#fffac3183059a41ceef5311e07e3724d426a95c4" - integrity sha512-W7gp8Q/v1NlCZLsv8pQ3Y0uCu/SHgXOVFK+eUluUKWXmsb6VHkpNx0apdOWWcDbB9sJoKeP8uPrjmehJz6xETQ== + version "1.10.0" + resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-1.10.0.tgz#1a67ac889c2d464a3492b3e54c38f80517963b16" + integrity sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag== "@confio/ics23@^0.6.8": version "0.6.8" @@ -1242,9 +1249,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + version "4.11.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== "@eslint/eslintrc@^2.1.4": version "2.1.4" @@ -1568,10 +1575,9 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@neutron-org/neutronjsplus@github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@neutron-org/neutronjsplus/-/neutronjsplus-0.4.1.tgz#5e7b6e8f0ea63873719ae9011103c297c3eca209" - integrity sha512-CyRAxai2Pk8tpU+0cUEGGchwwf2wBa8wfCPWJRf07PRTvBJ06sEYMfJqW0kdUtLuBc9tqEt4DD2IGfGkOrVwyg== +"@neutron-org/neutronjsplus@https://github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d": + version "0.4.0-rc19" + resolved "https://github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d" dependencies: "@bufbuild/protobuf" "^1.4.2" "@cosmos-client/core" "^0.47.4" @@ -1581,19 +1587,14 @@ long "^5.2.1" merkletreejs "^0.3.9" -"@noble/curves@1.3.0", "@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== +"@noble/curves@1.4.2", "@noble/curves@~1.4.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.2.tgz#40309198c76ed71bc6dbf7ba24e81ceb4d0d1fe9" + integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw== dependencies: - "@noble/hashes" "1.3.3" + "@noble/hashes" "1.4.0" -"@noble/hashes@1.3.3", "@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== - -"@noble/hashes@^1", "@noble/hashes@^1.0.0", "@noble/hashes@^1.2.0", "@noble/hashes@^1.4.0": +"@noble/hashes@1.4.0", "@noble/hashes@^1", "@noble/hashes@^1.0.0", "@noble/hashes@^1.2.0", "@noble/hashes@^1.4.0", "@noble/hashes@~1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== @@ -1672,27 +1673,27 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@scure/base@~1.1.4": - version "1.1.6" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.6.tgz#8ce5d304b436e4c84f896e0550c83e4d88cb917d" - integrity sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== +"@scure/base@~1.1.6": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30" + integrity sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g== -"@scure/bip32@1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.3.tgz#a9624991dc8767087c57999a5d79488f48eae6c8" - integrity sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ== +"@scure/bip32@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67" + integrity sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg== dependencies: - "@noble/curves" "~1.3.0" - "@noble/hashes" "~1.3.2" - "@scure/base" "~1.1.4" + "@noble/curves" "~1.4.0" + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" -"@scure/bip39@1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.2.tgz#f3426813f4ced11a47489cbcf7294aa963966527" - integrity sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA== +"@scure/bip39@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3" + integrity sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ== dependencies: - "@noble/hashes" "~1.3.2" - "@scure/base" "~1.1.4" + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" "@sinclair/typebox@^0.27.8": version "0.27.8" @@ -1740,9 +1741,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" - integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + version "7.20.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== dependencies: "@babel/types" "^7.20.7" @@ -1762,9 +1763,9 @@ "@types/node" "*" "@types/express-serve-static-core@^4.17.33": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz#3ae8ab3767d98d0b682cda063c3339e1e86ccfaa" - integrity sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ== + version "4.19.5" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6" + integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg== dependencies: "@types/node" "*" "@types/qs" "*" @@ -1826,9 +1827,9 @@ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/lodash@^4.14.182": - version "4.17.1" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.1.tgz#0fabfcf2f2127ef73b119d98452bd317c4a17eb8" - integrity sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q== + version "4.17.6" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.6.tgz#193ced6a40c8006cfc1ca3f4553444fb38f0e543" + integrity sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA== "@types/long@^4.0.1": version "4.0.2" @@ -1848,9 +1849,9 @@ integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/node@*", "@types/node@>=13.7.0": - version "20.12.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.11.tgz#c4ef00d3507000d17690643278a60dc55a9dc9be" - integrity sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw== + version "20.14.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420" + integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg== dependencies: undici-types "~5.26.4" @@ -2011,9 +2012,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== aggregate-error@^3.0.0: version "3.1.0" @@ -2243,9 +2244,9 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + version "3.0.10" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.10.tgz#62de58653f8762b5d6f8d9fe30fa75f7b2585a75" + integrity sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ== dependencies: safe-buffer "^5.0.1" @@ -2332,12 +2333,12 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" brorand@^1.1.0: version "1.1.0" @@ -2345,14 +2346,14 @@ brorand@^1.1.0: integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browserslist@^4.22.2, browserslist@^4.23.0: - version "4.23.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + version "4.23.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96" + integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== dependencies: - caniuse-lite "^1.0.30001587" - electron-to-chromium "^1.4.668" + caniuse-lite "^1.0.30001629" + electron-to-chromium "^1.4.796" node-releases "^2.0.14" - update-browserslist-db "^1.0.13" + update-browserslist-db "^1.0.16" bs58@^4.0.0: version "4.0.1" @@ -2423,10 +2424,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001587: - version "1.0.30001617" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz#809bc25f3f5027ceb33142a7d6c40759d7a901eb" - integrity sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA== +caniuse-lite@^1.0.30001629: + version "1.0.30001640" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz#32c467d4bf1f1a0faa63fc793c2ba81169e7652f" + integrity sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA== chalk@^2.3.0, chalk@^2.4.2: version "2.4.2" @@ -2608,16 +2609,16 @@ cookie@0.6.0: integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== core-js-compat@^3.31.0, core-js-compat@^3.36.1: - version "3.37.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.0.tgz#d9570e544163779bb4dff1031c7972f44918dc73" - integrity sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA== + version "3.37.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.1.tgz#c844310c7852f4bdf49b8d339730b97e17ff09ee" + integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== dependencies: browserslist "^4.23.0" core-js@^3.23.5: - version "3.37.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.0.tgz#d8dde58e91d156b2547c19d8a4efd5c7f6c426bb" - integrity sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug== + version "3.37.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9" + integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw== cosmjs-types@^0.4.0: version "0.4.1" @@ -2714,9 +2715,9 @@ debug@2.6.9: ms "2.0.0" debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: ms "2.1.2" @@ -2812,10 +2813,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.668: - version "1.4.763" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.763.tgz#64f2041ed496fd6fc710b9be806fe91da9334f91" - integrity sha512-k4J8NrtJ9QrvHLRo8Q18OncqBCB7tIUyqxRcJnlonQ0ioHKYB988GcDFF3ZePmnb8eHEopDs/wPHR/iGAFgoUQ== +electron-to-chromium@^1.4.796: + version "1.4.816" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz#3624649d1e7fde5cdbadf59d31a524245d8ee85f" + integrity sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw== elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.5" @@ -3027,14 +3028,14 @@ ethereum-bloom-filters@^1.0.6: "@noble/hashes" "^1.4.0" ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz#1352270ed3b339fe25af5ceeadcf1b9c8e30768a" - integrity sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA== + version "2.2.1" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz#58f2810f8e020aecb97de8c8c76147600b0b8ccf" + integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg== dependencies: - "@noble/curves" "1.3.0" - "@noble/hashes" "1.3.3" - "@scure/bip32" "1.3.3" - "@scure/bip39" "1.2.2" + "@noble/curves" "1.4.2" + "@noble/hashes" "1.4.0" + "@scure/bip32" "1.4.0" + "@scure/bip39" "1.3.0" ethjs-unit@0.1.6: version "0.1.6" @@ -3174,10 +3175,10 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -3413,7 +3414,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasown@^2.0.0: +hasown@^2.0.0, hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -3512,11 +3513,11 @@ is-arrayish@^0.2.1: integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + version "2.14.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.14.0.tgz#43b8ef9f46a6a08888db67b1ffd4ec9e3dfd59d1" + integrity sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A== dependencies: - hasown "^2.0.0" + hasown "^2.0.2" is-extglob@^2.1.1: version "2.1.1" @@ -3592,9 +3593,9 @@ istanbul-lib-instrument@^5.0.4: semver "^6.3.0" istanbul-lib-instrument@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" - integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== + version "6.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== dependencies: "@babel/core" "^7.23.9" "@babel/parser" "^7.23.9" @@ -4276,11 +4277,11 @@ micro-ftch@^0.3.1: integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mime-db@1.52.0: @@ -4355,9 +4356,9 @@ ms@2.1.3: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nan@^2.13.2: - version "2.19.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" - integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== + version "2.20.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" + integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== natural-compare-lite@^1.4.0: version "1.4.0" @@ -4415,9 +4416,9 @@ number-to-bn@1.7.0: strip-hex-prefix "1.0.0" object-inspect@^1.12.2, object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== object-keys@^1.1.1: version "1.1.1" @@ -4554,10 +4555,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" @@ -4823,9 +4824,9 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" - integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rimraf@^3.0.2: version "3.0.2" @@ -5260,9 +5261,9 @@ tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.1, tslib@^2.1.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== tslint@^5.20.1: version "5.20.1" @@ -5338,9 +5339,9 @@ typeforce@^1.11.5: integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== typescript@^5.1.6: - version "5.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" - integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + version "5.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.3.tgz#e1b0a3c394190838a0b168e771b0ad56a0af0faa" + integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ== typescript@~4.4: version "4.4.4" @@ -5385,13 +5386,13 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.0.13: - version "1.0.15" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz#60ed9f8cba4a728b7ecf7356f641a31e3a691d97" - integrity sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA== +update-browserslist-db@^1.0.16: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== dependencies: escalade "^3.1.2" - picocolors "^1.0.0" + picocolors "^1.0.1" uri-js@^4.2.2: version "4.4.1" @@ -5421,9 +5422,9 @@ uuid@^8.3.2: integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8-to-istanbul@^9.0.1: - version "9.2.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" - integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + version "9.3.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" + integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" @@ -5511,9 +5512,9 @@ write-file-atomic@^4.0.2: 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== + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== xml@^1.0.1: version "1.0.1" From 8e7c707b3043b9b4b2d69a60fe217339fe3b64d8 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Thu, 4 Jul 2024 18:34:58 +0300 Subject: [PATCH 33/33] upd neutronjplus commit --- package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index fa8536c5..d96e82b0 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@cosmos-client/core": "^0.47.4", "@cosmos-client/cosmwasm": "^0.40.3", "@cosmos-client/ibc": "^1.2.1", - "@neutron-org/neutronjsplus": "https://github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d", + "@neutron-org/neutronjsplus": "https://github.com/neutron-org/neutronjsplus.git#40c2c30434e63ab989e42408a94034589d5985d8", "@types/lodash": "^4.14.182", "@types/long": "^5.0.0", "axios": "^0.27.2", diff --git a/yarn.lock b/yarn.lock index 57f27441..df87981f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1575,9 +1575,9 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@neutron-org/neutronjsplus@https://github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d": +"@neutron-org/neutronjsplus@https://github.com/neutron-org/neutronjsplus.git#40c2c30434e63ab989e42408a94034589d5985d8": version "0.4.0-rc19" - resolved "https://github.com/neutron-org/neutronjsplus.git#bcad3b0dc674ad54a63556863515e6832cebed5d" + resolved "https://github.com/neutron-org/neutronjsplus.git#40c2c30434e63ab989e42408a94034589d5985d8" dependencies: "@bufbuild/protobuf" "^1.4.2" "@cosmos-client/core" "^0.47.4"