From 947ec0a2506a2d46f4bc801cadd65ec1bfe779f7 Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Tue, 12 Mar 2024 19:29:19 +0200 Subject: [PATCH 01/14] integration testing increase 1 time scenarios working - increase less than total owned amount - increase equal to total owned amount - increase more than total owned amount --- smart-contracts/smart-contract/Clarinet.toml | 7 +- .../contracts/stacking-pool-test.clar | 7 +- .../deployments/default.devnet-plan.yaml | 13 +- .../deployments/default.simnet-plan.yaml | 160 + .../integration/balance.test.ts | 495 +- .../smart-contract/integration/contracts.ts | 230 - .../smart-contract/integration/helper-fp.ts | 61 +- .../integration/helpers-stacking.ts | 156 +- ...stack-extend-increase-equal-amount.test.ts | 540 ++ ...ack-extend-increase-greater-amount.test.ts | 539 ++ .../stack-extend-increase-less-amount.test.ts | 538 ++ .../integration/stacking.test.ts | 1302 ++-- .../smart-contract/package-lock.json | 5322 ++++------------- smart-contracts/smart-contract/package.json | 25 +- .../smart-contract/settings/Devnet.toml | 2920 ++++----- smart-contracts/smart-contract/tsconfig.json | 28 +- .../smart-contract/vitest.config.js | 41 + smart-contracts/smart-contract/yarn.lock | 3488 +++-------- 18 files changed, 6351 insertions(+), 9521 deletions(-) create mode 100644 smart-contracts/smart-contract/deployments/default.simnet-plan.yaml create mode 100644 smart-contracts/smart-contract/integration/stack-extend-increase-equal-amount.test.ts create mode 100644 smart-contracts/smart-contract/integration/stack-extend-increase-greater-amount.test.ts create mode 100644 smart-contracts/smart-contract/integration/stack-extend-increase-less-amount.test.ts create mode 100644 smart-contracts/smart-contract/vitest.config.js diff --git a/smart-contracts/smart-contract/Clarinet.toml b/smart-contracts/smart-contract/Clarinet.toml index 9166b3e..ea76b10 100644 --- a/smart-contracts/smart-contract/Clarinet.toml +++ b/smart-contracts/smart-contract/Clarinet.toml @@ -5,14 +5,9 @@ authors = [] telemetry = false cache_dir = '.cache' -[[project.requirements]] -contract_id = 'SP000000000000000000002Q6VF78.pox-2' - -[[project.requirements]] -contract_id = 'ST000000000000000000002AMW42H.pox-2' - [[project.requirements]] contract_id = 'ST000000000000000000002AMW42H.pox-3' + [contracts.Wrapped-Bitcoin] path = 'contracts/Wrapped-Bitcoin.clar' clarity_version = 2 diff --git a/smart-contracts/smart-contract/contracts/stacking-pool-test.clar b/smart-contracts/smart-contract/contracts/stacking-pool-test.clar index daa4fd1..6aa0925 100644 --- a/smart-contracts/smart-contract/contracts/stacking-pool-test.clar +++ b/smart-contracts/smart-contract/contracts/stacking-pool-test.clar @@ -467,7 +467,7 @@ locked-balance: (default-to u0 (get locked-balance (map-get? user-data {address: user}))), until-burn-ht: - (some (+ (default-to u0 (default-to (some u0) (get until-burn-ht (map-get? user-data {address: user})))) REWARD_CYCLE_LENGTH)) + (some (get unlock-burn-height success)) }) (if (> amount-ustx (get locked status)) (match (contract-call? 'ST000000000000000000002AMW42H.pox-3 delegate-stack-increase @@ -479,6 +479,7 @@ success-increase (begin (print "success-increase") (print success-increase) + (print amount-ustx) (map-set user-data {address: user} { @@ -491,8 +492,8 @@ (default-to none (get until-burn-ht (map-get? user-data {address: user}))) }) (increment-sc-locked-balance - (- amount-ustx - (default-to u0 (get locked-balance (map-get? user-data {address: user}))))) + (- amount-ustx + (default-to u0 (get locked-balance (map-get? user-data {address: user}))))) (ok {lock-amount: (get total-locked success-increase), stacker: user, unlock-burn-height: (get unlock-burn-height success)})) diff --git a/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml b/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml index 1233090..e938763 100644 --- a/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml +++ b/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml @@ -123,7 +123,7 @@ plan: - contract-publish: contract-name: mining-pool-5-blocks expected-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - cost: 489320 + cost: 489340 path: contracts/mining-pool-5-blocks.clar anchor-block-only: true clarity-version: 2 @@ -134,17 +134,24 @@ plan: path: contracts/mining-pool-test.clar anchor-block-only: true clarity-version: 2 + - contract-publish: + contract-name: pox-3-fake + expected-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + cost: 675060 + path: contracts/pox-3-fake.clar + anchor-block-only: true + clarity-version: 2 - contract-publish: contract-name: stacking-pool expected-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - cost: 387430 + cost: 391140 path: contracts/stacking-pool.clar anchor-block-only: true clarity-version: 2 - contract-publish: contract-name: stacking-pool-test expected-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - cost: 387610 + cost: 390960 path: contracts/stacking-pool-test.clar anchor-block-only: true clarity-version: 2 diff --git a/smart-contracts/smart-contract/deployments/default.simnet-plan.yaml b/smart-contracts/smart-contract/deployments/default.simnet-plan.yaml new file mode 100644 index 0000000..33786fc --- /dev/null +++ b/smart-contracts/smart-contract/deployments/default.simnet-plan.yaml @@ -0,0 +1,160 @@ +--- +id: 0 +name: "Simulated deployment, used as a default for `clarinet console`, `clarinet test` and `clarinet check`" +network: simnet +genesis: + wallets: + - name: deployer + address: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + balance: "100000000000000" + - name: faucet + address: STNHKEPYEPJ8ET55ZZ0M5A34J0R3N5FM2CMMMAZ6 + balance: "100000000000000" + - name: wallet_1 + address: ST1SJ3DTE5DN7X54YDH5D64R3BCB6A2AG2ZQ8YPD5 + balance: "100000000000000" + - name: wallet_2 + address: ST2CY5V39NHDPWSXMW9QDT3HC3GD6Q6XX4CFRK9AG + balance: "100000000000000" + - name: wallet_3 + address: ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC + balance: "100000000000000" + - name: wallet_4 + address: ST2NEB84ASENDXKYGJPQW86YXQCEFEX2ZQPG87ND + balance: "100000000000000" + - name: wallet_5 + address: ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB + balance: "100000000000000" + - name: wallet_6 + address: ST3AM1A56AK2C1XAFJ4115ZSV26EB49BVQ10MGCS0 + balance: "100000000000000" + - name: wallet_7 + address: ST3PF13W7Z0RRM42A8VZRVFQ75SV1K26RXEP8YGKJ + balance: "100000000000000" + - name: wallet_8 + address: ST3NBRSFKX28FQ2ZJ1MAKX58HKHSDGNV5N7R21XCP + balance: "100000000000000" + - name: wallet_9 + address: ST2RF0D3GJR7ZX63PQ9WXVAPNG6EJCCR97NTVFGES + balance: "100000000000000" + contracts: + - costs + - pox + - pox-2 + - pox-3 + - pox-4 + - lockup + - costs-2 + - costs-3 + - cost-voting + - bns +plan: + batches: + - id: 0 + transactions: + - emulated-contract-publish: + contract-name: ft-trait + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/ft-trait.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: restricted-token-trait + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/restricted-token-trait.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: Wrapped-Bitcoin + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/Wrapped-Bitcoin.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: trait-sip-010 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/trait-sip-010.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: trait-flash-loan-user + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/trait-flash-loan-user.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: trait-semi-fungible + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/trait-semi-fungible.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: alex-vault-v1-1 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/alex-vault-v1-1.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: trait-ownable + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/trait-ownable.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: token-amm-swap-pool-v1-1 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/token-amm-swap-pool-v1-1.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: amm-swap-pool-v1-1 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/amm-swap-pool-v1-1.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: clarity-bitcoin + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/clarity-bitcoin.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: token-wbtc + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/token-wbtc.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: token-wstx + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/token-wstx.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: degen-bridge-testnet-v3 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/degen-bridge-testnet-v3.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: bridge-contract + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/bridge-contract.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: mining-pool + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mining-pool.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: mining-pool-5-blocks + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mining-pool-5-blocks.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: mining-pool-test + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mining-pool-test.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: pox-3-fake + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/pox-3-fake.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: stacking-pool + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/stacking-pool.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: stacking-pool-test + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/stacking-pool-test.clar + clarity-version: 2 + epoch: "2.4" diff --git a/smart-contracts/smart-contract/integration/balance.test.ts b/smart-contracts/smart-contract/integration/balance.test.ts index 283a5da..8973ab4 100644 --- a/smart-contracts/smart-contract/integration/balance.test.ts +++ b/smart-contracts/smart-contract/integration/balance.test.ts @@ -1,277 +1,278 @@ -// deposit stx deployer +// // deposit stx deployer -/// get balance deployer -// everything happens on stacks_2.1 -// pox_2 -import { - balanceDepositSTX, - getBalanceSTX, - buildDevnetNetworkOrchestrator, - DEFAULT_EPOCH_TIMELINE, - getAccount, - getNetworkIdFromEnv, - getRewardAtBlock, - votePositive, - tryEnterPool, - addPendingMinersToPool, - askToJoin, - distributeRewards, -} from './helpers'; -import { StacksTestnet } from '@stacks/network'; -import { DevnetNetworkOrchestrator } from '@hirosystems/stacks-devnet-js'; -import { FAST_FORWARD_TO_EPOCH_2_4 } from './helpers-stacking'; -import { mainContract } from './contracts'; -import { crypto } from 'bitcoinjs-lib'; +// /// get balance deployer +// // everything happens on stacks_2.1 +// // pox_2 +// import { +// balanceDepositSTX, +// getBalanceSTX, +// buildDevnetNetworkOrchestrator, +// DEFAULT_EPOCH_TIMELINE, +// getAccount, +// getNetworkIdFromEnv, +// getRewardAtBlock, +// votePositive, +// tryEnterPool, +// addPendingMinersToPool, +// askToJoin, +// distributeRewards, +// } from './helpers'; +// import { StacksTestnet } from '@stacks/network'; +// import { DevnetNetworkOrchestrator } from '@hirosystems/stacks-devnet-js'; +// import { FAST_FORWARD_TO_EPOCH_2_4 } from './helpers-stacking'; +// import { mainContract } from './contracts'; +// import { crypto } from 'bitcoinjs-lib'; +// import { afterAll, beforeAll, describe, expect, it } from 'vitest'; -describe('testing depositing balance stx', () => { - let orchestrator: DevnetNetworkOrchestrator; - let timeline = FAST_FORWARD_TO_EPOCH_2_4; +// describe('testing depositing balance stx', () => { +// let orchestrator: DevnetNetworkOrchestrator; +// let timeline = FAST_FORWARD_TO_EPOCH_2_4; - beforeAll(() => { - orchestrator = buildDevnetNetworkOrchestrator(getNetworkIdFromEnv()); - orchestrator.start(1000); - }); +// beforeAll(() => { +// orchestrator = buildDevnetNetworkOrchestrator(getNetworkIdFromEnv()); +// orchestrator.start(1000); +// }); - afterAll(() => { - orchestrator.terminate(); - }); +// afterAll(() => { +// orchestrator.terminate(); +// }); - it('test whole flow with initiate, deposit STX and see balance', async () => { - const Accounts = { - DEPLOYER: { - stxAddress: 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM', - btcAddress: 'mqVnk6NPRdhntvfm4hh9vvjiRkFDUuSYsH', - secretKey: '753b7cc01a1a2e86221266a154af739463fce51219d97e4f856cd7200c3bd2a601', - }, - WALLET_1: { - stxAddress: 'ST1SJ3DTE5DN7X54YDH5D64R3BCB6A2AG2ZQ8YPD5', - btcAddress: 'mr1iPkD9N3RJZZxXRk7xF9d36gffa6exNC', - secretKey: '7287ba251d44a4d3fd9276c88ce34c5c52a038955511cccaf77e61068649c17801', - }, - WALLET_2: { - stxAddress: 'ST2CY5V39NHDPWSXMW9QDT3HC3GD6Q6XX4CFRK9AG', - btcAddress: 'muYdXKmX9bByAueDe6KFfHd5Ff1gdN9ErG', - secretKey: '530d9f61984c888536871c6573073bdfc0058896dc1adfe9a6a10dfacadc209101', - }, - WALLET_3: { - stxAddress: 'ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC', - btcAddress: 'mvZtbibDAAA3WLpY7zXXFqRa3T4XSknBX7', - secretKey: 'd655b2523bcd65e34889725c73064feb17ceb796831c0e111ba1a552b0f31b3901', - }, - WALLET_4: { - stxAddress: 'ST2NEB84ASENDXKYGJPQW86YXQCEFEX2ZQPG87ND', - btcAddress: 'mg1C76bNTutiCDV3t9nWhZs3Dc8LzUufj8', - secretKey: 'f9d7206a47f14d2870c163ebab4bf3e70d18f5d14ce1031f3902fbbc894fe4c701', - }, - WALLET_5: { - stxAddress: 'ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB', - btcAddress: 'mweN5WVqadScHdA81aATSdcVr4B6dNokqx', - secretKey: '3eccc5dac8056590432db6a35d52b9896876a3d5cbdea53b72400bc9c2099fe801', - }, - WALLET_6: { - stxAddress: 'ST3AM1A56AK2C1XAFJ4115ZSV26EB49BVQ10MGCS0', - btcAddress: 'mzxXgV6e4BZSsz8zVHm3TmqbECt7mbuErt', - secretKey: '7036b29cb5e235e5fd9b09ae3e8eec4404e44906814d5d01cbca968a60ed4bfb01', - }, - WALLET_7: { - stxAddress: 'ST3PF13W7Z0RRM42A8VZRVFQ75SV1K26RXEP8YGKJ', - btcAddress: 'n37mwmru2oaVosgfuvzBwgV2ysCQRrLko7', - secretKey: 'b463f0df6c05d2f156393eee73f8016c5372caa0e9e29a901bb7171d90dc4f1401', - }, - WALLET_8: { - stxAddress: 'ST3NBRSFKX28FQ2ZJ1MAKX58HKHSDGNV5N7R21XCP', - btcAddress: 'n2v875jbJ4RjBnTjgbfikDfnwsDV5iUByw', - secretKey: '6a1a754ba863d7bab14adbbc3f8ebb090af9e871ace621d3e5ab634e1422885e01', - }, - WALLET_9: { - stxAddress: 'ST2RF0D3GJR7ZX63PQ9WXVAPNG6EJCCR97NTVFGES', - btcAddress: 'mweWyYM2SdmaZRMZneysa2XtsP1o6wFWKC', - secretKey: '2b2c2dd7ae64aa7880042a443f5a1e1a1b575cc0ef16d6c7e3bb8a9ce08bfe1d01', - }, - WALLET_10: { - stxAddress: 'ST3CD3T03P3Z8RMAYR7S6BZQ65QNYS9W18QHHJ4KM', - btcAddress: 'n1HPi2zoJZzwjAFgGrYckLxPnBsR2m7ViD', - secretKey: '47599fb4a8cfb07e2db61484c81459db81a5480e770b0de8cbe8de960834bf1701', - }, - }; - const network = new StacksTestnet({ url: orchestrator.getStacksNodeUrl() }); - const fee = 1000; +// it('test whole flow with initiate, deposit STX and see balance', async () => { +// const Accounts = { +// DEPLOYER: { +// stxAddress: 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM', +// btcAddress: 'mqVnk6NPRdhntvfm4hh9vvjiRkFDUuSYsH', +// secretKey: '753b7cc01a1a2e86221266a154af739463fce51219d97e4f856cd7200c3bd2a601', +// }, +// WALLET_1: { +// stxAddress: 'ST1SJ3DTE5DN7X54YDH5D64R3BCB6A2AG2ZQ8YPD5', +// btcAddress: 'mr1iPkD9N3RJZZxXRk7xF9d36gffa6exNC', +// secretKey: '7287ba251d44a4d3fd9276c88ce34c5c52a038955511cccaf77e61068649c17801', +// }, +// WALLET_2: { +// stxAddress: 'ST2CY5V39NHDPWSXMW9QDT3HC3GD6Q6XX4CFRK9AG', +// btcAddress: 'muYdXKmX9bByAueDe6KFfHd5Ff1gdN9ErG', +// secretKey: '530d9f61984c888536871c6573073bdfc0058896dc1adfe9a6a10dfacadc209101', +// }, +// WALLET_3: { +// stxAddress: 'ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC', +// btcAddress: 'mvZtbibDAAA3WLpY7zXXFqRa3T4XSknBX7', +// secretKey: 'd655b2523bcd65e34889725c73064feb17ceb796831c0e111ba1a552b0f31b3901', +// }, +// WALLET_4: { +// stxAddress: 'ST2NEB84ASENDXKYGJPQW86YXQCEFEX2ZQPG87ND', +// btcAddress: 'mg1C76bNTutiCDV3t9nWhZs3Dc8LzUufj8', +// secretKey: 'f9d7206a47f14d2870c163ebab4bf3e70d18f5d14ce1031f3902fbbc894fe4c701', +// }, +// WALLET_5: { +// stxAddress: 'ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB', +// btcAddress: 'mweN5WVqadScHdA81aATSdcVr4B6dNokqx', +// secretKey: '3eccc5dac8056590432db6a35d52b9896876a3d5cbdea53b72400bc9c2099fe801', +// }, +// WALLET_6: { +// stxAddress: 'ST3AM1A56AK2C1XAFJ4115ZSV26EB49BVQ10MGCS0', +// btcAddress: 'mzxXgV6e4BZSsz8zVHm3TmqbECt7mbuErt', +// secretKey: '7036b29cb5e235e5fd9b09ae3e8eec4404e44906814d5d01cbca968a60ed4bfb01', +// }, +// WALLET_7: { +// stxAddress: 'ST3PF13W7Z0RRM42A8VZRVFQ75SV1K26RXEP8YGKJ', +// btcAddress: 'n37mwmru2oaVosgfuvzBwgV2ysCQRrLko7', +// secretKey: 'b463f0df6c05d2f156393eee73f8016c5372caa0e9e29a901bb7171d90dc4f1401', +// }, +// WALLET_8: { +// stxAddress: 'ST3NBRSFKX28FQ2ZJ1MAKX58HKHSDGNV5N7R21XCP', +// btcAddress: 'n2v875jbJ4RjBnTjgbfikDfnwsDV5iUByw', +// secretKey: '6a1a754ba863d7bab14adbbc3f8ebb090af9e871ace621d3e5ab634e1422885e01', +// }, +// WALLET_9: { +// stxAddress: 'ST2RF0D3GJR7ZX63PQ9WXVAPNG6EJCCR97NTVFGES', +// btcAddress: 'mweWyYM2SdmaZRMZneysa2XtsP1o6wFWKC', +// secretKey: '2b2c2dd7ae64aa7880042a443f5a1e1a1b575cc0ef16d6c7e3bb8a9ce08bfe1d01', +// }, +// WALLET_10: { +// stxAddress: 'ST3CD3T03P3Z8RMAYR7S6BZQ65QNYS9W18QHHJ4KM', +// btcAddress: 'n1HPi2zoJZzwjAFgGrYckLxPnBsR2m7ViD', +// secretKey: '47599fb4a8cfb07e2db61484c81459db81a5480e770b0de8cbe8de960834bf1701', +// }, +// }; +// const network = new StacksTestnet({ url: orchestrator.getStacksNodeUrl() }); +// const fee = 1000; - const btcAddressVersionUintArray = Uint8Array.from(Buffer.from('00', 'hex')); - const publicKeyHex = '02e8f7dc91e49a577ce9ea8989c7184aea8886fe5250f02120dc6f98e3619679b0'; - const publicKey = Buffer.from(publicKeyHex, 'hex'); - const pKhash160 = crypto.hash160(publicKey); - const btcHashBuffer = pKhash160; - const btcUintArray = Uint8Array.from(btcHashBuffer); +// const btcAddressVersionUintArray = Uint8Array.from(Buffer.from('00', 'hex')); +// const publicKeyHex = '02e8f7dc91e49a577ce9ea8989c7184aea8886fe5250f02120dc6f98e3619679b0'; +// const publicKey = Buffer.from(publicKeyHex, 'hex'); +// const pKhash160 = crypto.hash160(publicKey); +// const btcHashBuffer = pKhash160; +// const btcUintArray = Uint8Array.from(btcHashBuffer); - // Advance to make sure PoX-3 is activated +// // Advance to make sure PoX-3 is activated - await orchestrator.waitForStacksBlockAnchoredOnBitcoinBlockOfHeight(timeline.epoch_2_4 + 1, 5, true); - // get nonces - let nonceWallets = {}; - for (let i = 6; i < 10; i++) { - nonceWallets[i] = (await getAccount(network, Accounts[`WALLET_${i}`].stxAddress)).nonce; - } +// await orchestrator.waitForStacksBlockAnchoredOnBitcoinBlockOfHeight(timeline.epoch_2_4 + 1, 5, true); +// // get nonces +// let nonceWallets = {}; +// for (let i = 6; i < 10; i++) { +// nonceWallets[i] = (await getAccount(network, Accounts[`WALLET_${i}`].stxAddress)).nonce; +// } - // ask to join with 4 participants +// // ask to join with 4 participants - for (let i = 6; i < 10; i++) { - let responseawait = await askToJoin( - btcAddressVersionUintArray, - btcUintArray, - network, - Accounts[`WALLET_${i}`], - fee, - nonceWallets[i] - ); - nonceWallets[i] += 1; - } - let chainUpdate, txs; +// for (let i = 6; i < 10; i++) { +// let responseawait = await askToJoin( +// btcAddressVersionUintArray, +// btcUintArray, +// network, +// Accounts[`WALLET_${i}`], +// fee, +// nonceWallets[i] +// ); +// nonceWallets[i] += 1; +// } +// let chainUpdate, txs; - let askToJoinTxIndex = 0; - let blockIndex = 0; - while (askToJoinTxIndex < 4) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; +// let askToJoinTxIndex = 0; +// let blockIndex = 0; +// while (askToJoinTxIndex < 4) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; - if (txSC === `${mainContract.address}.mining-pool-5-blocks` && txMethod === `ask-to-join`) { - expect((txMetadata as any)['result']).toBe('(ok true)'); - expect((txMetadata as any)['success']).toBe(true); - askToJoinTxIndex++; - } - } - } - } +// if (txSC === `${mainContract.address}.mining-pool-5-blocks` && txMethod === `ask-to-join`) { +// expect((txMetadata as any)['result']).toBe('(ok true)'); +// expect((txMetadata as any)['success']).toBe(true); +// askToJoinTxIndex++; +// } +// } +// } +// } - // deployer vote positive for joining each participant +// // deployer vote positive for joining each participant - let nonceDeployer = (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce; - for (let i = 6; i < 10; i++) { - let responseFor = await votePositive( - Accounts[`WALLET_${i}`].stxAddress, - network, - Accounts.DEPLOYER, - fee, - nonceDeployer - ); - nonceDeployer += 1; - expect(responseFor.error).toBeUndefined(); - } +// let nonceDeployer = (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce; +// for (let i = 6; i < 10; i++) { +// let responseFor = await votePositive( +// Accounts[`WALLET_${i}`].stxAddress, +// network, +// Accounts.DEPLOYER, +// fee, +// nonceDeployer +// ); +// nonceDeployer += 1; +// expect(responseFor.error).toBeUndefined(); +// } - let votePositiveJoinIndex = 0; - blockIndex = 0; +// let votePositiveJoinIndex = 0; +// blockIndex = 0; - while (votePositiveJoinIndex < 4) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; +// while (votePositiveJoinIndex < 4) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; - if (txSC === `${mainContract.address}.mining-pool-5-blocks` && txMethod === `vote-positive-join-request`) { - expect((txMetadata as any)['result']).toBe('(ok true)'); - expect((txMetadata as any)['success']).toBe(true); - votePositiveJoinIndex++; - } - } - } - } +// if (txSC === `${mainContract.address}.mining-pool-5-blocks` && txMethod === `vote-positive-join-request`) { +// expect((txMetadata as any)['result']).toBe('(ok true)'); +// expect((txMetadata as any)['success']).toBe(true); +// votePositiveJoinIndex++; +// } +// } +// } +// } - // try-enter-pool +// // try-enter-pool - for (let i = 6; i < 10; i++) { - let responseFor = await tryEnterPool(network, Accounts[`WALLET_${i}`], fee, nonceWallets[i]); - nonceWallets[i] += 1; - expect(responseFor.error).toBeUndefined(); - } +// for (let i = 6; i < 10; i++) { +// let responseFor = await tryEnterPool(network, Accounts[`WALLET_${i}`], fee, nonceWallets[i]); +// nonceWallets[i] += 1; +// expect(responseFor.error).toBeUndefined(); +// } - let tryEnterPoolIndex = 0; - blockIndex = 0; +// let tryEnterPoolIndex = 0; +// blockIndex = 0; - while (tryEnterPoolIndex < 4) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; +// while (tryEnterPoolIndex < 4) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; - if (txSC === `${mainContract.address}.mining-pool-5-blocks` && txMethod === `try-enter-pool`) { - expect((txMetadata as any)['result']).toBe('(ok true)'); - expect((txMetadata as any)['success']).toBe(true); - tryEnterPoolIndex++; - } - } - } - } +// if (txSC === `${mainContract.address}.mining-pool-5-blocks` && txMethod === `try-enter-pool`) { +// expect((txMetadata as any)['result']).toBe('(ok true)'); +// expect((txMetadata as any)['success']).toBe(true); +// tryEnterPoolIndex++; +// } +// } +// } +// } - let current_block_height = chainUpdate.new_blocks[0].block.block_identifier.index; - current_block_height += 6; - let reward_block_height = current_block_height + 1; - await orchestrator.waitForStacksBlockOfHeight(current_block_height); +// let current_block_height = chainUpdate.new_blocks[0].block.block_identifier.index; +// current_block_height += 6; +// let reward_block_height = current_block_height + 1; +// await orchestrator.waitForStacksBlockOfHeight(current_block_height); - // add pending miners to pool +// // add pending miners to pool - let response = await addPendingMinersToPool(network, Accounts.DEPLOYER, fee, nonceDeployer); - nonceDeployer += 1; - expect(response.error).toBeUndefined(); +// let response = await addPendingMinersToPool(network, Accounts.DEPLOYER, fee, nonceDeployer); +// nonceDeployer += 1; +// expect(response.error).toBeUndefined(); - chainUpdate = await orchestrator.waitForNextStacksBlock(); - let metadata = chainUpdate.new_blocks[0].block.transactions[1].metadata; - expect((metadata as any)['success']).toBe(true); - expect((metadata as any)['result']).toBe('(ok true)'); +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// let metadata = chainUpdate.new_blocks[0].block.transactions[1].metadata; +// expect((metadata as any)['success']).toBe(true); +// expect((metadata as any)['result']).toBe('(ok true)'); - // now 5 participants in mining pool - // Check balance for particiapnts +// // now 5 participants in mining pool +// // Check balance for particiapnts - current_block_height = chainUpdate.new_blocks[0].block.block_identifier.index; - current_block_height += 110; - await orchestrator.waitForStacksBlockOfHeight(current_block_height); - let info = await getRewardAtBlock(network, 15); - console.log('rewards at block 15:'); - console.log(info.value.claimer.value); - console.log(info.value.reward.value); - info = await getRewardAtBlock(network, reward_block_height); // 27 - console.log(info.value.reward.value); - let distributedAmount = 1000301000; +// current_block_height = chainUpdate.new_blocks[0].block.block_identifier.index; +// current_block_height += 110; +// await orchestrator.waitForStacksBlockOfHeight(current_block_height); +// let info = await getRewardAtBlock(network, 15); +// console.log('rewards at block 15:'); +// console.log(info.value.claimer.value); +// console.log(info.value.reward.value); +// info = await getRewardAtBlock(network, reward_block_height); // 27 +// console.log(info.value.reward.value); +// let distributedAmount = 1000301000; - // 1 000 301 000 - // 3 000 900 000 - // // we are at block 125+ +// // 1 000 301 000 +// // 3 000 900 000 +// // // we are at block 125+ - nonceDeployer = (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce; - distributeRewards(reward_block_height, network, Accounts.DEPLOYER, fee, nonceDeployer); - nonceDeployer += 1; - chainUpdate = await orchestrator.waitForNextStacksBlock(); - // 100030100 / 5 = 200060200 - info = await getRewardAtBlock(network, 122); // 27 - console.log('rewards at block 122 principal: '); - console.log(info.value.claimer.value); - for (let i = 6; i < 10; i++) { - info = await getBalanceSTX(network, Accounts[`WALLET_${i}`].stxAddress); - console.log('Earned values by ', i); - console.log(info); - expect(info.value.value).toBe(`200060200`); - } - // see at what block_height miners join pool - // distribute rewards once - working for block 3 at block 120 - // verify with balances of the miners before and after distributing the rewards - // distribute rewards same - not working for block 3 at block 120 - // distribute rewards same - working for block 4 at block 120 - // check balances for miners - }); -}); +// nonceDeployer = (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce; +// distributeRewards(reward_block_height, network, Accounts.DEPLOYER, fee, nonceDeployer); +// nonceDeployer += 1; +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// // 100030100 / 5 = 200060200 +// info = await getRewardAtBlock(network, 122); // 27 +// console.log('rewards at block 122 principal: '); +// console.log(info.value.claimer.value); +// for (let i = 6; i < 10; i++) { +// info = await getBalanceSTX(network, Accounts[`WALLET_${i}`].stxAddress); +// console.log('Earned values by ', i); +// console.log(info); +// expect(info.value.value).toBe(`200060200`); +// } +// // see at what block_height miners join pool +// // distribute rewards once - working for block 3 at block 120 +// // verify with balances of the miners before and after distributing the rewards +// // distribute rewards same - not working for block 3 at block 120 +// // distribute rewards same - working for block 4 at block 120 +// // check balances for miners +// }); +// }); diff --git a/smart-contracts/smart-contract/integration/contracts.ts b/smart-contracts/smart-contract/integration/contracts.ts index 2a0c103..384a145 100644 --- a/smart-contracts/smart-contract/integration/contracts.ts +++ b/smart-contracts/smart-contract/integration/contracts.ts @@ -132,233 +132,3 @@ export namespace mainContract { } } } - -export namespace poxPoolsSelfServiceContract { - export const address = 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM'; - export const name = 'pox-pool-self-service'; - - // Functions - export namespace Functions { - // delegate-stack-stx - export namespace DelegateStackStx { - export const name = 'delegate-stack-stx'; - - export interface DelegateStackStxArgs { - amountUstx: UIntCV; - user: PrincipalCV; - } - - export function args(args: DelegateStackStxArgs): ClarityValue[] { - return [args.amountUstx, args.user]; - } - } - - // delegate-stx - export namespace DelegateStx { - export const name = 'delegate-stx'; - - export interface DelegateStxArgs { - amountUstx: UIntCV; - } - - export function args(args: DelegateStxArgs): ClarityValue[] { - return [args.amountUstx]; - } - } - - // get-first-result - export namespace GetFirstResult { - export const name = 'get-first-result'; - - export interface GetFirstResultArgs { - results: ClarityValue; - } - - export function args(args: GetFirstResultArgs): ClarityValue[] { - return [args.results]; - } - } - } -} - -export namespace HelperContract { - export const address = 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM'; - export const name = 'helper'; - - // Functions - export namespace Functions { - // get-stx-account - export namespace GetStxAccount { - export const name = 'get-stx-account'; - - export interface GetStxAccountArgs { - user: PrincipalCV; - } - - export function args(args: GetStxAccountArgs): ClarityValue[] { - return [args.user]; - } - } - - // get-user-data - export namespace GetUserData { - export const name = 'get-user-data'; - - export interface GetUserDataArgs { - user: PrincipalCV; - } - - export function args(args: GetUserDataArgs): ClarityValue[] { - return [args.user]; - } - } - } -} - -export namespace poxPools1CycleContract { - export const address = 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM'; - export const name = 'pox-pools-1-cycle'; - - // Functions - export namespace Functions { - // delegate-stack-stx - export namespace DelegateStackStx { - export const name = 'delegate-stack-stx'; - - export interface DelegateStackStxArgs { - users: ListCV; - poxAddress: TupleCV; - startBurnHt: UIntCV; - lockPeriod: UIntCV; - } - - export function args(args: DelegateStackStxArgs): ClarityValue[] { - return [args.users, args.poxAddress, args.startBurnHt, args.lockPeriod]; - } - } - - // delegate-stx - export namespace DelegateStx { - export const name = 'delegate-stx'; - - export interface DelegateStxArgs { - amountUstx: UIntCV; - delegateTo: StandardPrincipalCV; - untilBurnHt: NoneCV; - poolPoxAddr: NoneCV; - userPoxAddr: TupleCV; - lockPeriod: UIntCV; - } - - export function args(args: DelegateStxArgs): ClarityValue[] { - return [ - args.amountUstx, - args.delegateTo, - args.untilBurnHt, - args.poolPoxAddr, - args.userPoxAddr, - args.lockPeriod, - ]; - } - } - - // as-response-with-uint - export namespace AsResponseWithUint { - export const name = 'as-response-with-uint'; - - export interface AsResponseWithUintArgs { - result: ClarityValue; - } - - export function args(args: AsResponseWithUintArgs): ClarityValue[] { - return [args.result]; - } - } - - // get-status - export namespace GetStatus { - export const name = 'get-status'; - - export interface GetStatusArgs { - pool: PrincipalCV; - user: PrincipalCV; - } - - export function args(args: GetStatusArgs): ClarityValue[] { - return [args.pool, args.user]; - } - } - - // get-status-list - export namespace GetStatusList { - export const name = 'get-status-list'; - - export interface GetStatusListArgs { - pool: PrincipalCV; - rewardCycle: UIntCV; - lockPeriod: UIntCV; - index: UIntCV; - } - - export function args(args: GetStatusListArgs): ClarityValue[] { - return [args.pool, args.rewardCycle, args.lockPeriod, args.index]; - } - } - - // get-status-lists-last-index - export namespace GetStatusListsLastIndex { - export const name = 'get-status-lists-last-index'; - - export interface GetStatusListsLastIndexArgs { - pool: PrincipalCV; - rewardCycle: UIntCV; - lockPeriod: UIntCV; - } - - export function args(args: GetStatusListsLastIndexArgs): ClarityValue[] { - return [args.pool, args.rewardCycle, args.lockPeriod]; - } - } - - // get-stx-account - export namespace GetStxAccount { - export const name = 'get-stx-account'; - - export interface GetStxAccountArgs { - user: PrincipalCV; - } - - export function args(args: GetStxAccountArgs): ClarityValue[] { - return [args.user]; - } - } - - // get-total - export namespace GetTotal { - export const name = 'get-total'; - - export interface GetTotalArgs { - pool: PrincipalCV; - rewardCycle: UIntCV; - lockPeriod: UIntCV; - } - - export function args(args: GetTotalArgs): ClarityValue[] { - return [args.pool, args.rewardCycle, args.lockPeriod]; - } - } - - // get-user-data - export namespace GetUserData { - export const name = 'get-user-data'; - - export interface GetUserDataArgs { - user: PrincipalCV; - } - - export function args(args: GetUserDataArgs): ClarityValue[] { - return [args.user]; - } - } - } -} diff --git a/smart-contracts/smart-contract/integration/helper-fp.ts b/smart-contracts/smart-contract/integration/helper-fp.ts index aa09f63..5e0dcf5 100644 --- a/smart-contracts/smart-contract/integration/helper-fp.ts +++ b/smart-contracts/smart-contract/integration/helper-fp.ts @@ -14,10 +14,7 @@ import { TxBroadcastResult, } from '@stacks/transactions'; import { StacksNetwork } from '@stacks/network'; -// import { Accounts } from './constants'; -import { HelperContract, mainContract, poxPoolsSelfServiceContract } from './contracts'; -import { decodeBtcAddress } from '@stacks/stacking'; -import { toBytes } from '@stacks/common'; +import { mainContract } from './contracts'; import { handleContractCall } from './helpers-stacking'; import { Accounts } from './constants-stacking'; @@ -153,62 +150,6 @@ export async function broadcastRewardDistribution({ return handleContractCall({ txOptions, network }); } -// export async function broadcastDelegateStackStx({ -// stacker, -// amountUstx, -// user, -// nonce, -// network, -// }: { -// stacker: { stxAddress: string; secretKey: string }; -// amountUstx: number; -// user: { stxAddress: string; secretKey: string }; -// nonce: number; -// network: StacksNetwork; -// }) { -// let txOptions = { -// contractAddress: poxPoolsSelfServiceContract.address, -// contractName: poxPoolsSelfServiceContract.name, -// functionName: poxPoolsSelfServiceContract.Functions.DelegateStackStx.name, -// functionArgs: poxPoolsSelfServiceContract.Functions.DelegateStackStx.args({ -// user: principalCV(stacker.stxAddress), -// amountUstx: uintCV(amountUstx), -// }), -// nonce, -// network, -// anchorMode: AnchorMode.OnChainOnly, -// postConditionMode: PostConditionMode.Allow, -// senderKey: user.secretKey, -// }; -// return handleContractCall({ txOptions, network }); -// } - -// export const broadcastDepositStxOwner = async ( -// amountUstx: number, -// network: StacksNetwork, -// account: Account, -// fee: number, -// nonce: number -// ): Promise => { -// const txOptions = { -// contractAddress: Accounts.DEPLOYER.stxAddress, -// contractName: mainContract.name, -// functionName: 'deposit-stx-liquidity-provider', -// functionArgs: [uintCV(amountUstx)], -// fee, -// nonce, -// network, -// anchorMode: AnchorMode.OnChainOnly, -// postConditionMode: PostConditionMode.Allow, -// senderKey: account.secretKey, -// }; -// // @ts-ignore -// const tx = await makeContractCall(txOptions); -// // Broadcast transaction to our Devnet stacks node -// const result = await broadcastTransaction(tx, network); -// return result; -// }; - export async function broadcastDepositStxOwner({ amountUstx, nonce, diff --git a/smart-contracts/smart-contract/integration/helpers-stacking.ts b/smart-contracts/smart-contract/integration/helpers-stacking.ts index d3011b4..da54754 100644 --- a/smart-contracts/smart-contract/integration/helpers-stacking.ts +++ b/smart-contracts/smart-contract/integration/helpers-stacking.ts @@ -101,7 +101,6 @@ export function buildDevnetNetworkOrchestrator( }, }; let consolidatedConfig = getIsolatedNetworkConfigUsingNetworkId(networkId, config); - console.log('isolated Config!', consolidatedConfig); let orchestrator = new DevnetNetworkOrchestrator(consolidatedConfig, 2500); return orchestrator; } @@ -249,169 +248,34 @@ export async function handleContractCall({ txOptions, network }: { txOptions: an return response; } -export const broadcastStackSTX = async ( - poxVersion: number, - network: StacksNetwork, - amount: number, - account: Account, - blockHeight: number, - cycles: number, - fee: number, - nonce: number -): Promise => { - const { version, data } = decodeBtcAddress(account.btcAddress); - // @ts-ignore - const address = { - version: bufferCV(toBytes(new Uint8Array([version.valueOf()]))), - hashbytes: bufferCV(data), - }; - - const txOptions = { - contractAddress: Contracts.POX_1.address, - contractName: poxVersion == 1 ? Contracts.POX_1.name : Contracts.POX_2.name, - functionName: 'stack-stx', - functionArgs: [uintCV(amount), tupleCV(address), uintCV(blockHeight), uintCV(cycles)], - fee, - nonce, - network, - anchorMode: AnchorMode.OnChainOnly, - postConditionMode: PostConditionMode.Allow, - senderKey: account.secretKey, - }; - // @ts-ignore - const tx = await makeContractCall(txOptions); - // Broadcast transaction to our Devnet stacks node - const response = await broadcastTransaction(tx, network); - return response; -}; - -export const createVault = async ( - collateralAmount: number, - usda: number, - network: StacksNetwork, - account: Account, - fee: number, - nonce: number -): Promise => { - const txOptions = { - contractAddress: Accounts.DEPLOYER.stxAddress, - contractName: 'arkadiko-freddie-v1-1', - functionName: 'collateralize-and-mint', - functionArgs: [ - uintCV(collateralAmount * 1000000), - uintCV(usda * 1000000), - tupleCV({ - 'stack-pox': trueCV(), - 'auto-payoff': falseCV(), - }), - stringAsciiCV('STX-A'), - contractPrincipalCV(Accounts.DEPLOYER.stxAddress, 'arkadiko-stx-reserve-v1-1'), - contractPrincipalCV(Accounts.DEPLOYER.stxAddress, 'arkadiko-token'), - contractPrincipalCV(Accounts.DEPLOYER.stxAddress, 'arkadiko-collateral-types-v3-1'), - contractPrincipalCV(Accounts.DEPLOYER.stxAddress, 'arkadiko-oracle-v1-1'), - ], - fee, - nonce, - network, - anchorMode: AnchorMode.OnChainOnly, - postConditionMode: PostConditionMode.Allow, - senderKey: account.secretKey, - }; - // @ts-ignore - const tx = await makeContractCall(txOptions); - // Broadcast transaction to our Devnet stacks node - const result = await broadcastTransaction(tx, network); - return result; -}; - -export const initiateStacking = async ( - network: StacksNetwork, - account: Account, - blockHeight: number, - cycles: number, - fee: number, - nonce: number -): Promise => { - const { version, data } = decodeBtcAddress(account.btcAddress); - // @ts-ignore - const address = { - version: bufferCV(toBytes(new Uint8Array([version.valueOf()]))), - hashbytes: bufferCV(data), - }; - - const txOptions = { - contractAddress: Accounts.DEPLOYER.stxAddress, - contractName: 'arkadiko-stacker-v2-1', - functionName: 'initiate-stacking', - functionArgs: [tupleCV(address), uintCV(blockHeight), uintCV(cycles)], - fee, - nonce, - network, - anchorMode: AnchorMode.OnChainOnly, - postConditionMode: PostConditionMode.Allow, - senderKey: account.secretKey, - }; - // @ts-ignore - const tx = await makeContractCall(txOptions); - // Broadcast transaction to our Devnet stacks node - const result = await broadcastTransaction(tx, network); - return result; -}; - -export const stackIncrease = async ( - network: StacksNetwork, - account: Account, - stackerName: string, - fee: number, - nonce: number -): Promise => { - const txOptions = { - contractAddress: Accounts.DEPLOYER.stxAddress, - contractName: 'arkadiko-stacker-v2-1', - functionName: 'stack-increase', - functionArgs: [stringAsciiCV(stackerName)], - fee, - nonce, - network, - anchorMode: AnchorMode.OnChainOnly, - postConditionMode: PostConditionMode.Allow, - senderKey: account.secretKey, - }; - // @ts-ignore - const tx = await makeContractCall(txOptions); - // Broadcast transaction to our Devnet stacks node - const result = await broadcastTransaction(tx, network); - return result; -}; - -export const getStackerInfo = async (network: StacksNetwork) => { +export const getScLockedBalance = async (network: StacksNetwork) => { const supplyCall = await callReadOnlyFunction({ contractAddress: Accounts.DEPLOYER.stxAddress, - contractName: 'arkadiko-stacker-v2-1', - functionName: 'get-stacker-info', + contractName: 'stacking-pool-test', + functionName: 'get-SC-locked-balance', functionArgs: [], senderAddress: Accounts.DEPLOYER.stxAddress, network: network, }); const json = cvToJSON(supplyCall); - console.log('STACKER INFO JSON:', json); + console.log('SC Locked Balance:', json); return json; }; -export const getScLockedBalance = async (network: StacksNetwork) => { +export const getUserData = async (network: StacksNetwork, user: string) => { const supplyCall = await callReadOnlyFunction({ contractAddress: Accounts.DEPLOYER.stxAddress, contractName: 'stacking-pool-test', - functionName: 'get-SC-locked-balance', - functionArgs: [], + functionName: 'get-user-data', + functionArgs: [principalCV(user)], senderAddress: Accounts.DEPLOYER.stxAddress, network: network, }); const json = cvToJSON(supplyCall); - console.log('SC Locked Balance:', json); + console.log('SC user data:', json); - return json; + return json.value.value; }; export const getStackerWeight = async (network: StacksNetwork, stacker: string, rewardCycle: number) => { @@ -426,7 +290,7 @@ export const getStackerWeight = async (network: StacksNetwork, stacker: string, const json = cvToJSON(supplyCall); console.log(`Stacker ${stacker} weight:`, json.value ? json.value.value : json); - return json.value ? json.value.value : json; + return json.value && json.value !== null ? json.value.value : json.value === null ? json.value : json; }; export const getBlockPoxAddresses = async (network: StacksNetwork, stacker: string, burnHeight: number) => { diff --git a/smart-contracts/smart-contract/integration/stack-extend-increase-equal-amount.test.ts b/smart-contracts/smart-contract/integration/stack-extend-increase-equal-amount.test.ts new file mode 100644 index 0000000..b9ce1fa --- /dev/null +++ b/smart-contracts/smart-contract/integration/stack-extend-increase-equal-amount.test.ts @@ -0,0 +1,540 @@ +// /// Stackers call delegate-stx multiple times +// import { +// buildDevnetNetworkOrchestrator, +// FAST_FORWARD_TO_EPOCH_2_4, +// getAccount, +// getBlockPoxAddresses, +// getBlockRewards, +// getCheckDelegation, +// getNetworkIdFromEnv, +// getScLockedBalance, +// getStackerWeight, +// getPoxInfo, +// readRewardCyclePoxAddressForAddress, +// readRewardCyclePoxAddressListAtIndex, +// waitForRewardCycleId, +// waitForNextPreparePhase, +// waitForNextRewardPhase, +// getUserData, +// } from './helpers-stacking'; +// import { Accounts, Contracts, Constants } from './constants-stacking'; +// import { StacksTestnet } from '@stacks/network'; +// import { DevnetNetworkOrchestrator, StacksBlockMetadata } from '@hirosystems/stacks-devnet-js'; +// import { broadcastAllowContractCallerContracCall } from './allowContractCaller'; +// import { afterAll, beforeAll, describe, it, expect } from 'vitest'; +// import { +// broadcastDelegateStackStx, +// broadcastDelegateStackStxMany, +// broadcastDelegateStx, +// broadcastDepositStxOwner, +// broadcastJoinPool, +// broadcastReserveStxOwner, +// broadcastRewardDistribution, +// broadcastUpdateScBalances, +// } from './helper-fp'; +// import { noneCV, uintCV } from '@stacks/transactions'; +// import { mainContract } from './contracts'; + +// describe( +// 'testing stacking under epoch 2.4', +// () => { +// let orchestrator: DevnetNetworkOrchestrator; +// let timeline = FAST_FORWARD_TO_EPOCH_2_4; + +// beforeAll(() => { +// orchestrator = buildDevnetNetworkOrchestrator(getNetworkIdFromEnv(), timeline); +// orchestrator.start(500000); +// }); + +// afterAll(() => { +// orchestrator.terminate(); +// }); + +// it('whole flow many cycles 4 stackers + liquidity provider', async () => { +// const network = new StacksTestnet({ url: orchestrator.getStacksNodeUrl() }); + +// let usersList = [Accounts.WALLET_1, Accounts.WALLET_2, Accounts.WALLET_3, Accounts.WALLET_4]; + +// // Wait for Pox-3 activation + +// await orchestrator.waitForStacksBlockAnchoredOnBitcoinBlockOfHeight(timeline.epoch_2_4 + 1, 5, true); +// console.log(await getPoxInfo(network)); + +// // Wait for the contracts to be deployed + +// let chainUpdate, txs; +// // chainUpdate = await orchestrator.waitForNextStacksBlock(); +// // txs = chainUpdate.new_blocks[0].block.transactions; + +// // Deposit STX Liquidity Provider + +// await broadcastDepositStxOwner({ +// amountUstx: 11_000_000_000, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network: network, +// user: Accounts.DEPLOYER, +// }); + +// // Check the deposit tx + +// let depositTxIndex = 0; +// let blockIndex = 0; +// while (depositTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// let txMetadata = txs[1].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// if (txMethod == 'deposit-stx-liquidity-provider') { +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('deposit-stx-liquidity-provider'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// depositTxIndex++; +// } +// } +// } + +// // Allow pool in Pox-3 + +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: 0, // (await getAccount(network, usersList[0].stxAddress)).nonce, +// senderKey: usersList[0].secretKey, +// }); +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: 0, //(await getAccount(network, usersList[1].stxAddress)).nonce, +// senderKey: usersList[1].secretKey, +// }); +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: 0, // (await getAccount(network, usersList[2].stxAddress)).nonce, +// senderKey: usersList[2].secretKey, +// }); + +// // Check the allow txs + +// let allowTxIndex = 0; +// blockIndex = 0; + +// while (allowTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// if (txMethod == 'allow-contract-caller') { +// expect(txSC as any).toBe(`${Contracts.POX_3.address}.${Contracts.POX_3.name}`); +// expect(txMethod as any).toBe('allow-contract-caller'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// allowTxIndex++; +// console.log(txMetadata); +// } +// } +// } +// } + +// // Reserve STX for future rewards Liquidity Provider + +// await broadcastReserveStxOwner({ +// amountUstx: 11_000_000_000, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network: network, +// user: Accounts.DEPLOYER, +// }); + +// // Check the Reserve STX tx + +// for (let i = 0; i <= 15; i++) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; + +// if (txs.length > 1) { +// let txMetadata = txs[1].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('reserve-funds-future-rewards'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// i = 15; +// } +// } + +// // 3 Stackers Join Pool + +// for (let i = 0; i < usersList.length - 1; i++) { +// await broadcastJoinPool({ +// nonce: 1, // (await getAccount(network, usersList[i].stxAddress)).nonce, +// network, +// user: usersList[i], +// }); +// } + +// // Check the Join txs + +// let joinTxIndex = 0; +// blockIndex = 0; +// while (joinTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('join-stacking-pool'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// joinTxIndex++; +// } +// } +// } +// await waitForNextRewardPhase(network, orchestrator); +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// console.log((await getAccount(network, usersList[0].stxAddress)).nonce); +// console.log( +// '** BEFORE DELEGATE STX ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // 3 Stackers Delegate STX + +// await broadcastDelegateStx({ +// amountUstx: 125_000_000_000, +// user: usersList[0], +// nonce: 2, //(await getAccount(network, usersList[0].stxAddress)).nonce, +// network, +// }); + +// await broadcastDelegateStx({ +// amountUstx: 125_000_000_000, +// user: usersList[1], +// nonce: 2, //(await getAccount(network, usersList[1].stxAddress)).nonce, +// network, +// }); + +// await broadcastDelegateStx({ +// amountUstx: 50_286_942_145_278, // pox activation threshold +// user: usersList[2], +// nonce: 2, //(await getAccount(network, usersList[2].stxAddress)).nonce, +// network, +// }); + +// // Check the Delegate txs + +// let delegateTxIndex = 0; +// blockIndex = 0; +// while (delegateTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('delegate-stx'); +// expect((txMetadata as any)['success']).toBe(true); +// // expect((txMetadata as any)['result']).toBe(`(ok true)`); +// delegateTxIndex++; +// console.log(`Delegate STX Metadata ${delegateTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } +// console.log((await getAccount(network, usersList[0].stxAddress)).nonce); + +// console.log( +// 'Bitcoin block after the 3 delegations: ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // chainUpdate = orchestrator.waitForNextStacksBlock(); +// // chainUpdate = orchestrator.waitForNextStacksBlock(); + +// await broadcastDelegateStx({ +// amountUstx: 99_999_999_998_028, +// user: usersList[0], +// nonce: 3, //(await getAccount(network, usersList[0].stxAddress)).nonce, +// network, +// }); + +// delegateTxIndex = 0; +// blockIndex = 0; +// while (delegateTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// console.log('transactions: ', txs); +// console.log('index: ', blockIndex); +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// console.log(txMetadata); + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('delegate-stx'); +// expect((txMetadata as any)['success']).toBe(true); +// delegateTxIndex++; +// console.log(`Delegate STX Metadata ${delegateTxIndex}, block index ${blockIndex}`, txMetadata); +// console.log(`Delegate STX events: ${txMetadata.receipt.events} `); +// } +// } +// } + +// console.log( +// 'Bitcoin block after the extend-increase (2nd delegation using the same address): ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// await orchestrator.waitForNextStacksBlock(); + +// // Check pool SC balances + +// // Map each user to a getUserData promise +// const userDataPromises = usersList.slice(0, 3).map((user) => getUserData(network, user.stxAddress)); + +// // Wait for all promises to resolve +// const allUserData = await Promise.all(userDataPromises); + +// // Process each user data +// allUserData.forEach((userData, i) => { +// console.log('USER DATA VALUE: ', userData); +// let userDelegatedInPool = userData['delegated-balance'].value; +// let userLockedInPool = userData['locked-balance'].value; +// let userUntilBurnHt = userData['until-burn-ht'].value; +// console.log(`USER ${i} DELEGATED BALANCE: `, userDelegatedInPool); +// console.log(`USER ${i} LOCKED BALANCE: `, userLockedInPool); +// console.log(`USER ${i} until: `, userUntilBurnHt); + +// expect(userDelegatedInPool).toBe(i === 0 ? '99999999998028' : i === 1 ? '125000000000' : '50286942145278'); +// // 1st user's amount owned is less than what he delegated +// expect(userLockedInPool).toBe(i === 0 ? '99999998998028' : i === 1 ? '124999000000' : '50286941145278'); +// }); + +// // Friedger check table entry: + +// let poxInfo = await getPoxInfo(network); +// console.log('pox info CURRENT CYCLE:', poxInfo.current_cycle); +// console.log('pox info NEXT CYCLE:', poxInfo.next_cycle); + +// let poxAddrInfo0 = await readRewardCyclePoxAddressForAddress( +// network, +// poxInfo.current_cycle.id, +// Accounts.DEPLOYER.stxAddress +// ); + +// expect(poxAddrInfo0).toBeNull(); + +// let poxAddrInfo1 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 0); +// let poxAddrInfo2 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 1); +// let poxAddrInfo; + +// if (poxAddrInfo2) { +// poxAddrInfo = poxAddrInfo2; +// } else { +// poxAddrInfo = poxAddrInfo1; +// } + +// // Check the Total Stacked STX + +// expect(poxAddrInfo?.['total-ustx']).toEqual(uintCV(150_411_939_143_306)); + +// // Check balances + +// let userAccount1 = await getAccount(network, usersList[0].stxAddress); +// console.log('first user:', userAccount1); +// expect(userAccount1.balance).toBe(1000000n); + +// let userAccount2 = await getAccount(network, usersList[1].stxAddress); +// console.log('second user:', userAccount2); + +// let userAccount3 = await getAccount(network, usersList[2].stxAddress); +// console.log('third user:', userAccount3); + +// let userAccount4 = await getAccount(network, usersList[3].stxAddress); +// console.log('fourth user:', userAccount4); + +// // Update SC balances + +// await waitForNextPreparePhase(network, orchestrator); +// chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// await broadcastUpdateScBalances({ +// user: Accounts.DEPLOYER, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network, +// }); + +// let updateBalancesTxIndex = 0; +// blockIndex = 0; + +// while (updateBalancesTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// let updateBalancesBlock = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) +// .bitcoin_anchor_block_identifier.index; +// console.log('** UPDATE BALANCES BLOCK ' + updateBalancesBlock); +// if (updateBalancesBlock % 10 > 8 || updateBalancesBlock % 10 < 6) +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('update-sc-balances'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// updateBalancesTxIndex++; +// console.log(`Update Balances Metadata ${updateBalancesTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } +// await orchestrator.waitForNextStacksBlock(); +// let scLockedBalance = await getScLockedBalance(network); +// expect(scLockedBalance.value as any).toBe('150411939143306'); + +// // Check weights + +// let deployerWeight = await getStackerWeight(network, Accounts.DEPLOYER.stxAddress, poxInfo.next_cycle.id); +// expect(deployerWeight as any).toBe('73'); + +// // Prepare a list of promises for each user weight retrieval +// const weightPromises = usersList.map((user, index) => +// getStackerWeight(network, user.stxAddress, poxInfo.next_cycle.id).then((weight) => ({ +// weight, +// index, +// })) +// ); + +// // Wait for all promises to resolve +// const allUserWeights = await Promise.all(weightPromises); + +// // Process each user weight +// allUserWeights.forEach(({ weight, index }) => { +// console.log(weight, index); +// const expectedWeight = index === 3 ? null : index === 2 ? '334303' : index === 1 ? '830' : '664792'; +// expect(weight).toBe(expectedWeight); +// }); +// chainUpdate = await waitForRewardCycleId(network, orchestrator, poxInfo.next_cycle.id); +// let firstBurnBlockPastRewardCycle = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) +// .bitcoin_anchor_block_identifier.index; +// console.log('** First burn block to check rewards: ' + firstBurnBlockPastRewardCycle); + +// for (let i = 1; i <= 7; i++) chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// console.log( +// 'Burn block when checking rewards: ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // Print Pox Addresses for the blocks from 130 to 133 + +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) +// await getBlockPoxAddresses(network, Accounts.DEPLOYER.stxAddress, i); + +// // Print Block Rewards for the blocks from 130 to 133 + +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) +// await getBlockRewards(network, Accounts.DEPLOYER.stxAddress, i); + +// // Distribute Rewards For The Previously Verified Blocks (even if won or not) + +// let userIndex = 0; +// let repeatedUsers = false; +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) { +// if (userIndex == 4) { +// userIndex = 0; +// repeatedUsers = true; +// } +// userIndex == 4 ? (userIndex = 0) : (userIndex = userIndex); + +// await broadcastRewardDistribution({ +// burnBlockHeight: i, +// network, +// user: usersList[userIndex], +// nonce: repeatedUsers +// ? (await getAccount(network, usersList[userIndex].stxAddress)).nonce + 1 +// : ( +// await getAccount(network, usersList[userIndex].stxAddress) +// ).nonce, +// }); +// userIndex++; +// } + +// let rewardDistributionTxIndex = 0; +// blockIndex = 0; + +// while (rewardDistributionTxIndex < 6) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('reward-distribution'); +// console.log('Reward distribution result: ', (txMetadata as any)['result']); +// rewardDistributionTxIndex++; +// console.log( +// `Reward Distribution Metadata ${rewardDistributionTxIndex}, block index ${blockIndex}`, +// txMetadata +// ); +// } +// } +// } + +// // Check Balances + +// console.log('deployer:', await getAccount(network, Accounts.DEPLOYER.stxAddress)); +// console.log('first user:', await getAccount(network, usersList[0].stxAddress)); +// console.log('second user:', await getAccount(network, usersList[1].stxAddress)); +// console.log('third user:', await getAccount(network, usersList[2].stxAddress)); +// console.log('fourth user:', await getAccount(network, usersList[3].stxAddress)); +// }); +// }, +// { timeout: 100_000_000 } +// ); diff --git a/smart-contracts/smart-contract/integration/stack-extend-increase-greater-amount.test.ts b/smart-contracts/smart-contract/integration/stack-extend-increase-greater-amount.test.ts new file mode 100644 index 0000000..701868b --- /dev/null +++ b/smart-contracts/smart-contract/integration/stack-extend-increase-greater-amount.test.ts @@ -0,0 +1,539 @@ +// /// Stackers call delegate-stx multiple times +// import { +// buildDevnetNetworkOrchestrator, +// FAST_FORWARD_TO_EPOCH_2_4, +// getAccount, +// getBlockPoxAddresses, +// getBlockRewards, +// getCheckDelegation, +// getNetworkIdFromEnv, +// getScLockedBalance, +// getStackerWeight, +// getPoxInfo, +// readRewardCyclePoxAddressForAddress, +// readRewardCyclePoxAddressListAtIndex, +// waitForRewardCycleId, +// waitForNextPreparePhase, +// waitForNextRewardPhase, +// getUserData, +// } from './helpers-stacking'; +// import { Accounts, Contracts, Constants } from './constants-stacking'; +// import { StacksTestnet } from '@stacks/network'; +// import { DevnetNetworkOrchestrator, StacksBlockMetadata } from '@hirosystems/stacks-devnet-js'; +// import { broadcastAllowContractCallerContracCall } from './allowContractCaller'; +// import { afterAll, beforeAll, describe, it, expect } from 'vitest'; +// import { +// broadcastDelegateStackStx, +// broadcastDelegateStackStxMany, +// broadcastDelegateStx, +// broadcastDepositStxOwner, +// broadcastJoinPool, +// broadcastReserveStxOwner, +// broadcastRewardDistribution, +// broadcastUpdateScBalances, +// } from './helper-fp'; +// import { noneCV, uintCV } from '@stacks/transactions'; +// import { mainContract } from './contracts'; + +// describe( +// 'testing stacking under epoch 2.4', +// () => { +// let orchestrator: DevnetNetworkOrchestrator; +// let timeline = FAST_FORWARD_TO_EPOCH_2_4; + +// beforeAll(() => { +// orchestrator = buildDevnetNetworkOrchestrator(getNetworkIdFromEnv(), timeline); +// orchestrator.start(500000); +// }); + +// afterAll(() => { +// orchestrator.terminate(); +// }); + +// it('whole flow many cycles 4 stackers + liquidity provider', async () => { +// const network = new StacksTestnet({ url: orchestrator.getStacksNodeUrl() }); + +// let usersList = [Accounts.WALLET_1, Accounts.WALLET_2, Accounts.WALLET_3, Accounts.WALLET_4]; + +// // Wait for Pox-3 activation + +// await orchestrator.waitForStacksBlockAnchoredOnBitcoinBlockOfHeight(timeline.epoch_2_4 + 1, 5, true); +// console.log(await getPoxInfo(network)); + +// // Wait for the contracts to be deployed + +// let chainUpdate, txs; +// // chainUpdate = await orchestrator.waitForNextStacksBlock(); +// // txs = chainUpdate.new_blocks[0].block.transactions; + +// // Deposit STX Liquidity Provider + +// await broadcastDepositStxOwner({ +// amountUstx: 11_000_000_000, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network: network, +// user: Accounts.DEPLOYER, +// }); + +// // Check the deposit tx + +// let depositTxIndex = 0; +// let blockIndex = 0; +// while (depositTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// let txMetadata = txs[1].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// if (txMethod == 'deposit-stx-liquidity-provider') { +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('deposit-stx-liquidity-provider'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// depositTxIndex++; +// } +// } +// } + +// // Allow pool in Pox-3 + +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: 0, // (await getAccount(network, usersList[0].stxAddress)).nonce, +// senderKey: usersList[0].secretKey, +// }); +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: 0, //(await getAccount(network, usersList[1].stxAddress)).nonce, +// senderKey: usersList[1].secretKey, +// }); +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: 0, // (await getAccount(network, usersList[2].stxAddress)).nonce, +// senderKey: usersList[2].secretKey, +// }); + +// // Check the allow txs + +// let allowTxIndex = 0; +// blockIndex = 0; + +// while (allowTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// if (txMethod == 'allow-contract-caller') { +// expect(txSC as any).toBe(`${Contracts.POX_3.address}.${Contracts.POX_3.name}`); +// expect(txMethod as any).toBe('allow-contract-caller'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// allowTxIndex++; +// console.log(txMetadata); +// } +// } +// } +// } + +// // Reserve STX for future rewards Liquidity Provider + +// await broadcastReserveStxOwner({ +// amountUstx: 11_000_000_000, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network: network, +// user: Accounts.DEPLOYER, +// }); + +// // Check the Reserve STX tx + +// for (let i = 0; i <= 15; i++) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; + +// if (txs.length > 1) { +// let txMetadata = txs[1].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('reserve-funds-future-rewards'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// i = 15; +// } +// } + +// // 3 Stackers Join Pool + +// for (let i = 0; i < usersList.length - 1; i++) { +// await broadcastJoinPool({ +// nonce: 1, // (await getAccount(network, usersList[i].stxAddress)).nonce, +// network, +// user: usersList[i], +// }); +// } + +// // Check the Join txs + +// let joinTxIndex = 0; +// blockIndex = 0; +// while (joinTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('join-stacking-pool'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// joinTxIndex++; +// } +// } +// } +// await waitForNextRewardPhase(network, orchestrator); +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// console.log((await getAccount(network, usersList[0].stxAddress)).nonce); +// console.log( +// '** BEFORE DELEGATE STX ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // 3 Stackers Delegate STX + +// await broadcastDelegateStx({ +// amountUstx: 125_000_000_000, +// user: usersList[0], +// nonce: 2, //(await getAccount(network, usersList[0].stxAddress)).nonce, +// network, +// }); + +// await broadcastDelegateStx({ +// amountUstx: 125_000_000_000, +// user: usersList[1], +// nonce: 2, //(await getAccount(network, usersList[1].stxAddress)).nonce, +// network, +// }); + +// await broadcastDelegateStx({ +// amountUstx: 50_286_942_145_278, // pox activation threshold +// user: usersList[2], +// nonce: 2, //(await getAccount(network, usersList[2].stxAddress)).nonce, +// network, +// }); + +// // Check the Delegate txs + +// let delegateTxIndex = 0; +// blockIndex = 0; +// while (delegateTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('delegate-stx'); +// expect((txMetadata as any)['success']).toBe(true); +// // expect((txMetadata as any)['result']).toBe(`(ok true)`); +// delegateTxIndex++; +// console.log(`Delegate STX Metadata ${delegateTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } +// console.log((await getAccount(network, usersList[0].stxAddress)).nonce); + +// console.log( +// 'Bitcoin block after the 3 delegations: ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // chainUpdate = orchestrator.waitForNextStacksBlock(); +// // chainUpdate = orchestrator.waitForNextStacksBlock(); + +// await broadcastDelegateStx({ +// amountUstx: 109_000_001_000_000, +// user: usersList[0], +// nonce: 3, //(await getAccount(network, usersList[0].stxAddress)).nonce, +// network, +// }); + +// delegateTxIndex = 0; +// blockIndex = 0; +// while (delegateTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// console.log('transactions: ', txs); +// console.log('index: ', blockIndex); +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// console.log(txMetadata); + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('delegate-stx'); +// expect((txMetadata as any)['success']).toBe(true); +// delegateTxIndex++; +// console.log(`Delegate STX Metadata ${delegateTxIndex}, block index ${blockIndex}`, txMetadata); +// console.log(`Delegate STX events: ${txMetadata.receipt.events} `); +// } +// } +// } + +// console.log( +// 'Bitcoin block after the extend-increase (2nd delegation using the same address): ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// await orchestrator.waitForNextStacksBlock(); + +// // Check pool SC balances + +// // Map each user to a getUserData promise +// const userDataPromises = usersList.slice(0, 3).map((user) => getUserData(network, user.stxAddress)); + +// // Wait for all promises to resolve +// const allUserData = await Promise.all(userDataPromises); + +// // Process each user data +// allUserData.forEach((userData, i) => { +// console.log('USER DATA VALUE: ', userData); +// let userDelegatedInPool = userData['delegated-balance'].value; +// let userLockedInPool = userData['locked-balance'].value; +// let userUntilBurnHt = userData['until-burn-ht'].value; +// console.log(`USER ${i} DELEGATED BALANCE: `, userDelegatedInPool); +// console.log(`USER ${i} LOCKED BALANCE: `, userLockedInPool); +// console.log(`USER ${i} until: `, userUntilBurnHt); + +// expect(userDelegatedInPool).toBe(i === 0 ? '109000001000000' : i === 1 ? '125000000000' : '50286942145278'); +// // 1st user's amount owned is less than what he delegated +// expect(userLockedInPool).toBe(i === 0 ? '99999998998028' : i === 1 ? '124999000000' : '50286941145278'); +// }); + +// // Friedger check table entry: + +// let poxInfo = await getPoxInfo(network); +// console.log('pox info CURRENT CYCLE:', poxInfo.current_cycle); +// console.log('pox info NEXT CYCLE:', poxInfo.next_cycle); + +// let poxAddrInfo0 = await readRewardCyclePoxAddressForAddress( +// network, +// poxInfo.current_cycle.id, +// Accounts.DEPLOYER.stxAddress +// ); + +// expect(poxAddrInfo0).toBeNull(); + +// let poxAddrInfo1 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 0); +// let poxAddrInfo2 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 1); +// let poxAddrInfo; + +// if (poxAddrInfo2) { +// poxAddrInfo = poxAddrInfo2; +// } else { +// poxAddrInfo = poxAddrInfo1; +// } + +// // Check the Total Stacked STX + +// expect(poxAddrInfo?.['total-ustx']).toEqual(uintCV(150_411_939_143_306)); + +// // Check balances + +// let userAccount1 = await getAccount(network, usersList[0].stxAddress); +// console.log('first user:', userAccount1); + +// let userAccount2 = await getAccount(network, usersList[1].stxAddress); +// console.log('second user:', userAccount2); + +// let userAccount3 = await getAccount(network, usersList[2].stxAddress); +// console.log('third user:', userAccount3); + +// let userAccount4 = await getAccount(network, usersList[3].stxAddress); +// console.log('fourth user:', userAccount4); + +// // Update SC balances + +// await waitForNextPreparePhase(network, orchestrator); +// chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// await broadcastUpdateScBalances({ +// user: Accounts.DEPLOYER, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network, +// }); + +// let updateBalancesTxIndex = 0; +// blockIndex = 0; + +// while (updateBalancesTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// let updateBalancesBlock = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) +// .bitcoin_anchor_block_identifier.index; +// console.log('** UPDATE BALANCES BLOCK ' + updateBalancesBlock); +// if (updateBalancesBlock % 10 > 8 || updateBalancesBlock % 10 < 6) +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('update-sc-balances'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// updateBalancesTxIndex++; +// console.log(`Update Balances Metadata ${updateBalancesTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } +// await orchestrator.waitForNextStacksBlock(); +// let scLockedBalance = await getScLockedBalance(network); +// expect(scLockedBalance.value as any).toBe('150411939143306'); + +// // Check weights + +// let deployerWeight = await getStackerWeight(network, Accounts.DEPLOYER.stxAddress, poxInfo.next_cycle.id); +// expect(deployerWeight as any).toBe('73'); + +// // Prepare a list of promises for each user weight retrieval +// const weightPromises = usersList.map((user, index) => +// getStackerWeight(network, user.stxAddress, poxInfo.next_cycle.id).then((weight) => ({ +// weight, +// index, +// })) +// ); + +// // Wait for all promises to resolve +// const allUserWeights = await Promise.all(weightPromises); + +// // Process each user weight +// allUserWeights.forEach(({ weight, index }) => { +// console.log(weight, index); +// const expectedWeight = index === 3 ? null : index === 2 ? '334303' : index === 1 ? '830' : '664792'; +// expect(weight).toBe(expectedWeight); +// }); +// chainUpdate = await waitForRewardCycleId(network, orchestrator, poxInfo.next_cycle.id); +// let firstBurnBlockPastRewardCycle = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) +// .bitcoin_anchor_block_identifier.index; +// console.log('** First burn block to check rewards: ' + firstBurnBlockPastRewardCycle); + +// for (let i = 1; i <= 7; i++) chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// console.log( +// 'Burn block when checking rewards: ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // Print Pox Addresses for the blocks from 130 to 133 + +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) +// await getBlockPoxAddresses(network, Accounts.DEPLOYER.stxAddress, i); + +// // Print Block Rewards for the blocks from 130 to 133 + +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) +// await getBlockRewards(network, Accounts.DEPLOYER.stxAddress, i); + +// // Distribute Rewards For The Previously Verified Blocks (even if won or not) + +// let userIndex = 0; +// let repeatedUsers = false; +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) { +// if (userIndex == 4) { +// userIndex = 0; +// repeatedUsers = true; +// } +// userIndex == 4 ? (userIndex = 0) : (userIndex = userIndex); + +// await broadcastRewardDistribution({ +// burnBlockHeight: i, +// network, +// user: usersList[userIndex], +// nonce: repeatedUsers +// ? (await getAccount(network, usersList[userIndex].stxAddress)).nonce + 1 +// : ( +// await getAccount(network, usersList[userIndex].stxAddress) +// ).nonce, +// }); +// userIndex++; +// } + +// let rewardDistributionTxIndex = 0; +// blockIndex = 0; + +// while (rewardDistributionTxIndex < 6) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('reward-distribution'); +// console.log('Reward distribution result: ', (txMetadata as any)['result']); +// rewardDistributionTxIndex++; +// console.log( +// `Reward Distribution Metadata ${rewardDistributionTxIndex}, block index ${blockIndex}`, +// txMetadata +// ); +// } +// } +// } + +// // Check Balances + +// console.log('deployer:', await getAccount(network, Accounts.DEPLOYER.stxAddress)); +// console.log('first user:', await getAccount(network, usersList[0].stxAddress)); +// console.log('second user:', await getAccount(network, usersList[1].stxAddress)); +// console.log('third user:', await getAccount(network, usersList[2].stxAddress)); +// console.log('fourth user:', await getAccount(network, usersList[3].stxAddress)); +// }); +// }, +// { timeout: 100_000_000 } +// ); diff --git a/smart-contracts/smart-contract/integration/stack-extend-increase-less-amount.test.ts b/smart-contracts/smart-contract/integration/stack-extend-increase-less-amount.test.ts new file mode 100644 index 0000000..6a68aaa --- /dev/null +++ b/smart-contracts/smart-contract/integration/stack-extend-increase-less-amount.test.ts @@ -0,0 +1,538 @@ +// /// Stackers call delegate-stx multiple times +// import { +// buildDevnetNetworkOrchestrator, +// FAST_FORWARD_TO_EPOCH_2_4, +// getAccount, +// getBlockPoxAddresses, +// getBlockRewards, +// getCheckDelegation, +// getNetworkIdFromEnv, +// getScLockedBalance, +// getStackerWeight, +// getPoxInfo, +// readRewardCyclePoxAddressForAddress, +// readRewardCyclePoxAddressListAtIndex, +// waitForRewardCycleId, +// waitForNextPreparePhase, +// waitForNextRewardPhase, +// getUserData, +// } from './helpers-stacking'; +// import { Accounts, Contracts, Constants } from './constants-stacking'; +// import { StacksTestnet } from '@stacks/network'; +// import { DevnetNetworkOrchestrator, StacksBlockMetadata } from '@hirosystems/stacks-devnet-js'; +// import { broadcastAllowContractCallerContracCall } from './allowContractCaller'; +// import { afterAll, beforeAll, describe, it, expect } from 'vitest'; +// import { +// broadcastDelegateStackStx, +// broadcastDelegateStackStxMany, +// broadcastDelegateStx, +// broadcastDepositStxOwner, +// broadcastJoinPool, +// broadcastReserveStxOwner, +// broadcastRewardDistribution, +// broadcastUpdateScBalances, +// } from './helper-fp'; +// import { noneCV, uintCV } from '@stacks/transactions'; +// import { mainContract } from './contracts'; + +// describe( +// 'testing stacking under epoch 2.4', +// () => { +// let orchestrator: DevnetNetworkOrchestrator; +// let timeline = FAST_FORWARD_TO_EPOCH_2_4; + +// beforeAll(() => { +// orchestrator = buildDevnetNetworkOrchestrator(getNetworkIdFromEnv(), timeline); +// orchestrator.start(500000); +// }); + +// afterAll(() => { +// orchestrator.terminate(); +// }); + +// it('whole flow many cycles 4 stackers + liquidity provider', async () => { +// const network = new StacksTestnet({ url: orchestrator.getStacksNodeUrl() }); + +// let usersList = [Accounts.WALLET_1, Accounts.WALLET_2, Accounts.WALLET_3, Accounts.WALLET_4]; + +// // Wait for Pox-3 activation + +// await orchestrator.waitForStacksBlockAnchoredOnBitcoinBlockOfHeight(timeline.epoch_2_4 + 1, 5, true); +// console.log(await getPoxInfo(network)); + +// // Wait for the contracts to be deployed + +// let chainUpdate, txs; +// // chainUpdate = await orchestrator.waitForNextStacksBlock(); +// // txs = chainUpdate.new_blocks[0].block.transactions; + +// // Deposit STX Liquidity Provider + +// await broadcastDepositStxOwner({ +// amountUstx: 11_000_000_000, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network: network, +// user: Accounts.DEPLOYER, +// }); + +// // Check the deposit tx + +// let depositTxIndex = 0; +// let blockIndex = 0; +// while (depositTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// let txMetadata = txs[1].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// if (txMethod == 'deposit-stx-liquidity-provider') { +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('deposit-stx-liquidity-provider'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// depositTxIndex++; +// } +// } +// } + +// // Allow pool in Pox-3 + +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: 0, // (await getAccount(network, usersList[0].stxAddress)).nonce, +// senderKey: usersList[0].secretKey, +// }); +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: 0, //(await getAccount(network, usersList[1].stxAddress)).nonce, +// senderKey: usersList[1].secretKey, +// }); +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: 0, // (await getAccount(network, usersList[2].stxAddress)).nonce, +// senderKey: usersList[2].secretKey, +// }); + +// // Check the allow txs + +// let allowTxIndex = 0; +// blockIndex = 0; + +// while (allowTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// if (txMethod == 'allow-contract-caller') { +// expect(txSC as any).toBe(`${Contracts.POX_3.address}.${Contracts.POX_3.name}`); +// expect(txMethod as any).toBe('allow-contract-caller'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// allowTxIndex++; +// console.log(txMetadata); +// } +// } +// } +// } + +// // Reserve STX for future rewards Liquidity Provider + +// await broadcastReserveStxOwner({ +// amountUstx: 11_000_000_000, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network: network, +// user: Accounts.DEPLOYER, +// }); + +// // Check the Reserve STX tx + +// for (let i = 0; i <= 15; i++) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; + +// if (txs.length > 1) { +// let txMetadata = txs[1].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('reserve-funds-future-rewards'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// i = 15; +// } +// } + +// // 3 Stackers Join Pool + +// for (let i = 0; i < usersList.length - 1; i++) { +// await broadcastJoinPool({ +// nonce: 1, // (await getAccount(network, usersList[i].stxAddress)).nonce, +// network, +// user: usersList[i], +// }); +// } + +// // Check the Join txs + +// let joinTxIndex = 0; +// blockIndex = 0; +// while (joinTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('join-stacking-pool'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// joinTxIndex++; +// } +// } +// } +// await waitForNextRewardPhase(network, orchestrator); +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// console.log((await getAccount(network, usersList[0].stxAddress)).nonce); +// console.log( +// '** BEFORE DELEGATE STX ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // 3 Stackers Delegate STX + +// await broadcastDelegateStx({ +// amountUstx: 125_000_000_000, +// user: usersList[0], +// nonce: 2, //(await getAccount(network, usersList[0].stxAddress)).nonce, +// network, +// }); + +// await broadcastDelegateStx({ +// amountUstx: 125_000_000_000, +// user: usersList[1], +// nonce: 2, //(await getAccount(network, usersList[1].stxAddress)).nonce, +// network, +// }); + +// await broadcastDelegateStx({ +// amountUstx: 50_286_942_145_278, // pox activation threshold +// user: usersList[2], +// nonce: 2, //(await getAccount(network, usersList[2].stxAddress)).nonce, +// network, +// }); + +// // Check the Delegate txs + +// let delegateTxIndex = 0; +// blockIndex = 0; +// while (delegateTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('delegate-stx'); +// expect((txMetadata as any)['success']).toBe(true); +// // expect((txMetadata as any)['result']).toBe(`(ok true)`); +// delegateTxIndex++; +// console.log(`Delegate STX Metadata ${delegateTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } +// console.log((await getAccount(network, usersList[0].stxAddress)).nonce); + +// console.log( +// 'Bitcoin block after the 3 delegations: ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // chainUpdate = orchestrator.waitForNextStacksBlock(); +// // chainUpdate = orchestrator.waitForNextStacksBlock(); + +// await broadcastDelegateStx({ +// amountUstx: 125_100_000_000, +// user: usersList[0], +// nonce: 3, //(await getAccount(network, usersList[0].stxAddress)).nonce, +// network, +// }); + +// delegateTxIndex = 0; +// blockIndex = 0; +// while (delegateTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// console.log('transactions: ', txs); +// console.log('index: ', blockIndex); +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// console.log(txMetadata); + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('delegate-stx'); +// expect((txMetadata as any)['success']).toBe(true); +// delegateTxIndex++; +// console.log(`Delegate STX Metadata ${delegateTxIndex}, block index ${blockIndex}`, txMetadata); +// console.log(`Delegate STX events: ${txMetadata.receipt.events} `); +// } +// } +// } + +// console.log( +// 'Bitcoin block after the extend-increase (2nd delegation using the same address): ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// await orchestrator.waitForNextStacksBlock(); + +// // Check pool SC balances + +// // Map each user to a getUserData promise +// const userDataPromises = usersList.slice(0, 3).map((user) => getUserData(network, user.stxAddress)); + +// // Wait for all promises to resolve +// const allUserData = await Promise.all(userDataPromises); + +// // Process each user data +// allUserData.forEach((userData, i) => { +// console.log('USER DATA VALUE: ', userData); +// let userDelegatedInPool = userData['delegated-balance'].value; +// let userLockedInPool = userData['locked-balance'].value; +// let userUntilBurnHt = userData['until-burn-ht'].value; +// console.log(`USER ${i} DELEGATED BALANCE: `, userDelegatedInPool); +// console.log(`USER ${i} LOCKED BALANCE: `, userLockedInPool); +// console.log(`USER ${i} until: `, userUntilBurnHt); + +// expect(userDelegatedInPool).toBe(i === 0 ? '125100000000' : i === 1 ? '125000000000' : '50286942145278'); +// expect(userLockedInPool).toBe(i === 0 ? '125099000000' : i === 1 ? '124999000000' : '50286941145278'); +// }); + +// // Friedger check table entry: + +// let poxInfo = await getPoxInfo(network); +// console.log('pox info CURRENT CYCLE:', poxInfo.current_cycle); +// console.log('pox info NEXT CYCLE:', poxInfo.next_cycle); + +// let poxAddrInfo0 = await readRewardCyclePoxAddressForAddress( +// network, +// poxInfo.current_cycle.id, +// Accounts.DEPLOYER.stxAddress +// ); + +// expect(poxAddrInfo0).toBeNull(); + +// let poxAddrInfo1 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 0); +// let poxAddrInfo2 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 1); +// let poxAddrInfo; + +// if (poxAddrInfo2) { +// poxAddrInfo = poxAddrInfo2; +// } else { +// poxAddrInfo = poxAddrInfo1; +// } + +// // Check the Total Stacked STX + +// expect(poxAddrInfo?.['total-ustx']).toEqual(uintCV(50_537_039_145_278)); + +// // Check balances + +// let userAccount1 = await getAccount(network, usersList[0].stxAddress); +// console.log('first user:', userAccount1); + +// let userAccount2 = await getAccount(network, usersList[1].stxAddress); +// console.log('second user:', userAccount2); + +// let userAccount3 = await getAccount(network, usersList[2].stxAddress); +// console.log('third user:', userAccount3); + +// let userAccount4 = await getAccount(network, usersList[3].stxAddress); +// console.log('fourth user:', userAccount4); + +// // Update SC balances + +// await waitForNextPreparePhase(network, orchestrator); +// chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// await broadcastUpdateScBalances({ +// user: Accounts.DEPLOYER, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network, +// }); + +// let updateBalancesTxIndex = 0; +// blockIndex = 0; + +// while (updateBalancesTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// let updateBalancesBlock = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) +// .bitcoin_anchor_block_identifier.index; +// console.log('** UPDATE BALANCES BLOCK ' + updateBalancesBlock); +// if (updateBalancesBlock % 10 > 8 || updateBalancesBlock % 10 < 6) +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('update-sc-balances'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// updateBalancesTxIndex++; +// console.log(`Update Balances Metadata ${updateBalancesTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } +// await orchestrator.waitForNextStacksBlock(); +// let scLockedBalance = await getScLockedBalance(network); +// expect(scLockedBalance.value as any).toBe('50537039145278'); + +// // Check weights + +// let deployerWeight = await getStackerWeight(network, Accounts.DEPLOYER.stxAddress, poxInfo.next_cycle.id); +// expect(deployerWeight as any).toBe('217'); + +// // Prepare a list of promises for each user weight retrieval +// const weightPromises = usersList.map((user, index) => +// getStackerWeight(network, user.stxAddress, poxInfo.next_cycle.id).then((weight) => ({ +// weight, +// index, +// })) +// ); + +// // Wait for all promises to resolve +// const allUserWeights = await Promise.all(weightPromises); + +// // Process each user weight +// allUserWeights.forEach(({ weight, index }) => { +// const expectedWeight = index === 3 ? null : index === 2 ? '994834' : index === 1 ? '2472' : '2474'; +// expect(weight).toBe(expectedWeight); +// }); + +// chainUpdate = await waitForRewardCycleId(network, orchestrator, poxInfo.next_cycle.id); +// let firstBurnBlockPastRewardCycle = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) +// .bitcoin_anchor_block_identifier.index; +// console.log('** First burn block to check rewards: ' + firstBurnBlockPastRewardCycle); + +// for (let i = 1; i <= 7; i++) chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// console.log( +// 'Burn block when checking rewards: ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // Print Pox Addresses for the blocks from 130 to 133 + +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) +// await getBlockPoxAddresses(network, Accounts.DEPLOYER.stxAddress, i); + +// // Print Block Rewards for the blocks from 130 to 133 + +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) +// await getBlockRewards(network, Accounts.DEPLOYER.stxAddress, i); + +// // Distribute Rewards For The Previously Verified Blocks (even if won or not) + +// let userIndex = 0; +// let repeatedUsers = false; +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) { +// if (userIndex == 4) { +// userIndex = 0; +// repeatedUsers = true; +// } +// userIndex == 4 ? (userIndex = 0) : (userIndex = userIndex); + +// await broadcastRewardDistribution({ +// burnBlockHeight: i, +// network, +// user: usersList[userIndex], +// nonce: repeatedUsers +// ? (await getAccount(network, usersList[userIndex].stxAddress)).nonce + 1 +// : ( +// await getAccount(network, usersList[userIndex].stxAddress) +// ).nonce, +// }); +// userIndex++; +// } + +// let rewardDistributionTxIndex = 0; +// blockIndex = 0; + +// while (rewardDistributionTxIndex < 6) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('reward-distribution'); +// console.log('Reward distribution result: ', (txMetadata as any)['result']); +// rewardDistributionTxIndex++; +// console.log( +// `Reward Distribution Metadata ${rewardDistributionTxIndex}, block index ${blockIndex}`, +// txMetadata +// ); +// } +// } +// } + +// // Check Balances + +// console.log('deployer:', await getAccount(network, Accounts.DEPLOYER.stxAddress)); +// console.log('first user:', await getAccount(network, usersList[0].stxAddress)); +// console.log('second user:', await getAccount(network, usersList[1].stxAddress)); +// console.log('third user:', await getAccount(network, usersList[2].stxAddress)); +// console.log('fourth user:', await getAccount(network, usersList[3].stxAddress)); +// }); +// }, +// { timeout: 100_000_000 } +// ); diff --git a/smart-contracts/smart-contract/integration/stacking.test.ts b/smart-contracts/smart-contract/integration/stacking.test.ts index 4963e8b..9602824 100644 --- a/smart-contracts/smart-contract/integration/stacking.test.ts +++ b/smart-contracts/smart-contract/integration/stacking.test.ts @@ -1,644 +1,658 @@ -import { - buildDevnetNetworkOrchestrator, - FAST_FORWARD_TO_EPOCH_2_4, - getAccount, - getBlockPoxAddresses, - getBlockRewards, - getCheckDelegation, - getNetworkIdFromEnv, - getScLockedBalance, - getStackerWeight, - getPoxInfo, - readRewardCyclePoxAddressForAddress, - readRewardCyclePoxAddressListAtIndex, - waitForRewardCycleId, - waitForNextPreparePhase, - waitForNextRewardPhase, -} from './helpers-stacking'; -import { Accounts, Contracts, Constants } from './constants-stacking'; -import { StacksTestnet } from '@stacks/network'; -import { DevnetNetworkOrchestrator, StacksBlockMetadata } from '@hirosystems/stacks-devnet-js'; -import { broadcastAllowContractCallerContracCall } from './allowContractCaller'; -import { afterAll, beforeAll, describe, it } from 'vitest'; -import { - broadcastDelegateStackStx, - broadcastDelegateStackStxMany, - broadcastDelegateStx, - broadcastDepositStxOwner, - broadcastJoinPool, - broadcastReserveStxOwner, - broadcastRewardDistribution, - broadcastUpdateScBalances, -} from './helper-fp'; -import { expect } from 'chai'; -import { uintCV } from '@stacks/transactions'; -import { mainContract } from './contracts'; - -describe('testing stacking under epoch 2.4', () => { - let orchestrator: DevnetNetworkOrchestrator; - let timeline = FAST_FORWARD_TO_EPOCH_2_4; - - beforeAll(() => { - orchestrator = buildDevnetNetworkOrchestrator(getNetworkIdFromEnv(), timeline); - orchestrator.start(12000); - }); - - afterAll(() => { - orchestrator.terminate(); - }); - - it('whole flow many cycles 4 stackers + liquidity provider', async () => { - console.log('POX-3 test beginning'); - const network = new StacksTestnet({ url: orchestrator.getStacksNodeUrl() }); - - let usersList = [Accounts.WALLET_1, Accounts.WALLET_2, Accounts.WALLET_3, Accounts.WALLET_4]; - - // Wait for Pox-3 activation - - await orchestrator.waitForStacksBlockAnchoredOnBitcoinBlockOfHeight(timeline.epoch_2_4 + 1, 5, true); - console.log(await getPoxInfo(network)); - - // Wait for the contracts to be deployed - - let chainUpdate, txs; - // chainUpdate = await orchestrator.waitForNextStacksBlock(); - // txs = chainUpdate.new_blocks[0].block.transactions; - - // Deposit STX Liquidity Provider - - await broadcastDepositStxOwner({ - amountUstx: 11_000_000_000, - nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, - network: network, - user: Accounts.DEPLOYER, - }); - - // Check the deposit tx - - let depositTxIndex = 0; - let blockIndex = 0; - while (depositTxIndex < 1) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - if (txs.length > 1) { - let txMetadata = txs[1].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; - if (txMethod == 'deposit-stx-liquidity-provider') { - expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); - expect(txMethod as any).toBe('deposit-stx-liquidity-provider'); - expect((txMetadata as any)['success']).toBe(true); - expect((txMetadata as any)['result']).toBe(`(ok true)`); - console.log(`Deposit STX Metadata, (block index ${blockIndex}): `, txMetadata); - depositTxIndex++; - } - } - } - - // Allow pool in Pox-3 - - await broadcastAllowContractCallerContracCall({ - network, - nonce: (await getAccount(network, usersList[0].stxAddress)).nonce, - senderKey: usersList[0].secretKey, - }); - await broadcastAllowContractCallerContracCall({ - network, - nonce: (await getAccount(network, usersList[1].stxAddress)).nonce, - senderKey: usersList[1].secretKey, - }); - await broadcastAllowContractCallerContracCall({ - network, - nonce: (await getAccount(network, usersList[2].stxAddress)).nonce, - senderKey: usersList[2].secretKey, - }); - - // Check the allow txs - - let allowTxIndex = 0; - blockIndex = 0; - - while (allowTxIndex < 3) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; - - if (txMethod == 'allow-contract-caller') { - expect(txSC as any).toBe(`${Contracts.POX_3.address}.${Contracts.POX_3.name}`); - expect(txMethod as any).toBe('allow-contract-caller'); - expect((txMetadata as any)['success']).toBe(true); - expect((txMetadata as any)['result']).toBe(`(ok true)`); - allowTxIndex++; - console.log(`Allow Contract Caller Metadata ${allowTxIndex}, block index ${blockIndex}`, txMetadata); - } - } - } - } - - // Reserve STX for future rewards Liquidity Provider - - await broadcastReserveStxOwner({ - amountUstx: 11_000_000_000, - nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, - network: network, - user: Accounts.DEPLOYER, - }); - - // Check the Reserve STX tx - - for (let i = 0; i <= 15; i++) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - - if (txs.length > 1) { - let txMetadata = txs[1].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; - - expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); - expect(txMethod as any).toBe('reserve-funds-future-rewards'); - expect((txMetadata as any)['success']).toBe(true); - expect((txMetadata as any)['result']).toBe(`(ok true)`); - console.log(`Reserve STX Metadata, block index ${i + 1}`, txMetadata); - i = 15; - } - } - - // 3 Stackers Join Pool - - for (let i = 0; i < usersList.length - 1; i++) { - await broadcastJoinPool({ - nonce: (await getAccount(network, usersList[i].stxAddress)).nonce, - network, - user: usersList[i], - }); - } - - // Check the Join txs - - let joinTxIndex = 0; - blockIndex = 0; - while (joinTxIndex < 3) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; - - expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); - expect(txMethod as any).toBe('join-stacking-pool'); - expect((txMetadata as any)['success']).toBe(true); - expect((txMetadata as any)['result']).toBe(`(ok true)`); - joinTxIndex++; - console.log(`Join Pool Metadata ${joinTxIndex}, block index ${blockIndex}`, txMetadata); - } - } - } - await waitForNextRewardPhase(network, orchestrator); - chainUpdate = await orchestrator.waitForNextStacksBlock(); - - console.log( - '** BEFORE DELEGATE STX ' + - (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index - ); - - // 3 Stackers Delegate STX - - await broadcastDelegateStx({ - amountUstx: 125_000_000_000, - user: usersList[0], - nonce: (await getAccount(network, usersList[0].stxAddress)).nonce, - network, - }); - - await broadcastDelegateStx({ - amountUstx: 125_000_000_000, - user: usersList[1], - nonce: (await getAccount(network, usersList[1].stxAddress)).nonce, - network, - }); - - await broadcastDelegateStx({ - amountUstx: 50_286_942_145_278, // pox activation threshold - user: usersList[2], - nonce: (await getAccount(network, usersList[2].stxAddress)).nonce, - network, - }); - - // Check the Delegate txs - - let delegateTxIndex = 0; - blockIndex = 0; - while (delegateTxIndex < 3) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; - - expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); - expect(txMethod as any).toBe('delegate-stx'); - expect((txMetadata as any)['success']).toBe(true); - // expect((txMetadata as any)['result']).toBe(`(ok true)`); - delegateTxIndex++; - console.log(`Delegate STX Metadata ${delegateTxIndex}, block index ${blockIndex}`, txMetadata); - } - } - } - - console.log( - 'The last Delegation block: ' + - (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index - ); - - // Friedger check table entry: - - let poxInfo = await getPoxInfo(network); - console.log('pox info CURRENT CYCLE:', poxInfo.current_cycle); - console.log('pox info NEXT CYCLE:', poxInfo.next_cycle); - - let poxAddrInfo0 = await readRewardCyclePoxAddressForAddress( - network, - poxInfo.current_cycle.id, - Accounts.DEPLOYER.stxAddress - ); - - expect(poxAddrInfo0).toBeNull(); - - let poxAddrInfo1 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 0); - let poxAddrInfo2 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 1); - let poxAddrInfo; - - if (poxAddrInfo2) { - poxAddrInfo = poxAddrInfo2; - } else { - poxAddrInfo = poxAddrInfo1; - } - - // Check the Total Stacked STX - - expect(poxAddrInfo?.['total-ustx']).toEqual(uintCV(50_536_939_145_278)); - - // Check balances - - let userAccount1 = await getAccount(network, usersList[0].stxAddress); - console.log('first user:', userAccount1); - - let userAccount2 = await getAccount(network, usersList[1].stxAddress); - console.log('second user:', userAccount2); - - let userAccount3 = await getAccount(network, usersList[2].stxAddress); - console.log('third user:', userAccount3); - - let userAccount4 = await getAccount(network, usersList[3].stxAddress); - console.log('fourth user:', userAccount4); - - // Update SC balances - - await waitForNextPreparePhase(network, orchestrator); - chainUpdate = await orchestrator.waitForNextStacksBlock(); - - await broadcastUpdateScBalances({ - user: Accounts.DEPLOYER, - nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, - network, - }); - - let updateBalancesTxIndex = 0; - blockIndex = 0; - - while (updateBalancesTxIndex < 1) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; - let updateBalancesBlock = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) - .bitcoin_anchor_block_identifier.index; - console.log('** UPDATE BALANCES BLOCK ' + updateBalancesBlock); - if (updateBalancesBlock % 10 > 8 || updateBalancesBlock % 10 < 6) - console.log('COULD NOT UPDATE BALANCES DUE TO BLOCK DELAYS. PLEASE RESTART TEST!'); - - expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); - expect(txMethod as any).toBe('update-sc-balances'); - expect((txMetadata as any)['success']).toBe(true); - expect((txMetadata as any)['result']).toBe(`(ok true)`); - updateBalancesTxIndex++; - console.log(`Update Balances Metadata ${updateBalancesTxIndex}, block index ${blockIndex}`, txMetadata); - } - } - } - - let scLockedBalance = await getScLockedBalance(network); - expect(scLockedBalance.value as any).toBe('50536939145278'); - - // Check weights - - let deployerWeight = await getStackerWeight(network, Accounts.DEPLOYER.stxAddress, poxInfo.next_cycle.id); - expect(deployerWeight as any).toBe('217'); - - for (let i = 0; i <= 3; i++) { - let userWeight = await getStackerWeight(network, usersList[i].stxAddress, poxInfo.next_cycle.id); - i == 2 - ? expect(userWeight as any).toBe('994836') - : i < 2 - ? expect(userWeight as any).toBe('2472') - : expect(userWeight.value as any).toBe(null); - } - - chainUpdate = await waitForRewardCycleId(network, orchestrator, poxInfo.next_cycle.id); - let firstBurnBlockPastRewardCycle = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) - .bitcoin_anchor_block_identifier.index; - console.log('** First burn block to check rewards: ' + firstBurnBlockPastRewardCycle); - - for (let i = 1; i <= 7; i++) chainUpdate = await orchestrator.waitForNextStacksBlock(); - - console.log( - 'Burn block when checking rewards: ' + - (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index - ); - - // Print Pox Addresses for the blocks from 130 to 133 - - for (let i = firstBurnBlockPastRewardCycle; i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; i++) - await getBlockPoxAddresses(network, Accounts.DEPLOYER.stxAddress, i); - - // Print Block Rewards for the blocks from 130 to 133 - - for (let i = firstBurnBlockPastRewardCycle; i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; i++) - await getBlockRewards(network, Accounts.DEPLOYER.stxAddress, i); - - // Distribute Rewards For The Previously Verified Blocks (even if won or not) - - let userIndex = 0; - let repeatedUsers = false; - for ( - let i = firstBurnBlockPastRewardCycle; - i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; - i++ - ) { - if (userIndex == 4) { - userIndex = 0; - repeatedUsers = true; - } - userIndex == 4 ? (userIndex = 0) : (userIndex = userIndex); - - await broadcastRewardDistribution({ - burnBlockHeight: i, - network, - user: usersList[userIndex], - nonce: repeatedUsers - ? (await getAccount(network, usersList[userIndex].stxAddress)).nonce + 1 - : ( - await getAccount(network, usersList[userIndex].stxAddress) - ).nonce, - }); - userIndex++; - } - - let rewardDistributionTxIndex = 0; - blockIndex = 0; - - while (rewardDistributionTxIndex < 6) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; - expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); - expect(txMethod as any).toBe('reward-distribution'); - console.log('Reward distribution result: ', (txMetadata as any)['result']); - rewardDistributionTxIndex++; - console.log( - `Reward Distribution Metadata ${rewardDistributionTxIndex}, block index ${blockIndex}`, - txMetadata - ); - } - } - } - - // Check Balances - - console.log('deployer:', await getAccount(network, Accounts.DEPLOYER.stxAddress)); - console.log('first user:', await getAccount(network, usersList[0].stxAddress)); - console.log('second user:', await getAccount(network, usersList[1].stxAddress)); - console.log('third user:', await getAccount(network, usersList[2].stxAddress)); - console.log('fourth user:', await getAccount(network, usersList[3].stxAddress)); - - await getCheckDelegation(network, usersList[0].stxAddress); - await getCheckDelegation(network, usersList[1].stxAddress); - await getCheckDelegation(network, usersList[2].stxAddress); - await getCheckDelegation(network, usersList[3].stxAddress); - - // Delegate Stack Stx (must happen on the second half of the reward phase) - - poxInfo = await getPoxInfo(network); - chainUpdate = await waitForRewardCycleId(network, orchestrator, poxInfo.next_cycle.id); - - for (let i = 1; i <= 5; i++) chainUpdate = await orchestrator.waitForNextStacksBlock(); - - console.log( - '** BEFORE DELEGATE STACK ' + - (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index - ); - - let delegateStack1 = await broadcastDelegateStackStx( - usersList[0].stxAddress, - network, - Accounts.DEPLOYER, - 1000, - ( - await getAccount(network, Accounts.DEPLOYER.stxAddress) - ).nonce - ); - let delegateStack2 = await broadcastDelegateStackStx( - usersList[1].stxAddress, - network, - Accounts.DEPLOYER, - 1000, - (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce + 1 - ); - let delegateStack3 = await broadcastDelegateStackStx( - usersList[2].stxAddress, - network, - Accounts.DEPLOYER, - 1000, - (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce + 2 - ); - - let delegateStackTxIndex = 0; - blockIndex = 0; - while (delegateStackTxIndex < 3) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; - - expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); - expect(txMethod as any).toBe('delegate-stack-stx'); - console.log(`Delegate Stack STX Metadata ${delegateStackTxIndex}, block index ${blockIndex}`, txMetadata); - - expect((txMetadata as any)['success']).toBe(true); - delegateStackTxIndex++; - } - } - } - - // Friedger check table entry: - - poxInfo = await getPoxInfo(network); - console.log('pox info CURRENT CYCLE:', poxInfo.current_cycle); - console.log('pox info NEXT CYCLE:', poxInfo.next_cycle); - - poxAddrInfo0 = await readRewardCyclePoxAddressForAddress( - network, - poxInfo.current_cycle.id, - Accounts.DEPLOYER.stxAddress - ); - - expect(poxAddrInfo0).toBeNull(); - - poxAddrInfo1 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 0); - poxAddrInfo2 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 1); - poxAddrInfo; - - if (poxAddrInfo2) { - poxAddrInfo = poxAddrInfo2; - } else { - poxAddrInfo = poxAddrInfo1; - } - - // Check total stacked ustx - - expect(poxAddrInfo?.['total-ustx']).toEqual(uintCV(50_536_939_145_278)); - - // Check balances - - userAccount1 = await getAccount(network, usersList[0].stxAddress); - console.log('first user:', userAccount1); - - userAccount2 = await getAccount(network, usersList[1].stxAddress); - console.log('second user:', userAccount2); - - userAccount3 = await getAccount(network, usersList[2].stxAddress); - console.log('third user:', userAccount3); - - userAccount4 = await getAccount(network, usersList[3].stxAddress); - console.log('fourth user:', userAccount4); - - await orchestrator.waitForNextStacksBlock(); - - // Delegate Stack Stx Many for all stackers in the list - // can be done after the reward cycle is half through, so wait for the next prepare phase - // next prepare phase -> 146 > 145 - - poxInfo = await getPoxInfo(network); - chainUpdate = await waitForRewardCycleId(network, orchestrator, poxInfo.next_cycle.id); - - for (let i = 1; i <= 5; i++) chainUpdate = await orchestrator.waitForNextStacksBlock(); - - let usersAddressesList = []; - usersList.forEach((user) => { - if (user && user.stxAddress) usersAddressesList.push(user.stxAddress); - }); - - console.log( - '** BEFORE DELEGATE STACK MANY ' + - (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index - ); - - let delegateStackMany1 = await broadcastDelegateStackStxMany({ - stackersLockList: usersAddressesList, - network: network, - nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, - user: Accounts.DEPLOYER, - }); - - let delegateStackManyTxIndex = 0; - blockIndex = 0; - while (delegateStackManyTxIndex < 1) { - chainUpdate = await orchestrator.waitForNextStacksBlock(); - txs = chainUpdate.new_blocks[0].block.transactions; - blockIndex++; - if (txs.length > 1) { - for (let i = 1; i <= txs.length - 1; i++) { - let txMetadata = txs[i].metadata; - let txData = txMetadata.kind.data; - let txSC = txData['contract_identifier']; - let txMethod = txData['method']; - - expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); - expect(txMethod as any).toBe('delegate-stack-stx-many'); - // expect((txMetadata as any)['result']).toBe('(ok ((ok false) (ok true) (ok true) (err u9000)))'); - console.log('Delegate Stack Many Result: ', txMetadata['result']); - console.log('Delegate Stack Many Receipt: ', txMetadata['receipt']); - console.log(`Delegate Stack STX Metadata ${delegateStackManyTxIndex}, block index ${blockIndex}`, txMetadata); - - expect((txMetadata as any)['success']).toBe(true); - delegateStackManyTxIndex++; - } - } - } - - // Friedger check table entry: - - poxInfo = await getPoxInfo(network); - console.log('pox info CURRENT CYCLE:', poxInfo.current_cycle); - console.log('pox info NEXT CYCLE:', poxInfo.next_cycle); - - poxAddrInfo0 = await readRewardCyclePoxAddressForAddress( - network, - poxInfo.current_cycle.id, - Accounts.DEPLOYER.stxAddress - ); - - expect(poxAddrInfo0).toBeNull(); - - poxAddrInfo1 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 0); - poxAddrInfo2 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 1); - poxAddrInfo; - - if (poxAddrInfo2) { - poxAddrInfo = poxAddrInfo2; - } else { - poxAddrInfo = poxAddrInfo1; - } - - // Check the Total Stacked STX - - expect(poxAddrInfo?.['total-ustx']).toEqual(uintCV(50_536_939_145_278)); - }); -}); +// import { +// buildDevnetNetworkOrchestrator, +// FAST_FORWARD_TO_EPOCH_2_4, +// getAccount, +// getBlockPoxAddresses, +// getBlockRewards, +// getCheckDelegation, +// getNetworkIdFromEnv, +// getScLockedBalance, +// getStackerWeight, +// getPoxInfo, +// readRewardCyclePoxAddressForAddress, +// readRewardCyclePoxAddressListAtIndex, +// waitForRewardCycleId, +// waitForNextPreparePhase, +// waitForNextRewardPhase, +// } from './helpers-stacking'; +// import { Accounts, Contracts, Constants } from './constants-stacking'; +// import { StacksTestnet } from '@stacks/network'; +// import { DevnetNetworkOrchestrator, StacksBlockMetadata } from '@hirosystems/stacks-devnet-js'; +// import { broadcastAllowContractCallerContracCall } from './allowContractCaller'; +// import { afterAll, beforeAll, describe, it, expect } from 'vitest'; +// import { +// broadcastDelegateStackStx, +// broadcastDelegateStackStxMany, +// broadcastDelegateStx, +// broadcastDepositStxOwner, +// broadcastJoinPool, +// broadcastReserveStxOwner, +// broadcastRewardDistribution, +// broadcastUpdateScBalances, +// } from './helper-fp'; +// import { uintCV } from '@stacks/transactions'; +// import { mainContract } from './contracts'; + +// describe( +// 'testing stacking under epoch 2.4', +// () => { +// let orchestrator: DevnetNetworkOrchestrator; +// let timeline = FAST_FORWARD_TO_EPOCH_2_4; + +// beforeAll(() => { +// orchestrator = buildDevnetNetworkOrchestrator(getNetworkIdFromEnv(), timeline); +// orchestrator.start(500000); +// }); + +// afterAll(() => { +// orchestrator.terminate(); +// }); + +// it('whole flow many cycles 4 stackers + liquidity provider', async () => { +// console.log('POX-3 test beginning'); +// const network = new StacksTestnet({ url: orchestrator.getStacksNodeUrl() }); + +// let usersList = [Accounts.WALLET_1, Accounts.WALLET_2, Accounts.WALLET_3, Accounts.WALLET_4]; + +// // Wait for Pox-3 activation + +// await orchestrator.waitForStacksBlockAnchoredOnBitcoinBlockOfHeight(timeline.epoch_2_4 + 1, 5, true); +// console.log(await getPoxInfo(network)); + +// // Wait for the contracts to be deployed + +// let chainUpdate, txs; +// // chainUpdate = await orchestrator.waitForNextStacksBlock(); +// // txs = chainUpdate.new_blocks[0].block.transactions; + +// // Deposit STX Liquidity Provider + +// await broadcastDepositStxOwner({ +// amountUstx: 11_000_000_000, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network: network, +// user: Accounts.DEPLOYER, +// }); + +// // Check the deposit tx + +// let depositTxIndex = 0; +// let blockIndex = 0; +// while (depositTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// let txMetadata = txs[1].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// if (txMethod == 'deposit-stx-liquidity-provider') { +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('deposit-stx-liquidity-provider'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// console.log(`Deposit STX Metadata, (block index ${blockIndex}): `, txMetadata); +// depositTxIndex++; +// } +// } +// } + +// // Allow pool in Pox-3 + +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: (await getAccount(network, usersList[0].stxAddress)).nonce, +// senderKey: usersList[0].secretKey, +// }); +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: (await getAccount(network, usersList[1].stxAddress)).nonce, +// senderKey: usersList[1].secretKey, +// }); +// await broadcastAllowContractCallerContracCall({ +// network, +// nonce: (await getAccount(network, usersList[2].stxAddress)).nonce, +// senderKey: usersList[2].secretKey, +// }); + +// // Check the allow txs + +// let allowTxIndex = 0; +// blockIndex = 0; + +// while (allowTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// if (txMethod == 'allow-contract-caller') { +// expect(txSC as any).toBe(`${Contracts.POX_3.address}.${Contracts.POX_3.name}`); +// expect(txMethod as any).toBe('allow-contract-caller'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// allowTxIndex++; +// console.log(`Allow Contract Caller Metadata ${allowTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } +// } + +// // Reserve STX for future rewards Liquidity Provider + +// await broadcastReserveStxOwner({ +// amountUstx: 11_000_000_000, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network: network, +// user: Accounts.DEPLOYER, +// }); + +// // Check the Reserve STX tx + +// for (let i = 0; i <= 15; i++) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; + +// if (txs.length > 1) { +// let txMetadata = txs[1].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('reserve-funds-future-rewards'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// console.log(`Reserve STX Metadata, block index ${i + 1}`, txMetadata); +// i = 15; +// } +// } + +// // 3 Stackers Join Pool + +// for (let i = 0; i < usersList.length - 1; i++) { +// await broadcastJoinPool({ +// nonce: (await getAccount(network, usersList[i].stxAddress)).nonce, +// network, +// user: usersList[i], +// }); +// } + +// // Check the Join txs + +// let joinTxIndex = 0; +// blockIndex = 0; +// while (joinTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('join-stacking-pool'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// joinTxIndex++; +// console.log(`Join Pool Metadata ${joinTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } +// await waitForNextRewardPhase(network, orchestrator); +// chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// console.log( +// '** BEFORE DELEGATE STX ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // 3 Stackers Delegate STX + +// await broadcastDelegateStx({ +// amountUstx: 125_000_000_000, +// user: usersList[0], +// nonce: (await getAccount(network, usersList[0].stxAddress)).nonce, +// network, +// }); + +// await broadcastDelegateStx({ +// amountUstx: 125_000_000_000, +// user: usersList[1], +// nonce: (await getAccount(network, usersList[1].stxAddress)).nonce, +// network, +// }); + +// await broadcastDelegateStx({ +// amountUstx: 50_286_942_145_278, // pox activation threshold +// user: usersList[2], +// nonce: (await getAccount(network, usersList[2].stxAddress)).nonce, +// network, +// }); + +// // Check the Delegate txs + +// let delegateTxIndex = 0; +// blockIndex = 0; +// while (delegateTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('delegate-stx'); +// expect((txMetadata as any)['success']).toBe(true); +// // expect((txMetadata as any)['result']).toBe(`(ok true)`); +// delegateTxIndex++; +// console.log(`Delegate STX Metadata ${delegateTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } + +// console.log( +// 'The last Delegation block: ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // Friedger check table entry: + +// let poxInfo = await getPoxInfo(network); +// console.log('pox info CURRENT CYCLE:', poxInfo.current_cycle); +// console.log('pox info NEXT CYCLE:', poxInfo.next_cycle); + +// let poxAddrInfo0 = await readRewardCyclePoxAddressForAddress( +// network, +// poxInfo.current_cycle.id, +// Accounts.DEPLOYER.stxAddress +// ); + +// expect(poxAddrInfo0).toBeNull(); + +// let poxAddrInfo1 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 0); +// let poxAddrInfo2 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 1); +// let poxAddrInfo; + +// if (poxAddrInfo2) { +// poxAddrInfo = poxAddrInfo2; +// } else { +// poxAddrInfo = poxAddrInfo1; +// } + +// // Check the Total Stacked STX + +// expect(poxAddrInfo?.['total-ustx']).toEqual(uintCV(50_536_939_145_278)); + +// // Check balances + +// let userAccount1 = await getAccount(network, usersList[0].stxAddress); +// console.log('first user:', userAccount1); + +// let userAccount2 = await getAccount(network, usersList[1].stxAddress); +// console.log('second user:', userAccount2); + +// let userAccount3 = await getAccount(network, usersList[2].stxAddress); +// console.log('third user:', userAccount3); + +// let userAccount4 = await getAccount(network, usersList[3].stxAddress); +// console.log('fourth user:', userAccount4); + +// // Update SC balances + +// await waitForNextPreparePhase(network, orchestrator); +// chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// await broadcastUpdateScBalances({ +// user: Accounts.DEPLOYER, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// network, +// }); + +// let updateBalancesTxIndex = 0; +// blockIndex = 0; + +// while (updateBalancesTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// let updateBalancesBlock = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) +// .bitcoin_anchor_block_identifier.index; +// console.log('** UPDATE BALANCES BLOCK ' + updateBalancesBlock); +// if (updateBalancesBlock % 10 > 8 || updateBalancesBlock % 10 < 6) +// console.log('COULD NOT UPDATE BALANCES DUE TO BLOCK DELAYS. PLEASE RESTART TEST!'); + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('update-sc-balances'); +// expect((txMetadata as any)['success']).toBe(true); +// expect((txMetadata as any)['result']).toBe(`(ok true)`); +// updateBalancesTxIndex++; +// console.log(`Update Balances Metadata ${updateBalancesTxIndex}, block index ${blockIndex}`, txMetadata); +// } +// } +// } + +// let scLockedBalance = await getScLockedBalance(network); +// expect(scLockedBalance.value as any).toBe('50536939145278'); + +// // Check weights + +// let deployerWeight = await getStackerWeight(network, Accounts.DEPLOYER.stxAddress, poxInfo.next_cycle.id); +// expect(deployerWeight as any).toBe('217'); + +// for (let i = 0; i <= 3; i++) { +// let userWeight = await getStackerWeight(network, usersList[i].stxAddress, poxInfo.next_cycle.id); +// i == 2 +// ? expect(userWeight as any).toBe('994836') +// : i < 2 +// ? expect(userWeight as any).toBe('2472') +// : expect(userWeight.value as any).toBe(null); +// } + +// chainUpdate = await waitForRewardCycleId(network, orchestrator, poxInfo.next_cycle.id); +// let firstBurnBlockPastRewardCycle = (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata) +// .bitcoin_anchor_block_identifier.index; +// console.log('** First burn block to check rewards: ' + firstBurnBlockPastRewardCycle); + +// for (let i = 1; i <= 7; i++) chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// console.log( +// 'Burn block when checking rewards: ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// // Print Pox Addresses for the blocks from 130 to 133 + +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) +// await getBlockPoxAddresses(network, Accounts.DEPLOYER.stxAddress, i); + +// // Print Block Rewards for the blocks from 130 to 133 + +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) +// await getBlockRewards(network, Accounts.DEPLOYER.stxAddress, i); + +// // Distribute Rewards For The Previously Verified Blocks (even if won or not) + +// let userIndex = 0; +// let repeatedUsers = false; +// for ( +// let i = firstBurnBlockPastRewardCycle; +// i <= firstBurnBlockPastRewardCycle + Constants.REWARD_CYCLE_LENGTH; +// i++ +// ) { +// if (userIndex == 4) { +// userIndex = 0; +// repeatedUsers = true; +// } +// userIndex == 4 ? (userIndex = 0) : (userIndex = userIndex); + +// await broadcastRewardDistribution({ +// burnBlockHeight: i, +// network, +// user: usersList[userIndex], +// nonce: repeatedUsers +// ? (await getAccount(network, usersList[userIndex].stxAddress)).nonce + 1 +// : ( +// await getAccount(network, usersList[userIndex].stxAddress) +// ).nonce, +// }); +// userIndex++; +// } + +// let rewardDistributionTxIndex = 0; +// blockIndex = 0; + +// while (rewardDistributionTxIndex < 6) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; + +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('reward-distribution'); +// console.log('Reward distribution result: ', (txMetadata as any)['result']); +// rewardDistributionTxIndex++; +// console.log( +// `Reward Distribution Metadata ${rewardDistributionTxIndex}, block index ${blockIndex}`, +// txMetadata +// ); +// } +// } +// } + +// // Check Balances + +// console.log('deployer:', await getAccount(network, Accounts.DEPLOYER.stxAddress)); +// console.log('first user:', await getAccount(network, usersList[0].stxAddress)); +// console.log('second user:', await getAccount(network, usersList[1].stxAddress)); +// console.log('third user:', await getAccount(network, usersList[2].stxAddress)); +// console.log('fourth user:', await getAccount(network, usersList[3].stxAddress)); + +// await getCheckDelegation(network, usersList[0].stxAddress); +// await getCheckDelegation(network, usersList[1].stxAddress); +// await getCheckDelegation(network, usersList[2].stxAddress); +// await getCheckDelegation(network, usersList[3].stxAddress); + +// // Delegate Stack Stx (must happen on the second half of the reward phase) + +// poxInfo = await getPoxInfo(network); +// chainUpdate = await waitForRewardCycleId(network, orchestrator, poxInfo.next_cycle.id); + +// for (let i = 1; i <= 5; i++) chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// console.log( +// '** BEFORE DELEGATE STACK ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// let delegateStack1 = await broadcastDelegateStackStx( +// usersList[0].stxAddress, +// network, +// Accounts.DEPLOYER, +// 1000, +// ( +// await getAccount(network, Accounts.DEPLOYER.stxAddress) +// ).nonce +// ); +// let delegateStack2 = await broadcastDelegateStackStx( +// usersList[1].stxAddress, +// network, +// Accounts.DEPLOYER, +// 1000, +// (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce + 1 +// ); +// let delegateStack3 = await broadcastDelegateStackStx( +// usersList[2].stxAddress, +// network, +// Accounts.DEPLOYER, +// 1000, +// (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce + 2 +// ); + +// let delegateStackTxIndex = 0; +// blockIndex = 0; +// while (delegateStackTxIndex < 3) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('delegate-stack-stx'); +// console.log(`Delegate Stack STX Metadata ${delegateStackTxIndex}, block index ${blockIndex}`, txMetadata); + +// expect((txMetadata as any)['success']).toBe(true); +// delegateStackTxIndex++; +// } +// } +// } + +// // Friedger check table entry: + +// poxInfo = await getPoxInfo(network); +// console.log('pox info CURRENT CYCLE:', poxInfo.current_cycle); +// console.log('pox info NEXT CYCLE:', poxInfo.next_cycle); + +// poxAddrInfo0 = await readRewardCyclePoxAddressForAddress( +// network, +// poxInfo.current_cycle.id, +// Accounts.DEPLOYER.stxAddress +// ); + +// expect(poxAddrInfo0).toBeNull(); + +// poxAddrInfo1 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 0); +// poxAddrInfo2 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 1); +// poxAddrInfo; + +// if (poxAddrInfo2) { +// poxAddrInfo = poxAddrInfo2; +// } else { +// poxAddrInfo = poxAddrInfo1; +// } + +// // Check total stacked ustx + +// expect(poxAddrInfo?.['total-ustx']).toEqual(uintCV(50_536_939_145_278)); + +// // Check balances + +// userAccount1 = await getAccount(network, usersList[0].stxAddress); +// console.log('first user:', userAccount1); + +// userAccount2 = await getAccount(network, usersList[1].stxAddress); +// console.log('second user:', userAccount2); + +// userAccount3 = await getAccount(network, usersList[2].stxAddress); +// console.log('third user:', userAccount3); + +// userAccount4 = await getAccount(network, usersList[3].stxAddress); +// console.log('fourth user:', userAccount4); + +// await orchestrator.waitForNextStacksBlock(); + +// // Delegate Stack Stx Many for all stackers in the list +// // can be done after the reward cycle is half through, so wait for the next prepare phase +// // next prepare phase -> 146 > 145 + +// poxInfo = await getPoxInfo(network); +// chainUpdate = await waitForRewardCycleId(network, orchestrator, poxInfo.next_cycle.id); + +// for (let i = 1; i <= 5; i++) chainUpdate = await orchestrator.waitForNextStacksBlock(); + +// let usersAddressesList = []; +// usersList.forEach((user) => { +// if (user && user.stxAddress) usersAddressesList.push(user.stxAddress); +// }); + +// console.log( +// '** BEFORE DELEGATE STACK MANY ' + +// (chainUpdate.new_blocks[0].block.metadata as StacksBlockMetadata).bitcoin_anchor_block_identifier.index +// ); + +// let delegateStackMany1 = await broadcastDelegateStackStxMany({ +// stackersLockList: usersAddressesList, +// network: network, +// nonce: (await getAccount(network, Accounts.DEPLOYER.stxAddress)).nonce, +// user: Accounts.DEPLOYER, +// }); + +// let delegateStackManyTxIndex = 0; +// blockIndex = 0; +// while (delegateStackManyTxIndex < 1) { +// chainUpdate = await orchestrator.waitForNextStacksBlock(); +// txs = chainUpdate.new_blocks[0].block.transactions; +// blockIndex++; +// if (txs.length > 1) { +// for (let i = 1; i <= txs.length - 1; i++) { +// let txMetadata = txs[i].metadata; +// let txData = txMetadata.kind.data; +// let txSC = txData['contract_identifier']; +// let txMethod = txData['method']; + +// expect(txSC as any).toBe(`${mainContract.address}.${mainContract.name}`); +// expect(txMethod as any).toBe('delegate-stack-stx-many'); +// // expect((txMetadata as any)['result']).toBe('(ok ((ok false) (ok true) (ok true) (err u9000)))'); +// console.log('Delegate Stack Many Result: ', txMetadata['result']); +// console.log('Delegate Stack Many Receipt: ', txMetadata['receipt']); +// console.log( +// `Delegate Stack STX Metadata ${delegateStackManyTxIndex}, block index ${blockIndex}`, +// txMetadata +// ); + +// expect((txMetadata as any)['success']).toBe(true); +// delegateStackManyTxIndex++; +// } +// } +// } + +// // Friedger check table entry: + +// poxInfo = await getPoxInfo(network); +// console.log('pox info CURRENT CYCLE:', poxInfo.current_cycle); +// console.log('pox info NEXT CYCLE:', poxInfo.next_cycle); + +// poxAddrInfo0 = await readRewardCyclePoxAddressForAddress( +// network, +// poxInfo.current_cycle.id, +// Accounts.DEPLOYER.stxAddress +// ); + +// expect(poxAddrInfo0).toBeNull(); + +// poxAddrInfo1 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 0); +// poxAddrInfo2 = await readRewardCyclePoxAddressListAtIndex(network, await poxInfo.next_cycle.id, 1); +// poxAddrInfo; + +// if (poxAddrInfo2) { +// poxAddrInfo = poxAddrInfo2; +// } else { +// poxAddrInfo = poxAddrInfo1; +// } + +// // Check the Total Stacked STX + +// expect(poxAddrInfo?.['total-ustx']).toEqual(uintCV(50_536_939_145_278)); +// }); +// }, +// { timeout: 100_000_000 } +// ); diff --git a/smart-contracts/smart-contract/package-lock.json b/smart-contracts/smart-contract/package-lock.json index b7ff47e..0419c46 100644 --- a/smart-contracts/smart-contract/package-lock.json +++ b/smart-contracts/smart-contract/package-lock.json @@ -1,646 +1,48 @@ { - "name": "arkadiko-dao-clarity", + "name": "smart-contract-tests", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "arkadiko-dao-clarity", + "name": "smart-contract-tests", + "version": "1.0.0", "license": "ISC", "dependencies": { - "@hirosystems/stacks-devnet-js": "^1.6.2", - "@noble/hashes": "^1.1.5", - "@noble/secp256k1": "^1.7.0", - "@scure/base": "^1.1.1", - "@scure/bip32": "^1.1.1", - "@scure/bip39": "^1.1.0", - "@stacks/common": "^6.0.0", - "@stacks/network": "^6.0.0", - "@stacks/stacking": "^6.0.2", - "@stacks/transactions": "^6.5.0", - "@types/node": "^16.7.13", - "bitcoinjs-lib": "^6.1.3", - "buffer": "^6.0.3", - "micro-btc-signer": "^0.2.0", - "mocha": "^10.2.0", - "node-fetch": "^2.6.7", - "typescript": "^4.9.0" - }, - "devDependencies": { - "@types/jest": "^27.5.2", - "@vitest/ui": "^0.25.8", - "jest": "^27.4.5", - "jest-github-actions-reporter": "^1.0.3", - "prettier": "2.8.1", - "ts-jest": "^27.1.2", - "vite": "^4.0.4", - "vitest": "^0.32.0", - "vitest-github-actions-reporter": "^0.9.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@actions/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", - "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", - "dev": true, - "dependencies": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - } - }, - "node_modules/@actions/http-client": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.0.tgz", - "integrity": "sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==", - "dev": true, - "dependencies": { - "tunnel": "^0.0.6" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, + "@hirosystems/clarinet-sdk": "^2.3.1", + "@hirosystems/stacks-devnet-js": "^2.3.0", + "@stacks/stacking": "^6.12.0", + "@stacks/transactions": "^6.12.0", + "bitcoinjs-lib": "^6.1.5", + "chokidar-cli": "^3.0.0", + "typescript": "^5.3.3", + "vite": "^5.1.4", + "vitest": "^1.3.1", + "vitest-environment-clarinet": "^2.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, "node_modules/@esbuild/android-arm": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.15.tgz", - "integrity": "sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -650,13 +52,12 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz", - "integrity": "sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -666,13 +67,12 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.15.tgz", - "integrity": "sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "android" @@ -682,13 +82,12 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz", - "integrity": "sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -698,13 +97,12 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz", - "integrity": "sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -714,13 +112,12 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz", - "integrity": "sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -730,13 +127,12 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz", - "integrity": "sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -746,13 +142,12 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz", - "integrity": "sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -762,13 +157,12 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz", - "integrity": "sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -778,13 +172,12 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz", - "integrity": "sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "linux" @@ -794,13 +187,12 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz", - "integrity": "sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", "cpu": [ "loong64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -810,13 +202,12 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz", - "integrity": "sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", "cpu": [ "mips64el" ], - "dev": true, "optional": true, "os": [ "linux" @@ -826,13 +217,12 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz", - "integrity": "sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -842,13 +232,12 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz", - "integrity": "sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -858,13 +247,12 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz", - "integrity": "sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -874,13 +262,12 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz", - "integrity": "sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -890,13 +277,12 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz", - "integrity": "sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "netbsd" @@ -906,13 +292,12 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz", - "integrity": "sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "openbsd" @@ -922,13 +307,12 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz", - "integrity": "sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "sunos" @@ -938,13 +322,12 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz", - "integrity": "sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -954,383 +337,142 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz", - "integrity": "sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz", - "integrity": "sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@hirosystems/chainhook-types": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@hirosystems/chainhook-types/-/chainhook-types-1.1.2.tgz", - "integrity": "sha512-klQDKRyiPqF9fgDetMLTPMcB4A/+Vo7px74RbzzvmnCSDMPQua0DD5zhfuo12Ga3pexFFoIftIqnSjWvjncKNQ==" - }, - "node_modules/@hirosystems/stacks-devnet-js": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@hirosystems/stacks-devnet-js/-/stacks-devnet-js-1.7.0.tgz", - "integrity": "sha512-F76e+4EEDzZxEuqzP4jSmbmL6/WtiTm5UH7TeAGgHEDA7SYEy+ZSMd/xvF2PNnwgBRXMFKWF+kZcYlwygNr3Mw==", - "hasInstallScript": true, - "dependencies": { - "@hirosystems/chainhook-types": "^1.1.2", - "@mapbox/node-pre-gyp": "^1.0.8", - "neon-cli": "^0.9.1", - "node-pre-gyp-github": "^1.4.3", - "typescript": "^4.5.5" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", - "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, + "win32" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12" } }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12" } }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, + "node_modules/@hirosystems/chainhook-types": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@hirosystems/chainhook-types/-/chainhook-types-1.1.2.tgz", + "integrity": "sha512-klQDKRyiPqF9fgDetMLTPMcB4A/+Vo7px74RbzzvmnCSDMPQua0DD5zhfuo12Ga3pexFFoIftIqnSjWvjncKNQ==" + }, + "node_modules/@hirosystems/clarinet-sdk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@hirosystems/clarinet-sdk/-/clarinet-sdk-2.3.1.tgz", + "integrity": "sha512-nQXH3vItuDPl7sQDq636/I7a+/8SA8BOyu3BHmuahWa1kvKE4fAeMTgRfMyi68d5+wbEivx2v6ueUPWcVJT6yQ==", "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" + "@hirosystems/clarinet-sdk-wasm": "^2.3.1", + "@stacks/transactions": "^6.12.0", + "kolorist": "^1.8.0", + "prompts": "^2.4.2", + "vitest": "^1.0.4", + "yargs": "^17.7.2" + }, + "bin": { + "clarinet-sdk": "dist/cjs/bin/index.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18.0.0" } }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dev": true, + "node_modules/@hirosystems/clarinet-sdk-wasm": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@hirosystems/clarinet-sdk-wasm/-/clarinet-sdk-wasm-2.3.1.tgz", + "integrity": "sha512-2x5cdnhMrYu5mJrtB0/LCkSX8gLAWFoB8juzjQVoPj+Q3oi+9586COyvqCzqJdFPf1mZhuWYgtWQvk5rm3d4XA==" + }, + "node_modules/@hirosystems/clarinet-sdk/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12" } }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, + "node_modules/@hirosystems/clarinet-sdk/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, + "node_modules/@hirosystems/clarinet-sdk/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" + "node_modules/@hirosystems/stacks-devnet-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@hirosystems/stacks-devnet-js/-/stacks-devnet-js-2.3.0.tgz", + "integrity": "sha512-kk6aTdRozYtG6wtpc7Wr7qDxOWv+iUO6tNIEnyH6csxEmkbMbp8BoZBbvl31GQbLw+bwVq2q7d2o78dTY3HzMw==", + "hasInstallScript": true, + "dependencies": { + "@hirosystems/chainhook-types": "^1.1.2", + "@mapbox/node-pre-gyp": "^1.0.8", + "neon-cli": "^0.9.1", + "node-pre-gyp-github": "^1.4.3", + "typescript": "^4.5.5" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, + "node_modules/@hirosystems/stacks-devnet-js/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=6.0.0" + "node": ">=4.2.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -1346,20 +488,6 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@noble/curves": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.8.3.tgz", - "integrity": "sha512-OqaOf4RWDaCRuBKJLDURrgVxjLmneGsiCXGuzYB5y95YithZMA6w4uk34DHSm0rKMrrYiaeZj48/81EvaAScLQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "1.3.0" - } - }, "node_modules/@noble/hashes": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", @@ -1502,11 +630,161 @@ "@octokit/openapi-types": "^12.11.0" } }, - "node_modules/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", + "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] }, "node_modules/@scure/base": { "version": "1.1.1", @@ -1519,10 +797,10 @@ } ] }, - "node_modules/@scure/bip32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.2.0.tgz", - "integrity": "sha512-O+vT/hBVk+ag2i6j2CDemwd1E1MtGt+7O1KzrPNsaNvSsiEK55MyPIxJIMI2PS8Ijj464B2VbQlpRoQXxw1uHg==", + "node_modules/@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", "funding": [ { "type": "individual", @@ -1530,54 +808,30 @@ } ], "dependencies": { - "@noble/curves": "~0.8.3", - "@noble/hashes": "~1.3.0", + "@noble/hashes": "~1.1.1", "@scure/base": "~1.1.0" } }, - "node_modules/@scure/bip39": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", - "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ], - "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - } + ] }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" }, "node_modules/@stacks/common": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.0.0.tgz", - "integrity": "sha512-tETwccvbYvaZ7u3ZucWNMOIPN97r6IPeZXKIFhLc1KSVaWSGEPTtZcwVp+Rz3mu2XgI2pg37SUrOWXSL7OOkDw==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.10.0.tgz", + "integrity": "sha512-6x5Z7AKd9/kj3+DYE9xIDIkFLHihBH614i2wqrZIjN02WxVo063hWSjIlUxlx8P4gl6olVzlOy5LzhLJD9OP0A==", "dependencies": { "@types/bn.js": "^5.1.0", "@types/node": "^18.0.4" @@ -1589,14 +843,14 @@ "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" }, "node_modules/@stacks/encryption": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.5.0.tgz", - "integrity": "sha512-QE1+gy1x6spGkpK5PnZxKoX1hL8eeIYxYa5HNMl4cbdIVKaFgqjoGFKMtTA/tQMc91T/saXLqbQLyh/U4AVpTA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.12.0.tgz", + "integrity": "sha512-CubE51pHrcxx3yA+xapevPgA9UDleIoEaUZ06/9uD91B42yvTg37HyS8t06rzukU9q+X7Cv2I/+vbuf4nJIo8g==", "dependencies": { "@noble/hashes": "1.1.5", "@noble/secp256k1": "1.7.1", "@scure/bip39": "1.1.0", - "@stacks/common": "^6.0.0", + "@stacks/common": "^6.10.0", "@types/node": "^18.0.4", "base64-js": "^1.5.1", "bs58": "^5.0.0", @@ -1615,46 +869,34 @@ } ] }, - "node_modules/@stacks/encryption/node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/@stacks/encryption/node_modules/@types/node": { + "version": "18.19.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.21.tgz", + "integrity": "sha512-2Q2NeB6BmiTFQi4DHBzncSoq/cJMLDdhPaAoJFnFCyD9a8VPZRf7a1GAwp1Edb7ROaZc5Jz/tnZyL6EsWMRaqw==", "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" + "undici-types": "~5.26.4" } }, - "node_modules/@stacks/encryption/node_modules/@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" - }, "node_modules/@stacks/network": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.3.0.tgz", - "integrity": "sha512-573ZldQ+Iy0nCCxprXLLvkAo1AMEXncfmMUvqQ+5TN3m7VqCVADtb5G5WzMZsyR4m/k9oPsv076Lmqyl8AtR2A==", + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.11.3.tgz", + "integrity": "sha512-c4ClCU/QUwuu8NbHtDKPJNa0M5YxauLN3vYaR0+S4awbhVIKFQSxirm9Q9ckV1WBh7FtD6u2S0x+tDQGAODjNg==", "dependencies": { - "@stacks/common": "^6.0.0", + "@stacks/common": "^6.10.0", "cross-fetch": "^3.1.5" } }, "node_modules/@stacks/stacking": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@stacks/stacking/-/stacking-6.5.0.tgz", - "integrity": "sha512-Kb8FK+NxEFDXP2r9xXGdeR7cZp52Cz5btpW4xKAEM7Ze3QPB6cM8IALvMBh3e53qqw8sO/dpRqcIjrNgLf5gqg==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@stacks/stacking/-/stacking-6.12.0.tgz", + "integrity": "sha512-XBxwbaCGRPnjpjspb3CBXrlZl6xR+gghLMz9PQNPdpuIbBDFa0SGeHgqjtpVU+2DVL4UyBx8PVsAWtlssyVGng==", "dependencies": { "@scure/base": "1.1.1", - "@stacks/common": "^6.0.0", - "@stacks/encryption": "^6.5.0", - "@stacks/network": "^6.3.0", + "@stacks/common": "^6.10.0", + "@stacks/encryption": "^6.12.0", + "@stacks/network": "^6.11.3", "@stacks/stacks-blockchain-api-types": "^0.61.0", - "@stacks/transactions": "^6.5.0", + "@stacks/transactions": "^6.12.0", "bs58": "^5.0.0" } }, @@ -1664,14 +906,14 @@ "integrity": "sha512-yPOfTUboo5eA9BZL/hqMcM71GstrFs9YWzOrJFPeP4cOO1wgYvAcckgBRbgiE3NqeX0A7SLZLDAXLZbATuRq9w==" }, "node_modules/@stacks/transactions": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.5.0.tgz", - "integrity": "sha512-kwE8cZq+QdAum4/LC+lSlAXVvzkdsSHTkCbfg4+VCWPBqA+gdXEqZe6R9SNBtMb8yGQrqUY8uIGRLVCWcXJ8zQ==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.12.0.tgz", + "integrity": "sha512-gRP3SfTaAIoTdjMvOiLrMZb/senqB8JQlT5Y4C3/CiHhiprYwTx7TbOCSa7WsNOU99H4aNfHvatmymuggXQVkA==", "dependencies": { "@noble/hashes": "1.1.5", "@noble/secp256k1": "1.7.1", - "@stacks/common": "^6.0.0", - "@stacks/network": "^6.3.0", + "@stacks/common": "^6.10.0", + "@stacks/network": "^6.11.3", "c32check": "^2.0.0", "lodash.clonedeep": "^4.5.0" } @@ -1687,176 +929,57 @@ } ] }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true - }, - "node_modules/@types/chai-subset": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", - "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "optional": true, + "peer": true, + "engines": { + "node": ">= 6" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, + "node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", "dependencies": { - "@types/istanbul-lib-report": "*" + "@types/node": "*" } }, - "node_modules/@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", - "dev": true, - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/node": { - "version": "16.18.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.23.tgz", - "integrity": "sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g==" - }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "dev": true, + "version": "20.11.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", + "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", "dependencies": { - "@types/yargs-parser": "*" + "undici-types": "~5.26.4" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, "node_modules/@vitest/expect": { - "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.32.4.tgz", - "integrity": "sha512-m7EPUqmGIwIeoU763N+ivkFjTzbaBn0n9evsTOcde03ugy2avPs3kZbYmw3DkcH1j5mxhMhdamJkLQ6dM1bk/A==", - "dev": true, + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz", + "integrity": "sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==", "dependencies": { - "@vitest/spy": "0.32.4", - "@vitest/utils": "0.32.4", - "chai": "^4.3.7" + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", + "chai": "^4.3.10" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/runner": { - "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.32.4.tgz", - "integrity": "sha512-cHOVCkiRazobgdKLnczmz2oaKK9GJOw6ZyRcaPdssO1ej+wzHVIkWiCiNacb3TTYPdzMddYkCgMjZ4r8C0JFCw==", - "dev": true, + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.3.1.tgz", + "integrity": "sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==", "dependencies": { - "@vitest/utils": "0.32.4", - "p-limit": "^4.0.0", + "@vitest/utils": "1.3.1", + "p-limit": "^5.0.0", "pathe": "^1.1.1" }, "funding": { @@ -1864,29 +987,27 @@ } }, "node_modules/@vitest/runner/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", "dependencies": { "yocto-queue": "^1.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@vitest/snapshot": { - "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.32.4.tgz", - "integrity": "sha512-IRpyqn9t14uqsFlVI2d7DFMImGMs1Q9218of40bdQQgMePwVdmix33yMNnebXcTzDU5eiV3eUsoxxH5v0x/IQA==", - "dev": true, + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.3.1.tgz", + "integrity": "sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==", "dependencies": { - "magic-string": "^0.30.0", + "magic-string": "^0.30.5", "pathe": "^1.1.1", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -1896,7 +1017,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, "engines": { "node": ">=10" }, @@ -1905,12 +1025,11 @@ } }, "node_modules/@vitest/snapshot/node_modules/pretty-format": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", - "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", - "dev": true, + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dependencies": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -1921,39 +1040,28 @@ "node_modules/@vitest/snapshot/node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/@vitest/spy": { - "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.32.4.tgz", - "integrity": "sha512-oA7rCOqVOOpE6rEoXuCOADX7Lla1LIa4hljI2MSccbpec54q+oifhziZIJXxlE/CvI2E+ElhBHzVu0VEvJGQKQ==", - "dev": true, + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz", + "integrity": "sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==", "dependencies": { - "tinyspy": "^2.1.1" + "tinyspy": "^2.2.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/ui": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.25.8.tgz", - "integrity": "sha512-wfuhghldD5QHLYpS46GK8Ru8P3XcMrWvFjRQD21KNzc9Y/qtJsqoC8KmT6xWVkMNw4oHYixpo3a4ZySRJdserw==", - "dev": true, - "dependencies": { - "sirv": "^2.0.2" - } - }, "node_modules/@vitest/utils": { - "version": "0.32.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.32.4.tgz", - "integrity": "sha512-Gwnl8dhd1uJ+HXrYyV0eRqfmk9ek1ASE/LWfTCuWMw+d07ogHqp4hEAV28NiecimK6UY9DpSEPh+pXBA5gtTBg==", - "dev": true, + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.1.tgz", + "integrity": "sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==", "dependencies": { - "diff-sequences": "^29.4.3", - "loupe": "^2.3.6", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -1963,7 +1071,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, "engines": { "node": ">=10" }, @@ -1972,21 +1079,19 @@ } }, "node_modules/@vitest/utils/node_modules/diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", - "dev": true, + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@vitest/utils/node_modules/pretty-format": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", - "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", - "dev": true, + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dependencies": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -1997,14 +1102,14 @@ "node_modules/@vitest/utils/node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true + "optional": true, + "peer": true }, "node_modules/abbrev": { "version": "1.1.1", @@ -2012,10 +1117,9 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "bin": { "acorn": "bin/acorn" }, @@ -2027,7 +1131,8 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -2037,7 +1142,8 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, + "optional": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2049,7 +1155,8 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.4.0" } @@ -2065,14 +1172,6 @@ "node": ">= 6.0.0" } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -2138,15 +1237,6 @@ "node": ">=10" } }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/array-back": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", @@ -2159,7 +1249,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, "engines": { "node": "*" } @@ -2168,99 +1257,8 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } + "optional": true, + "peer": true }, "node_modules/balanced-match": { "version": "1.0.2", @@ -2310,21 +1308,21 @@ } }, "node_modules/bip174": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bip174/-/bip174-2.1.0.tgz", - "integrity": "sha512-lkc0XyiX9E9KiVAS1ZiOqK1xfiwvf4FXDDdkDq5crcDzOq+xGytY+14qCsqz7kCiy8rpN1CRNfacRhf9G3JNSA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bip174/-/bip174-2.1.1.tgz", + "integrity": "sha512-mdFV5+/v0XyNYXjBS6CQPLo9ekCx4gtKZFnJm5PMto7Fs9hTTDpkkzOB7/FtluRI6JbUUAu+snTYfJRgHLZbZQ==", "engines": { "node": ">=8.0.0" } }, "node_modules/bitcoinjs-lib": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.3.tgz", - "integrity": "sha512-TYXs/Qf+GNk2nnsB9HrXWqzFuEgCg0Gx+v3UW3B8VuceFHXVvhT+7hRnTSvwkX0i8rz2rtujeU6gFaDcFqYFDw==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz", + "integrity": "sha512-yuf6xs9QX/E8LWE2aMJPNd0IxGofwfuVOiYdNUESkc+2bHHVKjhJd8qewqapeoolh9fihzHGoDCB5Vkr57RZCQ==", "dependencies": { "@noble/hashes": "^1.2.0", "bech32": "^2.0.0", - "bip174": "^2.1.0", + "bip174": "^2.1.1", "bs58check": "^3.0.1", "typeforce": "^1.11.3", "varuint-bitcoin": "^1.1.2" @@ -2357,52 +1355,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } + "optional": true, + "peer": true }, "node_modules/bs58": { "version": "5.0.0", @@ -2421,188 +1375,301 @@ "bs58": "^5.0.0" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + }, + "node_modules/c32check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/c32check/-/c32check-2.0.0.tgz", + "integrity": "sha512-rpwfAcS/CMqo0oCqDf3r9eeLgScRE3l/xHDCXhM3UyrfvIn7PrLq63uHh7yYbv8NzaZn5MVsVhIRpQ+5GZ5HyA==", + "dependencies": { + "@noble/hashes": "^1.1.2", + "base-x": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dependencies": { - "node-int64": "^0.4.0" + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "type": "individual", + "url": "https://paulmillr.com/funding/" } ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar-cli": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chokidar-cli/-/chokidar-cli-3.0.0.tgz", + "integrity": "sha512-xVW+Qeh7z15uZRxHOkP93Ux8A0xbPzwK4GaqD8dQOYc34TlkqUhVSS59fK36DOp5WdJlrRzlYSy02Ht99FjZqQ==", + "dependencies": { + "chokidar": "^3.5.2", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "yargs": "^13.3.0" + }, + "bin": { + "chokidar": "index.js" + }, + "engines": { + "node": ">= 8.10.0" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "node_modules/chokidar-cli/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "engines": { + "node": ">=6" + } }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + "node_modules/chokidar-cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/c32check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/c32check/-/c32check-2.0.0.tgz", - "integrity": "sha512-rpwfAcS/CMqo0oCqDf3r9eeLgScRE3l/xHDCXhM3UyrfvIn7PrLq63uHh7yYbv8NzaZn5MVsVhIRpQ+5GZ5HyA==", + "node_modules/chokidar-cli/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/chokidar-cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/chokidar-cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/chokidar-cli/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar-cli/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "node_modules/chokidar-cli/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dependencies": { - "@noble/hashes": "^1.1.2", - "base-x": "^4.0.0" + "locate-path": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, + "node_modules/chokidar-cli/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, + "node_modules/chokidar-cli/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, "engines": { "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, + "node_modules/chokidar-cli/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, "engines": { "node": ">=6" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001474", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz", - "integrity": "sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "node_modules/chokidar-cli/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } }, - "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, + "node_modules/chokidar-cli/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/chokidar-cli/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-regex": "^4.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, + "node_modules/chokidar-cli/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "node_modules/chokidar-cli/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true, - "engines": { - "node": "*" + "node_modules/chokidar-cli/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/chokidar-cli/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "node_modules/chownr": { @@ -2613,27 +1680,6 @@ "node": ">=10" } }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -2653,32 +1699,6 @@ "node": ">= 10" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2707,7 +1727,8 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -2852,12 +1873,6 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, "node_modules/cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -2908,7 +1923,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2922,13 +1936,15 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "optional": true, + "peer": true }, "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "cssom": "~0.3.6" }, @@ -2940,13 +1956,15 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "optional": true, + "peer": true }, "node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -2972,34 +1990,17 @@ } } }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "optional": true, + "peer": true }, "node_modules/deep-eql": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, "dependencies": { "type-detect": "^4.0.0" }, @@ -3019,22 +2020,15 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "optional": true, + "peer": true }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.4.0" } @@ -3050,44 +2044,19 @@ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "engines": { "node": ">=8" } }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "webidl-conversions": "^5.0.0" }, @@ -3099,48 +2068,21 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.352", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.352.tgz", - "integrity": "sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/esbuild": { - "version": "0.17.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz", - "integrity": "sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==", - "dev": true, + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -3149,28 +2091,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.15", - "@esbuild/android-arm64": "0.17.15", - "@esbuild/android-x64": "0.17.15", - "@esbuild/darwin-arm64": "0.17.15", - "@esbuild/darwin-x64": "0.17.15", - "@esbuild/freebsd-arm64": "0.17.15", - "@esbuild/freebsd-x64": "0.17.15", - "@esbuild/linux-arm": "0.17.15", - "@esbuild/linux-arm64": "0.17.15", - "@esbuild/linux-ia32": "0.17.15", - "@esbuild/linux-loong64": "0.17.15", - "@esbuild/linux-mips64el": "0.17.15", - "@esbuild/linux-ppc64": "0.17.15", - "@esbuild/linux-riscv64": "0.17.15", - "@esbuild/linux-s390x": "0.17.15", - "@esbuild/linux-x64": "0.17.15", - "@esbuild/netbsd-x64": "0.17.15", - "@esbuild/openbsd-x64": "0.17.15", - "@esbuild/sunos-x64": "0.17.15", - "@esbuild/win32-arm64": "0.17.15", - "@esbuild/win32-ia32": "0.17.15", - "@esbuild/win32-x64": "0.17.15" + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" } }, "node_modules/escalade": { @@ -3193,7 +2136,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -3215,7 +2159,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, + "optional": true, + "peer": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -3228,67 +2173,30 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -3302,26 +2210,12 @@ "node": ">=4" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } + "optional": true, + "peer": true }, "node_modules/figures": { "version": "3.2.0", @@ -3359,32 +2253,12 @@ "node": ">=4.0.0" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -3416,20 +2290,15 @@ "node": ">=8" } }, - "node_modules/fs-minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, "optional": true, "os": [ @@ -3439,12 +2308,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, "node_modules/gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", @@ -3464,15 +2327,6 @@ "node": ">=10" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3482,35 +2336,13 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true, + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "engines": { "node": "*" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/git-config": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz", @@ -3549,28 +2381,13 @@ "node": ">= 6" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -3584,18 +2401,6 @@ "uglify-js": "^3.1.4" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3609,37 +2414,25 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "whatwg-encoding": "^1.0.5" }, "engines": { "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + } }, "node_modules/http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -3661,15 +2454,6 @@ "node": ">= 6" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -3681,53 +2465,6 @@ "node": ">=0.10.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3773,12 +2510,6 @@ "node": ">=8.0.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -3790,18 +2521,6 @@ "node": ">=8" } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3818,15 +2537,6 @@ "node": ">=8" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -3846,784 +2556,32 @@ "node": ">=0.12.0" } }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "dev": true, - "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-github-actions-reporter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jest-github-actions-reporter/-/jest-github-actions-reporter-1.0.3.tgz", - "integrity": "sha512-IwLAKLSWLN8ZVfcfEEv6rfeWb78wKDeOhvOmH9KKXayKsKLSCwceopBcB+KUtwxfB5wYnT8Y9s2eZ+WdhA5yng==", - "dev": true, - "dependencies": { - "@actions/core": "^1.2.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "optional": true, + "peer": true }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -4665,65 +2623,30 @@ } } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, "engines": { "node": ">=6" } }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==" }, "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -4732,17 +2655,14 @@ "node": ">= 0.8.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, "node_modules/local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", - "dev": true, + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, "engines": { "node": ">=14" }, @@ -4750,18 +2670,6 @@ "url": "https://github.com/sponsors/antfu" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -4777,50 +2685,39 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" }, "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dependencies": { - "get-func-name": "^2.0.0" + "get-func-name": "^2.0.1" } }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/magic-string": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", - "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", - "dev": true, + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -4831,8 +2728,7 @@ "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/make-dir": { "version": "3.1.0", @@ -4849,100 +2745,29 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, "node_modules/make-promises-safe": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/make-promises-safe/-/make-promises-safe-5.1.0.tgz", "integrity": "sha512-AfdZ49rtyhQR/6cqVKGoH7y4ql7XkS5HJI1lZm0/5N6CQosy1eYbBJ/qbhkKHzo17UH7M918Bysf6XB9f3kS1g==" }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/micro-btc-signer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/micro-btc-signer/-/micro-btc-signer-0.2.0.tgz", - "integrity": "sha512-Rho4MgGnDoEt/nHKHc86+nNCU2xUu+u1XIn4+Qy3e2QeJ2FILr8f/EU80I3QDavJBGvcByrsG6qICuV178HmVg==", - "deprecated": "Switch to @scure/btc-signer for security updates and support", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@noble/secp256k1": "~1.7.0", - "@scure/base": "~1.1.0", - "micro-packed": "~0.3.0" - } - }, - "node_modules/micro-btc-signer/node_modules/@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/micro-packed": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/micro-packed/-/micro-packed-0.3.2.tgz", - "integrity": "sha512-D1Bq0/lVOzdxhnX5vylCxZpdw5LylH7Vd81py0DfRsKUP36XYpwvy8ZIsECVo3UfnoROn8pdKqkOzL7Cd82sGA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@scure/base": "~1.1.1" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.6" } @@ -4951,7 +2776,8 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "mime-db": "1.52.0" }, @@ -4987,9 +2813,9 @@ } }, "node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -5011,268 +2837,32 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mlly": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.0.tgz", - "integrity": "sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "ufo": "^1.1.2" - } - }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/mocha/node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "yallist": "^4.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/mocha/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true, - "engines": { - "node": ">=10" + "node_modules/mlly": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", + "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.0.3", + "ufo": "^1.3.2" } }, "node_modules/ms": { @@ -5286,10 +2876,9 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -5303,12 +2892,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -5342,9 +2925,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -5379,12 +2962,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, "node_modules/node-pre-gyp-github": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/node-pre-gyp-github/-/node-pre-gyp-github-1.4.4.tgz", @@ -5397,12 +2974,6 @@ "node-pre-gyp-github": "bin/node-pre-gyp-github.js" } }, - "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -5425,18 +2996,6 @@ "node": ">=0.10.0" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npmlog": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", @@ -5452,7 +3011,8 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true + "optional": true, + "peer": true }, "node_modules/object-assign": { "version": "4.1.1", @@ -5488,7 +3048,8 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -5513,7 +3074,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -5524,58 +3084,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, "engines": { "node": ">=6" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } + "optional": true, + "peer": true }, "node_modules/path-is-absolute": { "version": "1.0.1", @@ -5589,28 +3111,19 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "node_modules/pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" }, "node_modules/pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, "engines": { "node": "*" } @@ -5618,8 +3131,7 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -5632,32 +3144,10 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/pkg-types": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", - "dev": true, "dependencies": { "jsonc-parser": "^3.2.0", "mlly": "^1.2.0", @@ -5665,10 +3155,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "funding": [ { "type": "opencollective", @@ -5677,10 +3166,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -5692,57 +3185,16 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.8.0" } }, - "node_modules/prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -5755,13 +3207,15 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "optional": true, + "peer": true }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -5770,21 +3224,8 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true + "optional": true, + "peer": true }, "node_modules/readable-stream": { "version": "3.6.2", @@ -5826,58 +3267,17 @@ "node": ">=0.10.0" } }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "dev": true, - "engines": { - "node": ">=10" - } + "optional": true, + "peer": true }, "node_modules/restore-cursor": { "version": "3.1.0", @@ -5914,18 +3314,33 @@ } }, "node_modules/rollup": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.2.tgz", - "integrity": "sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==", - "dev": true, + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", + "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", + "dependencies": { + "@types/estree": "1.0.5" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.12.0", + "@rollup/rollup-android-arm64": "4.12.0", + "@rollup/rollup-darwin-arm64": "4.12.0", + "@rollup/rollup-darwin-x64": "4.12.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", + "@rollup/rollup-linux-arm64-gnu": "4.12.0", + "@rollup/rollup-linux-arm64-musl": "4.12.0", + "@rollup/rollup-linux-riscv64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-musl": "4.12.0", + "@rollup/rollup-win32-arm64-msvc": "4.12.0", + "@rollup/rollup-win32-ia32-msvc": "4.12.0", + "@rollup/rollup-win32-x64-msvc": "4.12.0", "fsevents": "~2.3.2" } }, @@ -5976,7 +3391,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "xmlchars": "^2.2.0" }, @@ -5985,9 +3401,9 @@ } }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5998,30 +3414,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -6031,7 +3423,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -6043,7 +3434,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -6051,42 +3441,17 @@ "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "node_modules/sirv": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", - "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", - "dev": true, - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "node_modules/source-map": { "version": "0.6.1", @@ -6100,21 +3465,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -6125,9 +3479,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", @@ -6139,48 +3493,19 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==" }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" }, "node_modules/std-env": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", - "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==", - "dev": true + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" }, "node_modules/string_decoder": { "version": "1.3.0", @@ -6190,19 +3515,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -6227,47 +3539,22 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/strip-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", - "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", - "dev": true, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.0.0.tgz", + "integrity": "sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==", "dependencies": { - "acorn": "^8.8.2" + "js-tokens": "^8.0.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz", + "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==" + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6279,36 +3566,12 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "optional": true, + "peer": true }, "node_modules/table-layout": { "version": "1.0.2", @@ -6335,93 +3598,49 @@ "node_modules/table-layout/node_modules/typical": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/tinybench": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz", - "integrity": "sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==", - "dev": true + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", + "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==" }, "node_modules/tinypool": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.5.0.tgz", - "integrity": "sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==", - "dev": true, + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz", + "integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==", "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.1.tgz", - "integrity": "sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==", - "dev": true, + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", "engines": { "node": ">=14.0.0" } @@ -6437,21 +3656,6 @@ "node": ">=0.6.0" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6468,20 +3672,12 @@ "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/tough-cookie": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -6496,7 +3692,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "punycode": "^2.1.1" }, @@ -6504,49 +3701,6 @@ "node": ">=8" } }, - "node_modules/ts-jest": { - "version": "27.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", - "integrity": "sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, "node_modules/ts-typed-json": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.3.2.tgz", @@ -6557,20 +3711,12 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "prelude-ls": "~1.1.2" }, @@ -6582,7 +3728,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, "engines": { "node": ">=4" } @@ -6598,30 +3743,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typeforce": { "version": "1.18.0", "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/typical": { @@ -6633,10 +3769,9 @@ } }, "node_modules/ufo": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz", - "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", - "dev": true + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", + "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==" }, "node_modules/uglify-js": { "version": "3.17.4", @@ -6650,51 +3785,32 @@ "node": ">=0.8.0" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" }, "node_modules/universalify": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 4.0.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -6705,38 +3821,6 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -6763,28 +3847,30 @@ } }, "node_modules/vite": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz", - "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==", - "dev": true, + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz", + "integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==", "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.18.0" + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -6797,6 +3883,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -6812,82 +3901,76 @@ } }, "node_modules/vite-node": { - "version": "0.32.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.32.4.tgz", - "integrity": "sha512-L2gIw+dCxO0LK14QnUMoqSYpa9XRGnTTTDjW2h19Mr+GR0EFj4vx52W41gFXfMLqpA00eK4ZjOVYo1Xk//LFEw==", - "dev": true, + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.3.1.tgz", + "integrity": "sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==", "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", - "mlly": "^1.4.0", "pathe": "^1.1.1", "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0" + "vite": "^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/vitest": { - "version": "0.32.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.32.4.tgz", - "integrity": "sha512-3czFm8RnrsWwIzVDu/Ca48Y/M+qh3vOnF16czJm98Q/AN1y3B6PBsyV8Re91Ty5s7txKNjEhpgtGPcfdbh2MZg==", - "dev": true, - "dependencies": { - "@types/chai": "^4.3.5", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.32.4", - "@vitest/runner": "0.32.4", - "@vitest/snapshot": "0.32.4", - "@vitest/spy": "0.32.4", - "@vitest/utils": "0.32.4", - "acorn": "^8.9.0", - "acorn-walk": "^8.2.0", - "cac": "^6.7.14", - "chai": "^4.3.7", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.3.1.tgz", + "integrity": "sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==", + "dependencies": { + "@vitest/expect": "1.3.1", + "@vitest/runner": "1.3.1", + "@vitest/snapshot": "1.3.1", + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", "debug": "^4.3.4", - "local-pkg": "^0.4.3", - "magic-string": "^0.30.0", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", "pathe": "^1.1.1", "picocolors": "^1.0.0", - "std-env": "^3.3.3", - "strip-literal": "^1.0.1", - "tinybench": "^2.5.0", - "tinypool": "^0.5.0", - "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.32.4", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.2", + "vite": "^5.0.0", + "vite-node": "1.3.1", "why-is-node-running": "^2.2.2" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@vitest/browser": "*", - "@vitest/ui": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.3.1", + "@vitest/ui": "1.3.1", "happy-dom": "*", - "jsdom": "*", - "playwright": "*", - "safaridriver": "*", - "webdriverio": "*" + "jsdom": "*" }, "peerDependenciesMeta": { "@edge-runtime/vm": { "optional": true }, + "@types/node": { + "optional": true + }, "@vitest/browser": { "optional": true }, @@ -6899,40 +3982,148 @@ }, "jsdom": { "optional": true - }, - "playwright": { - "optional": true - }, - "safaridriver": { - "optional": true - }, - "webdriverio": { - "optional": true } } }, - "node_modules/vitest-github-actions-reporter": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.9.0.tgz", - "integrity": "sha512-tCC9exD0HLH4oTdZBuAMapwkVU9RAcU2GpbtO4a5nqYG4Ty2LW61z90srbWqk3rZHL8IxGo2WfL8r7U+EeeYug==", - "dev": true, + "node_modules/vitest-environment-clarinet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vitest-environment-clarinet/-/vitest-environment-clarinet-2.0.0.tgz", + "integrity": "sha512-NW8Z0JPV/hwB1WkvGiGED9JmXsefPUjImJRbO3BEsxdL8qxA1y2EAwuqjfmvXYDeisQSnZGbfns7DN8eDxJnpg==", + "peerDependencies": { + "@hirosystems/clarinet-sdk": "2", + "vitest": "^1.3.1" + } + }, + "node_modules/vitest/node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/vitest/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/vitest/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vitest/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dependencies": { - "@actions/core": "^1.10.0" + "path-key": "^4.0.0" }, "engines": { - "node": ">=14.16.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependencies": { - "vitest": ">=0.16.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vitest/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, + "node_modules/vitest/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/vitest/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/w3c-hr-time": { @@ -6940,7 +4131,8 @@ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -6949,7 +4141,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "xml-name-validator": "^3.0.0" }, @@ -6957,20 +4150,12 @@ "node": ">=10" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10.4" } @@ -6979,7 +4164,8 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "iconv-lite": "0.4.24" } @@ -6988,13 +4174,15 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "optional": true, + "peer": true }, "node_modules/whatwg-url": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -7008,7 +4196,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -7019,11 +4206,15 @@ "node": ">= 8" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, "node_modules/why-is-node-running": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", - "dev": true, "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -7047,7 +4238,8 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7077,11 +4269,6 @@ "node": ">=8" } }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -7103,23 +4290,12 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8.3.0" }, @@ -7140,13 +4316,15 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "optional": true, + "peer": true }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "optional": true, + "peer": true }, "node_modules/y18n": { "version": "5.0.8", @@ -7157,66 +4335,14 @@ } }, "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yocto-queue": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, "engines": { "node": ">=12.20" }, diff --git a/smart-contracts/smart-contract/package.json b/smart-contracts/smart-contract/package.json index e114a3c..fd4ed5f 100644 --- a/smart-contracts/smart-contract/package.json +++ b/smart-contracts/smart-contract/package.json @@ -1,8 +1,8 @@ { - "name": "DecentralizedStacksPools", + "name": "decentralized-stacks-pools", "author": { "name": "StacksDegens", - "email": "stacksdegensteam_gmail.com" + "email": "stacksdegensteam@gmail.com" }, "repository": "https://github.com/stack-sdegens/stacks-pools.git", "private": true, @@ -13,10 +13,19 @@ "build": "tsc --build", "test:dev": "vitest", "test:ci": "jest --bail=1 --silent=false", + "test:basic": "vitest basic", + "test:report": "vitest run -- --coverage --costs", + "test:watch": "chokidar \"tests/**/*.ts\" \"contracts/**/*.clar\" -c \"npm run test:report\"", "fmt:check": "./node_modules/.bin/prettier --check .", "fmt": "./node_modules/.bin/prettier --write ." }, + "license": "ISC", "dependencies": { + "@hirosystems/clarinet-sdk": "^2.3.1", + "chokidar-cli": "^3.0.0", + "vite": "^5.1.4", + "vitest": "^1.3.1", + "vitest-environment-clarinet": "^2.0.0", "@hirosystems/stacks-devnet-js": "^1.6.2", "@noble/hashes": "^1.1.5", "@noble/secp256k1": "^1.7.0", @@ -34,17 +43,5 @@ "mocha": "^10.2.0", "node-fetch": "^2.6.7", "typescript": "^4.9.0" - }, - "license": "ISC", - "devDependencies": { - "@types/jest": "^27.5.2", - "@vitest/ui": "^0.25.8", - "jest": "^27.4.5", - "jest-github-actions-reporter": "^1.0.3", - "prettier": "2.8.1", - "ts-jest": "^27.1.2", - "vite": "^4.0.4", - "vitest": "^0.32.0", - "vitest-github-actions-reporter": "^0.9.0" } } diff --git a/smart-contracts/smart-contract/settings/Devnet.toml b/smart-contracts/smart-contract/settings/Devnet.toml index b197a15..b1178cf 100644 --- a/smart-contracts/smart-contract/settings/Devnet.toml +++ b/smart-contracts/smart-contract/settings/Devnet.toml @@ -70,1460 +70,1460 @@ mnemonic = "lion stadium nation move truck family voice giggle quote round measu balance = 100_000_000_000_000 # stx_address: ST2RF0D3GJR7ZX63PQ9WXVAPNG6EJCCR97NTVFGES -[accounts.wallet_10] -mnemonic = "benefit raw tape silver pulp spell disorder sun gate finish plastic kangaroo please glare perfect cave sort weird ivory avoid text tent weasel book" -balance = 100_000_000_000_000 -# stx_address: ST3CD3T03P3Z8RMAYR7S6BZQ65QNYS9W18QHHJ4KM - -[accounts.wallet_11] -mnemonic = "aisle excuse bachelor depart live flag essay improve coffee lumber water acquire muffin medal cart crouch language squeeze satoshi staff mean rubber cereal fog" -balance = 100_000_000_000_000 -# stx_address: ST37ZZMNV6T9Q7SFMHA01070F2QKZ9XPF06WPD527 - -[accounts.wallet_12] -mnemonic = "viable episode stumble piano pill glad reopen arena collect crew unhappy hair ripple sad scout open miss title zero author nation number miss slogan" -balance = 100_000_000_000_000 -# stx_address: ST3K7SXC4V640YW26XBXR5PB21N7XFZ1ECKNF2C8B - -[accounts.wallet_13] -mnemonic = "net lottery abuse galaxy cook strategy fix lunar kite draw escape ostrich release journey bonus cycle vacuum leaf mule angle chuckle deposit employ erode" -balance = 100_000_000_000_000 -# stx_address: ST7MG0WM7AER9D9HV4QCMJDZDZBEEX5HMQTZZG7N - -[accounts.wallet_14] -mnemonic = "tuition coral fashion coach elegant benefit left under pet broken battle cloud supply latin pyramid denial soldier over equip title end marriage problem local" -balance = 100_000_000_000_000 -# stx_address: ST2PKP8HH95VTP6MFJXWND57NSY8S22HEC4D5WP6E - -[accounts.wallet_15] -mnemonic = "ask beyond whisper bless poverty immense junior shiver type minor make debris sound hour seven citizen order conduct change bacon stay acoustic key canal" -balance = 100_000_000_000_000 -# stx_address: ST3EHE9BKW6662HM8GTTBQKAVFCZR2HTEXVYYZW6Z - -[accounts.wallet_16] -mnemonic = "biology soul mouse mimic razor unique eyebrow base lamp amount brush type track woman neutral lizard island easy rhythm foam divert mosquito welcome lesson" -balance = 100_000_000_000_000 -# stx_address: ST2VY5NGK04RYHRM2ZVJPJN11C34KDEKK2RMFG69Q - -[accounts.wallet_17] -mnemonic = "purchase staff explain trap whip joy logic height steak increase tone update accuse delay fury harbor solve survey history similar monitor scrub control check" -balance = 100_000_000_000_000 -# stx_address: ST1AP1SWES8TFVX3WKYS3JT3530DBMDWCK62QZNNQ - -[accounts.wallet_18] -mnemonic = "script fix hover stomach limb response spawn foam mention battle together exact main believe labor magic unlock jacket raven wife bread want heavy worth" -balance = 100_000_000_000_000 -# stx_address: STJS6RB142BYG7ZSSA003N7MT1TSWTGTR78G0MCJ - -[accounts.wallet_19] -mnemonic = "master squirrel salt pitch wrist crazy embrace coffee below beach huge apology paper foster vast leisure desk battle letter gain stumble name floor lyrics" -balance = 100_000_000_000_000 -# stx_address: ST10N2K2GPCN67C8SQAS811PT2KCDEJ1S0QD6MCMC - -[accounts.wallet_20] -mnemonic = "lava rug rude energy tunnel wolf live moral color arrive raven glory shoot rural kid still noise potato barely taxi expand deposit grow firm" -balance = 100_000_000_000_000 -# stx_address: ST32DZP6WV5851N9QHSXAVHT2H41PZNB5MDT295VJ - -[accounts.wallet_21] -mnemonic = "add abuse photo shoe timber cup filter appear flame myth charge empty wreck copy canoe umbrella crop damage senior typical return spare armor evoke" -balance = 100_000_000_000_000 -# stx_address: ST361ME06ZBVNZXKF5W095QBMFZ2HQ3F48DBBP55D - -[accounts.wallet_22] -mnemonic = "whale frown brush toe supreme hill trigger party cram display assume cool gorilla mirror scissors corn person tired solve soft merit nut bundle grass" -balance = 100_000_000_000_000 -# stx_address: ST2CP5W2G0DSREJVWWJP6TTHEAFW98K0XW84J2Q4T - -[accounts.wallet_23] -mnemonic = "board uncover grow illegal sand mushroom fabric case addict tower embark galaxy educate dance cupboard exile boring connect flash unit pony embody toast bring" -balance = 100_000_000_000_000 -# stx_address: ST1A844HC4Y55YAYH0XE4N2A98MNV6N27SF7Z0CEK - -[accounts.wallet_24] -mnemonic = "extra dream emerge open cram danger vessel diamond merit camp sign exact any shy desert enact wrist universe settle bleak toe blossom cry escape" -balance = 100_000_000_000_000 -# stx_address: ST13JYNQXJPNN8XQBPBQH9SWDKA8F2BJG10TTW8K5 - -[accounts.wallet_25] -mnemonic = "liberty swear tide potato cannon exercise vendor nation coconut circle few rude episode point power field boil sentence jungle change floor gain diamond twice" -balance = 100_000_000_000_000 -# stx_address: ST1ZT94HHXNQ9QKH0TREWQ01V2Z1KC44M05EJZ4C5 - -[accounts.wallet_26] -mnemonic = "where purchase lobster clump try adjust rally few stock burst tissue grain outer coral ready book squirrel olive pudding erupt vanish danger visual place" -balance = 100_000_000_000_000 -# stx_address: ST3CTFQ90STH7KJ64B3CZGQRDSPFAPHZ7884EHC51 - -[accounts.wallet_27] -mnemonic = "inch order borrow high sorry clog salt pretty clarify dinosaur nominee draft laundry radar buddy doctor detect rubber hamster swap swing discover educate marine" -balance = 100_000_000_000_000 -# stx_address: ST1K9H8ZS8KRD9CXM5WQCMM9D44MY9CQ18SPQ18JY - -[accounts.wallet_28] -mnemonic = "table scatter neither rich habit labor clay scout glare exit quiz donkey also antenna step catch shop number craft rifle exercise alley climb inspire" -balance = 100_000_000_000_000 -# stx_address: ST219BCA7C5R21Q4QA1903M2X57DTYANQDXV95AY1 - -[accounts.wallet_29] -mnemonic = "run try pretty sight draw clarify amused process aware sound gadget gossip column list lunch casino describe also absent observe limit turn spring medal" -balance = 100_000_000_000_000 -# stx_address: ST37ENW53XXK7MR4PG41TB0FXXQ8X63V9FTY9R3E7 - -[accounts.wallet_30] -mnemonic = "fortune garden horse swarm hour coyote cushion actress minor tree vapor provide general help weapon view gift valley palace include casual actress patient urban" -balance = 100_000_000_000_000 -# stx_address: ST26EEZN4SPPP6VFWRG26DGX9JAT10GEN6XFEJSJ1 - -[accounts.wallet_31] -mnemonic = "glimpse student snap genuine taxi genuine useful erupt once kit tired display token update connect fancy powder symptom double describe strike only still mechanic" -balance = 100_000_000_000_000 -# stx_address: STY6BX433BDNTMN7WNBQ38ZYXDV25ACRP7TB01C8 - -[accounts.wallet_32] -mnemonic = "modify bright custom ancient wrist negative memory school okay talent sheriff limit name sniff radar prepare repair sand rabbit essence amateur twist super portion" -balance = 100_000_000_000_000 -# stx_address: ST19PR9QMQK3SF7R35WTG96F147HSFV16MH5P8Q18 - -[accounts.wallet_33] -mnemonic = "nature success brown size group rose company cost action chunk obey okay garment auction move mule smooth pencil real liquid similar lake horn fish" -balance = 100_000_000_000_000 -# stx_address: ST2QB4R01DRY9GYW8R8VPJ7WNCDTYK6Z1EHJT2P26 - -[accounts.wallet_34] -mnemonic = "sustain emotion change dirt rally unknown very drive dilemma pizza spread scare stem mechanic core manage world name actual record trap artist glove fire" -balance = 100_000_000_000_000 -# stx_address: ST2E0J70Y06D20TY51ZBHPN2ZD9S08VXZBXT5RGFP - -[accounts.wallet_35] -mnemonic = "fire slim aunt van kangaroo habit sport sure urban wheel scout valid wedding diary member kitchen find submit parade sell major exhibit wear try" -balance = 100_000_000_000_000 -# stx_address: ST1NWYATP33Y56DE2JP2300MFHPYWB29KWN2PGYKK - -[accounts.wallet_36] -mnemonic = "frown digital myth pottery cousin pelican clever wonder piece wear clerk uniform glare juice stem exhibit biology enjoy dash cigar report title maple ice" -balance = 100_000_000_000_000 -# stx_address: ST25Q6FYQTPYQVB3ZP8NRT0FYTKKWM0R6RTA06G3F - -[accounts.wallet_37] -mnemonic = "august sunny spare scorpion skull anger excess prevent method slush mutual ketchup crew split multiply sorry wagon replace portion frequent ethics easy crumble aspect" -balance = 100_000_000_000_000 -# stx_address: ST343RAG54HF5JRX4M1RT2BW8582PTX2C9DYACM9H - -[accounts.wallet_38] -mnemonic = "hazard present snack woman alien retreat divide basic nice welcome round amused obvious nut cereal action top high duty help balcony quote shock improve" -balance = 100_000_000_000_000 -# stx_address: STGTQ454731S4XX3A9VRAAAP7RYT0RCJBBQ1DJ1J - -[accounts.wallet_39] -mnemonic = "sock budget rebel patient people source sport farm post airport area option boil off brief off habit type problem glare distance brief category bounce" -balance = 100_000_000_000_000 -# stx_address: ST27A7VMKV7KKQH8SDM3TJRJJ8SWBGR7MFFEXXTWH - -[accounts.wallet_40] -mnemonic = "viable liar doctor autumn risk joke brown system clog wine fat life kiss cushion episode reveal gym pear uphold length humor copy jar poem" -balance = 100_000_000_000_000 -# stx_address: ST1YHDJMMZSA2FFRF5AXAM0SRF9WMQHKS69FJ1SXS - -[accounts.wallet_41] -mnemonic = "assist oval attack various stuff chest rabbit cool tenant powder invest arena pioneer siege tiny visual claw often day assist spoil oval stairs glow" -balance = 100_000_000_000_000 -# stx_address: ST2F4Y9XFQMH72NVSS1WMZQBS7CKPA1ZKR77CFY1M - -[accounts.wallet_42] -mnemonic = "sudden habit repair spawn finger smoke above make foot unique scan wagon soccer slide knee usage bubble reject turtle toilet poet carry symbol marriage" -balance = 100_000_000_000_000 -# stx_address: ST2NR8V7ZZKHVK4SHSHX36GZS9C7FB8AW59AA52G5 - -[accounts.wallet_43] -mnemonic = "inject velvet exotic jazz pistol into crime switch pave virus total brain false scissors unfold potato casual mask unhappy cube shy please pumpkin width" -balance = 100_000_000_000_000 -# stx_address: ST28V3XE7F16RYZYBQP6HATHAXF05MYRMS7P9JVBA - -[accounts.wallet_44] -mnemonic = "allow alpha future spy wolf west wine opinion segment buzz blanket license movie float abstract renew grocery clerk ankle multiply marine fantasy nice patrol" -balance = 100_000_000_000_000 -# stx_address: ST1GW4TR2DR4DVPR9Z3GCMZTFS8KQQWAPHF70CA1F - -[accounts.wallet_45] -mnemonic = "bread mixed differ shallow orient salt tumble ginger vibrant future tomorrow similar promote congress useful treat outdoor science exclude uniform balcony boost decorate timber" -balance = 100_000_000_000_000 -# stx_address: STKEXSABYW6111F7MJ696SS5N1YGN8CDEVMP49Q0 - -[accounts.wallet_46] -mnemonic = "alcohol please destroy north rug explain october predict board response siege jump baby guide praise sketch virtual attend auto kidney glass jacket midnight property" -balance = 100_000_000_000_000 -# stx_address: STAK99C5P0J3A9Y5DNPWETNC82JPC6SQ4F88413W - -[accounts.wallet_47] -mnemonic = "post cruel comic forward shine child smart veteran easy legal spirit mother soccer stage danger shoulder captain disorder language luxury champion salmon field true" -balance = 100_000_000_000_000 -# stx_address: ST3R2ZQHZAJXYYKT83Q0SZTTZDXEKF0V77QA6K713 - -[accounts.wallet_48] -mnemonic = "wise scout runway fluid squirrel wing lock stem dutch team sudden tired process glue drink lemon upset shadow naive honey surge point praise airport" -balance = 100_000_000_000_000 -# stx_address: ST34S6C5J740H3F06NT2822ZK1KAHC7E21T0X8CTX - -[accounts.wallet_49] -mnemonic = "struggle ladder fantasy cart advice umbrella render mechanic skin renew vocal shadow blue saddle flag lamp aerobic relief cabin tuition local relief bring punch" -balance = 100_000_000_000_000 -# stx_address: ST3J6BAT10DSN9SBKAGE3TK15W95PCW20NPV34Q1C - -[accounts.wallet_50] -mnemonic = "impose monster oblige they delay device clean vacuum nominee august siege journey injury sing audit approve gentle wedding place body saddle august wool tuna" -balance = 100_000_000_000_000 -# stx_address: ST23C73YP53S4K7780W71J8NJACZJ3621WN1T33V2 - -[accounts.wallet_51] -mnemonic = "armed win attack domain wrong first token around sea confirm cup flame arrange tilt scissors series toy wisdom pull jar course mobile hamster salmon" -balance = 100_000_000_000_000 -# stx_address: ST3C3XY6ECHZJ2RDBSF31404DE1SMSTVBF1ZPG5SH - -[accounts.wallet_52] -mnemonic = "federal paper volcano casual want muscle run rocket suggest august word gain fiction museum engine immune below thunder unusual twelve sustain rude blanket excite" -balance = 100_000_000_000_000 -# stx_address: ST2A7RX6C1WJA0ZYF21R04K1X4AKFDZXFWKY2GRSW - -[accounts.wallet_53] -mnemonic = "obvious try artwork olympic time coach battle park hobby hundred wild mind victory electric truth goat limb gaze grit dial culture digital reflect pill" -balance = 100_000_000_000_000 -# stx_address: ST27JKP4CEPSHXQ317AAJQ2VGVDA5EBER7ZMBGTVF - -[accounts.wallet_54] -mnemonic = "love spoon abuse say banner coconut symptom pole skin ribbon pumpkin rally treat flee anger silent boil twelve ask confirm tomato dragon layer label" -balance = 100_000_000_000_000 -# stx_address: ST2334V3B3X4HJQYQCYA23XGT589X6GRKZ8CRT8YD - -[accounts.wallet_55] -mnemonic = "wide pitch plunge equal school puppy onion retire clock toddler census jealous verify reopen oblige sunny carpet mammal dove polar picnic square worth lock" -balance = 100_000_000_000_000 -# stx_address: ST35X8BXHXVKW0CFZBV2B1TJJTHD7M89CD1ZFD759 - -[accounts.wallet_56] -mnemonic = "actress start jelly rack outer net whip advance horn slim daring flee exist enroll ball eight cattle saddle bridge more alien radio hat trash" -balance = 100_000_000_000_000 -# stx_address: ST1P0W50P6MFKD4YKNCJ437SJ7037TTBC049ZR409 - -[accounts.wallet_57] -mnemonic = "nation arrow peasant crowd pistol decorate venue soldier vacuum license cotton object pudding actor opinion refuse tag close wire maze derive visit suffer fabric" -balance = 100_000_000_000_000 -# stx_address: ST26F9PFXR1MFPF9MBZ1VA4GETAWCBXS4ERD5EM3E - -[accounts.wallet_58] -mnemonic = "weird spare city arrest snack main slender ignore spice theme morning miracle tube pelican original daughter spawn process pulse silk enlist aware timber hill" -balance = 100_000_000_000_000 -# stx_address: ST2HY3P2SD4SZV55E91WN3K4C5JKHAZ1XSVWKYYW1 - -[accounts.wallet_59] -mnemonic = "chaos result cherry insect number object coast priority toilet wrestle lunar couch hat kite payment solid illness dawn yard dune need crunch twenty waste" -balance = 100_000_000_000_000 -# stx_address: STKS8VV5HA7K1NJM57BKWBYG23VDDKFF2G8BM9TC - -[accounts.wallet_60] -mnemonic = "resist casino fork medal theme jacket this rich huge egg domain basket obvious inmate summer vital stadium reunion disease before myth problem all control" -balance = 100_000_000_000_000 -# stx_address: ST8Y4ZWX5ZEVG224CQ4EXD1B5H5HWY59JMFSFCBY - -[accounts.wallet_61] -mnemonic = "hair dilemma wreck play fresh push junk push pigeon series loud pulp release switch also clog ocean business buyer boat law twin front lucky" -balance = 100_000_000_000_000 -# stx_address: ST3FSXHEE9CBR1QTK31150FEB0CZM290QPX07WSAC - -[accounts.wallet_62] -mnemonic = "cereal auto indoor forest isolate annual lesson rebel wear scan ask fame common famous barely laptop poet term kite axis very doll speak bullet" -balance = 100_000_000_000_000 -# stx_address: ST3RDDM60SFZY7D1CFEN69EK2P17GB9WKTQNFTBPZ - -[accounts.wallet_63] -mnemonic = "thrive opera dose owner cook caught merit move exercise fame mail spatial program sun empower excess foot praise reason clip profit olympic when render" -balance = 100_000_000_000_000 -# stx_address: STNJHGHHXR51WW7N0JDANT5DT1GK39QKHEVH5AD4 - -[accounts.wallet_64] -mnemonic = "bean hollow mass bullet stove outdoor regular bring educate bird tissue scare town throw hurry enforce clean pool work bunker evidence lamp favorite scorpion" -balance = 100_000_000_000_000 -# stx_address: ST1TZ6MCJZ066RM3JTP1KNZGV6SD068A0D7AAH71G - -[accounts.wallet_65] -mnemonic = "also flash ridge shoulder harbor net dry badge joy sausage armed now curve napkin retreat return priority note fiction elbow junior jelly actual mammal" -balance = 100_000_000_000_000 -# stx_address: ST298G8HHCSAMWRX5JGYNX2KDC6YCV62RBMP6ZFGQ - -[accounts.wallet_66] -mnemonic = "evoke club emotion offer column trust joy solid future scout year wall iron popular scrub deliver invest razor album chronic shuffle evolve notable call" -balance = 100_000_000_000_000 -# stx_address: ST2XNVGS7K8FYJQER6BMVX4SGKM9MYHVGVS00S7E7 - -[accounts.wallet_67] -mnemonic = "genre bundle sphere helmet rocket all service tennis minor shrug quality grape upgrade season roast gossip cousin cube walk admit tube clerk trip aspect" -balance = 100_000_000_000_000 -# stx_address: ST2QN5GJ0BRH5MFHMT3RAG1GG2XF7W3414G1666H0 - -[accounts.wallet_68] -mnemonic = "file juice tent track slab staff aerobic parrot system affair hybrid garlic rotate permit echo genius link dinosaur wrap sketch recycle correct raw deny" -balance = 100_000_000_000_000 -# stx_address: ST10A4GXZ6YF5A5CZY5F0V10WTJ5C21JZWKZT7TE0 - -[accounts.wallet_69] -mnemonic = "whale peasant obtain cheap park fee merit carbon faculty tilt conduct road skate round sauce student either output boil draft auto dust fruit case" -balance = 100_000_000_000_000 -# stx_address: ST2VM2PP828DAQQ14XM5FRZ0RMFNKT1HAAD6HNXJD - -[accounts.wallet_70] -mnemonic = "orchard grow harvest among eternal topic upset alter minor match embody sun bachelor worth print record slender popular manual lizard acoustic indicate letter then" -balance = 100_000_000_000_000 -# stx_address: ST3AXH10DE1D09XMBGV9A3Y29TVEBGHG9V79PNZA9 - -[accounts.wallet_71] -mnemonic = "leave energy midnight upon solar axis olive insect able obey mule expand public divorce mechanic lazy jazz cabin dilemma vanish pride fuel joy style" -balance = 100_000_000_000_000 -# stx_address: ST3KEKZ2EGT7NDF97C8SA0MRT2S6VD5K6DVK0ZQDW - -[accounts.wallet_72] -mnemonic = "nose donkey heart spring arena dilemma gasp shiver afford staff taste staff dance good stay response rule frame fire focus clump drip filter month" -balance = 100_000_000_000_000 -# stx_address: ST2ZBVH1NJ88P0942TF1DVT58F1DJ4M2CP5EX66G1 - -[accounts.wallet_73] -mnemonic = "pudding effort web chief viable bonus sausage girl hat remove behave banana width current sorry please dry tone matrix stick boat luxury shuffle fire" -balance = 100_000_000_000_000 -# stx_address: ST3QXN8YT9YFTEKFD4FB97PGMS21H3MZ6FR8XS78A - -[accounts.wallet_74] -mnemonic = "intact come canvas giggle skill weapon defense viable before attend crawl quit shock foot state stumble force enforce track tag find awkward gate memory" -balance = 100_000_000_000_000 -# stx_address: ST2NJDJ7VZ4ADR7C5SN9X8T1341DCEM7YPNJM8E81 - -[accounts.wallet_75] -mnemonic = "sample proof below attend action adapt negative depart pupil wild number toss near laundry powder illegal argue shrug joy true relief culture canoe defy" -balance = 100_000_000_000_000 -# stx_address: ST1HE981KNJDG670ESVP0DEAEC68FSTBN4NGHR5FP - -[accounts.wallet_76] -mnemonic = "milk cloth manual soon there hood peasant uncover alone evil addict belt buffalo comfort machine bamboo perfect naive clever mimic please infant beauty banner" -balance = 100_000_000_000_000 -# stx_address: STTY1EAVR5C23XR34JK8GES3TNX4TY3HTQ17CPD7 - -[accounts.wallet_77] -mnemonic = "purity admit report toddler wash crack have parade used festival helmet punch cradle quiz dose brass party van wave impose planet goat proud dinner" -balance = 100_000_000_000_000 -# stx_address: ST1P2NB6GEGYB67AMHAD8Z72EHKM741A5RZXPGAF2 - -[accounts.wallet_78] -mnemonic = "member chest same gravity crucial couch pizza little bus friend pilot beyond idle hip rate decrease gauge heavy convince waste behave display series coin" -balance = 100_000_000_000_000 -# stx_address: ST2QQZ6DGH4GPJD8YZG5TG99BA4M327SPDJJJG6CT - -[accounts.wallet_79] -mnemonic = "doctor suit lamp tonight submit sleep benefit invite organ catalog elegant team mutual trial fall alert parade tragic hazard card shoot song best tiger" -balance = 100_000_000_000_000 -# stx_address: ST37BZYYSHZXT33BK47QD6KMZTPFG7Q77P2APP0M7 - -[accounts.wallet_80] -mnemonic = "language maze shuffle latin hundred unaware race abuse humble force latin raven add middle book music lobster dolphin leisure code blush pipe decide drip" -balance = 100_000_000_000_000 -# stx_address: ST23ZMRTEFMDXFF6X0V84WD7NB5X00B80BCNAX0HM - -[accounts.wallet_81] -mnemonic = "twin diamond genre father expect media taste glory habit output game eagle vehicle december enforce zero shallow like situate someone exile balcony project amateur" -balance = 100_000_000_000_000 -# stx_address: ST1BD939ZBWSZFABB4E3HCWNG4B4ZWTQGF2AD95ZV - -[accounts.wallet_82] -mnemonic = "hill banana giant myth admit bench economy harsh afraid broken bicycle whisper scale grow parent layer blossom crash early plastic spike barrel mention phone" -balance = 100_000_000_000_000 -# stx_address: ST3C6AVDD1Y3K762CQWVE93JNHA3T4ZX9K4V7QE17 - -[accounts.wallet_83] -mnemonic = "wisdom approve acid finger surface people diet decide six arch motion awkward retreat sleep bless because treat equip host device gadget short peace chronic" -balance = 100_000_000_000_000 -# stx_address: ST3NF1R9N8JR1TRPDF1JC5PVZW04BAFM1YG4506J6 - -[accounts.wallet_84] -mnemonic = "foot immune honey clerk inherit unique embrace charge rifle flush nerve alter floor pet toast false wisdom awful diary rich donkey urge envelope token" -balance = 100_000_000_000_000 -# stx_address: ST2K64FRQ5Y330WXN38SQDB1EJ23PJEYAER27TZMV - -[accounts.wallet_85] -mnemonic = "person parrot quantum gravity orient item hip movie velvet text pass dress risk news odor assume donkey switch ketchup visa ask federal april crane" -balance = 100_000_000_000_000 -# stx_address: STTM0M6136TGZC0E95P1HQ54T4K4PS6CMGJ625QV - -[accounts.wallet_86] -mnemonic = "public metal similar reflect gentle oil doll dentist jazz diary outer consider culture term gorilla final fat alter spare mule stomach honey excuse taste" -balance = 100_000_000_000_000 -# stx_address: ST33BJ4396XVCJN6DZRTG2Z18BYSE4DS3JZG2A8K0 - -[accounts.wallet_87] -mnemonic = "priority car rich poet tornado smile ask off cricket ocean whisper bridge submit twelve wolf section orient fresh print jewel burden buyer brain sea" -balance = 100_000_000_000_000 -# stx_address: STJCVF6XRMWYFABAEWK9PFQB1EMP8C6F0CSHGS9S - -[accounts.wallet_88] -mnemonic = "purpose curious bounce swallow plunge reduce bachelor prepare print icon number live front fault fire fiber way orient economy apology shuffle erosion slush protect" -balance = 100_000_000_000_000 -# stx_address: ST2REAZT5M7KGNMFQNJ61PFPP5KZVVHG0BQBZ93BM - -[accounts.wallet_89] -mnemonic = "inner sure cave mind silver remove clip ready prison arrange duty pen lemon mercy desert install inform top wool tumble need hip aim egg" -balance = 100_000_000_000_000 -# stx_address: ST16JBADHZRWAP3PV82RKDMQCKS8AVR15W1WEDB9A - -[accounts.wallet_90] -mnemonic = "plastic wire novel suit bundle smooth amateur pencil today outdoor sadness truck coast creek coast cry veteran client remove skate amazing easily minute theme" -balance = 100_000_000_000_000 -# stx_address: STS3BB2QRH8GAJB0E3DDW6GPMMJM41QN7RHTB5DQ - -[accounts.wallet_91] -mnemonic = "idea check chief shield damage enforce truly valve era bulb wheat joke tiny fuel evoke rate exotic muscle rhythm six actor real slide equip" -balance = 100_000_000_000_000 -# stx_address: ST20R0VWB63M90HR3G9MCZ0MKK8PRCZXCH0Z6NXG - -[accounts.wallet_92] -mnemonic = "pause notable advice brand lens table subway sell swallow range gasp undo uphold tank minimum hunt disease job olympic topple cloud orphan win rude" -balance = 100_000_000_000_000 -# stx_address: ST2DP0RZ10NXFFW72JR4R2PMJ0SZYWHG8C336YXM3 - -[accounts.wallet_93] -mnemonic = "coconut slogan ranch salmon act claw blossom grape swim year wing rotate minimum color wrist air swing plunge pumpkin pepper shed smile novel bring" -balance = 100_000_000_000_000 -# stx_address: ST9TK8DEW8BH5JGRTQSBN3FG9FRB3TMK52Y0KHMY - -[accounts.wallet_94] -mnemonic = "celery ill fatigue camp picture family black bullet ladder where antenna engage real people chicken chicken mind spice work need anger pass jungle divorce" -balance = 100_000_000_000_000 -# stx_address: ST3V81THYG6EZVM97E9EGK2B6SJ763HHQW4NHPN11 - -[accounts.wallet_95] -mnemonic = "roof call glove round frog visual discover planet negative room science debris tide broccoli envelope disease future park story shift main estate beyond beauty" -balance = 100_000_000_000_000 -# stx_address: STAD291HET5ERY4AW0W3BEG2609XV1MQB4AVCWM1 - -[accounts.wallet_96] -mnemonic = "clip bird kite among uniform lock guess fruit elegant build science master horn example flip crop chapter divide tide attack wedding duty cheap method" -balance = 100_000_000_000_000 -# stx_address: ST23ZDV1FXXTTHV229YW30MF92AEHV7A75F0NW66V - -[accounts.wallet_97] -mnemonic = "bind evil tool expose live slogan pool stairs truck age exotic foster glare soap drink maple soap pretty hockey organ scorpion lumber copy side" -balance = 100_000_000_000_000 -# stx_address: ST1MM9S1Z7CRP0DBG9A6C3E79RW941NCABDF0D427 - -[accounts.wallet_98] -mnemonic = "isolate pluck execute fan wheel series alcohol annual other add allow expect quiz inspire swift ramp battle dry zebra hill click dial chimney jungle" -balance = 100_000_000_000_000 -# stx_address: STTQ07A0BQTEX7SY2JE65TSRAMQB5BVY6S850AWQ - -[accounts.wallet_99] -mnemonic = "disease grab list stay vast settle tomorrow example grain sadness property prison credit original spare crash trumpet onion million rookie cave viable orphan path" -balance = 100_000_000_000_000 -# stx_address: STKF3HBXEV6XMD1X1RV1B54SZX7DG501R9ESAXFM - -[accounts.wallet_100] -mnemonic = "mixture position practice critic void wish sausage private mean protect wrong oven load addict plunge occur fun rubber elegant lounge radio claim crazy trim" -balance = 100_000_000_000_000 -# stx_address: ST3ZTM14Y6EEBR011BNCFYJXGSDNE7K71QZ5MBYH0 - -[accounts.wallet_101] -mnemonic = "auction empower anxiety dice normal shine zone drip joke worry ancient inquiry card lake liberty online fantasy shed point roof pilot object retire camera" -balance = 100_000_000_000_000 -# stx_address: STN7ES6EGND0PVPFM7D2C5Q6B8PTA7AMYGW537KZ - -[accounts.wallet_102] -mnemonic = "rebuild enough impact effort void affair ramp chest about anchor discover nerve jelly frost oven finish brain critic faint twin benefit tomato place damp" -balance = 100_000_000_000_000 -# stx_address: STV1HKSE7C9RQ9SY32PYYFC5HV4ADNQQFB617TW - -[accounts.wallet_103] -mnemonic = "claw chaos bulb skirt garment predict company vacuum axis gasp peasant world oil funny mask phone harsh fiscal clap shop verb century chair copy" -balance = 100_000_000_000_000 -# stx_address: ST2FFE62QSC896C9A6X08D95FGX9ZGY3J8HGMYREC - -[accounts.wallet_104] -mnemonic = "infant spice mention punch novel shoulder high primary prosper holiday dilemma shift scout image negative stage clap human slice crew load equal salad inflict" -balance = 100_000_000_000_000 -# stx_address: ST1Q8Q8CBC1DXSWCNWT22HXD82WE988VKDGY7X8RD - -[accounts.wallet_105] -mnemonic = "anchor finish wasp gold solution present light wrestle clump daughter infant figure member spice manual tortoise grit guilt much acquire purity business punch armor" -balance = 100_000_000_000_000 -# stx_address: ST5KRHNTH1Z116PH6ZPWG2N22K7373BGSVPMSFAT - -[accounts.wallet_106] -mnemonic = "maze nephew account surprise season people shell eye spare tissue twist attitude into machine shrimp proof snack slush assault end knock exhibit either matrix" -balance = 100_000_000_000_000 -# stx_address: ST3AZ38RBMJNZ3KE0S3P3JZQX4FBRHZZ6WGKYZ9J0 - -[accounts.wallet_107] -mnemonic = "seminar mimic awkward inmate sweet aisle empty cradle example bus sword pill spice trigger violin rural ghost quiz index ahead energy shoot brain ritual" -balance = 100_000_000_000_000 -# stx_address: ST3FD1J7YFD32ACJGDMSGVCXTSKD0NFFWY99NENYX - -[accounts.wallet_108] -mnemonic = "tool segment film buffalo page brick source rocket aim food right jump monster offer muscle author business grass airport speed misery panel bid solution" -balance = 100_000_000_000_000 -# stx_address: STS5KVVHHJP17HCK0S53XK8NWAAX0RPEK52WZ12S - -[accounts.wallet_109] -mnemonic = "hazard ancient target enforce orbit bundle predict mouse zebra liberty stone hobby please donor knock dizzy author dutch traffic rotate away special drop melt" -balance = 100_000_000_000_000 -# stx_address: ST2AGM9NF5T056FJ7V4N4QZATDESBYZT7XR94HE2D - -[accounts.wallet_110] -mnemonic = "alarm borrow effort park they peanut scene act chef split slogan transfer diet engage depart rifle lecture order trigger trim swing must real then" -balance = 100_000_000_000_000 -# stx_address: ST1EJ4ZQ1MVNR5Q0M1KZVSWZ3VB4E8T64NTFQX2Y3 - -[accounts.wallet_111] -mnemonic = "orient drop govern orphan peanut prosper village page marine diet hill cushion nature crane six bulk ice draw choice apart large drum shallow virtual" -balance = 100_000_000_000_000 -# stx_address: ST1K4JX669PQ8B898NMQF6Z68EW8SX3W00K5PBH6N - -[accounts.wallet_112] -mnemonic = "seek because tree rib swift clean coin side mystery then pioneer excite method memory estate wrap endorse electric tennis flee detail immune fix pink" -balance = 100_000_000_000_000 -# stx_address: ST3XVM6V3VZCP477F3VFRX5SBY67FZHK6MAWECWVR - -[accounts.wallet_113] -mnemonic = "supply dolphin crane motion rotate hungry bus device inner pottery noodle annual patrol lonely rubber book siren burger system typical discover habit once vendor" -balance = 100_000_000_000_000 -# stx_address: ST4RR09DQHJ5CJ2CS8NJ97BJZTGZNAXEX1SP1C3J - -[accounts.wallet_114] -mnemonic = "purpose tree quit jeans scissors heavy path forum census shallow nurse sample today choice live exotic fame repeat over survey business smoke pig must" -balance = 100_000_000_000_000 -# stx_address: ST2MZTG9G098CA54VQQFNYG50XXZE0VYHYSMZ59Y3 - -[accounts.wallet_115] -mnemonic = "security tape lens offer trouble assault like beauty mass jealous sustain rival orange arrest spatial luxury shove buzz whisper rice reveal seven rely inherit" -balance = 100_000_000_000_000 -# stx_address: STS2QPPFZDGFYMJTYA541WYTV33EFGH5NGBX03VW - -[accounts.wallet_116] -mnemonic = "believe click attitude enlist innocent truly above theme option much fashion lion grunt trick ghost clock mammal merge property traffic blouse bounce address damage" -balance = 100_000_000_000_000 -# stx_address: STM925RXS61D23EYMVHR9MJJTHZ0WXZW931WYMGQ - -[accounts.wallet_117] -mnemonic = "since egg forum gold tooth talk ability market devote share web assault tattoo ability suit true volcano pause close opinion correct negative divert head" -balance = 100_000_000_000_000 -# stx_address: ST2KPGZF06HYHN2JEYWZJNNP0PXJF5ZM2KZDX08N - -[accounts.wallet_118] -mnemonic = "throw robust merit sea arrest own custom unable virtual predict hunt soul mind shaft angle acid good ring toss blossom slot tray nest repeat" -balance = 100_000_000_000_000 -# stx_address: ST2XGATEJT79EK4442124T63GNJ9C6DF1DWFHCP2K - -[accounts.wallet_119] -mnemonic = "helmet cost castle they choice only opera oak shell lounge flag pass gift dish paper chaos garage news initial antenna build poverty despair glory" -balance = 100_000_000_000_000 -# stx_address: ST2M3VK6ANQ7Q1JHPH2CT6B1N9HQYXCY4BSDAJ9XB - -[accounts.wallet_120] -mnemonic = "rent remind situate absorb source caught top winner lift deposit acquire ethics slogan machine beach emotion among crumble thunder waste guilt goddess hour dry" -balance = 100_000_000_000_000 -# stx_address: ST1DPHXXDS033CP10EJ5XKJ6V6R25SGYAYQM8CVAF - -[accounts.wallet_121] -mnemonic = "march canyon all ostrich until bomb unaware task swallow wise gas nothing steak tank drink bench inherit fever task clever cactus nature trigger demand" -balance = 100_000_000_000_000 -# stx_address: STS8B23TP0PDCC1YKG97QF0AX8FXV3HFA2RDNS43 - -[accounts.wallet_122] -mnemonic = "horn measure poet monster music stomach pilot ketchup bright muffin miracle message zebra demand usual kite six napkin relief double unfold scorpion border night" -balance = 100_000_000_000_000 -# stx_address: ST39BNTWPN9HZDSJTYVAK81XMM0T65CYN2A3Q7NMS - -[accounts.wallet_123] -mnemonic = "monster goddess mutual steak fiber say ridge strike asthma describe idea blouse gasp jewel excuse toilet anxiety club pudding party job rely retreat amused" -balance = 100_000_000_000_000 -# stx_address: ST3BF3EK5WCQFCF3E4CDYMK9HVZRY9DW5BFR877QE - -[accounts.wallet_124] -mnemonic = "outdoor claim drill image opera moral industry devote hidden license acoustic fine vault replace current vote depend fault rough stomach rocket laptop inside dynamic" -balance = 100_000_000_000_000 -# stx_address: ST2ZWHKJQ4CQVBFZBXSVN32QPWKYRTPBE924EFSAC - -[accounts.wallet_125] -mnemonic = "action build lab venture bulb section dove wheel vibrant gauge labor fence grace phrase solid organ undo athlete else middle iron awesome tent just" -balance = 100_000_000_000_000 -# stx_address: ST14VW65E5774PDSS8FSHS25YRSAS3VB9KN4MKRQ8 - -[accounts.wallet_126] -mnemonic = "episode resemble autumn another brush alcohol merit proof sniff deny domain maple wasp clutch style purpose perfect diamond taxi shield brief hero course accuse" -balance = 100_000_000_000_000 -# stx_address: ST368SDFZC5QPWB6QH1WBJGJFKX4YZ79K90CDFHYT - -[accounts.wallet_127] -mnemonic = "vacant raise vendor staff desert gossip twist bind salmon coconut call pyramid shuffle client charge year ice hungry gas oppose deliver wrong present salad" -balance = 100_000_000_000_000 -# stx_address: ST3YT87BVPG83FG09YAAVRPH4PJ4H4BV0ZNC3E353 - -[accounts.wallet_128] -mnemonic = "sniff exit chef trigger paddle attract intact credit put finish ostrich desk shove tail avoid urban flash much daring imitate legal kid protect uncover" -balance = 100_000_000_000_000 -# stx_address: STJ06WMDQTFKDYSYFESCPHWEYDDDZRJC6FC4FNS7 - -[accounts.wallet_129] -mnemonic = "act tattoo local pig gorilla mad merry trap clever dawn hello bubble toward suggest main say mimic shaft cool alarm slice renew excess retire" -balance = 100_000_000_000_000 -# stx_address: STFEAGVDTHH4ANH1V2CRS9CJ4QC6BWBT6HYV8PBE - -[accounts.wallet_130] -mnemonic = "donor normal animal van oven hurry planet benefit segment youth famous topple spider assault winner scrap kitten also lemon party bracket end senior palace" -balance = 100_000_000_000_000 -# stx_address: STCCFM55PKFJ0G91WTH2TSWSK9XVX1K032VSEW05 - -[accounts.wallet_131] -mnemonic = "exist page secret suffer recycle allow winter model world broken promote kitten eye autumn make yard bounce tube label funny eyebrow energy awake crash" -balance = 100_000_000_000_000 -# stx_address: ST50SZHK7WGM3Y6F0GJ4T1190S7VYH7K7HCMSVQM - -[accounts.wallet_132] -mnemonic = "wire ten detect swarm wheat bulk protect labor day lumber couple shove review frog true snap rubber friend athlete roast electric spike honey town" -balance = 100_000_000_000_000 -# stx_address: ST16S78EA4FRRSDBVXH8CD0X1W3R8BR7RA3P0NNDV - -[accounts.wallet_133] -mnemonic = "dentist bone seek bacon obscure always arrest pumpkin snack atom panther trouble general daughter essence pluck track drastic sense observe neutral dragon scrap beauty" -balance = 100_000_000_000_000 -# stx_address: ST5MKCNDPR2T954CWDXAZHKY0XWJKXH2F97WNKNY - -[accounts.wallet_134] -mnemonic = "knife fatal junk forget talk toilet enrich solar special process basic ship charge wide sport merry maximum say demand airport valid deny robust slender" -balance = 100_000_000_000_000 -# stx_address: ST1DJTABB748A22E5BHS12CR79PC8X4PG1EEWEP40 - -[accounts.wallet_135] -mnemonic = "sphere festival round timber bicycle circle genuine dial fix ankle again tackle gown cloth vapor else salute element cry edge coyote reason eye priority" -balance = 100_000_000_000_000 -# stx_address: ST2FY87A77JJ43C7WTQS3QWST5AFHP61MZMCT0BS2 - -[accounts.wallet_136] -mnemonic = "cricket shoulder warfare genuine aware license loan sadness chapter help flat basket smart leaf zero rifle cycle praise pupil used start tomorrow elegant ice" -balance = 100_000_000_000_000 -# stx_address: ST3C25RQBJ72T22DNDTKRX3SAWH7R2R7V2R75KX34 - -[accounts.wallet_137] -mnemonic = "permit pretty surge guard push squirrel tongue scare news hair quarter pattern west steak scan belt series cigar worth attack repeat awake cement night" -balance = 100_000_000_000_000 -# stx_address: STP8BSDJYSQK00CGY8RPBS6H9QYM69YNMTWM7RFJ - -[accounts.wallet_138] -mnemonic = "adjust cluster eyebrow pipe pattern treat below dumb picnic assault frog cause alien excite road helmet enlist tool labor exact negative name organ critic" -balance = 100_000_000_000_000 -# stx_address: ST21S5R8G4B6CXM42HQRSW1WP77JS2FMA4AW4P761 - -[accounts.wallet_139] -mnemonic = "month elbow dove symptom fog grit number shaft enjoy claim sing knife kitten misery vital pudding push trap sting eagle element zero jaguar jar" -balance = 100_000_000_000_000 -# stx_address: ST2V5Q6EG1EKPQ0PT75YB9VKQEQCVW2CX2S157CT6 - -[accounts.wallet_140] -mnemonic = "chief wet film father alter false result clay legal shadow system element require ill various saddle embrace swarm unique perfect metal will employ turtle" -balance = 100_000_000_000_000 -# stx_address: ST2XVD1AM0PCKR0DKGX2S8XH8DJEB4H9JXCZNT4C8 - -[accounts.wallet_141] -mnemonic = "shove install hard moral strategy exit hire hope rent virtual outdoor differ sock purpose much crystal scout path cake man friend deposit game build" -balance = 100_000_000_000_000 -# stx_address: ST2YWPCMCJDHZZGPQNKJ5YND2TK1ZNC4T1N9W10R8 - -[accounts.wallet_142] -mnemonic = "midnight salt program snap capable later bike better hungry daughter wrong avocado drastic huge century similar glow solar put buyer gate pitch funny hill" -balance = 100_000_000_000_000 -# stx_address: ST1NTFPFNXAEX54Y00K4QVE1CC09Q0M7ED212ZRWN - -[accounts.wallet_143] -mnemonic = "identify pink victory punch flight ethics evolve math robot gather minimum hamster equal chunk wrap tape hawk supply ridge unknown there ramp elder tenant" -balance = 100_000_000_000_000 -# stx_address: STYRA48Q065VG75AZEJ5J8RT27RZWK8C7QFDB0VV - -[accounts.wallet_144] -mnemonic = "frozen lumber pact horn ski film case autumn general night clarify guilt viable change asthma liar chat proud donate host range buffalo concert abuse" -balance = 100_000_000_000_000 -# stx_address: STP0NSD33KJ6YQ2YQWKDMG9TFBJ6HNFPPRN3DJWV - -[accounts.wallet_145] -mnemonic = "enable domain cage body just body cycle depend glass aunt edge food jelly cat goddess company skull track surge dinner admit spirit endorse random" -balance = 100_000_000_000_000 -# stx_address: ST1P2KZGQJH22CWDMB5N3ZKSGTWPS1JC51466P909 - -[accounts.wallet_146] -mnemonic = "ecology grape fatal height correct shaft guitar grain earn knee attack cost cloth scan squirrel melt rack firm squeeze brave harvest ticket lucky erode" -balance = 100_000_000_000_000 -# stx_address: STRB70CA6RHH8AJNGTC3DB5MMK9HW4KB5CAJFFBT - -[accounts.wallet_147] -mnemonic = "awkward wheat oak marble grid budget lucky cigar fetch weird online actual enforce praise sell field output idea derive all hurt truth math fantasy" -balance = 100_000_000_000_000 -# stx_address: ST1KJY77M1NZ2WDH6KGFVFDAPW9Q4Y55Y00N6D4CB - -[accounts.wallet_148] -mnemonic = "nest mystery adapt normal butter miracle material visa come glass deputy history disease range chase salon strategy artefact flee give favorite digital clip spray" -balance = 100_000_000_000_000 -# stx_address: ST12SE1FP759764F27ET2STPZD5TV2X0HFFT6PE2X - -[accounts.wallet_149] -mnemonic = "today patch price weekend cream alarm fiscal follow diary cherry surprise south try obvious recipe rather easy buffalo thing fork social various strategy arrow" -balance = 100_000_000_000_000 -# stx_address: ST3P0ZK7Z1NGC5KSFZ1H8JETHX45WH6FC8AAE59ZH - -[accounts.wallet_150] -mnemonic = "kitten category grit decade true vibrant layer panel merry swamp diesel release spend impose plate hazard bottom fruit marine canoe beauty thrive laugh moral" -balance = 100_000_000_000_000 -# stx_address: ST10894C79DFD39RAJPSKHMD2YW1QWZCSDWV619ZV - -[accounts.wallet_151] -mnemonic = "dilemma code soup thing pitch candy napkin law poverty evolve hamster hill solid strike fitness tower deposit hire view dance spread around bind slender" -balance = 100_000_000_000_000 -# stx_address: ST2EPYHN98KACREC7Z6WZHPP59BV1X14JYWNYCH9A - -[accounts.wallet_152] -mnemonic = "element art advice canyon congress board van regret call pyramid kingdom mirror media waste gate sorry already pig worth explain supreme rich wall able" -balance = 100_000_000_000_000 -# stx_address: ST1XXE319JCJBT9W1RY92QF1M3V3Q2Z4DC25HZRVV - -[accounts.wallet_153] -mnemonic = "winter derive swamp cute network expose major there ozone help fossil kitten habit naive slam abuse kite addict length client palm awkward express manage" -balance = 100_000_000_000_000 -# stx_address: ST2KJPJVWRZTWFYPXQVRE1XB437Z499801SMR2TXA - -[accounts.wallet_154] -mnemonic = "fine wish blade olive pipe frozen pluck upon bulb catch ill help spawn clown tattoo matter label sleep gossip dream lock want diesel cry" -balance = 100_000_000_000_000 -# stx_address: ST31V499EHW152XWWJNF3P9SDBPMK9BX32D3WBMJR - -[accounts.wallet_155] -mnemonic = "tattoo gown robot inherit ship enrich shallow solid leisure young soccer cement orchard room make infant mass brush stone option stamp hazard floor spirit" -balance = 100_000_000_000_000 -# stx_address: ST1JG6PYFYCM2BQG28NMRV1A2X8VX96MJ9E4554Z3 - -[accounts.wallet_156] -mnemonic = "coffee rigid vote adult nerve mind window farm grocery unfair gold act loop honey sugar immense desert bargain reflect right degree now adult ball" -balance = 100_000_000_000_000 -# stx_address: ST2B5MT6AE682QXEM7JFM6G3ZFAS715H5XNG1AF31 - -[accounts.wallet_157] -mnemonic = "junk random elbow resource zone kiss squirrel captain soul soup possible winter silver frame disease shrimp clerk piece nice olive ladder panic rain visa" -balance = 100_000_000_000_000 -# stx_address: ST2N44W1VEA6PD1W407VDDT90KX5821XGCF5CRX1W - -[accounts.wallet_158] -mnemonic = "museum wink cliff library parrot quarter donor plastic south capable mail before weasel polar worry grain another filter medal laugh shell isolate fetch valid" -balance = 100_000_000_000_000 -# stx_address: STHG90SJPEJE6BA55TCJADB4THHFGJZZMJARMASS - -[accounts.wallet_159] -mnemonic = "pencil giraffe vital caught pig dolphin orient wire around finger cushion ridge account wheel there slam chuckle grab plate deputy snow nephew wise bind" -balance = 100_000_000_000_000 -# stx_address: ST7K1MMZHX1NMDZDF8NN05XZFH9CDQACC9CFETTX - -[accounts.wallet_160] -mnemonic = "series strong such alone certain grant opinion series artist bicycle nurse target tackle general across anchor mean cruise core maid curtain submit consider view" -balance = 100_000_000_000_000 -# stx_address: ST1SHMN2YXW3XC9KMBTYSDA8137FPWKVAY45V7PND - -[accounts.wallet_161] -mnemonic = "reopen country off pulp castle sail machine join engine speed jeans dune evoke grunt net better this uphold similar snake polar west afford curious" -balance = 100_000_000_000_000 -# stx_address: ST09MSR8SKQ3P9R3G9AJPS0MBC5FWTRHHYAEY83V - -[accounts.wallet_162] -mnemonic = "spin hard picture abuse trim sad intact enrich cram civil virus please ghost hawk behind venture figure wise then marble sense normal gospel rally" -balance = 100_000_000_000_000 -# stx_address: ST183Q218DJXYF82WW8EW5K3FZFRPGSG2RGZ39YXE - -[accounts.wallet_163] -mnemonic = "usual thank left whip evil join length dirt attack size draw kind garment that chase trial possible copper moral month depart forget route push" -balance = 100_000_000_000_000 -# stx_address: ST1AFM76SRSPKZ3GMSX0N95X3Y1A9Z3ABVSH6YYNX - -[accounts.wallet_164] -mnemonic = "include pistol rally raw upset album tuna fancy lonely apart creek echo shield danger return scene video obey bike chest hidden wild code runway" -balance = 100_000_000_000_000 -# stx_address: STB58YK523MPHRG7NQY550P5RX3GQM20GVQN0QF9 - -[accounts.wallet_165] -mnemonic = "smart deny soldier midnight upgrade conduct online cage ranch health skull armed vault shove error attitude primary pioneer square approve eyebrow bone seed bind" -balance = 100_000_000_000_000 -# stx_address: ST1HP0YMMA3VSARSFNC4HGCD6FZ9AP18KAE3WYBPX - -[accounts.wallet_166] -mnemonic = "carry able butter final today indoor grab kite possible stamp universe copper wage blood wash option timber present power mail cargo crane hospital mass" -balance = 100_000_000_000_000 -# stx_address: ST3Z2QZ3389CXNHZ5HF1Y6STK1EF159JR6DQPXMCT - -[accounts.wallet_167] -mnemonic = "region foil kind pipe share enlist amount mail prize letter kitchen aim cargo nuclear van entire discover liquid orient demand slice name also approve" -balance = 100_000_000_000_000 -# stx_address: ST3FZ8KZJZQEHKH99M1FPR49ZFA5XJEAX0E4T2J05 - -[accounts.wallet_168] -mnemonic = "author become where off resource donkey craft bronze picnic outside dragon border armed chef left lunar practice siege protect grain beauty oyster empty awake" -balance = 100_000_000_000_000 -# stx_address: ST2JBDEF6NZYRK5ZD57J4VX8B84TCFDSYX1ZRPQEV - -[accounts.wallet_169] -mnemonic = "arena pond joke half wine speak video soul butter galaxy bread lunar excite exit dress express buddy settle frog affair stadium wealth bomb stone" -balance = 100_000_000_000_000 -# stx_address: ST266W858Q9XWDV26ZRN9VS3C7W38J2SNADH9VEWM - -[accounts.wallet_170] -mnemonic = "future capital rabbit trial uncover wasp stock argue theme island nose nice myth project horror couple gospel float must celery oval fish sample desk" -balance = 100_000_000_000_000 -# stx_address: ST4DCNKQY8M6Y2KJVZS29EPV0BQWRMGK27QYQK6Z - -[accounts.wallet_171] -mnemonic = "hope stamp credit axis radar column comic novel leaf legend chuckle axis toddler silk dilemma firm track ivory evidence seed cost skull album document" -balance = 100_000_000_000_000 -# stx_address: ST363P049B6N34MRXAW3XKTJW7AZGC3RAE6EPFWYR - -[accounts.wallet_172] -mnemonic = "corn dwarf casual tiger rookie subway ride glimpse cloth mansion admit option differ next ride prefer axis youth prosper fragile multiply shrug cream expose" -balance = 100_000_000_000_000 -# stx_address: ST1YQFY0GRWDXXP06ZT8J39BBE3TKYMZDS9F234KT - -[accounts.wallet_173] -mnemonic = "miss banner envelope punch cross predict canal cheap gallery shrimp involve drastic polar report kiwi toward trip author route coconut inherit sweet broken security" -balance = 100_000_000_000_000 -# stx_address: ST2Y54JHGJ12PWRK2Z8B4Q0D9FFK5X80A1K3JMPPZ - -[accounts.wallet_174] -mnemonic = "wet lucky minimum civil panel river tomato arrange spend creek mass harvest exclude member rude castle snow meat strategy exhibit shiver host upgrade lawn" -balance = 100_000_000_000_000 -# stx_address: ST1E2MP5QN9G9KRW593H8G91ZGQJC5PXSQ8516GX - -[accounts.wallet_175] -mnemonic = "film sausage angle fence basket vacant tape boat moment damp emerge match since bounce convince thrive venture laugh mind enroll swallow device trigger clarify" -balance = 100_000_000_000_000 -# stx_address: ST1K725HJ56SCAFKZG3978DMN5GCGBMCKT5RJT0HC - -[accounts.wallet_176] -mnemonic = "forward place cricket limit segment hard damage region burger disorder remain furnace flavor local attend forest material define gravity lunar antique curtain female fix" -balance = 100_000_000_000_000 -# stx_address: ST1EC5DKGC7YQSX7CDYYE95VGS57E5H0ASBNHSY44 - -[accounts.wallet_177] -mnemonic = "fan number garbage unable rhythm rifle prize vacuum drama desert pencil lemon ship shadow eagle ability crouch weapon health dream wide eye raw humor" -balance = 100_000_000_000_000 -# stx_address: ST3KQYV1ZE4KTMHMC1WZ7NWSY0GS5201NGDZRXVMZ - -[accounts.wallet_178] -mnemonic = "magnet bid dance runway burden ready ship bunker apart angry force afraid kangaroo invite behind group table expand evidence win finish dawn rent hold" -balance = 100_000_000_000_000 -# stx_address: ST2VSAYCV0ZE2RGSYGXV0HYQP7HCPYN1SEDYWQMQY - -[accounts.wallet_179] -mnemonic = "insect entry produce zoo combine slam capable assault rough absurd risk cream avocado height better iron vacuum volume chalk betray today denial stuff market" -balance = 100_000_000_000_000 -# stx_address: ST3CYCCWSM9JAMFFFFF7R75A2K2QYY4QR8Z8HP1RH - -[accounts.wallet_180] -mnemonic = "potato bright dog budget novel nephew protect dust usage fancy wealth flock fetch laugh sure another mushroom guitar bean garage hat snap draft physical" -balance = 100_000_000_000_000 -# stx_address: ST2RXPTVBZN8W5N0DXHTCG43F1CWQR9M72VJRRHFT - -[accounts.wallet_181] -mnemonic = "unable position transfer vanish pause stereo pioneer ketchup flush fruit obtain drum choice parrot inmate enough outer shield gate rebuild cruel liberty install profit" -balance = 100_000_000_000_000 -# stx_address: ST3W0476H89D2H73S0Y9A2JXDPTQYZNWR2FY0C0SA - -[accounts.wallet_182] -mnemonic = "broom rapid dwarf coffee bachelor seat lucky athlete ostrich quantum tongue effort proud scatter february human torch stairs seat game fix piece castle network" -balance = 100_000_000_000_000 -# stx_address: ST44GW7Q0BDX9YAEJTYRZ46J1YERHF7K1CCHG5TV - -[accounts.wallet_183] -mnemonic = "manage cradle rookie distance leader tired divorce kind bamboo resource distance lobster snow comic gown end misery hospital armor brick dad kidney fork crisp" -balance = 100_000_000_000_000 -# stx_address: ST2W6ZS6KNDWH3W1B7M57PYYNC11TGG5BE76RE4QS - -[accounts.wallet_184] -mnemonic = "soup tree vacant crouch cage snow whale jewel paper exotic aisle cushion fly calm canoe produce radar pet crew glance baby duck promote fat" -balance = 100_000_000_000_000 -# stx_address: STEMAKFR4ET99R8892PFYBQDV091GPCAP8PEGDG0 - -[accounts.wallet_185] -mnemonic = "float thank bone culture finish wink isolate grid desert spike uncle pony rare deer subject anchor horror trim false senior invite awkward pen detail" -balance = 100_000_000_000_000 -# stx_address: ST1XQQRZ55M0JHEREY5EK8RJYYM4788239NSJYNBY - -[accounts.wallet_186] -mnemonic = "spell hockey rug wood uniform brother salad frog order unlock acoustic act violin good borrow stadium fatal small timber raccoon tank rack joke history" -balance = 100_000_000_000_000 -# stx_address: ST24KAVGCAVZ9KB13V2SJX6CGNG6W6K7QTPZH8BEY - -[accounts.wallet_187] -mnemonic = "quote broom please luggage priority flight program laundry health token dignity mixture what grant more curve kit kite danger average perfect license animal hundred" -balance = 100_000_000_000_000 -# stx_address: ST2Y9RTGZFQGDR6E1HXHZ4XN20DHEKQ1S7ZGRVPWP - -[accounts.wallet_188] -mnemonic = "cake analyst hamster test warm away trip promote scrub network lottery island shoulder slow decorate butter put next wall scorpion alpha vehicle ceiling main" -balance = 100_000_000_000_000 -# stx_address: ST268VWPNMMD78PAB2Q4CHGPG034WVGT32J84RZTF - -[accounts.wallet_189] -mnemonic = "napkin culture motion album snack endless cereal shop demand sad claim cage craft physical nothing swing tooth lock able ball barrel peace sense morning" -balance = 100_000_000_000_000 -# stx_address: ST1M7FXTKF272XGDCQMFYYG1MGQYSN86BHS7PHR3B - -[accounts.wallet_190] -mnemonic = "rice price quote gospel twelve priority urge calm sting street music company hawk fiction fun pen peace piano inquiry beauty miss marine man joy" -balance = 100_000_000_000_000 -# stx_address: ST3XREQGPEYEWZMAHV0A3TQJBJF2K3H0MJK9YV8SD - -[accounts.wallet_191] -mnemonic = "toddler indicate brisk together loyal camp smart zero frozen chronic banner celery give pull kitchen clown exhibit income parade loan fan curve next helmet" -balance = 100_000_000_000_000 -# stx_address: ST2GK48NRZ8XQRC899CC5A140QWGTC25P0CDZYNHX - -[accounts.wallet_192] -mnemonic = "coin shrug entire noise volume favorite exist order wrong labor crush swim intact ethics forum paper patrol web smile net lemon dignity slogan nephew" -balance = 100_000_000_000_000 -# stx_address: ST1320P53RQT2YQRF3M2S0ZA4DAJEY3KY0C61TWH0 - -[accounts.wallet_193] -mnemonic = "news agent fantasy gloom crawl dilemma embark spread game doctor tortoise armor frozen palm power enforce harsh make diagram tennis walnut carpet unable decade" -balance = 100_000_000_000_000 -# stx_address: ST2F7X04DQJ59Q4E2GJ8VHHYVVZ9ZA2M60SYCWH16 - -[accounts.wallet_194] -mnemonic = "perfect quarter candy defy above sunny any census spring desk woman ring bulb correct orient senior crystal chair give stereo chef defense blossom check" -balance = 100_000_000_000_000 -# stx_address: STH7J5GD4X9J203EP8495CZ1PYZR4370WYSB659N - -[accounts.wallet_195] -mnemonic = "opera essence friend river extend burden giggle vapor often six cause always stadium include result state grief arrange blur place trust pitch step spend" -balance = 100_000_000_000_000 -# stx_address: ST5AZVA3YNZM9SBKJWXC30JRG6A6395FB7G7S442 - -[accounts.wallet_196] -mnemonic = "love crime life stone shadow twice salon transfer language code admit heavy matter churn domain trouble copper road twist sign hybrid cook warfare salt" -balance = 100_000_000_000_000 -# stx_address: STHPNPFCPM1FM896D9WJ9A26XZ582QE8NT1PT3KG - -[accounts.wallet_197] -mnemonic = "inch busy ceiling initial skin original symbol theme artefact tent series famous vanish season cushion tail visit pipe evidence giant shoulder fit vintage field" -balance = 100_000_000_000_000 -# stx_address: ST3NWAAJSXXN4YGQCJ3VY37HC60VXFDHBK66XG1XP - -[accounts.wallet_198] -mnemonic = "catalog ahead trouble start stove exact exile puppy finger citizen village rural arch cliff world tell pool stairs cricket guilt replace multiply kitchen cup" -balance = 100_000_000_000_000 -# stx_address: ST1SVKRSX8BB94BGN24EYYZN5S070HH3G4M02PV6T - -[accounts.wallet_199] -mnemonic = "wedding rely verb sick rotate since hazard suffer pole arrange delay slot manage express trust tag unhappy physical genius gun layer one agent wreck" -balance = 100_000_000_000_000 -# stx_address: ST24BHSCT28CB01XQP33Q2WCW3SP9SRRCZQE6R69B - -[accounts.wallet_200] -mnemonic = "squirrel radio smoke army damp width erupt kingdom essence absorb danger final trust select pattern north bubble adapt sudden allow main better trade morning" -balance = 100_000_000_000_000 -# stx_address: ST3V0HTDNSB9EPSS9C6FHZEZTBHBFMHAKE19R62R5 - -[accounts.wallet_201] -mnemonic = "negative unusual symptom again tragic west tip myself course rebel victory candy insect slim sport cost own relief announce auction divide rug armed anxiety" -balance = 100_000_000_000_000 -# stx_address: ST14S87109TYXV6DKW9DNG0C8YCZ3WJTNPD1FXEDP - -[accounts.wallet_202] -mnemonic = "cargo once alpha debris wolf swarm mirror friend inform nose quarter brief cancel session judge fiction guide tomato anger vague stem more topic source" -balance = 100_000_000_000_000 -# stx_address: ST2MZZRPYJDX50HGJ0P59YR9C2GAHMG6B1GS96ZC5 - -[accounts.wallet_203] -mnemonic = "toy keen normal whisper donor flight decorate cupboard swear barrel margin vivid lizard angle kite dash trumpet draft daughter month calm witness live hundred" -balance = 100_000_000_000_000 -# stx_address: STFE6PRG1F4CZ4KE7Z80P8W02379R9H4F0E42PX3 - -[accounts.wallet_204] -mnemonic = "try apology slogan salt cross ugly eagle input emotion bag kidney minute buddy ecology grab inside pencil now rookie outdoor rifle mix average screen" -balance = 100_000_000_000_000 -# stx_address: ST3605YC81PKVSXEV9REKPEX3H2J0X1DNPTYC122T - -[accounts.wallet_205] -mnemonic = "enact mouse sadness goose defy detect where embrace best world detail hamster eagle plastic real duty burden panda can budget then able shrimp glove" -balance = 100_000_000_000_000 -# stx_address: ST3ZB8QQ3Q5KGGA651F77TSZQSGBZVTJY14XS63M8 - -[accounts.wallet_206] -mnemonic = "narrow crop acid clock chicken still worry this unknown suggest repair brown lonely ordinary cart rocket under whip flight mountain collect town ugly barrel" -balance = 100_000_000_000_000 -# stx_address: STEXEB9FGQEMBMHKSN41CN888KC7DSE6ZRX10DVS - -[accounts.wallet_207] -mnemonic = "armor glare mammal dry wrist injury disagree rail calm decline palace cry acid equal inspire vapor steel inquiry sight rent pizza gloom reopen rice" -balance = 100_000_000_000_000 -# stx_address: STJJDXCCCZXXSWQRR6RVGJY4CKACWT2DQ52K1K2R - -[accounts.wallet_208] -mnemonic = "file garden kitten lock mixed innocent medal enable eager crazy excuse bacon wrap ordinary try burst possible kitchen want toilet junk air scorpion type" -balance = 100_000_000_000_000 -# stx_address: ST28VDXCKP2PZE22K9XJZNGXB19YEFQCZP2DKJVTS - -[accounts.wallet_209] -mnemonic = "job school hire decrease nose across ability orange disagree resource canal hundred tennis vehicle kind reward intact swallow quit park uncover hero win lunar" -balance = 100_000_000_000_000 -# stx_address: ST26NWC1F795FD8W66Q2GZBSW2WKJ46F2N2Y5SJJF - -[accounts.wallet_210] -mnemonic = "submit please come weekend broom help gas click void hero lava unveil install fuel wash sibling taxi bunker brass hint fine scene salt volume" -balance = 100_000_000_000_000 -# stx_address: ST2EJ4QM2VY839C5CZ20JSMXSDKJ201HBD3SV00YB - -[accounts.wallet_211] -mnemonic = "barrel lucky humble fall infant someone mango liquid zero safe eager quiz amount join steel label army build conduct girl social wealth world curious" -balance = 100_000_000_000_000 -# stx_address: ST1TGVT0MQ8ABM9RAY55190MQKQXGC8RNG6SZN7S9 - -[accounts.wallet_212] -mnemonic = "spray toilet lucky sunny picnic media manual wrestle sign federal season shrimp category frown kidney catalog bird suspect hip neither hungry unlock stable tortoise" -balance = 100_000_000_000_000 -# stx_address: ST2ZQ1VS4743Q9WVZP4P8XS5CTDRKXB809D2HP8KC - -[accounts.wallet_213] -mnemonic = "volcano shadow spike uphold process vivid chicken become face gadget budget okay rocket stumble police sort isolate onion few bench ozone sibling bundle neglect" -balance = 100_000_000_000_000 -# stx_address: ST3T7051YKBGBZF1ZXVTMAVRFE511Q6NWQNT4M82X - -[accounts.wallet_214] -mnemonic = "army primary genius section innocent process urge strategy much inherit family neglect heart mosquito zone kit mango oxygen round slide extend chef section hungry" -balance = 100_000_000_000_000 -# stx_address: STV8PXB4B7SAJWR2M1M2STVQ4GPG85S21DB3NJ69 - -[accounts.wallet_215] -mnemonic = "section market family shrimp sick loud settle vocal drill race decade decade scan rose electric rabbit course payment gold virtual modify pause gather erode" -balance = 100_000_000_000_000 -# stx_address: ST1TY9DK6NQNDJMRA6TZPFW8E8QTJ0J7KJX5QCRJE - -[accounts.wallet_216] -mnemonic = "again spray cloud truck delay later shy mandate account wheel invest auto record design piano right have decrease once syrup fence dish flower odor" -balance = 100_000_000_000_000 -# stx_address: ST2KYJQXYW09SHB501ZH307MFS5AHGWY8C1CTJF15 - -[accounts.wallet_217] -mnemonic = "worth toe rebuild media ticket clinic try pulse bamboo steel when aerobic fluid shield ivory drama dynamic latin jar evil mimic roast scan achieve" -balance = 100_000_000_000_000 -# stx_address: ST3SER8S101K1WG8KWSQMR9ZPTWQ5MKJXN6XC51WR - -[accounts.wallet_218] -mnemonic = "layer depart side unable axis parent orient safe false fatal keen spoil kite idle matter midnight visit will profit nothing detail square pull mail" -balance = 100_000_000_000_000 -# stx_address: ST3NMX0GMTKNPE9Y04GS88EWQ8DMSTCFTKCTATR7 - -[accounts.wallet_219] -mnemonic = "source super soldier permit forum tobacco chunk gasp avoid leisure wedding fault blanket sun hen ridge eager donate help voice easily scatter phrase anger" -balance = 100_000_000_000_000 -# stx_address: ST3X5J18PADYRM7NCSXJ55N7DZT259WREX672NGB6 - -[accounts.wallet_220] -mnemonic = "sustain afraid axis price else differ wife exile replace quiz radar order cool blame gown twin heart pizza mixture dizzy sword mass fiscal please" -balance = 100_000_000_000_000 -# stx_address: ST2CRZ1R2479M8NKYHMTNV8DS3PMHGPAWJFW6N9KE - -[accounts.wallet_221] -mnemonic = "giggle sail reduce pave consider kitchen rude tenant derive enrich forest mushroom dose chest acid beef track door hotel math net kind crucial prosper" -balance = 100_000_000_000_000 -# stx_address: ST1ERMMJT36GVJ2C3A0X1NG2G8ERV33GMWKWY4DBD - -[accounts.wallet_222] -mnemonic = "smile elevator test unfair eager curious other planet flush network tired cereal place chalk crouch grain carpet margin retreat aunt ten note they lazy" -balance = 100_000_000_000_000 -# stx_address: ST2V5CH351B1GKFECWPJH59Z8XVFCGFQ9PXKR68TS - -[accounts.wallet_223] -mnemonic = "dutch item shop power grant they local novel name actress stand service client lion faint when that glad arm right tattoo glance summer push" -balance = 100_000_000_000_000 -# stx_address: ST3QSQAEBY04YKV1PS4K8MQPJ7PBAX9BJQDB9JKFD - -[accounts.wallet_224] -mnemonic = "antenna museum mule citizen math stone clarify hub patrol lake gap assault win guitar goddess bulk capital dust mind unaware enact neck crime ugly" -balance = 100_000_000_000_000 -# stx_address: STAFM44R04REWVK57V1BHTZWG12RVSG7PCFAWV1R - -[accounts.wallet_225] -mnemonic = "toilet duck north slide width bundle jealous defense dial theme swarm core bracket regret loud weather lamp auction manage dilemma electric step connect lab" -balance = 100_000_000_000_000 -# stx_address: STBHBR1XAS64T8STDGJWXX7G3CRXA7MVY3A7T2AW - -[accounts.wallet_226] -mnemonic = "glow gauge awful current trash feel police exercise moon exit tuna fresh bulb stamp frown duty file owner nature ostrich wish duty symbol slogan" -balance = 100_000_000_000_000 -# stx_address: ST81MVBAYKCESJNECD23H33Y72CW7NPGJFQCJRFF - -[accounts.wallet_227] -mnemonic = "coach artist solar pretty survey actress tree inhale behind month fever wink lend human frog armor aspect ginger cloth benefit caught future cannon wall" -balance = 100_000_000_000_000 -# stx_address: ST1G0PBBASNZ5SPFHTWNW7FHE626DCSDAYGJNJ3Q4 - -[accounts.wallet_228] -mnemonic = "sure fluid inspire humble oven acid pen decline mansion post choose result legend sure canoe across balcony art reward mix left please leg accuse" -balance = 100_000_000_000_000 -# stx_address: STA9PTHD0E67SE95QFFDFGV2PWVRVQ7HPFM9EJ4H - -[accounts.wallet_229] -mnemonic = "quantum steak endorse business error century earn person impose drum save flush valid join wild penalty powder dwarf coffee height arctic bind slender glance" -balance = 100_000_000_000_000 -# stx_address: ST3862NN9WZGC0YR11SRBY4GDNTDEBY3XDPHAYEGS - -[accounts.wallet_230] -mnemonic = "address resemble fabric property engage merry issue famous case regret polar know crawl wing bench glove verify creek process abstract sugar size wave endorse" -balance = 100_000_000_000_000 -# stx_address: ST2XW1642ZMEBE9QJ06APRR329FY1PMEGRJJ1YC73 - -[accounts.wallet_231] -mnemonic = "hello spare home version angle grant afford immune orchard injury surprise fame barrel firm tourist rebel example simple rocket agree plug elite eyebrow rigid" -balance = 100_000_000_000_000 -# stx_address: ST1FA2ACH3SXSRHW32WF44CVKPK3GV352GVY03RFF - -[accounts.wallet_232] -mnemonic = "fire mandate equip corn either ice dream this swamp certain shiver cereal panel title disease throw talk alarm label turkey quantum nest worth this" -balance = 100_000_000_000_000 -# stx_address: ST3N0S7E63FKW5Q6VJSP0KRPBRXZK85ZX0S0MF1KS - -[accounts.wallet_233] -mnemonic = "pilot food strategy hint broccoli walk industry foil notable predict bind organ cushion habit toast label ranch sting salad violin uniform trigger noise tennis" -balance = 100_000_000_000_000 -# stx_address: STQ90FJT03B9V58J11CR83VSDW3J3FSVMPF88HJ7 - -[accounts.wallet_234] -mnemonic = "dignity furnace blind explain trial shy scissors barrel lounge curious attend predict wedding tell all interest truly cash spawn anger advice inside gas abandon" -balance = 100_000_000_000_000 -# stx_address: ST3A3W1AQS3PX342Y98P5T8D93410ZV58JT5H6TVM - -[accounts.wallet_235] -mnemonic = "guard special afford city window release song acquire muscle remain awesome buffalo bottom atom edit cabin steel cereal funny pride display security used open" -balance = 100_000_000_000_000 -# stx_address: ST2Z668XHZ3ZQM4ZZ86N1BMW9EHFFYKWK7ZV33VT1 - -[accounts.wallet_236] -mnemonic = "engine antenna fuel chuckle order advance put orient update blouse raise riot chapter car father process summer bid token client actor shine behave buffalo" -balance = 100_000_000_000_000 -# stx_address: ST24EYPX4KGXM9080EFXM84N3X39M15F91F46CYQY - -[accounts.wallet_237] -mnemonic = "girl stereo worth circle bag neutral actress human blood come demand topple peanut fade boss burden crop teach chalk cheap alarm square rail cupboard" -balance = 100_000_000_000_000 -# stx_address: STTAV72769X9A3408WKMKNJQ8HCJW5EHQK0G1B4N - -[accounts.wallet_238] -mnemonic = "glove tent daring leopard chief control monitor way staff junk affair volume dune work destroy achieve rely south legal polar rack quality submit cheap" -balance = 100_000_000_000_000 -# stx_address: ST3PBJ9EYCB4D7ZDDWV6G4XMS74JZ8QBPDTF10636 - -[accounts.wallet_239] -mnemonic = "ghost shaft loyal theory cluster tourist celery upgrade aunt science divorce wasp release decade grid news noise nest latin define capable cabin peasant mass" -balance = 100_000_000_000_000 -# stx_address: ST372SHXBNZ3QWZWG6T7SRY9HYVT98246MHR6M0M8 - -[accounts.wallet_240] -mnemonic = "song keen dog fold drift empower artist culture speed arrest saddle sponsor main swear subway drive gesture educate help easy must benefit sausage dizzy" -balance = 100_000_000_000_000 -# stx_address: ST1HHBQZKNY3FE4TN2ERBYCVGZV938EPV3RB1JCGK - -[accounts.wallet_241] -mnemonic = "parent pond lawsuit awake woman latin matter wild buffalo dose token will climb mass head vault quiz canoe absorb clock hurdle bunker alcohol poverty" -balance = 100_000_000_000_000 -# stx_address: ST2DS1T540027D8MMERQ8C7BWJ7D5XNSVSAS9KXH3 - -[accounts.wallet_242] -mnemonic = "undo crouch accident slide hand goddess frown clown picnic garage prize sail mean nation twist keep other forget wheel author private buyer column current" -balance = 100_000_000_000_000 -# stx_address: ST2YQWFV0HT8X900MKFQ7B0NSGTRDADN9RP99JY4D - -[accounts.wallet_243] -mnemonic = "car media photo proud vibrant noodle run brass slab rule electric decade trust rural dynamic amateur door shrug shield swing tornado own cart aim" -balance = 100_000_000_000_000 -# stx_address: ST2XJ3KH8BSD0KZBQBXBRPWK3VQ96C7HN5ZDZ79D4 - -[accounts.wallet_244] -mnemonic = "skill beef toddler amused doctor move expire ribbon boss possible cabbage visa flip salmon garage kiwi ski world joke quick kitchen auction view that" -balance = 100_000_000_000_000 -# stx_address: ST2APDCKZNGBWQYST6GGH9D27ZQCHQQBB30XS66J8 - -[accounts.wallet_245] -mnemonic = "genuine possible nasty flower rigid corn twice mandate machine embody jelly snap rich stock project length post twist edit crew mountain clever prepare verb" -balance = 100_000_000_000_000 -# stx_address: ST1DQWEPD76FCE10R695986PWSZ4F1XFZGM7KX78Y - -[accounts.wallet_246] -mnemonic = "fantasy collect neglect cover bread reopen depart night soda mean love spell right wire fiction help guilt lawsuit gun cement deal pumpkin maple release" -balance = 100_000_000_000_000 -# stx_address: STRD12XRPZVSK2HJ21R3FFW65JVGFTA7TY7MHH0W - -[accounts.wallet_247] -mnemonic = "dentist guard hen real puzzle bleak dose off push drum prefer artefact brisk hazard uncover destroy arrest chat mechanic song charge link copper shove" -balance = 100_000_000_000_000 -# stx_address: ST2GYMTA4108JSAE368S1M9SKQ3ZCP6H3VSX6HVPB - -[accounts.wallet_248] -mnemonic = "size crater order gun drift avocado great place because torch thank load hand cargo twelve ranch deny promote evoke hazard wreck toddler patrol shuffle" -balance = 100_000_000_000_000 -# stx_address: ST19TB1T3CT67QA091GEEFXM3PQVFVWEWYR2Q72J7 - -[accounts.wallet_249] -mnemonic = "path vendor strike swim bus erode false review people teach broken hood leopard cushion shove twenty machine brick elevator palm illness bone heart drift" -balance = 100_000_000_000_000 -# stx_address: ST28T0M2ZQ20T36SPYKXZVNE3T7MZRNGYHCYQCKEP - -[accounts.wallet_250] -mnemonic = "fitness hard million oil alley slab mistake zone chapter paper absorb medal canoe search cause pistol foot bike phrase vapor clock floor evoke buddy" -balance = 100_000_000_000_000 -# stx_address: ST3KTHGK5XFF36ZVB3CXAQ0TMBMQNFB3KS7ZRNPWE - -[accounts.wallet_251] -mnemonic = "impose actress cherry want food gaze cloth misery voyage adult grief math kit file matter grant chunk tree modify blame short pig business abandon" -balance = 100_000_000_000_000 -# stx_address: ST1JZV0A3MNCQYKXH62771BA44RKF3CEPEWV5CQ15 - -[accounts.wallet_252] -mnemonic = "awkward picture luxury bone weasel fold slab never dose senior assault vote urge voice spare universe quarter shift circle recall pull hawk furnace feel" -balance = 100_000_000_000_000 -# stx_address: ST210RQMJGSQ7P5ZMD1VA359X0HJ6Z1AVHW36PY0G - -[accounts.wallet_253] -mnemonic = "relax symptom erupt recall attack radar inmate elephant jaguar blast sweet hip gallery adjust violin silver script yellow yellow mesh good quit ice column" -balance = 100_000_000_000_000 -# stx_address: ST1A1PRZ9F5SPB65JHMN7RAR5ZKM6EKE8T93YC82W - -[accounts.wallet_254] -mnemonic = "space strike leaf early cabin furnace jaguar coil radio tenant special repeat bulb genuine choose maid best visual brass body brother floor model attitude" -balance = 100_000_000_000_000 -# stx_address: ST2XF55S30H47M01N11VPEJCP4MFEQK0R6HK8YHDS - -[accounts.wallet_255] -mnemonic = "tone require destroy ugly scrub kiwi diagram syrup nerve uncle twin crazy noble urban garlic obvious only fortune cheese party give salmon image width" -balance = 100_000_000_000_000 -# stx_address: STFFRH3F09F8P1F0F2B7Z401WVY6V2T1FVHE9FBR - -[accounts.wallet_256] -mnemonic = "oven screen merge drift breeze dial extend flavor hope planet summer total cycle boost half spin regret poet base strategy decline fox write blouse" -balance = 100_000_000_000_000 -# stx_address: ST18XGDMP2XDG8SKNZ41DPG6SREJMR5ND470CHT5B - -[accounts.wallet_257] -mnemonic = "fabric wait joy dinner brother toddler wall genre dash essence eager acquire answer option claim rule travel runway require dawn cry skull fix bird" -balance = 100_000_000_000_000 -# stx_address: STQ34Y2RT4P52RY5569CAX8SCVR6ZV0N02FC4RAZ - -[accounts.wallet_258] -mnemonic = "cycle cube ridge jelly special misery panic marriage language pave grant ship credit scene dynamic supply body point leave wrap tray embody begin doctor" -balance = 100_000_000_000_000 -# stx_address: STNZ3J2YE22VDXPN12TFFWEFZEHRTE2DTRTAPGYK - -[accounts.wallet_259] -mnemonic = "proof maze pear estate speak clock hover unknown hidden example ski theme safe wealth van amazing unveil village excuse beyond tired liberty raw glimpse" -balance = 100_000_000_000_000 -# stx_address: ST19J0FC9KFWFGFQP8T6VPAQSDZWPH4XG8ZH7H76C - -[accounts.wallet_260] -mnemonic = "loop gown angle jazz column inflict label gravity abuse tuition surround maximum depart drastic dove limit tooth arrest remember moon journey post elbow fury" -balance = 100_000_000_000_000 -# stx_address: ST1AQKP4293D6S4A9ZK3Y1P83ZBGBPSFH4JC6VB13 - -[accounts.wallet_261] -mnemonic = "insane vast valid toilet timber expose mosquito glide setup fat rhythm tuition night around mix rain dizzy grit knee rice vendor gate lunch screen" -balance = 100_000_000_000_000 -# stx_address: ST1TSWWSZ58FAW47HVYDEDGJNCJRYZ375VAJ96971 - -[accounts.wallet_262] -mnemonic = "mandate still include actual myself empty suit aspect remind fat have cousin grace enroll mad bind owner cheese dragon dutch keen deal valid west" -balance = 100_000_000_000_000 -# stx_address: ST2KF0ZFSHMCBNSBK8EQKF7RJXFX6VBR96MEW8RZ8 - -[accounts.wallet_263] -mnemonic = "side target piece still onion bounce sheriff swap thought scan minor dance antique rescue mom six sure bread pipe fog alter nurse shop main" -balance = 100_000_000_000_000 -# stx_address: ST36AHHV7WWMDES1N1WPVSAWR0Y5PJMA5BHRHSJNN - -[accounts.wallet_264] -mnemonic = "grass diary milk minimum million bachelor snow fence tail short level orbit frown salmon satoshi quiz fitness cave tribe guitar minimum tissue deliver danger" -balance = 100_000_000_000_000 -# stx_address: STS0J96DMCJ3XK55P64MQ2XMAVPK21NCWRMSFSWB - -[accounts.wallet_265] -mnemonic = "diary pelican attract solar donkey manual churn brother bounce swallow boss tomorrow cradle renew blood slow job clap web fever pony fun skull work" -balance = 100_000_000_000_000 -# stx_address: STY5011J6F899F85EDCSV7DGRRZCQ20GVKJFWCEM - -[accounts.wallet_266] -mnemonic = "anchor leisure blossom present diesel brass lounge olive frequent corn amazing flame balcony chicken claim clog machine slot equal tuition index uniform mistake utility" -balance = 100_000_000_000_000 -# stx_address: ST3MNM6128ERXFJB9VH0A41CZAATWZKEDR1GHKRGV - -[accounts.wallet_267] -mnemonic = "cover rifle price swarm pluck gas issue sugar theory input curve symptom pill focus neglect antique assist loan special myth excite business zebra target" -balance = 100_000_000_000_000 -# stx_address: ST12MNYMC96TW7C6NMNDWYCPW09X6659PAPPGVWQG - -[accounts.wallet_268] -mnemonic = "occur fever wink wet fix where pair member flash proud danger tide almost discover wear maze nest surge suspect endorse merry power barely list" -balance = 100_000_000_000_000 -# stx_address: STBM46MFC084ZMQ9ZKK81HV12NRJNE143C1WN6BV - -[accounts.wallet_269] -mnemonic = "faith panic damage normal early target invite scrap ramp venue hair belt phrase pigeon vicious scheme illegal like mean prison globe era credit among" -balance = 100_000_000_000_000 -# stx_address: ST3C4D478ZP3VVAXRJDVHRHX6J5YXWE5GEP4BQZVD - -[accounts.wallet_270] -mnemonic = "spike punch card tuition near noble early tray silent combine food this exhibit cushion error deputy captain melody property labor title snack nature case" -balance = 100_000_000_000_000 -# stx_address: ST2CRWMQGWB7E2819JA3JYCAH2FPYS92NM0T7QMW8 - -[accounts.wallet_271] -mnemonic = "nation off want depth please hip crunch combine supply opera very wall depth brown ignore shrimp issue near maid swing project eager absent history" -balance = 100_000_000_000_000 -# stx_address: ST2G52ZHB418J2AGJ2FT3FS9GEB4NMMD6A3H1WMD4 - -[accounts.wallet_272] -mnemonic = "ring rebuild festival top journey spray kingdom build raccoon critic rabbit snack try opera mixture fox moment notice clog ranch layer release spell square" -balance = 100_000_000_000_000 -# stx_address: STAX83AXMCZND0X3HYXYS0K4NNG66410RGWQ3SXD - -[accounts.wallet_273] -mnemonic = "large oil tissue detect weekend fresh olive also tired matrix enact thank brain exclude opinion kiwi stay ensure alcohol awkward engage vanish steak satoshi" -balance = 100_000_000_000_000 -# stx_address: ST3D730J0W7ZYRBYTKRD2RB7T0K8ERRVEPX8F1DVF - -[accounts.wallet_274] -mnemonic = "put people require opera size shove verify script record angle brass trigger tomato rough cat spy hotel elephant setup minimum pumpkin open woman lobster" -balance = 100_000_000_000_000 -# stx_address: STYA37DN4PTAR3M83WPWHV73KVPBBDGGW4FAF721 - -[accounts.wallet_275] -mnemonic = "hurdle kite race gentle wave pause hunt lecture shield royal caught oxygen doll trick sense cost have elite era hint way flee breeze liquid" -balance = 100_000_000_000_000 -# stx_address: STZRX6B4HY58CHAF0PWM7DCHCTYKGNV62VJNDYRA - -[accounts.wallet_276] -mnemonic = "mosquito nothing bounce anchor size estate canoe cook sand fan olive stove trumpet series flip size elephant hobby runway future exhaust resist valid lemon" -balance = 100_000_000_000_000 -# stx_address: ST112ARABY0EKE3S2HD1S2FP0J4DSBHZMZ2925C8T - -[accounts.wallet_277] -mnemonic = "spy air orchard lecture syrup traffic either uncover clean witness much small absurd detail utility drift shuffle defy dwarf hotel job calm acid cheese" -balance = 100_000_000_000_000 -# stx_address: ST2MP23P7HHTJAN1H0WEQ56F9GX19RWJNK3A17CT3 - -[accounts.wallet_278] -mnemonic = "lift sand dizzy utility finish fury flip town resemble combine flower void stick ball pattern parent either vivid eight sand few alley swarm juice" -balance = 100_000_000_000_000 -# stx_address: ST2E2TFWE14MJRGWSNTHK1CRQVM513QHJNVMAEAX - -[accounts.wallet_279] -mnemonic = "merry tortoise magnet squeeze pelican parrot sight tornado quantum angry ticket border island typical rail interest damage arch frozen private antique since habit rigid" -balance = 100_000_000_000_000 -# stx_address: ST3FCDKASSJPEKVZQV0ADE8VTWCC4QYY1BNX7TRJE - -[accounts.wallet_280] -mnemonic = "merit suggest rabbit where girl label horse marriage summer sport earn phrase theory ensure volcano job produce slight play exile kiwi often black repeat" -balance = 100_000_000_000_000 -# stx_address: ST172BC87JQR1SSNK4MB0XM3SWVQTZE88BTMEFVBX - -[accounts.wallet_281] -mnemonic = "weapon hope brand regular grid smooth enable cement assist symptom improve female divorce veteran nerve crumble balcony cry issue trophy drama meadow collect medal" -balance = 100_000_000_000_000 -# stx_address: ST27AHVK5TYF08DHD8WD8T212S379BJQH67Q4G6RD - -[accounts.wallet_282] -mnemonic = "neither buffalo slogan artefact fiscal weekend random tomorrow dog cupboard cube where also okay alert follow pear brave input mind cement celery truth modify" -balance = 100_000_000_000_000 -# stx_address: ST3FZN9NAJXPQJRRDHD1XWKC55VTK7523QC3ACY1N - -[accounts.wallet_283] -mnemonic = "window color model off water glad trial stage snap jazz shove wise attract jazz clip mansion alien guard police apple cheap nest bomb survey" -balance = 100_000_000_000_000 -# stx_address: ST14JCGKFXD40EEA3VBBS0CVDXGG5QYCBY0CMFC84 - -[accounts.wallet_284] -mnemonic = "link toe purchase remain modify laptop gap message quality fog half absent speak learn shuffle donor animal sunset popular brush antenna usual protect jar" -balance = 100_000_000_000_000 -# stx_address: ST4VT08M4YHAT8G2D55194P4N08DEVDG6K159J4V - -[accounts.wallet_285] -mnemonic = "confirm turtle parent alley planet bridge forum roof scout echo together enlist tomorrow rally flame cart second cause slender aisle crane gap brave nothing" -balance = 100_000_000_000_000 -# stx_address: ST2199Y9CM5F10TR4TD44AHWZJB9RPNZV9E50XKZC - -[accounts.wallet_286] -mnemonic = "glove knee mercy sail hope miracle circle hand that gadget spy stadium country warfare sure pond cancel edge palace film puzzle eagle fabric muscle" -balance = 100_000_000_000_000 -# stx_address: ST3116AAKYVQM0JQFMTD9MP27CAM93KR71K4JGZ3Y - -[accounts.wallet_287] -mnemonic = "safe frost curve super normal soda shoulder state urge help thing lift light learn swear cattle violin ritual report wash rain combine job gap" -balance = 100_000_000_000_000 -# stx_address: ST2DKAKYTR20FVWX9X62YQ8KY94B3SXZEX3Z850C7 - -[accounts.wallet_288] -mnemonic = "sad banana enforce height warrior oil add effort where rebel pledge dove tackle victory million pelican milk vast ridge measure survey fall animal fire" -balance = 100_000_000_000_000 -# stx_address: ST5NN3TJEVZSAP82MH4BA2BPTJ7WAA196ZJ18FBX - -[accounts.wallet_289] -mnemonic = "release piece image fancy ketchup improve permit camera man same ceiling cook slim buddy wide stereo uphold snap search half inside dash blur math" -balance = 100_000_000_000_000 -# stx_address: ST1G39YHBMPAY3M5HXECJX28VWK29Q30AV3QQGZJ0 - -[accounts.wallet_290] -mnemonic = "they flee slam crumble armor crack frequent video stuff urge gospel rain deny raw resemble team inform wolf buddy oxygen sponsor hospital knee track" -balance = 100_000_000_000_000 -# stx_address: STCYS3GMYXJ179Y0BEM2Q938K9YJPE2T827X9BGG - -[accounts.wallet_291] -mnemonic = "gauge gasp struggle enlist pull century math hover van put balance crash wise violin pet dream bacon switch spoon best smart federal lake notable" -balance = 100_000_000_000_000 -# stx_address: ST2F2D765S15Z50437MMVJK5N74W8AEN7S8P7FGC7 - -[accounts.wallet_292] -mnemonic = "then firm luxury inflict gospel old wonder image crucial oil green any innocent ordinary beauty wonder cannon crawl era merge awkward weasel reduce tumble" -balance = 100_000_000_000_000 -# stx_address: ST9G2K8Z4HE5XPV00V9DAZZF13981PX38WQV0VDS - -[accounts.wallet_293] -mnemonic = "lawsuit recipe quality ramp keep athlete horse comfort safe security junior river excess scheme drink okay tail lyrics abuse ghost cave token ice return" -balance = 100_000_000_000_000 -# stx_address: ST36M7B28BDRMFXXTS76X22GGMEN51SA5EXZYYWBC - -[accounts.wallet_294] -mnemonic = "uphold winter guard torch object muffin short nothing citizen isolate inspire major first season grain vast access hungry talent tongue clerk scrub poem scout" -balance = 100_000_000_000_000 -# stx_address: ST230BFE44WBW7S7077DNQBN5S2868ZKN2P7Y6T7M - -[accounts.wallet_295] -mnemonic = "moon hair slot misery gravity chalk lobster name reform can around mom confirm devote door job ahead avocado crowd hidden fitness engage run oil" -balance = 100_000_000_000_000 -# stx_address: ST1JSFPPMD5BYYW8NJ22VRY3C58G46041H4Q7AEA6 - -[accounts.wallet_296] -mnemonic = "wood force theory series donate festival suffer message vacant wood define story near year sound galaxy video width february display another impose cabin badge" -balance = 100_000_000_000_000 -# stx_address: ST1FZZ8WFE6SRD4W3YS8AC4XJTNGYZGXK2RT5K6EK - -[accounts.wallet_297] -mnemonic = "receive until robust loyal alone oval bone jazz update nation taxi bone wrap equip confirm fluid have raw either brick winner dust core one" -balance = 100_000_000_000_000 -# stx_address: ST3J2FN3FS6AVWW1C7D87J5RMK860YKE8JS55GCJB - -[accounts.wallet_298] -mnemonic = "warm pioneer obscure soldier never aerobic company drift enforce bunker dinner frog bid evil tissue fresh arch moral table embrace panther hunt reveal peasant" -balance = 100_000_000_000_000 -# stx_address: ST3CBP0S93SBVH24646HXRKA02BHA8J3DHV1MZZMZ - -[accounts.wallet_299] -mnemonic = "goddess shoot myth crash purchase junk raven gown hat valid mushroom weasel hidden opera regular saddle rival bulk chapter paper three nothing moon fuel" -balance = 100_000_000_000_000 -# stx_address: ST207PMA3S3GC9JN4HR1A4W77RVB06NXZGD388A8F - -[accounts.wallet_300] -mnemonic = "slim wild bridge shiver clinic grain music elegant cross monkey inform guilt green misery canyon sight letter believe attract card twenty ask duck boy" -balance = 100_000_000_000_000 -# stx_address: ST25GS8Q6ST2WY0XY80M2T9543H15PMRRQKEGVSA0 +# [accounts.wallet_10] +# mnemonic = "benefit raw tape silver pulp spell disorder sun gate finish plastic kangaroo please glare perfect cave sort weird ivory avoid text tent weasel book" +# balance = 100_000_000_000_000 +# # stx_address: ST3CD3T03P3Z8RMAYR7S6BZQ65QNYS9W18QHHJ4KM + +# [accounts.wallet_11] +# mnemonic = "aisle excuse bachelor depart live flag essay improve coffee lumber water acquire muffin medal cart crouch language squeeze satoshi staff mean rubber cereal fog" +# balance = 100_000_000_000_000 +# # stx_address: ST37ZZMNV6T9Q7SFMHA01070F2QKZ9XPF06WPD527 + +# [accounts.wallet_12] +# mnemonic = "viable episode stumble piano pill glad reopen arena collect crew unhappy hair ripple sad scout open miss title zero author nation number miss slogan" +# balance = 100_000_000_000_000 +# # stx_address: ST3K7SXC4V640YW26XBXR5PB21N7XFZ1ECKNF2C8B + +# [accounts.wallet_13] +# mnemonic = "net lottery abuse galaxy cook strategy fix lunar kite draw escape ostrich release journey bonus cycle vacuum leaf mule angle chuckle deposit employ erode" +# balance = 100_000_000_000_000 +# # stx_address: ST7MG0WM7AER9D9HV4QCMJDZDZBEEX5HMQTZZG7N + +# [accounts.wallet_14] +# mnemonic = "tuition coral fashion coach elegant benefit left under pet broken battle cloud supply latin pyramid denial soldier over equip title end marriage problem local" +# balance = 100_000_000_000_000 +# # stx_address: ST2PKP8HH95VTP6MFJXWND57NSY8S22HEC4D5WP6E + +# [accounts.wallet_15] +# mnemonic = "ask beyond whisper bless poverty immense junior shiver type minor make debris sound hour seven citizen order conduct change bacon stay acoustic key canal" +# balance = 100_000_000_000_000 +# # stx_address: ST3EHE9BKW6662HM8GTTBQKAVFCZR2HTEXVYYZW6Z + +# [accounts.wallet_16] +# mnemonic = "biology soul mouse mimic razor unique eyebrow base lamp amount brush type track woman neutral lizard island easy rhythm foam divert mosquito welcome lesson" +# balance = 100_000_000_000_000 +# # stx_address: ST2VY5NGK04RYHRM2ZVJPJN11C34KDEKK2RMFG69Q + +# [accounts.wallet_17] +# mnemonic = "purchase staff explain trap whip joy logic height steak increase tone update accuse delay fury harbor solve survey history similar monitor scrub control check" +# balance = 100_000_000_000_000 +# # stx_address: ST1AP1SWES8TFVX3WKYS3JT3530DBMDWCK62QZNNQ + +# [accounts.wallet_18] +# mnemonic = "script fix hover stomach limb response spawn foam mention battle together exact main believe labor magic unlock jacket raven wife bread want heavy worth" +# balance = 100_000_000_000_000 +# # stx_address: STJS6RB142BYG7ZSSA003N7MT1TSWTGTR78G0MCJ + +# [accounts.wallet_19] +# mnemonic = "master squirrel salt pitch wrist crazy embrace coffee below beach huge apology paper foster vast leisure desk battle letter gain stumble name floor lyrics" +# balance = 100_000_000_000_000 +# # stx_address: ST10N2K2GPCN67C8SQAS811PT2KCDEJ1S0QD6MCMC + +# [accounts.wallet_20] +# mnemonic = "lava rug rude energy tunnel wolf live moral color arrive raven glory shoot rural kid still noise potato barely taxi expand deposit grow firm" +# balance = 100_000_000_000_000 +# # stx_address: ST32DZP6WV5851N9QHSXAVHT2H41PZNB5MDT295VJ + +# [accounts.wallet_21] +# mnemonic = "add abuse photo shoe timber cup filter appear flame myth charge empty wreck copy canoe umbrella crop damage senior typical return spare armor evoke" +# balance = 100_000_000_000_000 +# # stx_address: ST361ME06ZBVNZXKF5W095QBMFZ2HQ3F48DBBP55D + +# [accounts.wallet_22] +# mnemonic = "whale frown brush toe supreme hill trigger party cram display assume cool gorilla mirror scissors corn person tired solve soft merit nut bundle grass" +# balance = 100_000_000_000_000 +# # stx_address: ST2CP5W2G0DSREJVWWJP6TTHEAFW98K0XW84J2Q4T + +# [accounts.wallet_23] +# mnemonic = "board uncover grow illegal sand mushroom fabric case addict tower embark galaxy educate dance cupboard exile boring connect flash unit pony embody toast bring" +# balance = 100_000_000_000_000 +# # stx_address: ST1A844HC4Y55YAYH0XE4N2A98MNV6N27SF7Z0CEK + +# [accounts.wallet_24] +# mnemonic = "extra dream emerge open cram danger vessel diamond merit camp sign exact any shy desert enact wrist universe settle bleak toe blossom cry escape" +# balance = 100_000_000_000_000 +# # stx_address: ST13JYNQXJPNN8XQBPBQH9SWDKA8F2BJG10TTW8K5 + +# [accounts.wallet_25] +# mnemonic = "liberty swear tide potato cannon exercise vendor nation coconut circle few rude episode point power field boil sentence jungle change floor gain diamond twice" +# balance = 100_000_000_000_000 +# # stx_address: ST1ZT94HHXNQ9QKH0TREWQ01V2Z1KC44M05EJZ4C5 + +# [accounts.wallet_26] +# mnemonic = "where purchase lobster clump try adjust rally few stock burst tissue grain outer coral ready book squirrel olive pudding erupt vanish danger visual place" +# balance = 100_000_000_000_000 +# # stx_address: ST3CTFQ90STH7KJ64B3CZGQRDSPFAPHZ7884EHC51 + +# [accounts.wallet_27] +# mnemonic = "inch order borrow high sorry clog salt pretty clarify dinosaur nominee draft laundry radar buddy doctor detect rubber hamster swap swing discover educate marine" +# balance = 100_000_000_000_000 +# # stx_address: ST1K9H8ZS8KRD9CXM5WQCMM9D44MY9CQ18SPQ18JY + +# [accounts.wallet_28] +# mnemonic = "table scatter neither rich habit labor clay scout glare exit quiz donkey also antenna step catch shop number craft rifle exercise alley climb inspire" +# balance = 100_000_000_000_000 +# # stx_address: ST219BCA7C5R21Q4QA1903M2X57DTYANQDXV95AY1 + +# [accounts.wallet_29] +# mnemonic = "run try pretty sight draw clarify amused process aware sound gadget gossip column list lunch casino describe also absent observe limit turn spring medal" +# balance = 100_000_000_000_000 +# # stx_address: ST37ENW53XXK7MR4PG41TB0FXXQ8X63V9FTY9R3E7 + +# [accounts.wallet_30] +# mnemonic = "fortune garden horse swarm hour coyote cushion actress minor tree vapor provide general help weapon view gift valley palace include casual actress patient urban" +# balance = 100_000_000_000_000 +# # stx_address: ST26EEZN4SPPP6VFWRG26DGX9JAT10GEN6XFEJSJ1 + +# [accounts.wallet_31] +# mnemonic = "glimpse student snap genuine taxi genuine useful erupt once kit tired display token update connect fancy powder symptom double describe strike only still mechanic" +# balance = 100_000_000_000_000 +# # stx_address: STY6BX433BDNTMN7WNBQ38ZYXDV25ACRP7TB01C8 + +# [accounts.wallet_32] +# mnemonic = "modify bright custom ancient wrist negative memory school okay talent sheriff limit name sniff radar prepare repair sand rabbit essence amateur twist super portion" +# balance = 100_000_000_000_000 +# # stx_address: ST19PR9QMQK3SF7R35WTG96F147HSFV16MH5P8Q18 + +# [accounts.wallet_33] +# mnemonic = "nature success brown size group rose company cost action chunk obey okay garment auction move mule smooth pencil real liquid similar lake horn fish" +# balance = 100_000_000_000_000 +# # stx_address: ST2QB4R01DRY9GYW8R8VPJ7WNCDTYK6Z1EHJT2P26 + +# [accounts.wallet_34] +# mnemonic = "sustain emotion change dirt rally unknown very drive dilemma pizza spread scare stem mechanic core manage world name actual record trap artist glove fire" +# balance = 100_000_000_000_000 +# # stx_address: ST2E0J70Y06D20TY51ZBHPN2ZD9S08VXZBXT5RGFP + +# [accounts.wallet_35] +# mnemonic = "fire slim aunt van kangaroo habit sport sure urban wheel scout valid wedding diary member kitchen find submit parade sell major exhibit wear try" +# balance = 100_000_000_000_000 +# # stx_address: ST1NWYATP33Y56DE2JP2300MFHPYWB29KWN2PGYKK + +# [accounts.wallet_36] +# mnemonic = "frown digital myth pottery cousin pelican clever wonder piece wear clerk uniform glare juice stem exhibit biology enjoy dash cigar report title maple ice" +# balance = 100_000_000_000_000 +# # stx_address: ST25Q6FYQTPYQVB3ZP8NRT0FYTKKWM0R6RTA06G3F + +# [accounts.wallet_37] +# mnemonic = "august sunny spare scorpion skull anger excess prevent method slush mutual ketchup crew split multiply sorry wagon replace portion frequent ethics easy crumble aspect" +# balance = 100_000_000_000_000 +# # stx_address: ST343RAG54HF5JRX4M1RT2BW8582PTX2C9DYACM9H + +# [accounts.wallet_38] +# mnemonic = "hazard present snack woman alien retreat divide basic nice welcome round amused obvious nut cereal action top high duty help balcony quote shock improve" +# balance = 100_000_000_000_000 +# # stx_address: STGTQ454731S4XX3A9VRAAAP7RYT0RCJBBQ1DJ1J + +# [accounts.wallet_39] +# mnemonic = "sock budget rebel patient people source sport farm post airport area option boil off brief off habit type problem glare distance brief category bounce" +# balance = 100_000_000_000_000 +# # stx_address: ST27A7VMKV7KKQH8SDM3TJRJJ8SWBGR7MFFEXXTWH + +# [accounts.wallet_40] +# mnemonic = "viable liar doctor autumn risk joke brown system clog wine fat life kiss cushion episode reveal gym pear uphold length humor copy jar poem" +# balance = 100_000_000_000_000 +# # stx_address: ST1YHDJMMZSA2FFRF5AXAM0SRF9WMQHKS69FJ1SXS + +# [accounts.wallet_41] +# mnemonic = "assist oval attack various stuff chest rabbit cool tenant powder invest arena pioneer siege tiny visual claw often day assist spoil oval stairs glow" +# balance = 100_000_000_000_000 +# # stx_address: ST2F4Y9XFQMH72NVSS1WMZQBS7CKPA1ZKR77CFY1M + +# [accounts.wallet_42] +# mnemonic = "sudden habit repair spawn finger smoke above make foot unique scan wagon soccer slide knee usage bubble reject turtle toilet poet carry symbol marriage" +# balance = 100_000_000_000_000 +# # stx_address: ST2NR8V7ZZKHVK4SHSHX36GZS9C7FB8AW59AA52G5 + +# [accounts.wallet_43] +# mnemonic = "inject velvet exotic jazz pistol into crime switch pave virus total brain false scissors unfold potato casual mask unhappy cube shy please pumpkin width" +# balance = 100_000_000_000_000 +# # stx_address: ST28V3XE7F16RYZYBQP6HATHAXF05MYRMS7P9JVBA + +# [accounts.wallet_44] +# mnemonic = "allow alpha future spy wolf west wine opinion segment buzz blanket license movie float abstract renew grocery clerk ankle multiply marine fantasy nice patrol" +# balance = 100_000_000_000_000 +# # stx_address: ST1GW4TR2DR4DVPR9Z3GCMZTFS8KQQWAPHF70CA1F + +# [accounts.wallet_45] +# mnemonic = "bread mixed differ shallow orient salt tumble ginger vibrant future tomorrow similar promote congress useful treat outdoor science exclude uniform balcony boost decorate timber" +# balance = 100_000_000_000_000 +# # stx_address: STKEXSABYW6111F7MJ696SS5N1YGN8CDEVMP49Q0 + +# [accounts.wallet_46] +# mnemonic = "alcohol please destroy north rug explain october predict board response siege jump baby guide praise sketch virtual attend auto kidney glass jacket midnight property" +# balance = 100_000_000_000_000 +# # stx_address: STAK99C5P0J3A9Y5DNPWETNC82JPC6SQ4F88413W + +# [accounts.wallet_47] +# mnemonic = "post cruel comic forward shine child smart veteran easy legal spirit mother soccer stage danger shoulder captain disorder language luxury champion salmon field true" +# balance = 100_000_000_000_000 +# # stx_address: ST3R2ZQHZAJXYYKT83Q0SZTTZDXEKF0V77QA6K713 + +# [accounts.wallet_48] +# mnemonic = "wise scout runway fluid squirrel wing lock stem dutch team sudden tired process glue drink lemon upset shadow naive honey surge point praise airport" +# balance = 100_000_000_000_000 +# # stx_address: ST34S6C5J740H3F06NT2822ZK1KAHC7E21T0X8CTX + +# [accounts.wallet_49] +# mnemonic = "struggle ladder fantasy cart advice umbrella render mechanic skin renew vocal shadow blue saddle flag lamp aerobic relief cabin tuition local relief bring punch" +# balance = 100_000_000_000_000 +# # stx_address: ST3J6BAT10DSN9SBKAGE3TK15W95PCW20NPV34Q1C + +# [accounts.wallet_50] +# mnemonic = "impose monster oblige they delay device clean vacuum nominee august siege journey injury sing audit approve gentle wedding place body saddle august wool tuna" +# balance = 100_000_000_000_000 +# # stx_address: ST23C73YP53S4K7780W71J8NJACZJ3621WN1T33V2 + +# [accounts.wallet_51] +# mnemonic = "armed win attack domain wrong first token around sea confirm cup flame arrange tilt scissors series toy wisdom pull jar course mobile hamster salmon" +# balance = 100_000_000_000_000 +# # stx_address: ST3C3XY6ECHZJ2RDBSF31404DE1SMSTVBF1ZPG5SH + +# [accounts.wallet_52] +# mnemonic = "federal paper volcano casual want muscle run rocket suggest august word gain fiction museum engine immune below thunder unusual twelve sustain rude blanket excite" +# balance = 100_000_000_000_000 +# # stx_address: ST2A7RX6C1WJA0ZYF21R04K1X4AKFDZXFWKY2GRSW + +# [accounts.wallet_53] +# mnemonic = "obvious try artwork olympic time coach battle park hobby hundred wild mind victory electric truth goat limb gaze grit dial culture digital reflect pill" +# balance = 100_000_000_000_000 +# # stx_address: ST27JKP4CEPSHXQ317AAJQ2VGVDA5EBER7ZMBGTVF + +# [accounts.wallet_54] +# mnemonic = "love spoon abuse say banner coconut symptom pole skin ribbon pumpkin rally treat flee anger silent boil twelve ask confirm tomato dragon layer label" +# balance = 100_000_000_000_000 +# # stx_address: ST2334V3B3X4HJQYQCYA23XGT589X6GRKZ8CRT8YD + +# [accounts.wallet_55] +# mnemonic = "wide pitch plunge equal school puppy onion retire clock toddler census jealous verify reopen oblige sunny carpet mammal dove polar picnic square worth lock" +# balance = 100_000_000_000_000 +# # stx_address: ST35X8BXHXVKW0CFZBV2B1TJJTHD7M89CD1ZFD759 + +# [accounts.wallet_56] +# mnemonic = "actress start jelly rack outer net whip advance horn slim daring flee exist enroll ball eight cattle saddle bridge more alien radio hat trash" +# balance = 100_000_000_000_000 +# # stx_address: ST1P0W50P6MFKD4YKNCJ437SJ7037TTBC049ZR409 + +# [accounts.wallet_57] +# mnemonic = "nation arrow peasant crowd pistol decorate venue soldier vacuum license cotton object pudding actor opinion refuse tag close wire maze derive visit suffer fabric" +# balance = 100_000_000_000_000 +# # stx_address: ST26F9PFXR1MFPF9MBZ1VA4GETAWCBXS4ERD5EM3E + +# [accounts.wallet_58] +# mnemonic = "weird spare city arrest snack main slender ignore spice theme morning miracle tube pelican original daughter spawn process pulse silk enlist aware timber hill" +# balance = 100_000_000_000_000 +# # stx_address: ST2HY3P2SD4SZV55E91WN3K4C5JKHAZ1XSVWKYYW1 + +# [accounts.wallet_59] +# mnemonic = "chaos result cherry insect number object coast priority toilet wrestle lunar couch hat kite payment solid illness dawn yard dune need crunch twenty waste" +# balance = 100_000_000_000_000 +# # stx_address: STKS8VV5HA7K1NJM57BKWBYG23VDDKFF2G8BM9TC + +# [accounts.wallet_60] +# mnemonic = "resist casino fork medal theme jacket this rich huge egg domain basket obvious inmate summer vital stadium reunion disease before myth problem all control" +# balance = 100_000_000_000_000 +# # stx_address: ST8Y4ZWX5ZEVG224CQ4EXD1B5H5HWY59JMFSFCBY + +# [accounts.wallet_61] +# mnemonic = "hair dilemma wreck play fresh push junk push pigeon series loud pulp release switch also clog ocean business buyer boat law twin front lucky" +# balance = 100_000_000_000_000 +# # stx_address: ST3FSXHEE9CBR1QTK31150FEB0CZM290QPX07WSAC + +# [accounts.wallet_62] +# mnemonic = "cereal auto indoor forest isolate annual lesson rebel wear scan ask fame common famous barely laptop poet term kite axis very doll speak bullet" +# balance = 100_000_000_000_000 +# # stx_address: ST3RDDM60SFZY7D1CFEN69EK2P17GB9WKTQNFTBPZ + +# [accounts.wallet_63] +# mnemonic = "thrive opera dose owner cook caught merit move exercise fame mail spatial program sun empower excess foot praise reason clip profit olympic when render" +# balance = 100_000_000_000_000 +# # stx_address: STNJHGHHXR51WW7N0JDANT5DT1GK39QKHEVH5AD4 + +# [accounts.wallet_64] +# mnemonic = "bean hollow mass bullet stove outdoor regular bring educate bird tissue scare town throw hurry enforce clean pool work bunker evidence lamp favorite scorpion" +# balance = 100_000_000_000_000 +# # stx_address: ST1TZ6MCJZ066RM3JTP1KNZGV6SD068A0D7AAH71G + +# [accounts.wallet_65] +# mnemonic = "also flash ridge shoulder harbor net dry badge joy sausage armed now curve napkin retreat return priority note fiction elbow junior jelly actual mammal" +# balance = 100_000_000_000_000 +# # stx_address: ST298G8HHCSAMWRX5JGYNX2KDC6YCV62RBMP6ZFGQ + +# [accounts.wallet_66] +# mnemonic = "evoke club emotion offer column trust joy solid future scout year wall iron popular scrub deliver invest razor album chronic shuffle evolve notable call" +# balance = 100_000_000_000_000 +# # stx_address: ST2XNVGS7K8FYJQER6BMVX4SGKM9MYHVGVS00S7E7 + +# [accounts.wallet_67] +# mnemonic = "genre bundle sphere helmet rocket all service tennis minor shrug quality grape upgrade season roast gossip cousin cube walk admit tube clerk trip aspect" +# balance = 100_000_000_000_000 +# # stx_address: ST2QN5GJ0BRH5MFHMT3RAG1GG2XF7W3414G1666H0 + +# [accounts.wallet_68] +# mnemonic = "file juice tent track slab staff aerobic parrot system affair hybrid garlic rotate permit echo genius link dinosaur wrap sketch recycle correct raw deny" +# balance = 100_000_000_000_000 +# # stx_address: ST10A4GXZ6YF5A5CZY5F0V10WTJ5C21JZWKZT7TE0 + +# [accounts.wallet_69] +# mnemonic = "whale peasant obtain cheap park fee merit carbon faculty tilt conduct road skate round sauce student either output boil draft auto dust fruit case" +# balance = 100_000_000_000_000 +# # stx_address: ST2VM2PP828DAQQ14XM5FRZ0RMFNKT1HAAD6HNXJD + +# [accounts.wallet_70] +# mnemonic = "orchard grow harvest among eternal topic upset alter minor match embody sun bachelor worth print record slender popular manual lizard acoustic indicate letter then" +# balance = 100_000_000_000_000 +# # stx_address: ST3AXH10DE1D09XMBGV9A3Y29TVEBGHG9V79PNZA9 + +# [accounts.wallet_71] +# mnemonic = "leave energy midnight upon solar axis olive insect able obey mule expand public divorce mechanic lazy jazz cabin dilemma vanish pride fuel joy style" +# balance = 100_000_000_000_000 +# # stx_address: ST3KEKZ2EGT7NDF97C8SA0MRT2S6VD5K6DVK0ZQDW + +# [accounts.wallet_72] +# mnemonic = "nose donkey heart spring arena dilemma gasp shiver afford staff taste staff dance good stay response rule frame fire focus clump drip filter month" +# balance = 100_000_000_000_000 +# # stx_address: ST2ZBVH1NJ88P0942TF1DVT58F1DJ4M2CP5EX66G1 + +# [accounts.wallet_73] +# mnemonic = "pudding effort web chief viable bonus sausage girl hat remove behave banana width current sorry please dry tone matrix stick boat luxury shuffle fire" +# balance = 100_000_000_000_000 +# # stx_address: ST3QXN8YT9YFTEKFD4FB97PGMS21H3MZ6FR8XS78A + +# [accounts.wallet_74] +# mnemonic = "intact come canvas giggle skill weapon defense viable before attend crawl quit shock foot state stumble force enforce track tag find awkward gate memory" +# balance = 100_000_000_000_000 +# # stx_address: ST2NJDJ7VZ4ADR7C5SN9X8T1341DCEM7YPNJM8E81 + +# [accounts.wallet_75] +# mnemonic = "sample proof below attend action adapt negative depart pupil wild number toss near laundry powder illegal argue shrug joy true relief culture canoe defy" +# balance = 100_000_000_000_000 +# # stx_address: ST1HE981KNJDG670ESVP0DEAEC68FSTBN4NGHR5FP + +# [accounts.wallet_76] +# mnemonic = "milk cloth manual soon there hood peasant uncover alone evil addict belt buffalo comfort machine bamboo perfect naive clever mimic please infant beauty banner" +# balance = 100_000_000_000_000 +# # stx_address: STTY1EAVR5C23XR34JK8GES3TNX4TY3HTQ17CPD7 + +# [accounts.wallet_77] +# mnemonic = "purity admit report toddler wash crack have parade used festival helmet punch cradle quiz dose brass party van wave impose planet goat proud dinner" +# balance = 100_000_000_000_000 +# # stx_address: ST1P2NB6GEGYB67AMHAD8Z72EHKM741A5RZXPGAF2 + +# [accounts.wallet_78] +# mnemonic = "member chest same gravity crucial couch pizza little bus friend pilot beyond idle hip rate decrease gauge heavy convince waste behave display series coin" +# balance = 100_000_000_000_000 +# # stx_address: ST2QQZ6DGH4GPJD8YZG5TG99BA4M327SPDJJJG6CT + +# [accounts.wallet_79] +# mnemonic = "doctor suit lamp tonight submit sleep benefit invite organ catalog elegant team mutual trial fall alert parade tragic hazard card shoot song best tiger" +# balance = 100_000_000_000_000 +# # stx_address: ST37BZYYSHZXT33BK47QD6KMZTPFG7Q77P2APP0M7 + +# [accounts.wallet_80] +# mnemonic = "language maze shuffle latin hundred unaware race abuse humble force latin raven add middle book music lobster dolphin leisure code blush pipe decide drip" +# balance = 100_000_000_000_000 +# # stx_address: ST23ZMRTEFMDXFF6X0V84WD7NB5X00B80BCNAX0HM + +# [accounts.wallet_81] +# mnemonic = "twin diamond genre father expect media taste glory habit output game eagle vehicle december enforce zero shallow like situate someone exile balcony project amateur" +# balance = 100_000_000_000_000 +# # stx_address: ST1BD939ZBWSZFABB4E3HCWNG4B4ZWTQGF2AD95ZV + +# [accounts.wallet_82] +# mnemonic = "hill banana giant myth admit bench economy harsh afraid broken bicycle whisper scale grow parent layer blossom crash early plastic spike barrel mention phone" +# balance = 100_000_000_000_000 +# # stx_address: ST3C6AVDD1Y3K762CQWVE93JNHA3T4ZX9K4V7QE17 + +# [accounts.wallet_83] +# mnemonic = "wisdom approve acid finger surface people diet decide six arch motion awkward retreat sleep bless because treat equip host device gadget short peace chronic" +# balance = 100_000_000_000_000 +# # stx_address: ST3NF1R9N8JR1TRPDF1JC5PVZW04BAFM1YG4506J6 + +# [accounts.wallet_84] +# mnemonic = "foot immune honey clerk inherit unique embrace charge rifle flush nerve alter floor pet toast false wisdom awful diary rich donkey urge envelope token" +# balance = 100_000_000_000_000 +# # stx_address: ST2K64FRQ5Y330WXN38SQDB1EJ23PJEYAER27TZMV + +# [accounts.wallet_85] +# mnemonic = "person parrot quantum gravity orient item hip movie velvet text pass dress risk news odor assume donkey switch ketchup visa ask federal april crane" +# balance = 100_000_000_000_000 +# # stx_address: STTM0M6136TGZC0E95P1HQ54T4K4PS6CMGJ625QV + +# [accounts.wallet_86] +# mnemonic = "public metal similar reflect gentle oil doll dentist jazz diary outer consider culture term gorilla final fat alter spare mule stomach honey excuse taste" +# balance = 100_000_000_000_000 +# # stx_address: ST33BJ4396XVCJN6DZRTG2Z18BYSE4DS3JZG2A8K0 + +# [accounts.wallet_87] +# mnemonic = "priority car rich poet tornado smile ask off cricket ocean whisper bridge submit twelve wolf section orient fresh print jewel burden buyer brain sea" +# balance = 100_000_000_000_000 +# # stx_address: STJCVF6XRMWYFABAEWK9PFQB1EMP8C6F0CSHGS9S + +# [accounts.wallet_88] +# mnemonic = "purpose curious bounce swallow plunge reduce bachelor prepare print icon number live front fault fire fiber way orient economy apology shuffle erosion slush protect" +# balance = 100_000_000_000_000 +# # stx_address: ST2REAZT5M7KGNMFQNJ61PFPP5KZVVHG0BQBZ93BM + +# [accounts.wallet_89] +# mnemonic = "inner sure cave mind silver remove clip ready prison arrange duty pen lemon mercy desert install inform top wool tumble need hip aim egg" +# balance = 100_000_000_000_000 +# # stx_address: ST16JBADHZRWAP3PV82RKDMQCKS8AVR15W1WEDB9A + +# [accounts.wallet_90] +# mnemonic = "plastic wire novel suit bundle smooth amateur pencil today outdoor sadness truck coast creek coast cry veteran client remove skate amazing easily minute theme" +# balance = 100_000_000_000_000 +# # stx_address: STS3BB2QRH8GAJB0E3DDW6GPMMJM41QN7RHTB5DQ + +# [accounts.wallet_91] +# mnemonic = "idea check chief shield damage enforce truly valve era bulb wheat joke tiny fuel evoke rate exotic muscle rhythm six actor real slide equip" +# balance = 100_000_000_000_000 +# # stx_address: ST20R0VWB63M90HR3G9MCZ0MKK8PRCZXCH0Z6NXG + +# [accounts.wallet_92] +# mnemonic = "pause notable advice brand lens table subway sell swallow range gasp undo uphold tank minimum hunt disease job olympic topple cloud orphan win rude" +# balance = 100_000_000_000_000 +# # stx_address: ST2DP0RZ10NXFFW72JR4R2PMJ0SZYWHG8C336YXM3 + +# [accounts.wallet_93] +# mnemonic = "coconut slogan ranch salmon act claw blossom grape swim year wing rotate minimum color wrist air swing plunge pumpkin pepper shed smile novel bring" +# balance = 100_000_000_000_000 +# # stx_address: ST9TK8DEW8BH5JGRTQSBN3FG9FRB3TMK52Y0KHMY + +# [accounts.wallet_94] +# mnemonic = "celery ill fatigue camp picture family black bullet ladder where antenna engage real people chicken chicken mind spice work need anger pass jungle divorce" +# balance = 100_000_000_000_000 +# # stx_address: ST3V81THYG6EZVM97E9EGK2B6SJ763HHQW4NHPN11 + +# [accounts.wallet_95] +# mnemonic = "roof call glove round frog visual discover planet negative room science debris tide broccoli envelope disease future park story shift main estate beyond beauty" +# balance = 100_000_000_000_000 +# # stx_address: STAD291HET5ERY4AW0W3BEG2609XV1MQB4AVCWM1 + +# [accounts.wallet_96] +# mnemonic = "clip bird kite among uniform lock guess fruit elegant build science master horn example flip crop chapter divide tide attack wedding duty cheap method" +# balance = 100_000_000_000_000 +# # stx_address: ST23ZDV1FXXTTHV229YW30MF92AEHV7A75F0NW66V + +# [accounts.wallet_97] +# mnemonic = "bind evil tool expose live slogan pool stairs truck age exotic foster glare soap drink maple soap pretty hockey organ scorpion lumber copy side" +# balance = 100_000_000_000_000 +# # stx_address: ST1MM9S1Z7CRP0DBG9A6C3E79RW941NCABDF0D427 + +# [accounts.wallet_98] +# mnemonic = "isolate pluck execute fan wheel series alcohol annual other add allow expect quiz inspire swift ramp battle dry zebra hill click dial chimney jungle" +# balance = 100_000_000_000_000 +# # stx_address: STTQ07A0BQTEX7SY2JE65TSRAMQB5BVY6S850AWQ + +# [accounts.wallet_99] +# mnemonic = "disease grab list stay vast settle tomorrow example grain sadness property prison credit original spare crash trumpet onion million rookie cave viable orphan path" +# balance = 100_000_000_000_000 +# # stx_address: STKF3HBXEV6XMD1X1RV1B54SZX7DG501R9ESAXFM + +# [accounts.wallet_100] +# mnemonic = "mixture position practice critic void wish sausage private mean protect wrong oven load addict plunge occur fun rubber elegant lounge radio claim crazy trim" +# balance = 100_000_000_000_000 +# # stx_address: ST3ZTM14Y6EEBR011BNCFYJXGSDNE7K71QZ5MBYH0 + +# [accounts.wallet_101] +# mnemonic = "auction empower anxiety dice normal shine zone drip joke worry ancient inquiry card lake liberty online fantasy shed point roof pilot object retire camera" +# balance = 100_000_000_000_000 +# # stx_address: STN7ES6EGND0PVPFM7D2C5Q6B8PTA7AMYGW537KZ + +# [accounts.wallet_102] +# mnemonic = "rebuild enough impact effort void affair ramp chest about anchor discover nerve jelly frost oven finish brain critic faint twin benefit tomato place damp" +# balance = 100_000_000_000_000 +# # stx_address: STV1HKSE7C9RQ9SY32PYYFC5HV4ADNQQFB617TW + +# [accounts.wallet_103] +# mnemonic = "claw chaos bulb skirt garment predict company vacuum axis gasp peasant world oil funny mask phone harsh fiscal clap shop verb century chair copy" +# balance = 100_000_000_000_000 +# # stx_address: ST2FFE62QSC896C9A6X08D95FGX9ZGY3J8HGMYREC + +# [accounts.wallet_104] +# mnemonic = "infant spice mention punch novel shoulder high primary prosper holiday dilemma shift scout image negative stage clap human slice crew load equal salad inflict" +# balance = 100_000_000_000_000 +# # stx_address: ST1Q8Q8CBC1DXSWCNWT22HXD82WE988VKDGY7X8RD + +# [accounts.wallet_105] +# mnemonic = "anchor finish wasp gold solution present light wrestle clump daughter infant figure member spice manual tortoise grit guilt much acquire purity business punch armor" +# balance = 100_000_000_000_000 +# # stx_address: ST5KRHNTH1Z116PH6ZPWG2N22K7373BGSVPMSFAT + +# [accounts.wallet_106] +# mnemonic = "maze nephew account surprise season people shell eye spare tissue twist attitude into machine shrimp proof snack slush assault end knock exhibit either matrix" +# balance = 100_000_000_000_000 +# # stx_address: ST3AZ38RBMJNZ3KE0S3P3JZQX4FBRHZZ6WGKYZ9J0 + +# [accounts.wallet_107] +# mnemonic = "seminar mimic awkward inmate sweet aisle empty cradle example bus sword pill spice trigger violin rural ghost quiz index ahead energy shoot brain ritual" +# balance = 100_000_000_000_000 +# # stx_address: ST3FD1J7YFD32ACJGDMSGVCXTSKD0NFFWY99NENYX + +# [accounts.wallet_108] +# mnemonic = "tool segment film buffalo page brick source rocket aim food right jump monster offer muscle author business grass airport speed misery panel bid solution" +# balance = 100_000_000_000_000 +# # stx_address: STS5KVVHHJP17HCK0S53XK8NWAAX0RPEK52WZ12S + +# [accounts.wallet_109] +# mnemonic = "hazard ancient target enforce orbit bundle predict mouse zebra liberty stone hobby please donor knock dizzy author dutch traffic rotate away special drop melt" +# balance = 100_000_000_000_000 +# # stx_address: ST2AGM9NF5T056FJ7V4N4QZATDESBYZT7XR94HE2D + +# [accounts.wallet_110] +# mnemonic = "alarm borrow effort park they peanut scene act chef split slogan transfer diet engage depart rifle lecture order trigger trim swing must real then" +# balance = 100_000_000_000_000 +# # stx_address: ST1EJ4ZQ1MVNR5Q0M1KZVSWZ3VB4E8T64NTFQX2Y3 + +# [accounts.wallet_111] +# mnemonic = "orient drop govern orphan peanut prosper village page marine diet hill cushion nature crane six bulk ice draw choice apart large drum shallow virtual" +# balance = 100_000_000_000_000 +# # stx_address: ST1K4JX669PQ8B898NMQF6Z68EW8SX3W00K5PBH6N + +# [accounts.wallet_112] +# mnemonic = "seek because tree rib swift clean coin side mystery then pioneer excite method memory estate wrap endorse electric tennis flee detail immune fix pink" +# balance = 100_000_000_000_000 +# # stx_address: ST3XVM6V3VZCP477F3VFRX5SBY67FZHK6MAWECWVR + +# [accounts.wallet_113] +# mnemonic = "supply dolphin crane motion rotate hungry bus device inner pottery noodle annual patrol lonely rubber book siren burger system typical discover habit once vendor" +# balance = 100_000_000_000_000 +# # stx_address: ST4RR09DQHJ5CJ2CS8NJ97BJZTGZNAXEX1SP1C3J + +# [accounts.wallet_114] +# mnemonic = "purpose tree quit jeans scissors heavy path forum census shallow nurse sample today choice live exotic fame repeat over survey business smoke pig must" +# balance = 100_000_000_000_000 +# # stx_address: ST2MZTG9G098CA54VQQFNYG50XXZE0VYHYSMZ59Y3 + +# [accounts.wallet_115] +# mnemonic = "security tape lens offer trouble assault like beauty mass jealous sustain rival orange arrest spatial luxury shove buzz whisper rice reveal seven rely inherit" +# balance = 100_000_000_000_000 +# # stx_address: STS2QPPFZDGFYMJTYA541WYTV33EFGH5NGBX03VW + +# [accounts.wallet_116] +# mnemonic = "believe click attitude enlist innocent truly above theme option much fashion lion grunt trick ghost clock mammal merge property traffic blouse bounce address damage" +# balance = 100_000_000_000_000 +# # stx_address: STM925RXS61D23EYMVHR9MJJTHZ0WXZW931WYMGQ + +# [accounts.wallet_117] +# mnemonic = "since egg forum gold tooth talk ability market devote share web assault tattoo ability suit true volcano pause close opinion correct negative divert head" +# balance = 100_000_000_000_000 +# # stx_address: ST2KPGZF06HYHN2JEYWZJNNP0PXJF5ZM2KZDX08N + +# [accounts.wallet_118] +# mnemonic = "throw robust merit sea arrest own custom unable virtual predict hunt soul mind shaft angle acid good ring toss blossom slot tray nest repeat" +# balance = 100_000_000_000_000 +# # stx_address: ST2XGATEJT79EK4442124T63GNJ9C6DF1DWFHCP2K + +# [accounts.wallet_119] +# mnemonic = "helmet cost castle they choice only opera oak shell lounge flag pass gift dish paper chaos garage news initial antenna build poverty despair glory" +# balance = 100_000_000_000_000 +# # stx_address: ST2M3VK6ANQ7Q1JHPH2CT6B1N9HQYXCY4BSDAJ9XB + +# [accounts.wallet_120] +# mnemonic = "rent remind situate absorb source caught top winner lift deposit acquire ethics slogan machine beach emotion among crumble thunder waste guilt goddess hour dry" +# balance = 100_000_000_000_000 +# # stx_address: ST1DPHXXDS033CP10EJ5XKJ6V6R25SGYAYQM8CVAF + +# [accounts.wallet_121] +# mnemonic = "march canyon all ostrich until bomb unaware task swallow wise gas nothing steak tank drink bench inherit fever task clever cactus nature trigger demand" +# balance = 100_000_000_000_000 +# # stx_address: STS8B23TP0PDCC1YKG97QF0AX8FXV3HFA2RDNS43 + +# [accounts.wallet_122] +# mnemonic = "horn measure poet monster music stomach pilot ketchup bright muffin miracle message zebra demand usual kite six napkin relief double unfold scorpion border night" +# balance = 100_000_000_000_000 +# # stx_address: ST39BNTWPN9HZDSJTYVAK81XMM0T65CYN2A3Q7NMS + +# [accounts.wallet_123] +# mnemonic = "monster goddess mutual steak fiber say ridge strike asthma describe idea blouse gasp jewel excuse toilet anxiety club pudding party job rely retreat amused" +# balance = 100_000_000_000_000 +# # stx_address: ST3BF3EK5WCQFCF3E4CDYMK9HVZRY9DW5BFR877QE + +# [accounts.wallet_124] +# mnemonic = "outdoor claim drill image opera moral industry devote hidden license acoustic fine vault replace current vote depend fault rough stomach rocket laptop inside dynamic" +# balance = 100_000_000_000_000 +# # stx_address: ST2ZWHKJQ4CQVBFZBXSVN32QPWKYRTPBE924EFSAC + +# [accounts.wallet_125] +# mnemonic = "action build lab venture bulb section dove wheel vibrant gauge labor fence grace phrase solid organ undo athlete else middle iron awesome tent just" +# balance = 100_000_000_000_000 +# # stx_address: ST14VW65E5774PDSS8FSHS25YRSAS3VB9KN4MKRQ8 + +# [accounts.wallet_126] +# mnemonic = "episode resemble autumn another brush alcohol merit proof sniff deny domain maple wasp clutch style purpose perfect diamond taxi shield brief hero course accuse" +# balance = 100_000_000_000_000 +# # stx_address: ST368SDFZC5QPWB6QH1WBJGJFKX4YZ79K90CDFHYT + +# [accounts.wallet_127] +# mnemonic = "vacant raise vendor staff desert gossip twist bind salmon coconut call pyramid shuffle client charge year ice hungry gas oppose deliver wrong present salad" +# balance = 100_000_000_000_000 +# # stx_address: ST3YT87BVPG83FG09YAAVRPH4PJ4H4BV0ZNC3E353 + +# [accounts.wallet_128] +# mnemonic = "sniff exit chef trigger paddle attract intact credit put finish ostrich desk shove tail avoid urban flash much daring imitate legal kid protect uncover" +# balance = 100_000_000_000_000 +# # stx_address: STJ06WMDQTFKDYSYFESCPHWEYDDDZRJC6FC4FNS7 + +# [accounts.wallet_129] +# mnemonic = "act tattoo local pig gorilla mad merry trap clever dawn hello bubble toward suggest main say mimic shaft cool alarm slice renew excess retire" +# balance = 100_000_000_000_000 +# # stx_address: STFEAGVDTHH4ANH1V2CRS9CJ4QC6BWBT6HYV8PBE + +# [accounts.wallet_130] +# mnemonic = "donor normal animal van oven hurry planet benefit segment youth famous topple spider assault winner scrap kitten also lemon party bracket end senior palace" +# balance = 100_000_000_000_000 +# # stx_address: STCCFM55PKFJ0G91WTH2TSWSK9XVX1K032VSEW05 + +# [accounts.wallet_131] +# mnemonic = "exist page secret suffer recycle allow winter model world broken promote kitten eye autumn make yard bounce tube label funny eyebrow energy awake crash" +# balance = 100_000_000_000_000 +# # stx_address: ST50SZHK7WGM3Y6F0GJ4T1190S7VYH7K7HCMSVQM + +# [accounts.wallet_132] +# mnemonic = "wire ten detect swarm wheat bulk protect labor day lumber couple shove review frog true snap rubber friend athlete roast electric spike honey town" +# balance = 100_000_000_000_000 +# # stx_address: ST16S78EA4FRRSDBVXH8CD0X1W3R8BR7RA3P0NNDV + +# [accounts.wallet_133] +# mnemonic = "dentist bone seek bacon obscure always arrest pumpkin snack atom panther trouble general daughter essence pluck track drastic sense observe neutral dragon scrap beauty" +# balance = 100_000_000_000_000 +# # stx_address: ST5MKCNDPR2T954CWDXAZHKY0XWJKXH2F97WNKNY + +# [accounts.wallet_134] +# mnemonic = "knife fatal junk forget talk toilet enrich solar special process basic ship charge wide sport merry maximum say demand airport valid deny robust slender" +# balance = 100_000_000_000_000 +# # stx_address: ST1DJTABB748A22E5BHS12CR79PC8X4PG1EEWEP40 + +# [accounts.wallet_135] +# mnemonic = "sphere festival round timber bicycle circle genuine dial fix ankle again tackle gown cloth vapor else salute element cry edge coyote reason eye priority" +# balance = 100_000_000_000_000 +# # stx_address: ST2FY87A77JJ43C7WTQS3QWST5AFHP61MZMCT0BS2 + +# [accounts.wallet_136] +# mnemonic = "cricket shoulder warfare genuine aware license loan sadness chapter help flat basket smart leaf zero rifle cycle praise pupil used start tomorrow elegant ice" +# balance = 100_000_000_000_000 +# # stx_address: ST3C25RQBJ72T22DNDTKRX3SAWH7R2R7V2R75KX34 + +# [accounts.wallet_137] +# mnemonic = "permit pretty surge guard push squirrel tongue scare news hair quarter pattern west steak scan belt series cigar worth attack repeat awake cement night" +# balance = 100_000_000_000_000 +# # stx_address: STP8BSDJYSQK00CGY8RPBS6H9QYM69YNMTWM7RFJ + +# [accounts.wallet_138] +# mnemonic = "adjust cluster eyebrow pipe pattern treat below dumb picnic assault frog cause alien excite road helmet enlist tool labor exact negative name organ critic" +# balance = 100_000_000_000_000 +# # stx_address: ST21S5R8G4B6CXM42HQRSW1WP77JS2FMA4AW4P761 + +# [accounts.wallet_139] +# mnemonic = "month elbow dove symptom fog grit number shaft enjoy claim sing knife kitten misery vital pudding push trap sting eagle element zero jaguar jar" +# balance = 100_000_000_000_000 +# # stx_address: ST2V5Q6EG1EKPQ0PT75YB9VKQEQCVW2CX2S157CT6 + +# [accounts.wallet_140] +# mnemonic = "chief wet film father alter false result clay legal shadow system element require ill various saddle embrace swarm unique perfect metal will employ turtle" +# balance = 100_000_000_000_000 +# # stx_address: ST2XVD1AM0PCKR0DKGX2S8XH8DJEB4H9JXCZNT4C8 + +# [accounts.wallet_141] +# mnemonic = "shove install hard moral strategy exit hire hope rent virtual outdoor differ sock purpose much crystal scout path cake man friend deposit game build" +# balance = 100_000_000_000_000 +# # stx_address: ST2YWPCMCJDHZZGPQNKJ5YND2TK1ZNC4T1N9W10R8 + +# [accounts.wallet_142] +# mnemonic = "midnight salt program snap capable later bike better hungry daughter wrong avocado drastic huge century similar glow solar put buyer gate pitch funny hill" +# balance = 100_000_000_000_000 +# # stx_address: ST1NTFPFNXAEX54Y00K4QVE1CC09Q0M7ED212ZRWN + +# [accounts.wallet_143] +# mnemonic = "identify pink victory punch flight ethics evolve math robot gather minimum hamster equal chunk wrap tape hawk supply ridge unknown there ramp elder tenant" +# balance = 100_000_000_000_000 +# # stx_address: STYRA48Q065VG75AZEJ5J8RT27RZWK8C7QFDB0VV + +# [accounts.wallet_144] +# mnemonic = "frozen lumber pact horn ski film case autumn general night clarify guilt viable change asthma liar chat proud donate host range buffalo concert abuse" +# balance = 100_000_000_000_000 +# # stx_address: STP0NSD33KJ6YQ2YQWKDMG9TFBJ6HNFPPRN3DJWV + +# [accounts.wallet_145] +# mnemonic = "enable domain cage body just body cycle depend glass aunt edge food jelly cat goddess company skull track surge dinner admit spirit endorse random" +# balance = 100_000_000_000_000 +# # stx_address: ST1P2KZGQJH22CWDMB5N3ZKSGTWPS1JC51466P909 + +# [accounts.wallet_146] +# mnemonic = "ecology grape fatal height correct shaft guitar grain earn knee attack cost cloth scan squirrel melt rack firm squeeze brave harvest ticket lucky erode" +# balance = 100_000_000_000_000 +# # stx_address: STRB70CA6RHH8AJNGTC3DB5MMK9HW4KB5CAJFFBT + +# [accounts.wallet_147] +# mnemonic = "awkward wheat oak marble grid budget lucky cigar fetch weird online actual enforce praise sell field output idea derive all hurt truth math fantasy" +# balance = 100_000_000_000_000 +# # stx_address: ST1KJY77M1NZ2WDH6KGFVFDAPW9Q4Y55Y00N6D4CB + +# [accounts.wallet_148] +# mnemonic = "nest mystery adapt normal butter miracle material visa come glass deputy history disease range chase salon strategy artefact flee give favorite digital clip spray" +# balance = 100_000_000_000_000 +# # stx_address: ST12SE1FP759764F27ET2STPZD5TV2X0HFFT6PE2X + +# [accounts.wallet_149] +# mnemonic = "today patch price weekend cream alarm fiscal follow diary cherry surprise south try obvious recipe rather easy buffalo thing fork social various strategy arrow" +# balance = 100_000_000_000_000 +# # stx_address: ST3P0ZK7Z1NGC5KSFZ1H8JETHX45WH6FC8AAE59ZH + +# [accounts.wallet_150] +# mnemonic = "kitten category grit decade true vibrant layer panel merry swamp diesel release spend impose plate hazard bottom fruit marine canoe beauty thrive laugh moral" +# balance = 100_000_000_000_000 +# # stx_address: ST10894C79DFD39RAJPSKHMD2YW1QWZCSDWV619ZV + +# [accounts.wallet_151] +# mnemonic = "dilemma code soup thing pitch candy napkin law poverty evolve hamster hill solid strike fitness tower deposit hire view dance spread around bind slender" +# balance = 100_000_000_000_000 +# # stx_address: ST2EPYHN98KACREC7Z6WZHPP59BV1X14JYWNYCH9A + +# [accounts.wallet_152] +# mnemonic = "element art advice canyon congress board van regret call pyramid kingdom mirror media waste gate sorry already pig worth explain supreme rich wall able" +# balance = 100_000_000_000_000 +# # stx_address: ST1XXE319JCJBT9W1RY92QF1M3V3Q2Z4DC25HZRVV + +# [accounts.wallet_153] +# mnemonic = "winter derive swamp cute network expose major there ozone help fossil kitten habit naive slam abuse kite addict length client palm awkward express manage" +# balance = 100_000_000_000_000 +# # stx_address: ST2KJPJVWRZTWFYPXQVRE1XB437Z499801SMR2TXA + +# [accounts.wallet_154] +# mnemonic = "fine wish blade olive pipe frozen pluck upon bulb catch ill help spawn clown tattoo matter label sleep gossip dream lock want diesel cry" +# balance = 100_000_000_000_000 +# # stx_address: ST31V499EHW152XWWJNF3P9SDBPMK9BX32D3WBMJR + +# [accounts.wallet_155] +# mnemonic = "tattoo gown robot inherit ship enrich shallow solid leisure young soccer cement orchard room make infant mass brush stone option stamp hazard floor spirit" +# balance = 100_000_000_000_000 +# # stx_address: ST1JG6PYFYCM2BQG28NMRV1A2X8VX96MJ9E4554Z3 + +# [accounts.wallet_156] +# mnemonic = "coffee rigid vote adult nerve mind window farm grocery unfair gold act loop honey sugar immense desert bargain reflect right degree now adult ball" +# balance = 100_000_000_000_000 +# # stx_address: ST2B5MT6AE682QXEM7JFM6G3ZFAS715H5XNG1AF31 + +# [accounts.wallet_157] +# mnemonic = "junk random elbow resource zone kiss squirrel captain soul soup possible winter silver frame disease shrimp clerk piece nice olive ladder panic rain visa" +# balance = 100_000_000_000_000 +# # stx_address: ST2N44W1VEA6PD1W407VDDT90KX5821XGCF5CRX1W + +# [accounts.wallet_158] +# mnemonic = "museum wink cliff library parrot quarter donor plastic south capable mail before weasel polar worry grain another filter medal laugh shell isolate fetch valid" +# balance = 100_000_000_000_000 +# # stx_address: STHG90SJPEJE6BA55TCJADB4THHFGJZZMJARMASS + +# [accounts.wallet_159] +# mnemonic = "pencil giraffe vital caught pig dolphin orient wire around finger cushion ridge account wheel there slam chuckle grab plate deputy snow nephew wise bind" +# balance = 100_000_000_000_000 +# # stx_address: ST7K1MMZHX1NMDZDF8NN05XZFH9CDQACC9CFETTX + +# [accounts.wallet_160] +# mnemonic = "series strong such alone certain grant opinion series artist bicycle nurse target tackle general across anchor mean cruise core maid curtain submit consider view" +# balance = 100_000_000_000_000 +# # stx_address: ST1SHMN2YXW3XC9KMBTYSDA8137FPWKVAY45V7PND + +# [accounts.wallet_161] +# mnemonic = "reopen country off pulp castle sail machine join engine speed jeans dune evoke grunt net better this uphold similar snake polar west afford curious" +# balance = 100_000_000_000_000 +# # stx_address: ST09MSR8SKQ3P9R3G9AJPS0MBC5FWTRHHYAEY83V + +# [accounts.wallet_162] +# mnemonic = "spin hard picture abuse trim sad intact enrich cram civil virus please ghost hawk behind venture figure wise then marble sense normal gospel rally" +# balance = 100_000_000_000_000 +# # stx_address: ST183Q218DJXYF82WW8EW5K3FZFRPGSG2RGZ39YXE + +# [accounts.wallet_163] +# mnemonic = "usual thank left whip evil join length dirt attack size draw kind garment that chase trial possible copper moral month depart forget route push" +# balance = 100_000_000_000_000 +# # stx_address: ST1AFM76SRSPKZ3GMSX0N95X3Y1A9Z3ABVSH6YYNX + +# [accounts.wallet_164] +# mnemonic = "include pistol rally raw upset album tuna fancy lonely apart creek echo shield danger return scene video obey bike chest hidden wild code runway" +# balance = 100_000_000_000_000 +# # stx_address: STB58YK523MPHRG7NQY550P5RX3GQM20GVQN0QF9 + +# [accounts.wallet_165] +# mnemonic = "smart deny soldier midnight upgrade conduct online cage ranch health skull armed vault shove error attitude primary pioneer square approve eyebrow bone seed bind" +# balance = 100_000_000_000_000 +# # stx_address: ST1HP0YMMA3VSARSFNC4HGCD6FZ9AP18KAE3WYBPX + +# [accounts.wallet_166] +# mnemonic = "carry able butter final today indoor grab kite possible stamp universe copper wage blood wash option timber present power mail cargo crane hospital mass" +# balance = 100_000_000_000_000 +# # stx_address: ST3Z2QZ3389CXNHZ5HF1Y6STK1EF159JR6DQPXMCT + +# [accounts.wallet_167] +# mnemonic = "region foil kind pipe share enlist amount mail prize letter kitchen aim cargo nuclear van entire discover liquid orient demand slice name also approve" +# balance = 100_000_000_000_000 +# # stx_address: ST3FZ8KZJZQEHKH99M1FPR49ZFA5XJEAX0E4T2J05 + +# [accounts.wallet_168] +# mnemonic = "author become where off resource donkey craft bronze picnic outside dragon border armed chef left lunar practice siege protect grain beauty oyster empty awake" +# balance = 100_000_000_000_000 +# # stx_address: ST2JBDEF6NZYRK5ZD57J4VX8B84TCFDSYX1ZRPQEV + +# [accounts.wallet_169] +# mnemonic = "arena pond joke half wine speak video soul butter galaxy bread lunar excite exit dress express buddy settle frog affair stadium wealth bomb stone" +# balance = 100_000_000_000_000 +# # stx_address: ST266W858Q9XWDV26ZRN9VS3C7W38J2SNADH9VEWM + +# [accounts.wallet_170] +# mnemonic = "future capital rabbit trial uncover wasp stock argue theme island nose nice myth project horror couple gospel float must celery oval fish sample desk" +# balance = 100_000_000_000_000 +# # stx_address: ST4DCNKQY8M6Y2KJVZS29EPV0BQWRMGK27QYQK6Z + +# [accounts.wallet_171] +# mnemonic = "hope stamp credit axis radar column comic novel leaf legend chuckle axis toddler silk dilemma firm track ivory evidence seed cost skull album document" +# balance = 100_000_000_000_000 +# # stx_address: ST363P049B6N34MRXAW3XKTJW7AZGC3RAE6EPFWYR + +# [accounts.wallet_172] +# mnemonic = "corn dwarf casual tiger rookie subway ride glimpse cloth mansion admit option differ next ride prefer axis youth prosper fragile multiply shrug cream expose" +# balance = 100_000_000_000_000 +# # stx_address: ST1YQFY0GRWDXXP06ZT8J39BBE3TKYMZDS9F234KT + +# [accounts.wallet_173] +# mnemonic = "miss banner envelope punch cross predict canal cheap gallery shrimp involve drastic polar report kiwi toward trip author route coconut inherit sweet broken security" +# balance = 100_000_000_000_000 +# # stx_address: ST2Y54JHGJ12PWRK2Z8B4Q0D9FFK5X80A1K3JMPPZ + +# [accounts.wallet_174] +# mnemonic = "wet lucky minimum civil panel river tomato arrange spend creek mass harvest exclude member rude castle snow meat strategy exhibit shiver host upgrade lawn" +# balance = 100_000_000_000_000 +# # stx_address: ST1E2MP5QN9G9KRW593H8G91ZGQJC5PXSQ8516GX + +# [accounts.wallet_175] +# mnemonic = "film sausage angle fence basket vacant tape boat moment damp emerge match since bounce convince thrive venture laugh mind enroll swallow device trigger clarify" +# balance = 100_000_000_000_000 +# # stx_address: ST1K725HJ56SCAFKZG3978DMN5GCGBMCKT5RJT0HC + +# [accounts.wallet_176] +# mnemonic = "forward place cricket limit segment hard damage region burger disorder remain furnace flavor local attend forest material define gravity lunar antique curtain female fix" +# balance = 100_000_000_000_000 +# # stx_address: ST1EC5DKGC7YQSX7CDYYE95VGS57E5H0ASBNHSY44 + +# [accounts.wallet_177] +# mnemonic = "fan number garbage unable rhythm rifle prize vacuum drama desert pencil lemon ship shadow eagle ability crouch weapon health dream wide eye raw humor" +# balance = 100_000_000_000_000 +# # stx_address: ST3KQYV1ZE4KTMHMC1WZ7NWSY0GS5201NGDZRXVMZ + +# [accounts.wallet_178] +# mnemonic = "magnet bid dance runway burden ready ship bunker apart angry force afraid kangaroo invite behind group table expand evidence win finish dawn rent hold" +# balance = 100_000_000_000_000 +# # stx_address: ST2VSAYCV0ZE2RGSYGXV0HYQP7HCPYN1SEDYWQMQY + +# [accounts.wallet_179] +# mnemonic = "insect entry produce zoo combine slam capable assault rough absurd risk cream avocado height better iron vacuum volume chalk betray today denial stuff market" +# balance = 100_000_000_000_000 +# # stx_address: ST3CYCCWSM9JAMFFFFF7R75A2K2QYY4QR8Z8HP1RH + +# [accounts.wallet_180] +# mnemonic = "potato bright dog budget novel nephew protect dust usage fancy wealth flock fetch laugh sure another mushroom guitar bean garage hat snap draft physical" +# balance = 100_000_000_000_000 +# # stx_address: ST2RXPTVBZN8W5N0DXHTCG43F1CWQR9M72VJRRHFT + +# [accounts.wallet_181] +# mnemonic = "unable position transfer vanish pause stereo pioneer ketchup flush fruit obtain drum choice parrot inmate enough outer shield gate rebuild cruel liberty install profit" +# balance = 100_000_000_000_000 +# # stx_address: ST3W0476H89D2H73S0Y9A2JXDPTQYZNWR2FY0C0SA + +# [accounts.wallet_182] +# mnemonic = "broom rapid dwarf coffee bachelor seat lucky athlete ostrich quantum tongue effort proud scatter february human torch stairs seat game fix piece castle network" +# balance = 100_000_000_000_000 +# # stx_address: ST44GW7Q0BDX9YAEJTYRZ46J1YERHF7K1CCHG5TV + +# [accounts.wallet_183] +# mnemonic = "manage cradle rookie distance leader tired divorce kind bamboo resource distance lobster snow comic gown end misery hospital armor brick dad kidney fork crisp" +# balance = 100_000_000_000_000 +# # stx_address: ST2W6ZS6KNDWH3W1B7M57PYYNC11TGG5BE76RE4QS + +# [accounts.wallet_184] +# mnemonic = "soup tree vacant crouch cage snow whale jewel paper exotic aisle cushion fly calm canoe produce radar pet crew glance baby duck promote fat" +# balance = 100_000_000_000_000 +# # stx_address: STEMAKFR4ET99R8892PFYBQDV091GPCAP8PEGDG0 + +# [accounts.wallet_185] +# mnemonic = "float thank bone culture finish wink isolate grid desert spike uncle pony rare deer subject anchor horror trim false senior invite awkward pen detail" +# balance = 100_000_000_000_000 +# # stx_address: ST1XQQRZ55M0JHEREY5EK8RJYYM4788239NSJYNBY + +# [accounts.wallet_186] +# mnemonic = "spell hockey rug wood uniform brother salad frog order unlock acoustic act violin good borrow stadium fatal small timber raccoon tank rack joke history" +# balance = 100_000_000_000_000 +# # stx_address: ST24KAVGCAVZ9KB13V2SJX6CGNG6W6K7QTPZH8BEY + +# [accounts.wallet_187] +# mnemonic = "quote broom please luggage priority flight program laundry health token dignity mixture what grant more curve kit kite danger average perfect license animal hundred" +# balance = 100_000_000_000_000 +# # stx_address: ST2Y9RTGZFQGDR6E1HXHZ4XN20DHEKQ1S7ZGRVPWP + +# [accounts.wallet_188] +# mnemonic = "cake analyst hamster test warm away trip promote scrub network lottery island shoulder slow decorate butter put next wall scorpion alpha vehicle ceiling main" +# balance = 100_000_000_000_000 +# # stx_address: ST268VWPNMMD78PAB2Q4CHGPG034WVGT32J84RZTF + +# [accounts.wallet_189] +# mnemonic = "napkin culture motion album snack endless cereal shop demand sad claim cage craft physical nothing swing tooth lock able ball barrel peace sense morning" +# balance = 100_000_000_000_000 +# # stx_address: ST1M7FXTKF272XGDCQMFYYG1MGQYSN86BHS7PHR3B + +# [accounts.wallet_190] +# mnemonic = "rice price quote gospel twelve priority urge calm sting street music company hawk fiction fun pen peace piano inquiry beauty miss marine man joy" +# balance = 100_000_000_000_000 +# # stx_address: ST3XREQGPEYEWZMAHV0A3TQJBJF2K3H0MJK9YV8SD + +# [accounts.wallet_191] +# mnemonic = "toddler indicate brisk together loyal camp smart zero frozen chronic banner celery give pull kitchen clown exhibit income parade loan fan curve next helmet" +# balance = 100_000_000_000_000 +# # stx_address: ST2GK48NRZ8XQRC899CC5A140QWGTC25P0CDZYNHX + +# [accounts.wallet_192] +# mnemonic = "coin shrug entire noise volume favorite exist order wrong labor crush swim intact ethics forum paper patrol web smile net lemon dignity slogan nephew" +# balance = 100_000_000_000_000 +# # stx_address: ST1320P53RQT2YQRF3M2S0ZA4DAJEY3KY0C61TWH0 + +# [accounts.wallet_193] +# mnemonic = "news agent fantasy gloom crawl dilemma embark spread game doctor tortoise armor frozen palm power enforce harsh make diagram tennis walnut carpet unable decade" +# balance = 100_000_000_000_000 +# # stx_address: ST2F7X04DQJ59Q4E2GJ8VHHYVVZ9ZA2M60SYCWH16 + +# [accounts.wallet_194] +# mnemonic = "perfect quarter candy defy above sunny any census spring desk woman ring bulb correct orient senior crystal chair give stereo chef defense blossom check" +# balance = 100_000_000_000_000 +# # stx_address: STH7J5GD4X9J203EP8495CZ1PYZR4370WYSB659N + +# [accounts.wallet_195] +# mnemonic = "opera essence friend river extend burden giggle vapor often six cause always stadium include result state grief arrange blur place trust pitch step spend" +# balance = 100_000_000_000_000 +# # stx_address: ST5AZVA3YNZM9SBKJWXC30JRG6A6395FB7G7S442 + +# [accounts.wallet_196] +# mnemonic = "love crime life stone shadow twice salon transfer language code admit heavy matter churn domain trouble copper road twist sign hybrid cook warfare salt" +# balance = 100_000_000_000_000 +# # stx_address: STHPNPFCPM1FM896D9WJ9A26XZ582QE8NT1PT3KG + +# [accounts.wallet_197] +# mnemonic = "inch busy ceiling initial skin original symbol theme artefact tent series famous vanish season cushion tail visit pipe evidence giant shoulder fit vintage field" +# balance = 100_000_000_000_000 +# # stx_address: ST3NWAAJSXXN4YGQCJ3VY37HC60VXFDHBK66XG1XP + +# [accounts.wallet_198] +# mnemonic = "catalog ahead trouble start stove exact exile puppy finger citizen village rural arch cliff world tell pool stairs cricket guilt replace multiply kitchen cup" +# balance = 100_000_000_000_000 +# # stx_address: ST1SVKRSX8BB94BGN24EYYZN5S070HH3G4M02PV6T + +# [accounts.wallet_199] +# mnemonic = "wedding rely verb sick rotate since hazard suffer pole arrange delay slot manage express trust tag unhappy physical genius gun layer one agent wreck" +# balance = 100_000_000_000_000 +# # stx_address: ST24BHSCT28CB01XQP33Q2WCW3SP9SRRCZQE6R69B + +# [accounts.wallet_200] +# mnemonic = "squirrel radio smoke army damp width erupt kingdom essence absorb danger final trust select pattern north bubble adapt sudden allow main better trade morning" +# balance = 100_000_000_000_000 +# # stx_address: ST3V0HTDNSB9EPSS9C6FHZEZTBHBFMHAKE19R62R5 + +# [accounts.wallet_201] +# mnemonic = "negative unusual symptom again tragic west tip myself course rebel victory candy insect slim sport cost own relief announce auction divide rug armed anxiety" +# balance = 100_000_000_000_000 +# # stx_address: ST14S87109TYXV6DKW9DNG0C8YCZ3WJTNPD1FXEDP + +# [accounts.wallet_202] +# mnemonic = "cargo once alpha debris wolf swarm mirror friend inform nose quarter brief cancel session judge fiction guide tomato anger vague stem more topic source" +# balance = 100_000_000_000_000 +# # stx_address: ST2MZZRPYJDX50HGJ0P59YR9C2GAHMG6B1GS96ZC5 + +# [accounts.wallet_203] +# mnemonic = "toy keen normal whisper donor flight decorate cupboard swear barrel margin vivid lizard angle kite dash trumpet draft daughter month calm witness live hundred" +# balance = 100_000_000_000_000 +# # stx_address: STFE6PRG1F4CZ4KE7Z80P8W02379R9H4F0E42PX3 + +# [accounts.wallet_204] +# mnemonic = "try apology slogan salt cross ugly eagle input emotion bag kidney minute buddy ecology grab inside pencil now rookie outdoor rifle mix average screen" +# balance = 100_000_000_000_000 +# # stx_address: ST3605YC81PKVSXEV9REKPEX3H2J0X1DNPTYC122T + +# [accounts.wallet_205] +# mnemonic = "enact mouse sadness goose defy detect where embrace best world detail hamster eagle plastic real duty burden panda can budget then able shrimp glove" +# balance = 100_000_000_000_000 +# # stx_address: ST3ZB8QQ3Q5KGGA651F77TSZQSGBZVTJY14XS63M8 + +# [accounts.wallet_206] +# mnemonic = "narrow crop acid clock chicken still worry this unknown suggest repair brown lonely ordinary cart rocket under whip flight mountain collect town ugly barrel" +# balance = 100_000_000_000_000 +# # stx_address: STEXEB9FGQEMBMHKSN41CN888KC7DSE6ZRX10DVS + +# [accounts.wallet_207] +# mnemonic = "armor glare mammal dry wrist injury disagree rail calm decline palace cry acid equal inspire vapor steel inquiry sight rent pizza gloom reopen rice" +# balance = 100_000_000_000_000 +# # stx_address: STJJDXCCCZXXSWQRR6RVGJY4CKACWT2DQ52K1K2R + +# [accounts.wallet_208] +# mnemonic = "file garden kitten lock mixed innocent medal enable eager crazy excuse bacon wrap ordinary try burst possible kitchen want toilet junk air scorpion type" +# balance = 100_000_000_000_000 +# # stx_address: ST28VDXCKP2PZE22K9XJZNGXB19YEFQCZP2DKJVTS + +# [accounts.wallet_209] +# mnemonic = "job school hire decrease nose across ability orange disagree resource canal hundred tennis vehicle kind reward intact swallow quit park uncover hero win lunar" +# balance = 100_000_000_000_000 +# # stx_address: ST26NWC1F795FD8W66Q2GZBSW2WKJ46F2N2Y5SJJF + +# [accounts.wallet_210] +# mnemonic = "submit please come weekend broom help gas click void hero lava unveil install fuel wash sibling taxi bunker brass hint fine scene salt volume" +# balance = 100_000_000_000_000 +# # stx_address: ST2EJ4QM2VY839C5CZ20JSMXSDKJ201HBD3SV00YB + +# [accounts.wallet_211] +# mnemonic = "barrel lucky humble fall infant someone mango liquid zero safe eager quiz amount join steel label army build conduct girl social wealth world curious" +# balance = 100_000_000_000_000 +# # stx_address: ST1TGVT0MQ8ABM9RAY55190MQKQXGC8RNG6SZN7S9 + +# [accounts.wallet_212] +# mnemonic = "spray toilet lucky sunny picnic media manual wrestle sign federal season shrimp category frown kidney catalog bird suspect hip neither hungry unlock stable tortoise" +# balance = 100_000_000_000_000 +# # stx_address: ST2ZQ1VS4743Q9WVZP4P8XS5CTDRKXB809D2HP8KC + +# [accounts.wallet_213] +# mnemonic = "volcano shadow spike uphold process vivid chicken become face gadget budget okay rocket stumble police sort isolate onion few bench ozone sibling bundle neglect" +# balance = 100_000_000_000_000 +# # stx_address: ST3T7051YKBGBZF1ZXVTMAVRFE511Q6NWQNT4M82X + +# [accounts.wallet_214] +# mnemonic = "army primary genius section innocent process urge strategy much inherit family neglect heart mosquito zone kit mango oxygen round slide extend chef section hungry" +# balance = 100_000_000_000_000 +# # stx_address: STV8PXB4B7SAJWR2M1M2STVQ4GPG85S21DB3NJ69 + +# [accounts.wallet_215] +# mnemonic = "section market family shrimp sick loud settle vocal drill race decade decade scan rose electric rabbit course payment gold virtual modify pause gather erode" +# balance = 100_000_000_000_000 +# # stx_address: ST1TY9DK6NQNDJMRA6TZPFW8E8QTJ0J7KJX5QCRJE + +# [accounts.wallet_216] +# mnemonic = "again spray cloud truck delay later shy mandate account wheel invest auto record design piano right have decrease once syrup fence dish flower odor" +# balance = 100_000_000_000_000 +# # stx_address: ST2KYJQXYW09SHB501ZH307MFS5AHGWY8C1CTJF15 + +# [accounts.wallet_217] +# mnemonic = "worth toe rebuild media ticket clinic try pulse bamboo steel when aerobic fluid shield ivory drama dynamic latin jar evil mimic roast scan achieve" +# balance = 100_000_000_000_000 +# # stx_address: ST3SER8S101K1WG8KWSQMR9ZPTWQ5MKJXN6XC51WR + +# [accounts.wallet_218] +# mnemonic = "layer depart side unable axis parent orient safe false fatal keen spoil kite idle matter midnight visit will profit nothing detail square pull mail" +# balance = 100_000_000_000_000 +# # stx_address: ST3NMX0GMTKNPE9Y04GS88EWQ8DMSTCFTKCTATR7 + +# [accounts.wallet_219] +# mnemonic = "source super soldier permit forum tobacco chunk gasp avoid leisure wedding fault blanket sun hen ridge eager donate help voice easily scatter phrase anger" +# balance = 100_000_000_000_000 +# # stx_address: ST3X5J18PADYRM7NCSXJ55N7DZT259WREX672NGB6 + +# [accounts.wallet_220] +# mnemonic = "sustain afraid axis price else differ wife exile replace quiz radar order cool blame gown twin heart pizza mixture dizzy sword mass fiscal please" +# balance = 100_000_000_000_000 +# # stx_address: ST2CRZ1R2479M8NKYHMTNV8DS3PMHGPAWJFW6N9KE + +# [accounts.wallet_221] +# mnemonic = "giggle sail reduce pave consider kitchen rude tenant derive enrich forest mushroom dose chest acid beef track door hotel math net kind crucial prosper" +# balance = 100_000_000_000_000 +# # stx_address: ST1ERMMJT36GVJ2C3A0X1NG2G8ERV33GMWKWY4DBD + +# [accounts.wallet_222] +# mnemonic = "smile elevator test unfair eager curious other planet flush network tired cereal place chalk crouch grain carpet margin retreat aunt ten note they lazy" +# balance = 100_000_000_000_000 +# # stx_address: ST2V5CH351B1GKFECWPJH59Z8XVFCGFQ9PXKR68TS + +# [accounts.wallet_223] +# mnemonic = "dutch item shop power grant they local novel name actress stand service client lion faint when that glad arm right tattoo glance summer push" +# balance = 100_000_000_000_000 +# # stx_address: ST3QSQAEBY04YKV1PS4K8MQPJ7PBAX9BJQDB9JKFD + +# [accounts.wallet_224] +# mnemonic = "antenna museum mule citizen math stone clarify hub patrol lake gap assault win guitar goddess bulk capital dust mind unaware enact neck crime ugly" +# balance = 100_000_000_000_000 +# # stx_address: STAFM44R04REWVK57V1BHTZWG12RVSG7PCFAWV1R + +# [accounts.wallet_225] +# mnemonic = "toilet duck north slide width bundle jealous defense dial theme swarm core bracket regret loud weather lamp auction manage dilemma electric step connect lab" +# balance = 100_000_000_000_000 +# # stx_address: STBHBR1XAS64T8STDGJWXX7G3CRXA7MVY3A7T2AW + +# [accounts.wallet_226] +# mnemonic = "glow gauge awful current trash feel police exercise moon exit tuna fresh bulb stamp frown duty file owner nature ostrich wish duty symbol slogan" +# balance = 100_000_000_000_000 +# # stx_address: ST81MVBAYKCESJNECD23H33Y72CW7NPGJFQCJRFF + +# [accounts.wallet_227] +# mnemonic = "coach artist solar pretty survey actress tree inhale behind month fever wink lend human frog armor aspect ginger cloth benefit caught future cannon wall" +# balance = 100_000_000_000_000 +# # stx_address: ST1G0PBBASNZ5SPFHTWNW7FHE626DCSDAYGJNJ3Q4 + +# [accounts.wallet_228] +# mnemonic = "sure fluid inspire humble oven acid pen decline mansion post choose result legend sure canoe across balcony art reward mix left please leg accuse" +# balance = 100_000_000_000_000 +# # stx_address: STA9PTHD0E67SE95QFFDFGV2PWVRVQ7HPFM9EJ4H + +# [accounts.wallet_229] +# mnemonic = "quantum steak endorse business error century earn person impose drum save flush valid join wild penalty powder dwarf coffee height arctic bind slender glance" +# balance = 100_000_000_000_000 +# # stx_address: ST3862NN9WZGC0YR11SRBY4GDNTDEBY3XDPHAYEGS + +# [accounts.wallet_230] +# mnemonic = "address resemble fabric property engage merry issue famous case regret polar know crawl wing bench glove verify creek process abstract sugar size wave endorse" +# balance = 100_000_000_000_000 +# # stx_address: ST2XW1642ZMEBE9QJ06APRR329FY1PMEGRJJ1YC73 + +# [accounts.wallet_231] +# mnemonic = "hello spare home version angle grant afford immune orchard injury surprise fame barrel firm tourist rebel example simple rocket agree plug elite eyebrow rigid" +# balance = 100_000_000_000_000 +# # stx_address: ST1FA2ACH3SXSRHW32WF44CVKPK3GV352GVY03RFF + +# [accounts.wallet_232] +# mnemonic = "fire mandate equip corn either ice dream this swamp certain shiver cereal panel title disease throw talk alarm label turkey quantum nest worth this" +# balance = 100_000_000_000_000 +# # stx_address: ST3N0S7E63FKW5Q6VJSP0KRPBRXZK85ZX0S0MF1KS + +# [accounts.wallet_233] +# mnemonic = "pilot food strategy hint broccoli walk industry foil notable predict bind organ cushion habit toast label ranch sting salad violin uniform trigger noise tennis" +# balance = 100_000_000_000_000 +# # stx_address: STQ90FJT03B9V58J11CR83VSDW3J3FSVMPF88HJ7 + +# [accounts.wallet_234] +# mnemonic = "dignity furnace blind explain trial shy scissors barrel lounge curious attend predict wedding tell all interest truly cash spawn anger advice inside gas abandon" +# balance = 100_000_000_000_000 +# # stx_address: ST3A3W1AQS3PX342Y98P5T8D93410ZV58JT5H6TVM + +# [accounts.wallet_235] +# mnemonic = "guard special afford city window release song acquire muscle remain awesome buffalo bottom atom edit cabin steel cereal funny pride display security used open" +# balance = 100_000_000_000_000 +# # stx_address: ST2Z668XHZ3ZQM4ZZ86N1BMW9EHFFYKWK7ZV33VT1 + +# [accounts.wallet_236] +# mnemonic = "engine antenna fuel chuckle order advance put orient update blouse raise riot chapter car father process summer bid token client actor shine behave buffalo" +# balance = 100_000_000_000_000 +# # stx_address: ST24EYPX4KGXM9080EFXM84N3X39M15F91F46CYQY + +# [accounts.wallet_237] +# mnemonic = "girl stereo worth circle bag neutral actress human blood come demand topple peanut fade boss burden crop teach chalk cheap alarm square rail cupboard" +# balance = 100_000_000_000_000 +# # stx_address: STTAV72769X9A3408WKMKNJQ8HCJW5EHQK0G1B4N + +# [accounts.wallet_238] +# mnemonic = "glove tent daring leopard chief control monitor way staff junk affair volume dune work destroy achieve rely south legal polar rack quality submit cheap" +# balance = 100_000_000_000_000 +# # stx_address: ST3PBJ9EYCB4D7ZDDWV6G4XMS74JZ8QBPDTF10636 + +# [accounts.wallet_239] +# mnemonic = "ghost shaft loyal theory cluster tourist celery upgrade aunt science divorce wasp release decade grid news noise nest latin define capable cabin peasant mass" +# balance = 100_000_000_000_000 +# # stx_address: ST372SHXBNZ3QWZWG6T7SRY9HYVT98246MHR6M0M8 + +# [accounts.wallet_240] +# mnemonic = "song keen dog fold drift empower artist culture speed arrest saddle sponsor main swear subway drive gesture educate help easy must benefit sausage dizzy" +# balance = 100_000_000_000_000 +# # stx_address: ST1HHBQZKNY3FE4TN2ERBYCVGZV938EPV3RB1JCGK + +# [accounts.wallet_241] +# mnemonic = "parent pond lawsuit awake woman latin matter wild buffalo dose token will climb mass head vault quiz canoe absorb clock hurdle bunker alcohol poverty" +# balance = 100_000_000_000_000 +# # stx_address: ST2DS1T540027D8MMERQ8C7BWJ7D5XNSVSAS9KXH3 + +# [accounts.wallet_242] +# mnemonic = "undo crouch accident slide hand goddess frown clown picnic garage prize sail mean nation twist keep other forget wheel author private buyer column current" +# balance = 100_000_000_000_000 +# # stx_address: ST2YQWFV0HT8X900MKFQ7B0NSGTRDADN9RP99JY4D + +# [accounts.wallet_243] +# mnemonic = "car media photo proud vibrant noodle run brass slab rule electric decade trust rural dynamic amateur door shrug shield swing tornado own cart aim" +# balance = 100_000_000_000_000 +# # stx_address: ST2XJ3KH8BSD0KZBQBXBRPWK3VQ96C7HN5ZDZ79D4 + +# [accounts.wallet_244] +# mnemonic = "skill beef toddler amused doctor move expire ribbon boss possible cabbage visa flip salmon garage kiwi ski world joke quick kitchen auction view that" +# balance = 100_000_000_000_000 +# # stx_address: ST2APDCKZNGBWQYST6GGH9D27ZQCHQQBB30XS66J8 + +# [accounts.wallet_245] +# mnemonic = "genuine possible nasty flower rigid corn twice mandate machine embody jelly snap rich stock project length post twist edit crew mountain clever prepare verb" +# balance = 100_000_000_000_000 +# # stx_address: ST1DQWEPD76FCE10R695986PWSZ4F1XFZGM7KX78Y + +# [accounts.wallet_246] +# mnemonic = "fantasy collect neglect cover bread reopen depart night soda mean love spell right wire fiction help guilt lawsuit gun cement deal pumpkin maple release" +# balance = 100_000_000_000_000 +# # stx_address: STRD12XRPZVSK2HJ21R3FFW65JVGFTA7TY7MHH0W + +# [accounts.wallet_247] +# mnemonic = "dentist guard hen real puzzle bleak dose off push drum prefer artefact brisk hazard uncover destroy arrest chat mechanic song charge link copper shove" +# balance = 100_000_000_000_000 +# # stx_address: ST2GYMTA4108JSAE368S1M9SKQ3ZCP6H3VSX6HVPB + +# [accounts.wallet_248] +# mnemonic = "size crater order gun drift avocado great place because torch thank load hand cargo twelve ranch deny promote evoke hazard wreck toddler patrol shuffle" +# balance = 100_000_000_000_000 +# # stx_address: ST19TB1T3CT67QA091GEEFXM3PQVFVWEWYR2Q72J7 + +# [accounts.wallet_249] +# mnemonic = "path vendor strike swim bus erode false review people teach broken hood leopard cushion shove twenty machine brick elevator palm illness bone heart drift" +# balance = 100_000_000_000_000 +# # stx_address: ST28T0M2ZQ20T36SPYKXZVNE3T7MZRNGYHCYQCKEP + +# [accounts.wallet_250] +# mnemonic = "fitness hard million oil alley slab mistake zone chapter paper absorb medal canoe search cause pistol foot bike phrase vapor clock floor evoke buddy" +# balance = 100_000_000_000_000 +# # stx_address: ST3KTHGK5XFF36ZVB3CXAQ0TMBMQNFB3KS7ZRNPWE + +# [accounts.wallet_251] +# mnemonic = "impose actress cherry want food gaze cloth misery voyage adult grief math kit file matter grant chunk tree modify blame short pig business abandon" +# balance = 100_000_000_000_000 +# # stx_address: ST1JZV0A3MNCQYKXH62771BA44RKF3CEPEWV5CQ15 + +# [accounts.wallet_252] +# mnemonic = "awkward picture luxury bone weasel fold slab never dose senior assault vote urge voice spare universe quarter shift circle recall pull hawk furnace feel" +# balance = 100_000_000_000_000 +# # stx_address: ST210RQMJGSQ7P5ZMD1VA359X0HJ6Z1AVHW36PY0G + +# [accounts.wallet_253] +# mnemonic = "relax symptom erupt recall attack radar inmate elephant jaguar blast sweet hip gallery adjust violin silver script yellow yellow mesh good quit ice column" +# balance = 100_000_000_000_000 +# # stx_address: ST1A1PRZ9F5SPB65JHMN7RAR5ZKM6EKE8T93YC82W + +# [accounts.wallet_254] +# mnemonic = "space strike leaf early cabin furnace jaguar coil radio tenant special repeat bulb genuine choose maid best visual brass body brother floor model attitude" +# balance = 100_000_000_000_000 +# # stx_address: ST2XF55S30H47M01N11VPEJCP4MFEQK0R6HK8YHDS + +# [accounts.wallet_255] +# mnemonic = "tone require destroy ugly scrub kiwi diagram syrup nerve uncle twin crazy noble urban garlic obvious only fortune cheese party give salmon image width" +# balance = 100_000_000_000_000 +# # stx_address: STFFRH3F09F8P1F0F2B7Z401WVY6V2T1FVHE9FBR + +# [accounts.wallet_256] +# mnemonic = "oven screen merge drift breeze dial extend flavor hope planet summer total cycle boost half spin regret poet base strategy decline fox write blouse" +# balance = 100_000_000_000_000 +# # stx_address: ST18XGDMP2XDG8SKNZ41DPG6SREJMR5ND470CHT5B + +# [accounts.wallet_257] +# mnemonic = "fabric wait joy dinner brother toddler wall genre dash essence eager acquire answer option claim rule travel runway require dawn cry skull fix bird" +# balance = 100_000_000_000_000 +# # stx_address: STQ34Y2RT4P52RY5569CAX8SCVR6ZV0N02FC4RAZ + +# [accounts.wallet_258] +# mnemonic = "cycle cube ridge jelly special misery panic marriage language pave grant ship credit scene dynamic supply body point leave wrap tray embody begin doctor" +# balance = 100_000_000_000_000 +# # stx_address: STNZ3J2YE22VDXPN12TFFWEFZEHRTE2DTRTAPGYK + +# [accounts.wallet_259] +# mnemonic = "proof maze pear estate speak clock hover unknown hidden example ski theme safe wealth van amazing unveil village excuse beyond tired liberty raw glimpse" +# balance = 100_000_000_000_000 +# # stx_address: ST19J0FC9KFWFGFQP8T6VPAQSDZWPH4XG8ZH7H76C + +# [accounts.wallet_260] +# mnemonic = "loop gown angle jazz column inflict label gravity abuse tuition surround maximum depart drastic dove limit tooth arrest remember moon journey post elbow fury" +# balance = 100_000_000_000_000 +# # stx_address: ST1AQKP4293D6S4A9ZK3Y1P83ZBGBPSFH4JC6VB13 + +# [accounts.wallet_261] +# mnemonic = "insane vast valid toilet timber expose mosquito glide setup fat rhythm tuition night around mix rain dizzy grit knee rice vendor gate lunch screen" +# balance = 100_000_000_000_000 +# # stx_address: ST1TSWWSZ58FAW47HVYDEDGJNCJRYZ375VAJ96971 + +# [accounts.wallet_262] +# mnemonic = "mandate still include actual myself empty suit aspect remind fat have cousin grace enroll mad bind owner cheese dragon dutch keen deal valid west" +# balance = 100_000_000_000_000 +# # stx_address: ST2KF0ZFSHMCBNSBK8EQKF7RJXFX6VBR96MEW8RZ8 + +# [accounts.wallet_263] +# mnemonic = "side target piece still onion bounce sheriff swap thought scan minor dance antique rescue mom six sure bread pipe fog alter nurse shop main" +# balance = 100_000_000_000_000 +# # stx_address: ST36AHHV7WWMDES1N1WPVSAWR0Y5PJMA5BHRHSJNN + +# [accounts.wallet_264] +# mnemonic = "grass diary milk minimum million bachelor snow fence tail short level orbit frown salmon satoshi quiz fitness cave tribe guitar minimum tissue deliver danger" +# balance = 100_000_000_000_000 +# # stx_address: STS0J96DMCJ3XK55P64MQ2XMAVPK21NCWRMSFSWB + +# [accounts.wallet_265] +# mnemonic = "diary pelican attract solar donkey manual churn brother bounce swallow boss tomorrow cradle renew blood slow job clap web fever pony fun skull work" +# balance = 100_000_000_000_000 +# # stx_address: STY5011J6F899F85EDCSV7DGRRZCQ20GVKJFWCEM + +# [accounts.wallet_266] +# mnemonic = "anchor leisure blossom present diesel brass lounge olive frequent corn amazing flame balcony chicken claim clog machine slot equal tuition index uniform mistake utility" +# balance = 100_000_000_000_000 +# # stx_address: ST3MNM6128ERXFJB9VH0A41CZAATWZKEDR1GHKRGV + +# [accounts.wallet_267] +# mnemonic = "cover rifle price swarm pluck gas issue sugar theory input curve symptom pill focus neglect antique assist loan special myth excite business zebra target" +# balance = 100_000_000_000_000 +# # stx_address: ST12MNYMC96TW7C6NMNDWYCPW09X6659PAPPGVWQG + +# [accounts.wallet_268] +# mnemonic = "occur fever wink wet fix where pair member flash proud danger tide almost discover wear maze nest surge suspect endorse merry power barely list" +# balance = 100_000_000_000_000 +# # stx_address: STBM46MFC084ZMQ9ZKK81HV12NRJNE143C1WN6BV + +# [accounts.wallet_269] +# mnemonic = "faith panic damage normal early target invite scrap ramp venue hair belt phrase pigeon vicious scheme illegal like mean prison globe era credit among" +# balance = 100_000_000_000_000 +# # stx_address: ST3C4D478ZP3VVAXRJDVHRHX6J5YXWE5GEP4BQZVD + +# [accounts.wallet_270] +# mnemonic = "spike punch card tuition near noble early tray silent combine food this exhibit cushion error deputy captain melody property labor title snack nature case" +# balance = 100_000_000_000_000 +# # stx_address: ST2CRWMQGWB7E2819JA3JYCAH2FPYS92NM0T7QMW8 + +# [accounts.wallet_271] +# mnemonic = "nation off want depth please hip crunch combine supply opera very wall depth brown ignore shrimp issue near maid swing project eager absent history" +# balance = 100_000_000_000_000 +# # stx_address: ST2G52ZHB418J2AGJ2FT3FS9GEB4NMMD6A3H1WMD4 + +# [accounts.wallet_272] +# mnemonic = "ring rebuild festival top journey spray kingdom build raccoon critic rabbit snack try opera mixture fox moment notice clog ranch layer release spell square" +# balance = 100_000_000_000_000 +# # stx_address: STAX83AXMCZND0X3HYXYS0K4NNG66410RGWQ3SXD + +# [accounts.wallet_273] +# mnemonic = "large oil tissue detect weekend fresh olive also tired matrix enact thank brain exclude opinion kiwi stay ensure alcohol awkward engage vanish steak satoshi" +# balance = 100_000_000_000_000 +# # stx_address: ST3D730J0W7ZYRBYTKRD2RB7T0K8ERRVEPX8F1DVF + +# [accounts.wallet_274] +# mnemonic = "put people require opera size shove verify script record angle brass trigger tomato rough cat spy hotel elephant setup minimum pumpkin open woman lobster" +# balance = 100_000_000_000_000 +# # stx_address: STYA37DN4PTAR3M83WPWHV73KVPBBDGGW4FAF721 + +# [accounts.wallet_275] +# mnemonic = "hurdle kite race gentle wave pause hunt lecture shield royal caught oxygen doll trick sense cost have elite era hint way flee breeze liquid" +# balance = 100_000_000_000_000 +# # stx_address: STZRX6B4HY58CHAF0PWM7DCHCTYKGNV62VJNDYRA + +# [accounts.wallet_276] +# mnemonic = "mosquito nothing bounce anchor size estate canoe cook sand fan olive stove trumpet series flip size elephant hobby runway future exhaust resist valid lemon" +# balance = 100_000_000_000_000 +# # stx_address: ST112ARABY0EKE3S2HD1S2FP0J4DSBHZMZ2925C8T + +# [accounts.wallet_277] +# mnemonic = "spy air orchard lecture syrup traffic either uncover clean witness much small absurd detail utility drift shuffle defy dwarf hotel job calm acid cheese" +# balance = 100_000_000_000_000 +# # stx_address: ST2MP23P7HHTJAN1H0WEQ56F9GX19RWJNK3A17CT3 + +# [accounts.wallet_278] +# mnemonic = "lift sand dizzy utility finish fury flip town resemble combine flower void stick ball pattern parent either vivid eight sand few alley swarm juice" +# balance = 100_000_000_000_000 +# # stx_address: ST2E2TFWE14MJRGWSNTHK1CRQVM513QHJNVMAEAX + +# [accounts.wallet_279] +# mnemonic = "merry tortoise magnet squeeze pelican parrot sight tornado quantum angry ticket border island typical rail interest damage arch frozen private antique since habit rigid" +# balance = 100_000_000_000_000 +# # stx_address: ST3FCDKASSJPEKVZQV0ADE8VTWCC4QYY1BNX7TRJE + +# [accounts.wallet_280] +# mnemonic = "merit suggest rabbit where girl label horse marriage summer sport earn phrase theory ensure volcano job produce slight play exile kiwi often black repeat" +# balance = 100_000_000_000_000 +# # stx_address: ST172BC87JQR1SSNK4MB0XM3SWVQTZE88BTMEFVBX + +# [accounts.wallet_281] +# mnemonic = "weapon hope brand regular grid smooth enable cement assist symptom improve female divorce veteran nerve crumble balcony cry issue trophy drama meadow collect medal" +# balance = 100_000_000_000_000 +# # stx_address: ST27AHVK5TYF08DHD8WD8T212S379BJQH67Q4G6RD + +# [accounts.wallet_282] +# mnemonic = "neither buffalo slogan artefact fiscal weekend random tomorrow dog cupboard cube where also okay alert follow pear brave input mind cement celery truth modify" +# balance = 100_000_000_000_000 +# # stx_address: ST3FZN9NAJXPQJRRDHD1XWKC55VTK7523QC3ACY1N + +# [accounts.wallet_283] +# mnemonic = "window color model off water glad trial stage snap jazz shove wise attract jazz clip mansion alien guard police apple cheap nest bomb survey" +# balance = 100_000_000_000_000 +# # stx_address: ST14JCGKFXD40EEA3VBBS0CVDXGG5QYCBY0CMFC84 + +# [accounts.wallet_284] +# mnemonic = "link toe purchase remain modify laptop gap message quality fog half absent speak learn shuffle donor animal sunset popular brush antenna usual protect jar" +# balance = 100_000_000_000_000 +# # stx_address: ST4VT08M4YHAT8G2D55194P4N08DEVDG6K159J4V + +# [accounts.wallet_285] +# mnemonic = "confirm turtle parent alley planet bridge forum roof scout echo together enlist tomorrow rally flame cart second cause slender aisle crane gap brave nothing" +# balance = 100_000_000_000_000 +# # stx_address: ST2199Y9CM5F10TR4TD44AHWZJB9RPNZV9E50XKZC + +# [accounts.wallet_286] +# mnemonic = "glove knee mercy sail hope miracle circle hand that gadget spy stadium country warfare sure pond cancel edge palace film puzzle eagle fabric muscle" +# balance = 100_000_000_000_000 +# # stx_address: ST3116AAKYVQM0JQFMTD9MP27CAM93KR71K4JGZ3Y + +# [accounts.wallet_287] +# mnemonic = "safe frost curve super normal soda shoulder state urge help thing lift light learn swear cattle violin ritual report wash rain combine job gap" +# balance = 100_000_000_000_000 +# # stx_address: ST2DKAKYTR20FVWX9X62YQ8KY94B3SXZEX3Z850C7 + +# [accounts.wallet_288] +# mnemonic = "sad banana enforce height warrior oil add effort where rebel pledge dove tackle victory million pelican milk vast ridge measure survey fall animal fire" +# balance = 100_000_000_000_000 +# # stx_address: ST5NN3TJEVZSAP82MH4BA2BPTJ7WAA196ZJ18FBX + +# [accounts.wallet_289] +# mnemonic = "release piece image fancy ketchup improve permit camera man same ceiling cook slim buddy wide stereo uphold snap search half inside dash blur math" +# balance = 100_000_000_000_000 +# # stx_address: ST1G39YHBMPAY3M5HXECJX28VWK29Q30AV3QQGZJ0 + +# [accounts.wallet_290] +# mnemonic = "they flee slam crumble armor crack frequent video stuff urge gospel rain deny raw resemble team inform wolf buddy oxygen sponsor hospital knee track" +# balance = 100_000_000_000_000 +# # stx_address: STCYS3GMYXJ179Y0BEM2Q938K9YJPE2T827X9BGG + +# [accounts.wallet_291] +# mnemonic = "gauge gasp struggle enlist pull century math hover van put balance crash wise violin pet dream bacon switch spoon best smart federal lake notable" +# balance = 100_000_000_000_000 +# # stx_address: ST2F2D765S15Z50437MMVJK5N74W8AEN7S8P7FGC7 + +# [accounts.wallet_292] +# mnemonic = "then firm luxury inflict gospel old wonder image crucial oil green any innocent ordinary beauty wonder cannon crawl era merge awkward weasel reduce tumble" +# balance = 100_000_000_000_000 +# # stx_address: ST9G2K8Z4HE5XPV00V9DAZZF13981PX38WQV0VDS + +# [accounts.wallet_293] +# mnemonic = "lawsuit recipe quality ramp keep athlete horse comfort safe security junior river excess scheme drink okay tail lyrics abuse ghost cave token ice return" +# balance = 100_000_000_000_000 +# # stx_address: ST36M7B28BDRMFXXTS76X22GGMEN51SA5EXZYYWBC + +# [accounts.wallet_294] +# mnemonic = "uphold winter guard torch object muffin short nothing citizen isolate inspire major first season grain vast access hungry talent tongue clerk scrub poem scout" +# balance = 100_000_000_000_000 +# # stx_address: ST230BFE44WBW7S7077DNQBN5S2868ZKN2P7Y6T7M + +# [accounts.wallet_295] +# mnemonic = "moon hair slot misery gravity chalk lobster name reform can around mom confirm devote door job ahead avocado crowd hidden fitness engage run oil" +# balance = 100_000_000_000_000 +# # stx_address: ST1JSFPPMD5BYYW8NJ22VRY3C58G46041H4Q7AEA6 + +# [accounts.wallet_296] +# mnemonic = "wood force theory series donate festival suffer message vacant wood define story near year sound galaxy video width february display another impose cabin badge" +# balance = 100_000_000_000_000 +# # stx_address: ST1FZZ8WFE6SRD4W3YS8AC4XJTNGYZGXK2RT5K6EK + +# [accounts.wallet_297] +# mnemonic = "receive until robust loyal alone oval bone jazz update nation taxi bone wrap equip confirm fluid have raw either brick winner dust core one" +# balance = 100_000_000_000_000 +# # stx_address: ST3J2FN3FS6AVWW1C7D87J5RMK860YKE8JS55GCJB + +# [accounts.wallet_298] +# mnemonic = "warm pioneer obscure soldier never aerobic company drift enforce bunker dinner frog bid evil tissue fresh arch moral table embrace panther hunt reveal peasant" +# balance = 100_000_000_000_000 +# # stx_address: ST3CBP0S93SBVH24646HXRKA02BHA8J3DHV1MZZMZ + +# [accounts.wallet_299] +# mnemonic = "goddess shoot myth crash purchase junk raven gown hat valid mushroom weasel hidden opera regular saddle rival bulk chapter paper three nothing moon fuel" +# balance = 100_000_000_000_000 +# # stx_address: ST207PMA3S3GC9JN4HR1A4W77RVB06NXZGD388A8F + +# [accounts.wallet_300] +# mnemonic = "slim wild bridge shiver clinic grain music elegant cross monkey inform guilt green misery canyon sight letter believe attract card twenty ask duck boy" +# balance = 100_000_000_000_000 +# # stx_address: ST25GS8Q6ST2WY0XY80M2T9543H15PMRRQKEGVSA0 [accounts.faucet] mnemonic = "shadow private easily thought say logic fault paddle word top book during ignore notable orange flight clock image wealth health outside kitten belt reform" @@ -1596,12 +1596,12 @@ epoch_2_4 = 112 # slots = 2 # btc_address = "mr1iPkD9N3RJZZxXRk7xF9d36gffa6exNC" -[[devnet.pox_stacking_orders]] -start_at_cycle = 2 -duration = 12 -wallet = "wallet_5" -slots = 1 -btc_address = "muYdXKmX9bByAueDe6KFfHd5Ff1gdN9ErG" +# [[devnet.pox_stacking_orders]] +# start_at_cycle = 2 +# duration = 12 +# wallet = "wallet_5" +# slots = 1 +# btc_address = "muYdXKmX9bByAueDe6KFfHd5Ff1gdN9ErG" # # [[devnet.pox_stacking_orders]] # start_at_cycle = 3 diff --git a/smart-contracts/smart-contract/tsconfig.json b/smart-contracts/smart-contract/tsconfig.json index 15b4424..5bd1cba 100644 --- a/smart-contracts/smart-contract/tsconfig.json +++ b/smart-contracts/smart-contract/tsconfig.json @@ -1,20 +1,22 @@ { "compilerOptions": { - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ESNext"], "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "module": "esnext", - "moduleResolution": "node", + + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "types": ["vitest/globals"] + + "strict": true, + "noImplicitAny": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true }, - "include": ["tests"] -} \ No newline at end of file + "include": ["node_modules/@hirosystems/clarinet-sdk/vitest-helpers/src", "unit-tests"] +} diff --git a/smart-contracts/smart-contract/vitest.config.js b/smart-contracts/smart-contract/vitest.config.js new file mode 100644 index 0000000..6b327a6 --- /dev/null +++ b/smart-contracts/smart-contract/vitest.config.js @@ -0,0 +1,41 @@ +/// + +import { defineConfig } from "vite"; +import { vitestSetupFilePath, getClarinetVitestsArgv } from "@hirosystems/clarinet-sdk/vitest"; + +/* + In this file, Vitest is configured so that it works seamlessly with Clarinet and the Simnet. + + The `vitest-environment-clarinet` will initialise the clarinet-sdk + and make the `simnet` object available globally in the test files. + + `vitestSetupFilePath` points to a file in the `@hirosystems/clarinet-sdk` package that does two things: + - run `before` hooks to initialize the simnet and `after` hooks to collect costs and coverage reports. + - load custom vitest matchers to work with Clarity values (such as `expect(...).toBeUint()`) + + The `getClarinetVitestsArgv()` will parse options passed to the command `vitest run --` + - vitest run -- --manifest ./Clarinet.toml # pass a custom path + - vitest run -- --coverage --costs # collect coverage and cost reports +*/ + +export default defineConfig({ + test: { + environment: "clarinet", // use vitest-environment-clarinet + pool: "forks", + poolOptions: { + threads: { + singleThread: true, + }, + }, + setupFiles: [ + vitestSetupFilePath, + // custom setup files can be added here + ], + environmentOptions: { + clarinet: { + ...getClarinetVitestsArgv(), + // add or override options + }, + }, + }, +}); diff --git a/smart-contracts/smart-contract/yarn.lock b/smart-contracts/smart-contract/yarn.lock index 24343d9..fd550f2 100644 --- a/smart-contracts/smart-contract/yarn.lock +++ b/smart-contracts/smart-contract/yarn.lock @@ -2,325 +2,147 @@ # yarn lockfile v1 -"@actions/core@^1.10.0", "@actions/core@^1.2.0": - version "1.10.0" - resolved "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz" - integrity sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug== - dependencies: - "@actions/http-client" "^2.0.1" - uuid "^8.3.2" - -"@actions/http-client@^2.0.1": - version "2.1.0" - resolved "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.0.tgz" - integrity sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw== - dependencies: - tunnel "^0.0.6" - -"@ampproject/remapping@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz" - integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/compat-data@^7.21.4": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz" - integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== - -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz" - integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-compilation-targets" "^7.21.4" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.4" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.4" - "@babel/types" "^7.21.4" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/generator@^7.21.4", "@babel/generator@^7.7.2": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz" - integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA== - dependencies: - "@babel/types" "^7.21.4" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.21.4": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz" - integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg== - dependencies: - "@babel/compat-data" "^7.21.4" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-imports@^7.18.6": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz" - integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== - dependencies: - "@babel/types" "^7.21.4" - -"@babel/helper-module-transforms@^7.21.2": - version "7.21.2" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz" - integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" - -"@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.20.2", "@babel/helper-plugin-utils@^7.8.0": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - -"@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz" - integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz" - integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz" - integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.20.7" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.7.2": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz" - integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q== - dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.4" - "@babel/types" "^7.21.4" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.21.4" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz" - integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@esbuild/darwin-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz" - integrity sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA== +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== "@hirosystems/chainhook-types@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@hirosystems/chainhook-types/-/chainhook-types-1.1.2.tgz" integrity sha512-klQDKRyiPqF9fgDetMLTPMcB4A/+Vo7px74RbzzvmnCSDMPQua0DD5zhfuo12Ga3pexFFoIftIqnSjWvjncKNQ== +"@hirosystems/clarinet-sdk-wasm@^2.3.1": + version "2.3.1" + resolved "https://registry.npmjs.org/@hirosystems/clarinet-sdk-wasm/-/clarinet-sdk-wasm-2.3.1.tgz" + integrity sha512-2x5cdnhMrYu5mJrtB0/LCkSX8gLAWFoB8juzjQVoPj+Q3oi+9586COyvqCzqJdFPf1mZhuWYgtWQvk5rm3d4XA== + +"@hirosystems/clarinet-sdk@^2.3.1": + version "2.3.1" + resolved "https://registry.npmjs.org/@hirosystems/clarinet-sdk/-/clarinet-sdk-2.3.1.tgz" + integrity sha512-nQXH3vItuDPl7sQDq636/I7a+/8SA8BOyu3BHmuahWa1kvKE4fAeMTgRfMyi68d5+wbEivx2v6ueUPWcVJT6yQ== + dependencies: + "@hirosystems/clarinet-sdk-wasm" "^2.3.1" + "@stacks/transactions" "^6.12.0" + kolorist "^1.8.0" + prompts "^2.4.2" + vitest "^1.0.4" + yargs "^17.7.2" + "@hirosystems/stacks-devnet-js@^1.6.2": - version "1.7.0" - resolved "https://registry.npmjs.org/@hirosystems/stacks-devnet-js/-/stacks-devnet-js-1.7.0.tgz" - integrity sha512-F76e+4EEDzZxEuqzP4jSmbmL6/WtiTm5UH7TeAGgHEDA7SYEy+ZSMd/xvF2PNnwgBRXMFKWF+kZcYlwygNr3Mw== + version "1.8.0" + resolved "https://registry.yarnpkg.com/@hirosystems/stacks-devnet-js/-/stacks-devnet-js-1.8.0.tgz#47ec48a10a33fef9f968393a92ed246d268fa66a" + integrity sha512-XUBLoXPkguXxwUxfOovKN9CeVhGlXVw+qkZHO1g4YHl2oBN/NQZ16HvO32qKq0mq2opSqbOYcigHwqyKq2wdbQ== dependencies: "@hirosystems/chainhook-types" "^1.1.2" "@mapbox/node-pre-gyp" "^1.0.8" @@ -328,247 +150,22 @@ node-pre-gyp-github "^1.4.3" typescript "^4.5.5" -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - -"@jest/core@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz" - integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/reporters" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^27.5.1" - jest-config "^27.5.1" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-resolve-dependencies "^27.5.1" - jest-runner "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - jest-watcher "^27.5.1" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz" - integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== - dependencies: - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - -"@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz" - integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== - dependencies: - "@jest/types" "^27.5.1" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -"@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz" - integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/types" "^27.5.1" - expect "^27.5.1" - -"@jest/reporters@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz" - integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-haste-map "^27.5.1" - jest-resolve "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/schemas@^29.6.0": - version "29.6.0" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz" - integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== dependencies: "@sinclair/typebox" "^0.27.8" -"@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz" - integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.9" - source-map "^0.6.0" - -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== - dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz" - integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== - dependencies: - "@jest/test-result" "^27.5.1" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" - -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - "@mapbox/node-pre-gyp@^1.0.8": - version "1.0.10" - resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz" - integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== + version "1.0.11" + resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz" + integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== dependencies: detect-libc "^2.0.0" https-proxy-agent "^5.0.0" @@ -580,24 +177,29 @@ semver "^7.3.5" tar "^6.1.11" -"@noble/curves@~0.8.3": - version "0.8.3" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-0.8.3.tgz" - integrity sha512-OqaOf4RWDaCRuBKJLDURrgVxjLmneGsiCXGuzYB5y95YithZMA6w4uk34DHSm0rKMrrYiaeZj48/81EvaAScLQ== - dependencies: - "@noble/hashes" "1.3.0" - -"@noble/hashes@^1.1.2", "@noble/hashes@^1.1.5", "@noble/hashes@^1.2.0", "@noble/hashes@~1.3.0", "@noble/hashes@1.3.0": +"@noble/curves@~1.3.0": version "1.3.0" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz" - integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" + integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== + dependencies: + "@noble/hashes" "1.3.3" -"@noble/hashes@~1.1.1", "@noble/hashes@1.1.5": +"@noble/hashes@1.1.5", "@noble/hashes@~1.1.1": version "1.1.5" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz" integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== -"@noble/secp256k1@^1.7.0", "@noble/secp256k1@~1.7.0", "@noble/secp256k1@1.7.1": +"@noble/hashes@1.3.3", "@noble/hashes@^1.1.5", "@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.1.2", "@noble/hashes@^1.2.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz" + integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== + +"@noble/secp256k1@1.7.1", "@noble/secp256k1@^1.7.0", "@noble/secp256k1@~1.7.0": version "1.7.1" resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== @@ -609,7 +211,7 @@ dependencies: "@octokit/types" "^6.0.3" -"@octokit/core@^3.5.1", "@octokit/core@>=2", "@octokit/core@>=3": +"@octokit/core@^3.5.1": version "3.6.0" resolved "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz" integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== @@ -703,32 +305,89 @@ dependencies: "@octokit/openapi-types" "^12.11.0" -"@polka/url@^1.0.0-next.20": - version "1.0.0-next.21" - resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz" - integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== - -"@scure/base@^1.1.1", "@scure/base@~1.1.0", "@scure/base@~1.1.1", "@scure/base@1.1.1": +"@rollup/rollup-android-arm-eabi@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz#38c3abd1955a3c21d492af6b1a1dca4bb1d894d6" + integrity sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w== + +"@rollup/rollup-android-arm64@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz#3822e929f415627609e53b11cec9a4be806de0e2" + integrity sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ== + +"@rollup/rollup-darwin-arm64@4.12.0": + version "4.12.0" + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz" + integrity sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ== + +"@rollup/rollup-darwin-x64@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz#c34ca0d31f3c46a22c9afa0e944403eea0edcfd8" + integrity sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg== + +"@rollup/rollup-linux-arm-gnueabihf@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz#48e899c1e438629c072889b824a98787a7c2362d" + integrity sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA== + +"@rollup/rollup-linux-arm64-gnu@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz#788c2698a119dc229062d40da6ada8a090a73a68" + integrity sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA== + +"@rollup/rollup-linux-arm64-musl@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz#3882a4e3a564af9e55804beeb67076857b035ab7" + integrity sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ== + +"@rollup/rollup-linux-riscv64-gnu@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz#0c6ad792e1195c12bfae634425a3d2aa0fe93ab7" + integrity sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw== + +"@rollup/rollup-linux-x64-gnu@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz#9d62485ea0f18d8674033b57aa14fb758f6ec6e3" + integrity sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA== + +"@rollup/rollup-linux-x64-musl@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz#50e8167e28b33c977c1f813def2b2074d1435e05" + integrity sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw== + +"@rollup/rollup-win32-arm64-msvc@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz#68d233272a2004429124494121a42c4aebdc5b8e" + integrity sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw== + +"@rollup/rollup-win32-ia32-msvc@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz#366ca62221d1689e3b55a03f4ae12ae9ba595d40" + integrity sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA== + +"@rollup/rollup-win32-x64-msvc@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz#9ffdf9ed133a7464f4ae187eb9e1294413fab235" + integrity sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg== + +"@scure/base@1.1.1", "@scure/base@~1.1.0": version "1.1.1" resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz" integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== -"@scure/bip32@^1.1.1": - version "1.2.0" - resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.2.0.tgz" - integrity sha512-O+vT/hBVk+ag2i6j2CDemwd1E1MtGt+7O1KzrPNsaNvSsiEK55MyPIxJIMI2PS8Ijj464B2VbQlpRoQXxw1uHg== - dependencies: - "@noble/curves" "~0.8.3" - "@noble/hashes" "~1.3.0" - "@scure/base" "~1.1.0" +"@scure/base@^1.1.1", "@scure/base@~1.1.1", "@scure/base@~1.1.4": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" + integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== -"@scure/bip39@^1.1.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz" - integrity sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg== +"@scure/bip32@^1.1.1": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.3.tgz#a9624991dc8767087c57999a5d79488f48eae6c8" + integrity sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ== dependencies: - "@noble/hashes" "~1.3.0" - "@scure/base" "~1.1.0" + "@noble/curves" "~1.3.0" + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.4" "@scure/bip39@1.1.0": version "1.1.0" @@ -738,67 +397,61 @@ "@noble/hashes" "~1.1.1" "@scure/base" "~1.1.0" +"@scure/bip39@^1.1.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.2.tgz#f3426813f4ced11a47489cbcf7294aa963966527" + integrity sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA== + dependencies: + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.4" + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== -"@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@stacks/common@^6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/@stacks/common/-/common-6.0.0.tgz" - integrity sha512-tETwccvbYvaZ7u3ZucWNMOIPN97r6IPeZXKIFhLc1KSVaWSGEPTtZcwVp+Rz3mu2XgI2pg37SUrOWXSL7OOkDw== +"@stacks/common@^6.0.0", "@stacks/common@^6.10.0": + version "6.10.0" + resolved "https://registry.npmjs.org/@stacks/common/-/common-6.10.0.tgz" + integrity sha512-6x5Z7AKd9/kj3+DYE9xIDIkFLHihBH614i2wqrZIjN02WxVo063hWSjIlUxlx8P4gl6olVzlOy5LzhLJD9OP0A== dependencies: "@types/bn.js" "^5.1.0" "@types/node" "^18.0.4" -"@stacks/encryption@^6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.5.0.tgz" - integrity sha512-QE1+gy1x6spGkpK5PnZxKoX1hL8eeIYxYa5HNMl4cbdIVKaFgqjoGFKMtTA/tQMc91T/saXLqbQLyh/U4AVpTA== +"@stacks/encryption@^6.12.0": + version "6.12.0" + resolved "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.12.0.tgz" + integrity sha512-CubE51pHrcxx3yA+xapevPgA9UDleIoEaUZ06/9uD91B42yvTg37HyS8t06rzukU9q+X7Cv2I/+vbuf4nJIo8g== dependencies: "@noble/hashes" "1.1.5" "@noble/secp256k1" "1.7.1" "@scure/bip39" "1.1.0" - "@stacks/common" "^6.0.0" + "@stacks/common" "^6.10.0" "@types/node" "^18.0.4" base64-js "^1.5.1" bs58 "^5.0.0" ripemd160-min "^0.0.6" varuint-bitcoin "^1.1.2" -"@stacks/network@^6.0.0", "@stacks/network@^6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@stacks/network/-/network-6.3.0.tgz" - integrity sha512-573ZldQ+Iy0nCCxprXLLvkAo1AMEXncfmMUvqQ+5TN3m7VqCVADtb5G5WzMZsyR4m/k9oPsv076Lmqyl8AtR2A== +"@stacks/network@^6.0.0", "@stacks/network@^6.11.3": + version "6.11.3" + resolved "https://registry.npmjs.org/@stacks/network/-/network-6.11.3.tgz" + integrity sha512-c4ClCU/QUwuu8NbHtDKPJNa0M5YxauLN3vYaR0+S4awbhVIKFQSxirm9Q9ckV1WBh7FtD6u2S0x+tDQGAODjNg== dependencies: - "@stacks/common" "^6.0.0" + "@stacks/common" "^6.10.0" cross-fetch "^3.1.5" "@stacks/stacking@^6.0.2": - version "6.5.0" - resolved "https://registry.npmjs.org/@stacks/stacking/-/stacking-6.5.0.tgz" - integrity sha512-Kb8FK+NxEFDXP2r9xXGdeR7cZp52Cz5btpW4xKAEM7Ze3QPB6cM8IALvMBh3e53qqw8sO/dpRqcIjrNgLf5gqg== + version "6.12.0" + resolved "https://registry.yarnpkg.com/@stacks/stacking/-/stacking-6.12.0.tgz#67980cc169f141e0d6138deaa03744f416fdc23c" + integrity sha512-XBxwbaCGRPnjpjspb3CBXrlZl6xR+gghLMz9PQNPdpuIbBDFa0SGeHgqjtpVU+2DVL4UyBx8PVsAWtlssyVGng== dependencies: "@scure/base" "1.1.1" - "@stacks/common" "^6.0.0" - "@stacks/encryption" "^6.5.0" - "@stacks/network" "^6.3.0" + "@stacks/common" "^6.10.0" + "@stacks/encryption" "^6.12.0" + "@stacks/network" "^6.11.3" "@stacks/stacks-blockchain-api-types" "^0.61.0" - "@stacks/transactions" "^6.5.0" + "@stacks/transactions" "^6.12.0" bs58 "^5.0.0" "@stacks/stacks-blockchain-api-types@^0.61.0": @@ -806,56 +459,18 @@ resolved "https://registry.npmjs.org/@stacks/stacks-blockchain-api-types/-/stacks-blockchain-api-types-0.61.0.tgz" integrity sha512-yPOfTUboo5eA9BZL/hqMcM71GstrFs9YWzOrJFPeP4cOO1wgYvAcckgBRbgiE3NqeX0A7SLZLDAXLZbATuRq9w== -"@stacks/transactions@^6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.5.0.tgz" - integrity sha512-kwE8cZq+QdAum4/LC+lSlAXVvzkdsSHTkCbfg4+VCWPBqA+gdXEqZe6R9SNBtMb8yGQrqUY8uIGRLVCWcXJ8zQ== +"@stacks/transactions@^6.12.0", "@stacks/transactions@^6.5.0": + version "6.12.0" + resolved "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.12.0.tgz" + integrity sha512-gRP3SfTaAIoTdjMvOiLrMZb/senqB8JQlT5Y4C3/CiHhiprYwTx7TbOCSa7WsNOU99H4aNfHvatmymuggXQVkA== dependencies: "@noble/hashes" "1.1.5" "@noble/secp256k1" "1.7.1" - "@stacks/common" "^6.0.0" - "@stacks/network" "^6.3.0" + "@stacks/common" "^6.10.0" + "@stacks/network" "^6.11.3" c32check "^2.0.0" lodash.clonedeep "^4.5.0" -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.20.0" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz" - integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz" - integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== - dependencies: - "@babel/types" "^7.3.0" - "@types/bn.js@^5.1.0": version "5.1.1" resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz" @@ -863,171 +478,86 @@ dependencies: "@types/node" "*" -"@types/chai-subset@^1.3.3": - version "1.3.3" - resolved "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz" - integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== - dependencies: - "@types/chai" "*" - -"@types/chai@*", "@types/chai@^4.3.5": - version "4.3.5" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz" - integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== - -"@types/graceful-fs@^4.1.2": - version "4.1.6" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" +"@types/estree@1.0.5", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/jest@^27.0.0", "@types/jest@^27.5.2": - version "27.5.2" - resolved "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz" - integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== +"@types/node@*": + version "20.11.24" + resolved "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz" + integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long== dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" + undici-types "~5.26.4" -"@types/node@*", "@types/node@^16.7.13", "@types/node@>= 14": - version "16.18.23" - resolved "https://registry.npmjs.org/@types/node/-/node-16.18.23.tgz" - integrity sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g== +"@types/node@^16.7.13": + version "16.18.87" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.87.tgz#9473038a28bf2d7ef7e4d23ef693a1011981abdf" + integrity sha512-+IzfhNirR/MDbXz6Om5eHV54D9mQlEMGag6AgEzlju0xH3M8baCXYwqQ6RKgGMpn9wSTx6Ltya/0y4Z8eSfdLw== "@types/node@^18.0.4": version "18.15.11" resolved "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz" integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== -"@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^16.0.0": - version "16.0.5" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz" - integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== - dependencies: - "@types/yargs-parser" "*" - -"@vitest/expect@0.32.4": - version "0.32.4" - resolved "https://registry.npmjs.org/@vitest/expect/-/expect-0.32.4.tgz" - integrity sha512-m7EPUqmGIwIeoU763N+ivkFjTzbaBn0n9evsTOcde03ugy2avPs3kZbYmw3DkcH1j5mxhMhdamJkLQ6dM1bk/A== +"@vitest/expect@1.3.1": + version "1.3.1" + resolved "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz" + integrity sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw== dependencies: - "@vitest/spy" "0.32.4" - "@vitest/utils" "0.32.4" - chai "^4.3.7" + "@vitest/spy" "1.3.1" + "@vitest/utils" "1.3.1" + chai "^4.3.10" -"@vitest/runner@0.32.4": - version "0.32.4" - resolved "https://registry.npmjs.org/@vitest/runner/-/runner-0.32.4.tgz" - integrity sha512-cHOVCkiRazobgdKLnczmz2oaKK9GJOw6ZyRcaPdssO1ej+wzHVIkWiCiNacb3TTYPdzMddYkCgMjZ4r8C0JFCw== +"@vitest/runner@1.3.1": + version "1.3.1" + resolved "https://registry.npmjs.org/@vitest/runner/-/runner-1.3.1.tgz" + integrity sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg== dependencies: - "@vitest/utils" "0.32.4" - p-limit "^4.0.0" + "@vitest/utils" "1.3.1" + p-limit "^5.0.0" pathe "^1.1.1" -"@vitest/snapshot@0.32.4": - version "0.32.4" - resolved "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.32.4.tgz" - integrity sha512-IRpyqn9t14uqsFlVI2d7DFMImGMs1Q9218of40bdQQgMePwVdmix33yMNnebXcTzDU5eiV3eUsoxxH5v0x/IQA== +"@vitest/snapshot@1.3.1": + version "1.3.1" + resolved "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.3.1.tgz" + integrity sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ== dependencies: - magic-string "^0.30.0" + magic-string "^0.30.5" pathe "^1.1.1" - pretty-format "^29.5.0" + pretty-format "^29.7.0" -"@vitest/spy@0.32.4": - version "0.32.4" - resolved "https://registry.npmjs.org/@vitest/spy/-/spy-0.32.4.tgz" - integrity sha512-oA7rCOqVOOpE6rEoXuCOADX7Lla1LIa4hljI2MSccbpec54q+oifhziZIJXxlE/CvI2E+ElhBHzVu0VEvJGQKQ== +"@vitest/spy@1.3.1": + version "1.3.1" + resolved "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz" + integrity sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig== dependencies: - tinyspy "^2.1.1" + tinyspy "^2.2.0" -"@vitest/ui@*", "@vitest/ui@^0.25.8": - version "0.25.8" - resolved "https://registry.npmjs.org/@vitest/ui/-/ui-0.25.8.tgz" - integrity sha512-wfuhghldD5QHLYpS46GK8Ru8P3XcMrWvFjRQD21KNzc9Y/qtJsqoC8KmT6xWVkMNw4oHYixpo3a4ZySRJdserw== +"@vitest/utils@1.3.1": + version "1.3.1" + resolved "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.1.tgz" + integrity sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ== dependencies: - sirv "^2.0.2" - -"@vitest/utils@0.32.4": - version "0.32.4" - resolved "https://registry.npmjs.org/@vitest/utils/-/utils-0.32.4.tgz" - integrity sha512-Gwnl8dhd1uJ+HXrYyV0eRqfmk9ek1ASE/LWfTCuWMw+d07ogHqp4hEAV28NiecimK6UY9DpSEPh+pXBA5gtTBg== - dependencies: - diff-sequences "^29.4.3" - loupe "^2.3.6" - pretty-format "^29.5.0" - -abab@^2.0.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + diff-sequences "^29.6.3" + estree-walker "^3.0.3" + loupe "^2.3.7" + pretty-format "^29.7.0" abbrev@1: version "1.1.1" resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn-walk@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn-walk@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== -acorn@^8.2.4, acorn@^8.8.2, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== +acorn@^8.11.3: + version "8.11.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== agent-base@6: version "6.0.2" @@ -1038,7 +568,7 @@ agent-base@6: ansi-colors@4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^4.2.1: @@ -1048,12 +578,17 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -1072,7 +607,7 @@ ansi-styles@^5.0.0: resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -anymatch@^3.0.3, anymatch@~3.1.2: +anymatch@~3.1.2: version "3.1.3" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -1093,16 +628,9 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-back@^3.0.1, array-back@^3.1.0: @@ -1110,12 +638,7 @@ array-back@^3.0.1, array-back@^3.1.0: resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== -array-back@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" - integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== - -array-back@^4.0.2: +array-back@^4.0.1, array-back@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== @@ -1125,72 +648,6 @@ assertion-error@^1.1.0: resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -babel-jest@^27.5.1, "babel-jest@>=27.0.0 <28": - version "27.5.1" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== - dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== - dependencies: - babel-plugin-jest-hoist "^27.5.1" - babel-preset-current-node-syntax "^1.0.0" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" @@ -1221,19 +678,19 @@ binary-extensions@^2.0.0: resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bip174@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/bip174/-/bip174-2.1.0.tgz" - integrity sha512-lkc0XyiX9E9KiVAS1ZiOqK1xfiwvf4FXDDdkDq5crcDzOq+xGytY+14qCsqz7kCiy8rpN1CRNfacRhf9G3JNSA== +bip174@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bip174/-/bip174-2.1.1.tgz" + integrity sha512-mdFV5+/v0XyNYXjBS6CQPLo9ekCx4gtKZFnJm5PMto7Fs9hTTDpkkzOB7/FtluRI6JbUUAu+snTYfJRgHLZbZQ== bitcoinjs-lib@^6.1.3: - version "6.1.3" - resolved "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.3.tgz" - integrity sha512-TYXs/Qf+GNk2nnsB9HrXWqzFuEgCg0Gx+v3UW3B8VuceFHXVvhT+7hRnTSvwkX0i8rz2rtujeU6gFaDcFqYFDw== + version "6.1.5" + resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz#3b03509ae7ddd80a440f10fc38c4a97f0a028d8c" + integrity sha512-yuf6xs9QX/E8LWE2aMJPNd0IxGofwfuVOiYdNUESkc+2bHHVKjhJd8qewqapeoolh9fihzHGoDCB5Vkr57RZCQ== dependencies: "@noble/hashes" "^1.2.0" bech32 "^2.0.0" - bip174 "^2.1.0" + bip174 "^2.1.1" bs58check "^3.0.1" typeforce "^1.11.3" varuint-bitcoin "^1.1.2" @@ -1248,45 +705,23 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" -braces@^3.0.2, braces@~3.0.2: +braces@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.21.3, "browserslist@>= 4.21.0": - version "4.21.5" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - bs58@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz" @@ -1302,21 +737,9 @@ bs58check@^3.0.1: "@noble/hashes" "^1.2.0" bs58 "^5.0.0" -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - buffer@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" @@ -1340,52 +763,28 @@ cac@^6.7.14: resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: +camelcase@^5.0.0: version "5.3.1" resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.0.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001449: - version "1.0.30001474" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz" - integrity sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q== - -chai@^4.3.7: - version "4.3.7" - resolved "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz" - integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== +chai@^4.3.10: + version "4.4.1" + resolved "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== dependencies: assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^4.1.2" - get-func-name "^2.0.0" - loupe "^2.3.1" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" pathval "^1.1.1" - type-detect "^4.0.5" - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" + type-detect "^4.0.8" chalk@^2.4.2: version "2.4.2" @@ -1396,7 +795,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.1.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1404,22 +803,29 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - chardet@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + +chokidar-cli@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chokidar-cli/-/chokidar-cli-3.0.0.tgz" + integrity sha512-xVW+Qeh7z15uZRxHOkP93Ux8A0xbPzwK4GaqD8dQOYc34TlkqUhVSS59fK36DOp5WdJlrRzlYSy02Ht99FjZqQ== + dependencies: + chokidar "^3.5.2" + lodash.debounce "^4.0.8" + lodash.throttle "^4.1.1" + yargs "^13.3.0" -chokidar@3.5.3: +chokidar@3.5.3, chokidar@^3.5.2: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1439,16 +845,6 @@ chownr@^2.0.0: resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" @@ -1461,24 +857,32 @@ cli-width@^3.0.0: resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + cliui@^7.0.2: version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" color-convert@^1.9.0: version "1.9.3" @@ -1494,28 +898,21 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + color-support@^1.1.2: version "1.1.3" resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - command-line-args@^5.1.1: version "5.2.1" resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz" @@ -1558,11 +955,6 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0: resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" @@ -1579,55 +971,24 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@^4.1.0, debug@^4.1.1, debug@^4.3.4, debug@4, debug@4.3.4: +debug@4, debug@4.3.4, debug@^4.3.4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -decimal.js@^10.2.1: - version "10.4.3" - resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deep-eql@^4.1.2: +deep-eql@^4.1.3: version "4.1.3" resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== @@ -1639,21 +1000,6 @@ deep-extend@~0.6.0: resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - delegates@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" @@ -1665,163 +1011,95 @@ deprecation@^2.0.0, deprecation@^2.3.1: integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== detect-libc@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + version "2.0.2" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== -diff-sequences@^29.4.3: - version "29.4.3" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz" - integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== diff@5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -electron-to-chromium@^1.4.284: - version "1.4.352" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.352.tgz" - integrity sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q== - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -esbuild@^0.17.5: - version "0.17.15" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz" - integrity sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw== +esbuild@^0.19.3: + version "0.19.12" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== optionalDependencies: - "@esbuild/android-arm" "0.17.15" - "@esbuild/android-arm64" "0.17.15" - "@esbuild/android-x64" "0.17.15" - "@esbuild/darwin-arm64" "0.17.15" - "@esbuild/darwin-x64" "0.17.15" - "@esbuild/freebsd-arm64" "0.17.15" - "@esbuild/freebsd-x64" "0.17.15" - "@esbuild/linux-arm" "0.17.15" - "@esbuild/linux-arm64" "0.17.15" - "@esbuild/linux-ia32" "0.17.15" - "@esbuild/linux-loong64" "0.17.15" - "@esbuild/linux-mips64el" "0.17.15" - "@esbuild/linux-ppc64" "0.17.15" - "@esbuild/linux-riscv64" "0.17.15" - "@esbuild/linux-s390x" "0.17.15" - "@esbuild/linux-x64" "0.17.15" - "@esbuild/netbsd-x64" "0.17.15" - "@esbuild/openbsd-x64" "0.17.15" - "@esbuild/sunos-x64" "0.17.15" - "@esbuild/win32-arm64" "0.17.15" - "@esbuild/win32-ia32" "0.17.15" - "@esbuild/win32-x64" "0.17.15" + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + "@types/estree" "^1.0.0" -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== dependencies: cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== - dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" external-editor@^3.0.3: version "3.1.0" @@ -1832,23 +1110,6 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@2.x: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - figures@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" @@ -1870,36 +1131,26 @@ find-replace@^3.0.0: dependencies: array-back "^3.0.1" -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - find-up@5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + flat@^5.0.2: version "5.0.2" - resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" @@ -1912,15 +1163,10 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== gauge@^3.0.0: version "3.0.2" @@ -1937,30 +1183,20 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== git-config@0.0.7: version "0.0.7" @@ -1976,47 +1212,36 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.1.1" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" -glob@7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - handlebars@^4.7.6: - version "4.7.7" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + version "4.7.8" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" - neo-async "^2.6.0" + neo-async "^2.6.2" source-map "^0.6.1" wordwrap "^1.0.0" optionalDependencies: @@ -2037,39 +1262,11 @@ has-unicode@^2.0.1: resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - he@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" @@ -2078,12 +1275,12 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== -iconv-lite@^0.4.24, iconv-lite@0.4.24: +iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -2092,22 +1289,9 @@ iconv-lite@^0.4.24, iconv-lite@0.4.24: ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" @@ -2116,7 +1300,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.3, inherits@2: +inherits@2, inherits@^2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2145,11 +1329,6 @@ inquirer@^7.3.3: strip-ansi "^6.0.0" through "^2.3.6" -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -2157,28 +1336,21 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" @@ -2193,7 +1365,7 @@ is-number@^7.0.0: is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-plain-object@^5.0.0: @@ -2201,24 +1373,14 @@ is-plain-object@^5.0.0: resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== isexe@^2.0.0: @@ -2226,571 +1388,52 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz" - integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== - dependencies: - "@jest/types" "^27.5.1" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz" - integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz" - integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== - dependencies: - "@jest/core" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz" - integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== - dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.5.1" - "@jest/types" "^27.5.1" - babel-jest "^27.5.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^27.5.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz" - integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz" - integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz" - integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" - -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz" - integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== - -jest-github-actions-reporter@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/jest-github-actions-reporter/-/jest-github-actions-reporter-1.0.3.tgz" - integrity sha512-IwLAKLSWLN8ZVfcfEEv6rfeWb78wKDeOhvOmH9KKXayKsKLSCwceopBcB+KUtwxfB5wYnT8Y9s2eZ+WdhA5yng== - dependencies: - "@actions/core" "^1.2.0" - -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== - dependencies: - "@jest/types" "^27.5.1" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz" - integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz" - integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== - dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== - -jest-resolve-dependencies@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz" - integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== - dependencies: - "@jest/types" "^27.5.1" - jest-regex-util "^27.5.1" - jest-snapshot "^27.5.1" - -jest-resolve@*, jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz" - integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz" - integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz" - integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/globals" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz" - integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.5.1" - graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" - -jest-util@^27.0.0, jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz" - integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== - dependencies: - "@jest/types" "^27.5.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.5.1" - leven "^3.1.0" - pretty-format "^27.5.1" - -jest-watcher@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz" - integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== - dependencies: - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.5.1" - string-length "^4.0.1" - -jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^27.0.0, jest@^27.4.5: - version "27.5.1" - resolved "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz" - integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== - dependencies: - "@jest/core" "^27.5.1" - import-local "^3.0.2" - jest-cli "^27.5.1" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" +js-tokens@^8.0.2: + version "8.0.3" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz" + integrity sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw== js-yaml@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" -jsdom@*, jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json5@^2.2.2, json5@2.x: - version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - jsonc-parser@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz" - integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + version "3.2.1" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz" + integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== kleur@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +kolorist@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== +local-pkg@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz" + integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -local-pkg@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" - integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + mlly "^1.4.2" + pkg-types "^1.0.3" -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: - p-locate "^4.1.0" + p-locate "^3.0.0" + path-exists "^3.0.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" @@ -2805,37 +1448,35 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== -lodash.memoize@4.x: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== -lodash@^4.17.19, lodash@^4.7.0: +lodash@^4.17.19: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" is-unicode-supported "^0.1.0" -loupe@^2.3.1, loupe@^2.3.6: - version "2.3.6" - resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz" - integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== - dependencies: - get-func-name "^2.0.0" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== +loupe@^2.3.6, loupe@^2.3.7: + version "2.3.7" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== dependencies: - yallist "^3.0.2" + get-func-name "^2.0.1" lru-cache@^6.0.0: version "6.0.0" @@ -2844,37 +1485,25 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.30.0: - version "0.30.1" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz" - integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA== +magic-string@^0.30.5: + version "0.30.7" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz" + integrity sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" -make-dir@^3.0.0, make-dir@^3.1.0: +make-dir@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" -make-error@1.x: - version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - make-promises-safe@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/make-promises-safe/-/make-promises-safe-5.1.0.tgz" integrity sha512-AfdZ49rtyhQR/6cqVKGoH7y4ql7XkS5HJI1lZm0/5N6CQosy1eYbBJ/qbhkKHzo17UH7M918Bysf6XB9f3kS1g== -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" @@ -2882,7 +1511,7 @@ merge-stream@^2.0.0: micro-btc-signer@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/micro-btc-signer/-/micro-btc-signer-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/micro-btc-signer/-/micro-btc-signer-0.2.0.tgz#cd8ee2858ffd668b9858f621d94be097a5ccecf9" integrity sha512-Rho4MgGnDoEt/nHKHc86+nNCU2xUu+u1XIn4+Qy3e2QeJ2FILr8f/EU80I3QDavJBGvcByrsG6qICuV178HmVg== dependencies: "@noble/hashes" "~1.1.1" @@ -2892,47 +1521,39 @@ micro-btc-signer@^0.2.0: micro-packed@~0.3.0: version "0.3.2" - resolved "https://registry.npmjs.org/micro-packed/-/micro-packed-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/micro-packed/-/micro-packed-0.3.2.tgz#3679188366c2283cb60a78366ed0416e5472b7cf" integrity sha512-D1Bq0/lVOzdxhnX5vylCxZpdw5LylH7Vd81py0DfRsKUP36XYpwvy8ZIsECVo3UfnoROn8pdKqkOzL7Cd82sGA== dependencies: "@scure/base" "~1.1.1" -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4, minimatch@^3.1.1: +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.1.1: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" @@ -2948,10 +1569,10 @@ minipass@^3.0.0: dependencies: yallist "^4.0.0" -minipass@^4.0.0: - version "4.2.5" - resolved "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz" - integrity sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q== +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== minizlib@^2.1.1: version "2.1.2" @@ -2966,20 +1587,20 @@ mkdirp@^1.0.3: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mlly@^1.2.0, mlly@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/mlly/-/mlly-1.4.0.tgz" - integrity sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg== +mlly@^1.2.0, mlly@^1.4.2: + version "1.6.1" + resolved "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz" + integrity sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA== dependencies: - acorn "^8.9.0" - pathe "^1.1.1" + acorn "^8.11.3" + pathe "^1.1.2" pkg-types "^1.0.3" - ufo "^1.1.2" + ufo "^1.3.2" mocha@^10.2.0: - version "10.2.0" - resolved "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== + version "10.3.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" + integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -2988,13 +1609,12 @@ mocha@^10.2.0: diff "5.0.0" escape-string-regexp "4.0.0" find-up "5.0.0" - glob "7.2.0" + glob "8.1.0" he "1.2.0" js-yaml "4.1.0" log-symbols "4.1.0" minimatch "5.0.1" ms "2.1.3" - nanoid "3.3.3" serialize-javascript "6.0.0" strip-json-comments "3.1.1" supports-color "8.1.1" @@ -3003,11 +1623,6 @@ mocha@^10.2.0: yargs-parser "20.2.4" yargs-unparser "2.0.0" -mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== - ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" @@ -3015,7 +1630,7 @@ ms@2.1.2: ms@2.1.3: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== mute-stream@0.0.8: @@ -3023,22 +1638,12 @@ mute-stream@0.0.8: resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@^3.3.4: - version "3.3.6" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== -neo-async@^2.6.0: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -3063,13 +1668,6 @@ neon-cli@^0.9.1: validate-npm-package-license "^3.0.4" validate-npm-package-name "^3.0.0" -node-fetch@^2.6.7: - version "2.6.9" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz" - integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== - dependencies: - whatwg-url "^5.0.0" - node-fetch@2.6.7: version "2.6.7" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" @@ -3077,10 +1675,12 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== +node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" node-pre-gyp-github@^1.4.3: version "1.4.4" @@ -3090,11 +1690,6 @@ node-pre-gyp-github@^1.4.3: "@octokit/rest" "18.12.0" commander "7.2.0" -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - nopt@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" @@ -3107,12 +1702,12 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== dependencies: - path-key "^3.0.0" + path-key "^4.0.0" npmlog@^5.0.1: version "5.0.1" @@ -3124,11 +1719,6 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -nwsapi@^2.2.0: - version "2.2.2" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz" - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== - object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" @@ -3141,31 +1731,26 @@ once@^1.3.0, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" + mimic-fn "^4.0.0" os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -p-limit@^2.2.0: +p-limit@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -3174,28 +1759,28 @@ p-limit@^2.2.0: p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== +p-limit@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz" + integrity sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ== dependencies: yocto-queue "^1.0.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: - p-limit "^2.2.0" + p-limit "^2.0.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" @@ -3205,24 +1790,14 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: @@ -3230,20 +1805,20 @@ path-is-absolute@^1.0.0: resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -pathe@^1.1.0, pathe@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz" - integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== +pathe@^1.1.0, pathe@^1.1.1, pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== pathval@^1.1.1: version "1.1.1" @@ -3255,23 +1830,11 @@ picocolors@^1.0.0: resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - pkg-types@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz" @@ -3281,44 +1844,25 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" -postcss@^8.4.21: - version "8.4.21" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" - integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== +postcss@^8.4.35: + version "8.4.35" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz" + integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== dependencies: - nanoid "^3.3.4" + nanoid "^3.3.7" picocolors "^1.0.0" source-map-js "^1.0.2" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - -prettier@2.8.1: - version "2.8.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz" - integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== - -pretty-format@^27.0.0, pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-format@^29.5.0: - version "29.6.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz" - integrity sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog== +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== dependencies: - "@jest/schemas" "^29.6.0" + "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" react-is "^18.0.0" -prompts@^2.0.1: +prompts@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== @@ -3326,33 +1870,13 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - react-is@^18.0.0: version "18.2.0" resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" @@ -3384,36 +1908,10 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz" - integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== - -resolve@^1.20.0, resolve@^1.22.1: - version "1.22.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== restore-cursor@^3.1.0: version "3.1.0" @@ -3423,7 +1921,7 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -3435,11 +1933,26 @@ ripemd160-min@^0.0.6: resolved "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz" integrity sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A== -rollup@^3.18.0: - version "3.20.2" - resolved "https://registry.npmjs.org/rollup/-/rollup-3.20.2.tgz" - integrity sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg== +rollup@^4.2.0: + version "4.12.0" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz" + integrity sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.12.0" + "@rollup/rollup-android-arm64" "4.12.0" + "@rollup/rollup-darwin-arm64" "4.12.0" + "@rollup/rollup-darwin-x64" "4.12.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.12.0" + "@rollup/rollup-linux-arm64-gnu" "4.12.0" + "@rollup/rollup-linux-arm64-musl" "4.12.0" + "@rollup/rollup-linux-riscv64-gnu" "4.12.0" + "@rollup/rollup-linux-x64-gnu" "4.12.0" + "@rollup/rollup-linux-x64-musl" "4.12.0" + "@rollup/rollup-win32-arm64-msvc" "4.12.0" + "@rollup/rollup-win32-ia32-msvc" "4.12.0" + "@rollup/rollup-win32-x64-msvc" "4.12.0" fsevents "~2.3.2" run-async@^2.4.0: @@ -3464,33 +1977,21 @@ safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - semver@^6.0.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.5, semver@7.x: - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== +semver@^7.3.2, semver@^7.3.5: + version "7.6.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" serialize-javascript@6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" @@ -3517,53 +2018,31 @@ siginfo@^2.0.0: resolved "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -sirv@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz" - integrity sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w== - dependencies: - "@polka/url" "^1.0.0-next.20" - mrmime "^1.0.0" - totalist "^3.0.0" +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" @@ -3573,9 +2052,9 @@ spdx-correct@^3.0.0: spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + version "2.5.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== spdx-expression-parse@^3.0.0: version "3.0.1" @@ -3586,46 +2065,19 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" + version "3.0.17" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz" + integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== stackback@0.0.2: version "0.0.2" resolved "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz" integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== -std-env@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz" - integrity sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg== - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" +std-env@^3.5.0: + version "3.7.0" + resolved "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" @@ -3636,6 +2088,29 @@ string-length@^4.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -3643,27 +2118,29 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-json-comments@^3.1.1, strip-json-comments@3.1.1: +strip-json-comments@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-literal@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz" - integrity sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q== +strip-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-2.0.0.tgz" + integrity sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA== + dependencies: + js-tokens "^8.0.2" + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: - acorn "^8.8.2" + has-flag "^4.0.0" supports-color@^5.3.0: version "5.5.0" @@ -3672,45 +2149,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - table-layout@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz" @@ -3722,58 +2167,36 @@ table-layout@^1.0.2: wordwrapjs "^4.0.0" tar@^6.1.11: - version "6.1.13" - resolved "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz" - integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + version "6.2.0" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^4.0.0" + minipass "^5.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -throat@^6.0.1: - version "6.0.2" - resolved "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz" - integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== - through@^2.3.6: version "2.3.8" resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -tinybench@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz" - integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== +tinybench@^2.5.1: + version "2.6.0" + resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz" + integrity sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA== -tinypool@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/tinypool/-/tinypool-0.5.0.tgz" - integrity sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ== +tinypool@^0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz" + integrity sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ== -tinyspy@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.1.tgz" - integrity sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w== +tinyspy@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz" + integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== tmp@^0.0.33: version "0.0.33" @@ -3782,16 +2205,6 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -3804,47 +2217,11 @@ toml@^3.0.0: resolved "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== -totalist@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz" - integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== - -tough-cookie@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -ts-jest@^27.1.2: - version "27.1.5" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz" - integrity sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^27.0.0" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "20.x" - ts-typed-json@^0.3.2: version "0.3.2" resolved "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.3.2.tgz" @@ -3855,19 +2232,7 @@ tslib@^1.9.0: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - -type-detect@^4.0.0, type-detect@^4.0.5, type-detect@4.0.8: +type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -3877,19 +2242,12 @@ type-fest@^0.21.3: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - typeforce@^1.11.3: version "1.18.0" resolved "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz" integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== -typescript@^4.5.5, typescript@^4.9.0, "typescript@>=3.8 <5.0": +typescript@^4.5.5, typescript@^4.9.0: version "4.9.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== @@ -3904,61 +2262,31 @@ typical@^5.2.0: resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== -ufo@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz" - integrity sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ== +ufo@^1.3.2: + version "1.4.0" + resolved "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz" + integrity sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ== uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== -universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" +universal-user-agent@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-to-istanbul@^8.1.0: - version "8.1.1" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz" - integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" @@ -3981,115 +2309,64 @@ varuint-bitcoin@^1.1.2: dependencies: safe-buffer "^5.1.1" -vite-node@0.32.4: - version "0.32.4" - resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.32.4.tgz" - integrity sha512-L2gIw+dCxO0LK14QnUMoqSYpa9XRGnTTTDjW2h19Mr+GR0EFj4vx52W41gFXfMLqpA00eK4ZjOVYo1Xk//LFEw== +vite-node@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/vite-node/-/vite-node-1.3.1.tgz" + integrity sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng== dependencies: cac "^6.7.14" debug "^4.3.4" - mlly "^1.4.0" pathe "^1.1.1" picocolors "^1.0.0" - vite "^3.0.0 || ^4.0.0" + vite "^5.0.0" -"vite@^3.0.0 || ^4.0.0", vite@^4.0.4: - version "4.2.1" - resolved "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz" - integrity sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg== +vite@^5.0.0, vite@^5.1.4: + version "5.1.4" + resolved "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz" + integrity sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg== dependencies: - esbuild "^0.17.5" - postcss "^8.4.21" - resolve "^1.22.1" - rollup "^3.18.0" + esbuild "^0.19.3" + postcss "^8.4.35" + rollup "^4.2.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.3.3" -vitest-github-actions-reporter@^0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.9.0.tgz" - integrity sha512-tCC9exD0HLH4oTdZBuAMapwkVU9RAcU2GpbtO4a5nqYG4Ty2LW61z90srbWqk3rZHL8IxGo2WfL8r7U+EeeYug== - dependencies: - "@actions/core" "^1.10.0" +vitest-environment-clarinet@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/vitest-environment-clarinet/-/vitest-environment-clarinet-2.0.0.tgz" + integrity sha512-NW8Z0JPV/hwB1WkvGiGED9JmXsefPUjImJRbO3BEsxdL8qxA1y2EAwuqjfmvXYDeisQSnZGbfns7DN8eDxJnpg== -vitest@^0.32.0, vitest@>=0.16.0: - version "0.32.4" - resolved "https://registry.npmjs.org/vitest/-/vitest-0.32.4.tgz" - integrity sha512-3czFm8RnrsWwIzVDu/Ca48Y/M+qh3vOnF16czJm98Q/AN1y3B6PBsyV8Re91Ty5s7txKNjEhpgtGPcfdbh2MZg== - dependencies: - "@types/chai" "^4.3.5" - "@types/chai-subset" "^1.3.3" - "@types/node" "*" - "@vitest/expect" "0.32.4" - "@vitest/runner" "0.32.4" - "@vitest/snapshot" "0.32.4" - "@vitest/spy" "0.32.4" - "@vitest/utils" "0.32.4" - acorn "^8.9.0" - acorn-walk "^8.2.0" - cac "^6.7.14" - chai "^4.3.7" +vitest@^1.0.4, vitest@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/vitest/-/vitest-1.3.1.tgz" + integrity sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ== + dependencies: + "@vitest/expect" "1.3.1" + "@vitest/runner" "1.3.1" + "@vitest/snapshot" "1.3.1" + "@vitest/spy" "1.3.1" + "@vitest/utils" "1.3.1" + acorn-walk "^8.3.2" + chai "^4.3.10" debug "^4.3.4" - local-pkg "^0.4.3" - magic-string "^0.30.0" + execa "^8.0.1" + local-pkg "^0.5.0" + magic-string "^0.30.5" pathe "^1.1.1" picocolors "^1.0.0" - std-env "^3.3.3" - strip-literal "^1.0.1" - tinybench "^2.5.0" - tinypool "^0.5.0" - vite "^3.0.0 || ^4.0.0" - vite-node "0.32.4" + std-env "^3.5.0" + strip-literal "^2.0.0" + tinybench "^2.5.1" + tinypool "^0.8.2" + vite "^5.0.0" + vite-node "1.3.1" why-is-node-running "^2.2.2" -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" @@ -4098,14 +2375,10 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which@^2.0.1: version "2.0.2" @@ -4129,11 +2402,6 @@ wide-align@^1.1.2: dependencies: string-width "^1.0.2 || 2 || 3 || 4" -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" @@ -4149,9 +2417,18 @@ wordwrapjs@^4.0.0: workerpool@6.2.1: version "6.2.1" - resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -4166,59 +2443,47 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.9" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^20.2.2, yargs-parser@20.x: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - yargs-parser@20.2.4: version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-unparser@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -4226,9 +2491,9 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@^16.2.0, yargs@16.2.0: +yargs@16.2.0: version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -4239,9 +2504,38 @@ yargs@^16.2.0, yargs@16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yocto-queue@^1.0.0: From c91012e7cc971154d6e2dc25f7f6da77db610d36 Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Fri, 15 Mar 2024 02:28:31 +0200 Subject: [PATCH 02/14] prettier format code --- front-end/.prettierrc | 8 +-- front-end/package.json | 4 +- front-end/public/index.html | 2 +- .../appMenuSections/home/styles.css | 4 +- .../miningPool/MiningPoolStatus.tsx | 4 +- .../appMenuSections/miningPool/styles.css | 4 +- .../appMenuSections/voting/VotingNotifier.tsx | 4 +- .../reusableComponents/dashboard/styles.css | 4 +- .../reusableComponents/miningPool/styles.css | 4 +- .../reusableComponents/profile/styles.css | 12 +++- .../reusableComponents/voting/styles.css | 4 +- .../stacking/StackingVIsualArts.tsx | 4 +- .../components/stacking/dashboard/styles.css | 4 +- .../profile/AboutContainerStacking.tsx | 8 +-- .../components/stacking/profile/styles.css | 12 +++- front-end/src/consts/lightModeButton.ts | 4 +- front-end/src/consts/readOnly.ts | 70 +++++++++---------- front-end/src/consts/tableData.ts | 8 +-- front-end/src/css/buttons/styles.css | 16 +++-- front-end/src/css/inputs/styles.css | 4 +- front-end/src/css/links/styles.css | 5 +- front-end/src/custom.d.ts | 8 +-- front-end/src/index.css | 10 ++- front-end/src/index.tsx | 2 +- .../deployments/default.devnet-plan.yaml | 2 +- 25 files changed, 124 insertions(+), 87 deletions(-) diff --git a/front-end/.prettierrc b/front-end/.prettierrc index 31a06bd..6237da1 100644 --- a/front-end/.prettierrc +++ b/front-end/.prettierrc @@ -1,5 +1,5 @@ { - "singleQuote": true, - "bracketSpacing": true, - "printWidth": 120 -} \ No newline at end of file + "singleQuote": true, + "bracketSpacing": true, + "printWidth": 120 +} diff --git a/front-end/package.json b/front-end/package.json index 73b3677..ec819fc 100644 --- a/front-end/package.json +++ b/front-end/package.json @@ -74,7 +74,8 @@ "start": "react-app-rewired start", "build": "react-app-rewired build", "test": "react-app-rewired test", - "eject": "react-app-rewired eject" + "eject": "react-app-rewired eject", + "fmt": "./node_modules/.bin/prettier --write ." }, "eslintConfig": { "extends": [ @@ -95,6 +96,7 @@ ] }, "devDependencies": { + "prettier": "^3.2.5", "react-app-rewired": "^2.2.1", "react-router-dom": "^6.10.0" } diff --git a/front-end/public/index.html b/front-end/public/index.html index dbd57fe..66119a2 100644 --- a/front-end/public/index.html +++ b/front-end/public/index.html @@ -1,4 +1,4 @@ - + diff --git a/front-end/src/components/appMenuSections/home/styles.css b/front-end/src/components/appMenuSections/home/styles.css index 2193120..bfb657a 100644 --- a/front-end/src/components/appMenuSections/home/styles.css +++ b/front-end/src/components/appMenuSections/home/styles.css @@ -6,7 +6,9 @@ .homePageLink:hover { border-bottom: 1px solid #ab4c2b; color: #ab4c2b !important; - transition: color 0.3s ease-in, border 0.3s ease-in; + transition: + color 0.3s ease-in, + border 0.3s ease-in; } .home-page-main-container { diff --git a/front-end/src/components/appMenuSections/miningPool/MiningPoolStatus.tsx b/front-end/src/components/appMenuSections/miningPool/MiningPoolStatus.tsx index 61ed2fa..0d7c50b 100644 --- a/front-end/src/components/appMenuSections/miningPool/MiningPoolStatus.tsx +++ b/front-end/src/components/appMenuSections/miningPool/MiningPoolStatus.tsx @@ -41,8 +41,8 @@ const MiningPoolStatus = () => { notifier['vote-status'].value === false ? 'Elections ended!' : parseInt(notifier['election-blocks-remaining'].value) > 0 - ? 'Elections on-going!' - : 'Ended by time!' + ? 'Elections on-going!' + : 'Ended by time!', ); }; getNotifierStatus(); diff --git a/front-end/src/components/appMenuSections/miningPool/styles.css b/front-end/src/components/appMenuSections/miningPool/styles.css index 8017603..fed851d 100644 --- a/front-end/src/components/appMenuSections/miningPool/styles.css +++ b/front-end/src/components/appMenuSections/miningPool/styles.css @@ -10,7 +10,9 @@ table th { .css-11xur9t-MuiPaper-root-MuiTableContainer-root { border: 1px solid #f9b11c; - box-shadow: 1px 3px 4px #ed693c, -1px 0px 4px #fdc60b !important; + box-shadow: + 1px 3px 4px #ed693c, + -1px 0px 4px #fdc60b !important; background-color: #fef9f7 !important; } diff --git a/front-end/src/components/appMenuSections/voting/VotingNotifier.tsx b/front-end/src/components/appMenuSections/voting/VotingNotifier.tsx index d788fce..d09e2a6 100644 --- a/front-end/src/components/appMenuSections/voting/VotingNotifier.tsx +++ b/front-end/src/components/appMenuSections/voting/VotingNotifier.tsx @@ -133,8 +133,8 @@ const VotingNotifier = () => { notifier['vote-status'].value === false ? 'Elections ended!' : parseInt(notifier['election-blocks-remaining'].value) > 0 - ? 'Elections on-going!' - : 'Ended by time!' + ? 'Elections on-going!' + : 'Ended by time!', ); setElectionBlocksRemaining(parseInt(notifier['election-blocks-remaining'].value)); }; diff --git a/front-end/src/components/reusableComponents/dashboard/styles.css b/front-end/src/components/reusableComponents/dashboard/styles.css index 430f029..8a9b08a 100644 --- a/front-end/src/components/reusableComponents/dashboard/styles.css +++ b/front-end/src/components/reusableComponents/dashboard/styles.css @@ -5,7 +5,9 @@ flex-direction: column; overflow: hidden; border: 2px solid #f9b11c; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #fdc60b; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #fdc60b; } .footer-join-button-container { diff --git a/front-end/src/components/reusableComponents/miningPool/styles.css b/front-end/src/components/reusableComponents/miningPool/styles.css index ba01422..e9f1048 100644 --- a/front-end/src/components/reusableComponents/miningPool/styles.css +++ b/front-end/src/components/reusableComponents/miningPool/styles.css @@ -5,7 +5,9 @@ flex-direction: column; overflow: hidden; border: 2px solid #f9b11c; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #fdc60b; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #fdc60b; } .footer-end-vote-button-container { diff --git a/front-end/src/components/reusableComponents/profile/styles.css b/front-end/src/components/reusableComponents/profile/styles.css index 4cb436b..4423a3e 100644 --- a/front-end/src/components/reusableComponents/profile/styles.css +++ b/front-end/src/components/reusableComponents/profile/styles.css @@ -14,7 +14,9 @@ flex-direction: column; overflow: hidden; border: 2px solid #f9b11c; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #fdc60b; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #fdc60b; } .content-info-container { @@ -36,7 +38,9 @@ border-right: #ed693c; border-top: #fdc60b; border-bottom: #ed693c; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #fdc60b; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #fdc60b; position: relative; width: 85%; margin-inline: auto; @@ -44,7 +48,9 @@ .intro-icon-container { border-radius: 10% 10% 30% 30% / 10% 10% 45% 45%; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #ed693c; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #ed693c; background-color: #fdc60b; height: 100px; width: 100px; diff --git a/front-end/src/components/reusableComponents/voting/styles.css b/front-end/src/components/reusableComponents/voting/styles.css index 09c24df..0a573e0 100644 --- a/front-end/src/components/reusableComponents/voting/styles.css +++ b/front-end/src/components/reusableComponents/voting/styles.css @@ -5,7 +5,9 @@ flex-direction: column; overflow: hidden; border: 2px solid #f9b11c; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #fdc60b; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #fdc60b; } .footer-end-vote-button-container { diff --git a/front-end/src/components/stacking/StackingVIsualArts.tsx b/front-end/src/components/stacking/StackingVIsualArts.tsx index 32b6a17..efb33f3 100644 --- a/front-end/src/components/stacking/StackingVIsualArts.tsx +++ b/front-end/src/components/stacking/StackingVIsualArts.tsx @@ -135,8 +135,8 @@ export const StackingVisualArts = ({ currentBlockHeight >= (divWidth - 50) / (divWidth / 100) ? (divWidth - 50) / (divWidth / 100) + '%' : currentBlockHeight < 50 / (divWidth / 100) - ? '0%' - : currentBlockHeight - 50 / (divWidth / 100) + '%', + ? '0%' + : currentBlockHeight - 50 / (divWidth / 100) + '%', }} > Current Block diff --git a/front-end/src/components/stacking/dashboard/styles.css b/front-end/src/components/stacking/dashboard/styles.css index 1e5b390..0b465b7 100644 --- a/front-end/src/components/stacking/dashboard/styles.css +++ b/front-end/src/components/stacking/dashboard/styles.css @@ -30,7 +30,9 @@ flex-direction: column; overflow: hidden; border: 2px solid #f9b11c; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #fdc60b; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #fdc60b; } .footer-join-button-container { diff --git a/front-end/src/components/stacking/profile/AboutContainerStacking.tsx b/front-end/src/components/stacking/profile/AboutContainerStacking.tsx index d99d7dc..8994ff9 100644 --- a/front-end/src/components/stacking/profile/AboutContainerStacking.tsx +++ b/front-end/src/components/stacking/profile/AboutContainerStacking.tsx @@ -118,10 +118,10 @@ const AboutContainerStacking = ({ {delegatedToPool !== null && delegatedToPool !== 0 && userUntilBurnHt !== null ? `${convertDigits(delegatedToPool)} STX until Bitcoin block ${userUntilBurnHt}.` : delegatedToPool !== null && delegatedToPool !== 0 && userUntilBurnHt === null - ? 'The last burn block height for delegated funds has been reached, and the delegation has expired.' - : delegatedToPool === null || delegatedToPool === 0 - ? 'No funds delegated to the Stacking Pool' - : 'No delegated funds'} + ? 'The last burn block height for delegated funds has been reached, and the delegation has expired.' + : delegatedToPool === null || delegatedToPool === 0 + ? 'No funds delegated to the Stacking Pool' + : 'No delegated funds'} diff --git a/front-end/src/components/stacking/profile/styles.css b/front-end/src/components/stacking/profile/styles.css index 4f4df62..cbd432c 100644 --- a/front-end/src/components/stacking/profile/styles.css +++ b/front-end/src/components/stacking/profile/styles.css @@ -17,7 +17,9 @@ flex-direction: column; overflow: hidden; border: 2px solid #f9b11c; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #fdc60b; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #fdc60b; } .content-info-container-stacking { @@ -39,7 +41,9 @@ border-right: #ed693c; border-top: #fdc60b; border-bottom: #ed693c; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #fdc60b; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #fdc60b; position: relative; width: 85%; margin-inline: auto; @@ -47,7 +51,9 @@ .intro-icon-container { border-radius: 10% 10% 30% 30% / 10% 10% 45% 45%; - box-shadow: 1px 1px 4px #ed693c, -1px -1px 4px #ed693c; + box-shadow: + 1px 1px 4px #ed693c, + -1px -1px 4px #ed693c; background-color: #fdc60b; height: 100px; width: 100px; diff --git a/front-end/src/consts/lightModeButton.ts b/front-end/src/consts/lightModeButton.ts index dc4039d..1d9e3f8 100644 --- a/front-end/src/consts/lightModeButton.ts +++ b/front-end/src/consts/lightModeButton.ts @@ -18,7 +18,7 @@ const DarkModeButton = styled(Switch)(({ currentTheme }) => transform: 'translateX(22px)', '& .MuiSwitch-thumb:before': { backgroundImage: `url('data:image/svg+xml;utf8,')`, }, '& + .MuiSwitch-track': { @@ -41,7 +41,7 @@ const DarkModeButton = styled(Switch)(({ currentTheme }) => backgroundRepeat: 'no-repeat', backgroundPosition: 'center', backgroundImage: `url('data:image/svg+xml;utf8,')`, }, }, diff --git a/front-end/src/consts/readOnly.ts b/front-end/src/consts/readOnly.ts index d8fea07..09c9d2e 100644 --- a/front-end/src/consts/readOnly.ts +++ b/front-end/src/consts/readOnly.ts @@ -17,15 +17,15 @@ const contractNetwork = network === 'mainnet' ? new StacksMainnet({ url: apiUrl[development][network] }) : network === 'testnet' - ? new StacksTestnet({ url: apiUrl[development][network] }) - : new StacksMocknet({ url: apiUrl[development][network] }); + ? new StacksTestnet({ url: apiUrl[development][network] }) + : new StacksMocknet({ url: apiUrl[development][network] }); const localNetwork = network === 'devnet' ? 'testnet' : network; const ReadOnlyFunctions = async ( type: 'mining' | 'stacking' | 'pox', function_args: ClarityValue[], - contractFunctionName: string + contractFunctionName: string, ) => { const userAddress = !userSession.isUserSignedIn() ? contractMapping[type][network].owner @@ -48,8 +48,8 @@ const ReadOnlyFunctionsPox = async (contractFunctionName: string, function_args: network === 'mainnet' ? userSession.loadUserData().profile.stxAddress.mainnet : userSession.isUserSignedIn() - ? userSession.loadUserData().profile.stxAddress.testnet - : contractMapping[type][network].owner; + ? userSession.loadUserData().profile.stxAddress.testnet + : contractMapping[type][network].owner; const readOnlyResults = { contractAddress: contractMapping[type][network].contractAddress, @@ -79,10 +79,10 @@ export const readOnlyAddressStatusMining = async (args: string) => { return statusInfo === 'is-miner' ? 'Miner' : statusInfo === 'is-waiting' - ? 'Waiting' - : statusInfo === 'is-pending' - ? 'Pending' - : 'NormalUser'; + ? 'Waiting' + : statusInfo === 'is-pending' + ? 'Pending' + : 'NormalUser'; }; // get-all-data-waiting-miners @@ -105,7 +105,7 @@ export const ReadOnlyAllDataWaitingMiners = async (fullWaitingList: ClarityValue const newResult = await ReadOnlyFunctions( type, [newWaitingList], - functionMapping[type].readOnlyFunctions.getAllDataWaitingMiners + functionMapping[type].readOnlyFunctions.getAllDataWaitingMiners, ); if (newResult) { @@ -126,7 +126,7 @@ export const ReadOnlyGetProposedRemovalListMining = async () => { const removalList: ClarityValue = await ReadOnlyFunctions( type, [], - functionMapping[type].readOnlyFunctions.getProposedRemovalList + functionMapping[type].readOnlyFunctions.getProposedRemovalList, ); return removalList; }; @@ -176,7 +176,7 @@ export const ReadOnlyAllDataProposedRemovalMiners = async () => { const newResult = await ReadOnlyFunctions( type, [newRemovalsList], - functionMapping[type].readOnlyFunctions.getAllDataMinersProposedForRemoval + functionMapping[type].readOnlyFunctions.getAllDataMinersProposedForRemoval, ); if (newResult) { @@ -207,7 +207,7 @@ export const readOnlyGetAllDataMinersPendingAccept = async () => { const newResult = await ReadOnlyFunctions( type, [newWaitingList], - functionMapping[type].readOnlyFunctions.getAllDataMinersPendingAccept + functionMapping[type].readOnlyFunctions.getAllDataMinersPendingAccept, ); if (newResult) { @@ -228,7 +228,7 @@ export const readOnlyGetAllDataMinersInPool = async (address: string) => { const minerData = await ReadOnlyFunctions( type, convertedArgs, - functionMapping[type].readOnlyFunctions.getAllDataMinersInPool + functionMapping[type].readOnlyFunctions.getAllDataMinersInPool, ); const withdraws = await readOnlyGetAllTotalWithdrawalsMining(address); const rawBalance = await readOnlyGetBalanceMining(address); @@ -260,7 +260,7 @@ export const readOnlyGetRemainingBlocksJoinMining = async () => { const blocksLeft = await ReadOnlyFunctions( type, [], - functionMapping[type].readOnlyFunctions.getRemainingBlocksUntilJoin + functionMapping[type].readOnlyFunctions.getRemainingBlocksUntilJoin, ); return Number(convertCVToValue(blocksLeft)); }; @@ -275,7 +275,7 @@ export const readOnlyGetNotifierElectionProcessData = async () => { const notifierData = await ReadOnlyFunctions( type, [], - functionMapping[type].readOnlyFunctions.getDataNotifierElectionProcess + functionMapping[type].readOnlyFunctions.getDataNotifierElectionProcess, ); return cvToJSON(notifierData).value; }; @@ -290,7 +290,7 @@ export const readOnlyGetAllDataNotifierVoterMiners = async (voterMinersList: Cla const votedNotifier = await ReadOnlyFunctions( type, [voterMinersList], - functionMapping[type].readOnlyFunctions.getAllDataNotifierVoterMiners + functionMapping[type].readOnlyFunctions.getAllDataNotifierVoterMiners, ); return cvToJSON(votedNotifier).value[0].value.value === '133' ? "You haven't voted yet!" @@ -308,7 +308,7 @@ export const readOnlyClaimedBlockStatusMining = async (blockHeight: number) => { const blockStatus = await ReadOnlyFunctions( type, convertedArgs, - functionMapping[type].readOnlyFunctions.wasBlockClaimed + functionMapping[type].readOnlyFunctions.wasBlockClaimed, ); return cvToJSON(blockStatus).value; }; @@ -357,7 +357,7 @@ export const ReadOnlyGetWaitingList = async () => { const waitingList: ClarityValue = await ReadOnlyFunctions( type, [], - functionMapping[type].readOnlyFunctions.getWaitingList + functionMapping[type].readOnlyFunctions.getWaitingList, ); return waitingList; }; @@ -406,7 +406,7 @@ export const readOnlyGetNotifierVoteStatus = async () => { const notifierVoteStatus = await ReadOnlyFunctions( type, [], - functionMapping[type].readOnlyFunctions.getNotifierVoteStatus + functionMapping[type].readOnlyFunctions.getNotifierVoteStatus, ); return notifierVoteStatus; }; @@ -432,7 +432,7 @@ export const readOnlyGetPoolSpendPerBlock = async () => { const currentNotifier = await ReadOnlyFunctions( type, [], - functionMapping[type].readOnlyFunctions.getPoolTotalSpendPerBlock + functionMapping[type].readOnlyFunctions.getPoolTotalSpendPerBlock, ); return cvToJSON(currentNotifier).value; }; @@ -449,7 +449,7 @@ export const readOnlyExchangeToggleMining = async (args: string) => { const exchange = await ReadOnlyFunctions( type, [exchangeArgs], - functionMapping[type].readOnlyFunctions.getCurrentExchange + functionMapping[type].readOnlyFunctions.getCurrentExchange, ); return cvToJSON(exchange).value === null ? cvToJSON(exchange).value : cvToJSON(exchange).value.value.value.value; @@ -476,7 +476,7 @@ export const readOnlyGetStacksRewardsMining = async () => { const stacksRewards = await ReadOnlyFunctions( type, [], - functionMapping[type].readOnlyFunctions.getTotalRewardsDistributed + functionMapping[type].readOnlyFunctions.getTotalRewardsDistributed, ); return cvToJSON(stacksRewards).value; }; @@ -492,7 +492,7 @@ export const readOnlyGetAllTotalWithdrawalsMining = async (address: string) => { const totalWithdrawals = await ReadOnlyFunctions( type, [convertedArgs], - functionMapping[type].readOnlyFunctions.getAllDataTotalWithdrawals + functionMapping[type].readOnlyFunctions.getAllDataTotalWithdrawals, ); return cvToJSON(totalWithdrawals).value[0].value.value; @@ -508,7 +508,7 @@ export const readOnlyGetLiquidityProvider = async () => { const currentLiquidityProvider = await ReadOnlyFunctions( type, [], - functionMapping[type].readOnlyFunctions.getLiquidityProvider + functionMapping[type].readOnlyFunctions.getLiquidityProvider, ); return cvToJSON(currentLiquidityProvider).value; // return currentLiquidityProvider; @@ -522,7 +522,7 @@ export const readOnlyGetLiquidityProvider = async () => { export const ReadOnlyGetStackersList = async () => { const type = 'stacking'; const stackersList = cvToJSON( - await ReadOnlyFunctions(type, [], functionMapping[type].readOnlyFunctions.getStackersList) + await ReadOnlyFunctions(type, [], functionMapping[type].readOnlyFunctions.getStackersList), ); return stackersList; }; @@ -564,7 +564,7 @@ export const readOnlyAddressStatusStacking = async (args: string) => { export const readOnlyLockedBalanceUser = async ( userAddress: string, - parameter: 'locked-balance' | 'delegated-balance' | 'until-burn-ht' + parameter: 'locked-balance' | 'delegated-balance' | 'until-burn-ht', ) => { const type = 'stacking'; const userDataArgs = convertPrincipalToArg(userAddress); @@ -573,10 +573,10 @@ export const readOnlyLockedBalanceUser = async ( return ['locked-balance', 'delegated-balance'].indexOf(parameter) > -1 ? parseInt(cvToJSON(userData).value.value[parameter].value) : parameter === 'until-burn-ht' - ? cvToJSON(userData).value.value[parameter].value - ? cvToJSON(userData).value.value[parameter].value.value - : null - : null; + ? cvToJSON(userData).value.value[parameter].value + ? cvToJSON(userData).value.value[parameter].value.value + : null + : null; }; // was-block-claimed @@ -590,7 +590,7 @@ export const readOnlyClaimedBlockStatusStacking = async (blockHeight: number) => const blockStatus = await ReadOnlyFunctions( type, convertedArgs, - functionMapping[type].readOnlyFunctions.wasBlockClaimed + functionMapping[type].readOnlyFunctions.wasBlockClaimed, ); return cvToJSON(blockStatus).value; }; @@ -627,7 +627,7 @@ export const readOnlyHasWonBurnBlock = async (blockHeight: number) => { const hasWon = await ReadOnlyFunctions( type, [uintCV(blockHeight)], - functionMapping[type].readOnlyFunctions.hasWonBurnBlock + functionMapping[type].readOnlyFunctions.hasWonBurnBlock, ); return cvToJSON(hasWon).value; }; @@ -642,7 +642,7 @@ export const readOnlyAlreadyRewardedBurnBlock = async (blockHeight: number) => { const alreadyRewarded = await ReadOnlyFunctions( type, [uintCV(blockHeight)], - functionMapping[type].readOnlyFunctions.alreadyRewardedBurnBlock + functionMapping[type].readOnlyFunctions.alreadyRewardedBurnBlock, ); return cvToJSON(alreadyRewarded).value; }; @@ -658,7 +658,7 @@ export const readOnlyGetAllowanceStacking = async (senderAddress: string) => { const getAllowance = await ReadOnlyFunctions( type, convertedArgs, - functionMapping[type].readOnlyFunctions.getAllowanceStatus + functionMapping[type].readOnlyFunctions.getAllowanceStatus, ); return cvToJSON(getAllowance).value; }; diff --git a/front-end/src/consts/tableData.ts b/front-end/src/consts/tableData.ts index d4e37ac..2fe9281 100644 --- a/front-end/src/consts/tableData.ts +++ b/front-end/src/consts/tableData.ts @@ -104,7 +104,7 @@ export const GetWaitingRows = () => { index, waitingAddress, waitingValue['neg-votes'].value + '/' + waitingValue['neg-thr'].value, - waitingValue['pos-votes'].value + '/' + waitingValue['pos-thr'].value + waitingValue['pos-votes'].value + '/' + waitingValue['pos-thr'].value, ); }) : []; @@ -262,7 +262,7 @@ export const GetRemovalsRows = () => { index, addressList[index].value[0].value, removalsValue['vts-against'].value + '/' + removalsValue['neg-thr'].value, - removalsValue['vts-for'].value + '/' + removalsValue['pos-thr'].value + removalsValue['vts-for'].value + '/' + removalsValue['pos-thr'].value, ); }) : []; @@ -319,7 +319,7 @@ export const notifierColumns: NotifiersColumnData[] = [ export const GetNotifiersRows = async ( minersList: Array<{ type: string; value: string }>, - notifierVoteThreshold: number + notifierVoteThreshold: number, ) => { const getNotifierVotes = async () => { const fullInfo = @@ -329,7 +329,7 @@ export const GetNotifiersRows = async ( const minerValue = miner.value; const votes = await readOnlyGetNotifierVoteNumber(minerValue); return { index, minerValue, votes }; - }) + }), ) : []; return fullInfo; diff --git a/front-end/src/css/buttons/styles.css b/front-end/src/css/buttons/styles.css index 003dfda..b11d17c 100644 --- a/front-end/src/css/buttons/styles.css +++ b/front-end/src/css/buttons/styles.css @@ -12,18 +12,26 @@ } .customDarkButton:hover { - box-shadow: 2px 2px 7px #fdc60b, -2px -2px 7px #fdc60b; + box-shadow: + 2px 2px 7px #fdc60b, + -2px -2px 7px #fdc60b; background: none; background-color: transparent; - transition: background-color 2s linear, box-shadow 0.5s; + transition: + background-color 2s linear, + box-shadow 0.5s; color: #fdc60b; } .customButton:hover { - box-shadow: 2px 2px 7px #fdc60b, -2px -2px 7px #fdc60b; + box-shadow: + 2px 2px 7px #fdc60b, + -2px -2px 7px #fdc60b; background: none; background-color: #fef9f7; - transition: background-color 2s linear, box-shadow 0.5s; + transition: + background-color 2s linear, + box-shadow 0.5s; color: #5f2a18; } diff --git a/front-end/src/css/inputs/styles.css b/front-end/src/css/inputs/styles.css index a132367..f41a513 100644 --- a/front-end/src/css/inputs/styles.css +++ b/front-end/src/css/inputs/styles.css @@ -9,5 +9,7 @@ .custom-input:focus { outline: none; border: 0.5px solid #ed693c; - box-shadow: 1px 1px 4px #fdc60b, -1px -1px 4px #fdc60b; + box-shadow: + 1px 1px 4px #fdc60b, + -1px -1px 4px #fdc60b; } diff --git a/front-end/src/css/links/styles.css b/front-end/src/css/links/styles.css index b21e25d..34e6c19 100644 --- a/front-end/src/css/links/styles.css +++ b/front-end/src/css/links/styles.css @@ -8,5 +8,8 @@ cursor: pointer; color: #da6137 !important; text-decoration: underline; - transition: font-size 0.5s, color 1s, text-decoration 1s; + transition: + font-size 0.5s, + color 1s, + text-decoration 1s; } diff --git a/front-end/src/custom.d.ts b/front-end/src/custom.d.ts index 7d826ed..a666151 100644 --- a/front-end/src/custom.d.ts +++ b/front-end/src/custom.d.ts @@ -1,4 +1,4 @@ -declare module "*.png"; -declare module "*.svg"; -declare module "*.jpeg"; -declare module "*.jpg"; \ No newline at end of file +declare module '*.png'; +declare module '*.svg'; +declare module '*.jpeg'; +declare module '*.jpg'; diff --git a/front-end/src/index.css b/front-end/src/index.css index 2a05b72..f71730c 100644 --- a/front-end/src/index.css +++ b/front-end/src/index.css @@ -1,15 +1,13 @@ body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", - "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', + 'Droid Sans', 'Helvetica Neue', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } code { - font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", - monospace; + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; } button.Connect, @@ -38,4 +36,4 @@ button.Vote { border-radius: 14px; padding: 8px 12px; margin: 4px; -} \ No newline at end of file +} diff --git a/front-end/src/index.tsx b/front-end/src/index.tsx index 2cebc47..88bc1a2 100644 --- a/front-end/src/index.tsx +++ b/front-end/src/index.tsx @@ -46,5 +46,5 @@ ReactDOM.render( , - document.getElementById('root') + document.getElementById('root'), ); diff --git a/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml b/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml index e938763..65bf110 100644 --- a/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml +++ b/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml @@ -151,7 +151,7 @@ plan: - contract-publish: contract-name: stacking-pool-test expected-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - cost: 390960 + cost: 392840 path: contracts/stacking-pool-test.clar anchor-block-only: true clarity-version: 2 From 10431efa8a8d32615e2100eade4d11817d6e4dbe Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Fri, 15 Mar 2024 02:32:21 +0200 Subject: [PATCH 03/14] feat: convert address to hashbytes and version --- .../ActionsContainerProviderStacking.tsx | 2 +- front-end/src/consts/contract.ts | 2 +- front-end/src/consts/converter.ts | 66 +++++++++++++++++++ .../src/consts/smartContractFunctions.ts | 25 ++++--- 4 files changed, 80 insertions(+), 15 deletions(-) diff --git a/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx b/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx index 7d56387..1be49a0 100644 --- a/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx +++ b/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx @@ -318,7 +318,7 @@ const ActionsContainerProviderStacking = ({ { setNewPoolPoxAddressPubKey(e.target.value); }} diff --git a/front-end/src/consts/contract.ts b/front-end/src/consts/contract.ts index 6e0ee78..32224f3 100644 --- a/front-end/src/consts/contract.ts +++ b/front-end/src/consts/contract.ts @@ -43,7 +43,7 @@ export const contractMapping: ContractMapping = { }, devnet: { contractAddress: 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM', - contractName: 'stacking-pool', + contractName: 'stacking-pool-test', owner: 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM', }, }, diff --git a/front-end/src/consts/converter.ts b/front-end/src/consts/converter.ts index 3a5b258..e6e34dc 100644 --- a/front-end/src/consts/converter.ts +++ b/front-end/src/consts/converter.ts @@ -3,6 +3,7 @@ import { network } from './network'; import { stringCV } from '@stacks/transactions/dist/clarity/types/stringCV.js'; import { principalCV } from '@stacks/transactions/dist/clarity/types/principalCV.js'; +import { address } from 'bitcoinjs-lib'; export const convertIntToArg = (number: number) => { return uintCV(number); @@ -61,3 +62,68 @@ export const convertDigits = (n: number) => { export const numberWithCommas = (x: number) => { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); }; + +export const fromAddressToHashbytesAndVersion = (btcAddress: string) => { + let decoded, version, networkType; + try { + // Try decoding as a Base58Check address (P2PKH or P2SH) + decoded = address.fromBase58Check(btcAddress); + switch (decoded.version) { + case 0x00: + version = '00'; // P2PKH + networkType = 'mainnet'; + break; + case 0x6f: + version = '00'; // P2PKH + networkType = 'testnet/regtest/signet'; + break; + case 0x05: + version = '01'; // P2SH + networkType = 'mainnet'; + break; + case 0xc4: + version = '01'; // P2SH + networkType = 'testnet/regtest/signet'; + break; + default: + version = 'Unknown'; + networkType = 'Unknown'; + } + } catch (e) { + // If Base58Check decoding fails, try Bech32 (P2WPKH, P2WSH, or P2TR) + try { + decoded = address.fromBech32(btcAddress); + switch (decoded.version) { + case 0: // P2WPKH + version = '04'; + break; + case 1: // P2WSH + version = '05'; + break; + case 2: // P2TR + version = '06'; + break; + default: + version = 'Unknown'; + break; + } + networkType = decoded.network === 'mainnet' ? 'mainnet' : 'testnet/regtest/signet'; + } catch (err) { + throw new Error('Invalid address format'); + } + } + // TODO: add test v5 and v6 + // TESTED: v0, v1 - testnet and mainnet + // v4 - only working on mainnet + let hash; + if (parseInt(version, 10) < 3) { + hash = decoded.hash.toString('hex'); + } else { + hash = decoded.data; + } + return { + version: version, + network: networkType, + hash: hash.toString('hex'), + }; +}; diff --git a/front-end/src/consts/smartContractFunctions.ts b/front-end/src/consts/smartContractFunctions.ts index 3421e86..ec7e173 100644 --- a/front-end/src/consts/smartContractFunctions.ts +++ b/front-end/src/consts/smartContractFunctions.ts @@ -19,21 +19,21 @@ import { principalCV, listCV, } from '@stacks/transactions'; -import { convertPrincipalToArg, convertStringToArg } from './converter'; +import { convertPrincipalToArg, convertStringToArg, fromAddressToHashbytesAndVersion } from './converter'; import { crypto } from 'bitcoinjs-lib'; const contractNetwork = network === 'mainnet' ? new StacksMainnet({ url: apiUrl[development][network] }) : network === 'testnet' - ? new StacksTestnet({ url: apiUrl[development][network] }) - : new StacksMocknet({ url: apiUrl[development][network] }); + ? new StacksTestnet({ url: apiUrl[development][network] }) + : new StacksMocknet({ url: apiUrl[development][network] }); const CallFunctions = ( type: 'mining' | 'stacking' | 'pox', function_args: ClarityValue[], contractFunctionName: string, - post_condition_args: STXPostCondition[] + post_condition_args: STXPostCondition[], ) => { const options = { network: contractNetwork, @@ -42,7 +42,7 @@ const CallFunctions = ( contractName: contractMapping[type][network].contractName, functionName: contractFunctionName, functionArgs: function_args, - postConditionMode: PostConditionMode.Deny, + postConditionMode: PostConditionMode.Allow, postConditions: post_condition_args, onFinish: (data: FinishedTxData) => { console.log(transactionUrl(data.txId).explorerUrl); @@ -73,7 +73,7 @@ const createPostConditionSTXTransferFromContract = (conditionAmount: number, typ postConditionAddress, postConditionContract, postConditionCode, - postConditionAmount + postConditionAmount, ); }; @@ -348,13 +348,12 @@ export const ContractSetNewLiquidityProvider = (newProvider: string) => { CallFunctions(type, convertedArgs, functionMapping[type].publicFunctions.setLiquidityProvider, []); }; -export const ContractSetNewBtcPoxAddress = (publicKey: string) => { +export const ContractSetNewBtcPoxAddress = (address: string) => { const type = 'stacking'; - const version = '00'; - const versionBuffer = Buffer.from(version, 'hex'); - const pubKeyBuffer = Buffer.from(publicKey, 'hex'); - const pKhash160 = crypto.hash160(pubKeyBuffer); - const functionArgs = [tupleCV({ hashbytes: bufferCV(pKhash160), version: bufferCV(versionBuffer) })]; + const poxData = fromAddressToHashbytesAndVersion(address); + const hashbytes = Buffer.from(poxData.hash, 'hex'); + const versionBuffer = Buffer.from(poxData.version, 'hex'); + const functionArgs = [tupleCV({ hashbytes: bufferCV(hashbytes), version: bufferCV(versionBuffer) })]; CallFunctions(type, functionArgs, functionMapping[type].publicFunctions.setPoolPoxAddress, []); }; @@ -386,7 +385,7 @@ export const ContractAllowInPoolPoxScStacking = () => { const type = 'pox'; const convertedArgs = [ convertPrincipalToArg( - `${contractMapping['stacking'][network].contractAddress}.${contractMapping['stacking'][network].contractName}` + `${contractMapping['stacking'][network].contractAddress}.${contractMapping['stacking'][network].contractName}`, ), noneCV(), ]; From c506240a3f6ab9acb5443a9a66a2c7dabe2a66f2 Mon Sep 17 00:00:00 2001 From: bowtiedbot Date: Fri, 15 Mar 2024 22:14:10 +0200 Subject: [PATCH 04/14] Disallow multiple delegate same cycle --- front-end/src/components/MainPage.tsx | 3 ++- .../profile/ActionsContainerProviderStacking.tsx | 10 ++++++---- .../smart-contract/contracts/stacking-pool-test.clar | 9 ++++++++- .../deployments/default.devnet-plan.yaml | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/front-end/src/components/MainPage.tsx b/front-end/src/components/MainPage.tsx index f871224..3969e9e 100644 --- a/front-end/src/components/MainPage.tsx +++ b/front-end/src/components/MainPage.tsx @@ -137,6 +137,7 @@ const MainPage = () => { if (userSession.isUserSignedIn() && (currentRole === 'Stacker' || currentRole === 'Provider')) { const wallet = userSession.loadUserData().profile.stxAddress[localNetwork]; const userLockedData = await readOnlyLockedBalanceUser(wallet, 'locked-balance'); + console.log(userLockedData); const userDelegatedData = await readOnlyLockedBalanceUser(wallet, 'delegated-balance'); const userUntilBurnHtData = await readOnlyLockedBalanceUser(wallet, 'until-burn-ht'); setLockedInPool(userLockedData); @@ -146,7 +147,7 @@ const MainPage = () => { }; getLockedBalance(); - }, [userAddress]); + }, []); useEffect(() => { const getReturnCovered = async () => { diff --git a/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx b/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx index 1be49a0..ba2dcb3 100644 --- a/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx +++ b/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx @@ -162,7 +162,7 @@ const ActionsContainerProviderStacking = ({
- +
- +
- +
- +
ok + ;; if until-burn-ht > next reward first cycle -> shit (asserts! (is-in-pool) err-not-in-pool) (asserts! (not (is-prepare-phase next-reward-cycle-first-block)) err-too-late) (try! (delegate-stx-inner amount-ustx (as-contract tx-sender) none)) diff --git a/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml b/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml index 65bf110..249bffe 100644 --- a/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml +++ b/smart-contracts/smart-contract/deployments/default.devnet-plan.yaml @@ -151,7 +151,7 @@ plan: - contract-publish: contract-name: stacking-pool-test expected-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - cost: 392840 + cost: 395130 path: contracts/stacking-pool-test.clar anchor-block-only: true clarity-version: 2 From 543141a187173164ef2c0724dda51b5531597645 Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Fri, 15 Mar 2024 23:21:37 +0200 Subject: [PATCH 05/14] feat: started updating delegate related fe --- .../profile/ActionsContainerStacking.tsx | 15 +++++++++- front-end/src/consts/contract.ts | 2 ++ front-end/src/consts/readOnly.ts | 15 ++++++++++ .../contracts/stacking-pool-test.clar | 29 ++++++++++--------- 4 files changed, 47 insertions(+), 14 deletions(-) diff --git a/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx b/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx index ee0610c..19b6f86 100644 --- a/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx +++ b/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx @@ -12,6 +12,7 @@ import { } from '../../../consts/smartContractFunctions'; import { readOnlyAlreadyRewardedBurnBlock, + readOnlyCanDelegateThisCycle, readOnlyClaimedBlockStatusStacking, readOnlyGetLiquidityProvider, readOnlyHasWonBurnBlock, @@ -56,8 +57,8 @@ const ActionsContainerStacking = ({ const [claimRewardsButtonClicked, setClaimRewardsButtonClicked] = useState(false); const [canCallClaim, setCanCallClaim] = useState(true); const [showAlertClaimReward, setShowAlertClaimReward] = useState(false); + const [canDelegate, setCanDelegate] = useState(false); - const [delegateButtonClicked, setDelegateButtonClicked] = useState(false); // const [canCallClaim, setCanCallClaim] = useState(true); const [delegateCheckboxClicked, setDelegateCheckboxClicked] = useState(false); const [showAlertCanSafelyDelegate, setShowAlertCanSafelyDelegate] = useState(false); @@ -128,6 +129,7 @@ const ActionsContainerStacking = ({ }; const delegateAmount = (amount: number) => { + // TODO: add condition here to display already delegated if (amount !== null && !isNaN(amount)) { if (amount < 0.000001) { alert('You need to input more'); @@ -198,6 +200,17 @@ const ActionsContainerStacking = ({ getAlreadyRewardedBurnBlock(); }, [claimRewardsInputAmount]); + useEffect(() => { + const getCanDelegateThisCycle = async () => { + console.log(numberOfBlocksPerCycle); + console.log(rewardPhaseStartBlockHeight); + const canDelegate = await readOnlyCanDelegateThisCycle(userAddress || "", preparePhaseStartBlockHeight); + setCanDelegate(canDelegate); + } + getCanDelegateThisCycle(); + }, []); + + const leavePool = () => { setLeavePoolButtonClicked(true); if (currentLiquidityProvider !== null && currentLiquidityProvider !== userAddress) { diff --git a/front-end/src/consts/contract.ts b/front-end/src/consts/contract.ts index 32224f3..74379a3 100644 --- a/front-end/src/consts/contract.ts +++ b/front-end/src/consts/contract.ts @@ -132,6 +132,7 @@ interface IFunctionMapping { hasWonBurnBlock: string; alreadyRewardedBurnBlock: string; getUserData: string; + canDelegateThisCycle: string; }; publicFunctions: { delegateStx: string; @@ -226,6 +227,7 @@ export const functionMapping: IFunctionMapping = { hasWonBurnBlock: 'has-won-burn-block', alreadyRewardedBurnBlock: 'already-rewarded-burn-block', getUserData: 'get-user-data', + canDelegateThisCycle: 'can-delegate-this-cycle', }, publicFunctions: { delegateStx: 'delegate-stx', diff --git a/front-end/src/consts/readOnly.ts b/front-end/src/consts/readOnly.ts index 09c9d2e..bd6c4b5 100644 --- a/front-end/src/consts/readOnly.ts +++ b/front-end/src/consts/readOnly.ts @@ -695,3 +695,18 @@ export const readOnlyGetSCReservedBalance = async () => { const stacksRewards = await ReadOnlyFunctions(type, [], functionMapping[type].readOnlyFunctions.getSCReservedBalance); return cvToJSON(stacksRewards).value; }; + +//can-delegate-this-cycle +// args: userAddress, nextRewardCycleFirstBlock +// what does it do: returns true if it hasn't already delegated this cycle, false otherwise +// returns: boolean + +export const readOnlyCanDelegateThisCycle = async (userAddress: string, nextRewardCycleFirstBlock: number) => { + const type = 'stacking'; + const stacksRewards = await ReadOnlyFunctions(type, [principalCV(userAddress), uintCV(nextRewardCycleFirstBlock)], functionMapping[type].readOnlyFunctions.canDelegateThisCycle); + console.log(stacksRewards); + console.log(cvToJSON(stacksRewards).value); + return cvToJSON(stacksRewards).value; +}; + + diff --git a/smart-contracts/smart-contract/contracts/stacking-pool-test.clar b/smart-contracts/smart-contract/contracts/stacking-pool-test.clar index da909cc..da4a487 100644 --- a/smart-contracts/smart-contract/contracts/stacking-pool-test.clar +++ b/smart-contracts/smart-contract/contracts/stacking-pool-test.clar @@ -302,13 +302,7 @@ (next-reward-cycle-first-block (contract-call? 'ST000000000000000000002AMW42H.pox-3 reward-cycle-to-burn-height (+ u1 current-cycle)))) (asserts! (check-caller-allowed) err-stacking-permission-denied) (asserts! (check-pool-SC-pox-allowance) err-allow-pool-in-pox-3-first) - (asserts! (< - (default-to burn-block-height - (default-to (some burn-block-height) (get until-burn-ht (get-user-data contract-caller)))) - next-reward-cycle-first-block) - err-one-delegation-per-cycle) - ;; if until-burn-ht < next reward first cycle -> ok - ;; if until-burn-ht > next reward first cycle -> shit + (asserts! (can-delegate-this-cycle contract-caller next-reward-cycle-first-block) err-one-delegation-per-cycle) (asserts! (is-in-pool) err-not-in-pool) (asserts! (not (is-prepare-phase next-reward-cycle-first-block)) err-too-late) (try! (delegate-stx-inner amount-ustx (as-contract tx-sender) none)) @@ -351,11 +345,11 @@ (asserts! (is-eq contract-caller (var-get liquidity-provider)) err-only-liquidity-provider) (ok (var-set active is-active)))) -;; (define-public (set-liquidity-provider (new-liquidity-provider principal)) -;; (begin -;; (asserts! (is-eq contract-caller (var-get liquidity-provider)) err-only-liquidity-provider) -;; (asserts! (is-some (map-get? user-data {address: new-liquidity-provider})) err-not-in-pool) ;; new liquidity provider should be in pool -;; (ok (var-set liquidity-provider new-liquidity-provider)))) +(define-public (set-liquidity-provider (new-liquidity-provider principal)) +(begin + (asserts! (is-eq contract-caller (var-get liquidity-provider)) err-only-liquidity-provider) + (asserts! (is-some (map-get? user-data {address: new-liquidity-provider})) err-not-in-pool) ;; new liquidity provider should be in pool + (ok (var-set liquidity-provider new-liquidity-provider)))) (define-public (update-return (new-return-value uint)) (begin @@ -735,6 +729,9 @@ (define-read-only (get-delegated-amount (user principal)) (default-to u0 (get amount-ustx (contract-call? 'ST000000000000000000002AMW42H.pox-3 get-delegation-info user)))) +(define-read-only (get-pool-pox-address) +(var-get pool-pox-address)) + (define-read-only (get-liquidity-provider) (var-get liquidity-provider)) @@ -800,4 +797,10 @@ minimum-deposit-amount-liquidity-provider) REWARD_CYCLE_LENGTH) (define-read-only (get-prepare-phase-length) -PREPARE_CYCLE_LENGTH) \ No newline at end of file +PREPARE_CYCLE_LENGTH) + +(define-read-only (can-delegate-this-cycle (user principal) (next-reward-cycle-first-block uint)) +(<= + (default-to burn-block-height + (default-to (some burn-block-height) (get until-burn-ht (get-user-data user)))) + next-reward-cycle-first-block)) From 867d10c757f57e7666c0a11a1dfb3de5ec3660eb Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Sat, 16 Mar 2024 17:17:05 +0200 Subject: [PATCH 06/14] can delegated pop up added --- front-end/src/components/MainPage.tsx | 6 ++ .../stacking/dashboard/DashboardStacking.tsx | 3 + .../dashboard/DashboardStackingInfo.tsx | 2 + .../profile/ActionsContainerStacking.tsx | 59 +++++++++++++------ .../stacking/profile/ProfileStacking.tsx | 3 + .../stacking/profile/StackerProfile.tsx | 4 ++ front-end/src/consts/converter.ts | 2 +- front-end/src/consts/readOnly.ts | 2 +- 8 files changed, 62 insertions(+), 19 deletions(-) diff --git a/front-end/src/components/MainPage.tsx b/front-end/src/components/MainPage.tsx index 3969e9e..947ff32 100644 --- a/front-end/src/components/MainPage.tsx +++ b/front-end/src/components/MainPage.tsx @@ -64,6 +64,7 @@ const MainPage = () => { const [currentCycle, setCurrentCycle] = useState(0); const [preparePhaseStartBlockHeight, setPreparePhaseStartBlockHeight] = useState(0); const [rewardPhaseStartBlockHeight, setRewardPhaseStartBlockHeigh] = useState(0); + const [nextRewardPhaseStartBlockHeight, setNextRewardPhaseStartBlockHeigh] = useState(0); const [stacksAmountThisCycle, setStacksAmountThisCycle] = useState(null); const [lockedInPool, setLockedInPool] = useState(0); const [delegatedToPool, setDelegatedToPool] = useState(0); @@ -118,7 +119,9 @@ const MainPage = () => { const blockInfoResult = await fetch(`${apiMapping.stackingInfo}`) .then((res) => res.json()) .then((res) => res); + if (await blockInfoResult) { + console.log(blockInfoResult); let cycleBlockNr = (blockInfoResult['next_cycle']['reward_phase_start_block_height'] - blockInfoResult['next_cycle']['prepare_phase_start_block_height']) * @@ -127,6 +130,7 @@ const MainPage = () => { setCurrentCycle(blockInfoResult['current_cycle']['id']); setPreparePhaseStartBlockHeight(blockInfoResult['next_cycle']['prepare_phase_start_block_height']); setRewardPhaseStartBlockHeigh(blockInfoResult['next_cycle']['reward_phase_start_block_height'] - cycleBlockNr); + setNextRewardPhaseStartBlockHeigh(blockInfoResult['next_cycle']['reward_phase_start_block_height']); } }; getCurrentBlockInfo(); @@ -390,6 +394,7 @@ const MainPage = () => { currentBurnBlockHeight={currentBurnBlockHeight} preparePhaseStartBlockHeight={preparePhaseStartBlockHeight} rewardPhaseStartBlockHeight={rewardPhaseStartBlockHeight} + nextRewardPhaseStartBlockHeight={nextRewardPhaseStartBlockHeight} currentRole={currentRole} /> } @@ -402,6 +407,7 @@ const MainPage = () => { currentCycle={currentCycle !== null ? currentCycle : 0} preparePhaseStartBlockHeight={preparePhaseStartBlockHeight !== null ? preparePhaseStartBlockHeight : 0} rewardPhaseStartBlockHeight={rewardPhaseStartBlockHeight !== null ? rewardPhaseStartBlockHeight : 0} + nextRewardPhaseStartBlockHeight={nextRewardPhaseStartBlockHeight !== null ? nextRewardPhaseStartBlockHeight : 0} connectedWallet={connectedWallet !== null ? connectedWallet : ''} explorerLink={explorerLink !== null ? explorerLink : ''} userAddress={userAddress !== null ? userAddress : ''} diff --git a/front-end/src/components/stacking/dashboard/DashboardStacking.tsx b/front-end/src/components/stacking/dashboard/DashboardStacking.tsx index 82e0f07..04d54c1 100644 --- a/front-end/src/components/stacking/dashboard/DashboardStacking.tsx +++ b/front-end/src/components/stacking/dashboard/DashboardStacking.tsx @@ -18,6 +18,7 @@ interface IDashboardProps { currentBurnBlockHeight: number; preparePhaseStartBlockHeight: number; rewardPhaseStartBlockHeight: number; + nextRewardPhaseStartBlockHeight: number; } const DashboardStacking = ({ currentRole, @@ -33,6 +34,7 @@ const DashboardStacking = ({ currentBurnBlockHeight, preparePhaseStartBlockHeight, rewardPhaseStartBlockHeight, + nextRewardPhaseStartBlockHeight, }: IDashboardProps) => { const appCurrentTheme = useAppSelector(selectCurrentTheme); @@ -59,6 +61,7 @@ const DashboardStacking = ({ currentBurnBlockHeight={currentBurnBlockHeight} preparePhaseStartBlockHeight={preparePhaseStartBlockHeight} rewardPhaseStartBlockHeight={rewardPhaseStartBlockHeight} + nextRewardPhaseStartBlockHeight={nextRewardPhaseStartBlockHeight} />
diff --git a/front-end/src/components/stacking/dashboard/DashboardStackingInfo.tsx b/front-end/src/components/stacking/dashboard/DashboardStackingInfo.tsx index b863f1a..0f3038a 100644 --- a/front-end/src/components/stacking/dashboard/DashboardStackingInfo.tsx +++ b/front-end/src/components/stacking/dashboard/DashboardStackingInfo.tsx @@ -22,6 +22,7 @@ interface DashboardStackingInfoProps { currentBurnBlockHeight: number; preparePhaseStartBlockHeight: number; rewardPhaseStartBlockHeight: number; + nextRewardPhaseStartBlockHeight: number; } const DashboardStackingInfo = ({ @@ -38,6 +39,7 @@ const DashboardStackingInfo = ({ currentBurnBlockHeight, preparePhaseStartBlockHeight, rewardPhaseStartBlockHeight, + nextRewardPhaseStartBlockHeight, }: DashboardStackingInfoProps) => { //TODO: see what is returning the readOnlyGetAllowanceStacking(userAddress) -> //null is false (so ALert comes up) and diff --git a/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx b/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx index 19b6f86..f5e92d0 100644 --- a/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx +++ b/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx @@ -36,6 +36,7 @@ interface IActionsContainerStackingProps { currentCycle: number; preparePhaseStartBlockHeight: number; rewardPhaseStartBlockHeight: number; + nextRewardPhaseStartBlockHeight: number; } const ActionsContainerStacking = ({ @@ -49,6 +50,7 @@ const ActionsContainerStacking = ({ currentCycle, preparePhaseStartBlockHeight, rewardPhaseStartBlockHeight, + nextRewardPhaseStartBlockHeight, }: IActionsContainerStackingProps) => { const [showAlertLeavePool, setShowAlertLeavePool] = useState(false); const [leavePoolButtonClicked, setLeavePoolButtonClicked] = useState(false); @@ -58,6 +60,7 @@ const ActionsContainerStacking = ({ const [canCallClaim, setCanCallClaim] = useState(true); const [showAlertClaimReward, setShowAlertClaimReward] = useState(false); const [canDelegate, setCanDelegate] = useState(false); + const [showAlertAlreadyDelegated, setShowAlertAlreadyDelegated] = useState(false); // const [canCallClaim, setCanCallClaim] = useState(true); const [delegateCheckboxClicked, setDelegateCheckboxClicked] = useState(false); @@ -130,21 +133,23 @@ const ActionsContainerStacking = ({ const delegateAmount = (amount: number) => { // TODO: add condition here to display already delegated - if (amount !== null && !isNaN(amount)) { - if (amount < 0.000001) { - alert('You need to input more'); - } else { - if (userAddress !== null) { - if ( - reservedAmount * returnCovered < - stacksAmountThisCycle + (delegateAmountInput === null ? 0 : delegateAmountInput) && - !delegateCheckboxClicked - ) { - setShowAlertCanSafelyDelegate(true); - } else ContractDelegateSTXStacking(amount, userAddress); + if (!canDelegate) { + setShowAlertAlreadyDelegated(true); + } else if (amount !== null && !isNaN(amount)) { + if (amount < 0.000001) { + alert('You need to input more'); + } else { + if (userAddress !== null) { + if ( + reservedAmount * returnCovered < + stacksAmountThisCycle + (delegateAmountInput === null ? 0 : delegateAmountInput) && + !delegateCheckboxClicked + ) { + setShowAlertCanSafelyDelegate(true); + } else ContractDelegateSTXStacking(amount, userAddress); + } } } - } }; const increaseDelegateAmount = (alreadyDelegated: number, amount: number) => { @@ -202,9 +207,7 @@ const ActionsContainerStacking = ({ useEffect(() => { const getCanDelegateThisCycle = async () => { - console.log(numberOfBlocksPerCycle); - console.log(rewardPhaseStartBlockHeight); - const canDelegate = await readOnlyCanDelegateThisCycle(userAddress || "", preparePhaseStartBlockHeight); + const canDelegate = await readOnlyCanDelegateThisCycle(userAddress || "", nextRewardPhaseStartBlockHeight); setCanDelegate(canDelegate); } getCanDelegateThisCycle(); @@ -314,7 +317,9 @@ const ActionsContainerStacking = ({ {delegateAmountInput !== null && reservedAmount * returnCovered < stacksAmountThisCycle + delegateAmountInput && - showAlertCanSafelyDelegate && ( + showAlertCanSafelyDelegate && + canDelegate && + (
)} + + {delegateAmountInput !== null && showAlertAlreadyDelegated && ( +
+ {setShowAlertAlreadyDelegated(false)}} + > + You have already delegated for this cycle. + Please wait till the next reward phase start if you want to increase the amount delegated. + {/* TODO: modify this message */} + By default the current amount delegated will be automatically delegated for the next cycle in the second half of it. + + Remaining Blocks: {nextRewardPhaseStartBlockHeight - currentBurnBlockHeight} + + +
+ )} +
@@ -341,6 +364,8 @@ const ActionsContainerStacking = ({ const inputAmountToInt = parseFloat(inputAmount); setDelegateAmountInput(inputAmountToInt); }} + min={1} + max={9000999999} >
diff --git a/front-end/src/components/stacking/profile/ProfileStacking.tsx b/front-end/src/components/stacking/profile/ProfileStacking.tsx index 9c9bc3f..330c0ac 100644 --- a/front-end/src/components/stacking/profile/ProfileStacking.tsx +++ b/front-end/src/components/stacking/profile/ProfileStacking.tsx @@ -11,6 +11,7 @@ interface IProfileStackingProps { currentCycle: number | null; preparePhaseStartBlockHeight: number | null; rewardPhaseStartBlockHeight: number | null; + nextRewardPhaseStartBlockHeight: number | null; connectedWallet: string | null; explorerLink: string | undefined; userAddress: string | null; @@ -28,6 +29,7 @@ const ProfileStacking = ({ currentCycle, preparePhaseStartBlockHeight, rewardPhaseStartBlockHeight, + nextRewardPhaseStartBlockHeight, connectedWallet, explorerLink, userAddress, @@ -89,6 +91,7 @@ const ProfileStacking = ({ currentCycle={currentCycle} preparePhaseStartBlockHeight={preparePhaseStartBlockHeight} rewardPhaseStartBlockHeight={rewardPhaseStartBlockHeight} + nextRewardPhaseStartBlockHeight={nextRewardPhaseStartBlockHeight} /> )}
diff --git a/front-end/src/components/stacking/profile/StackerProfile.tsx b/front-end/src/components/stacking/profile/StackerProfile.tsx index 3cd72d2..20a8c26 100644 --- a/front-end/src/components/stacking/profile/StackerProfile.tsx +++ b/front-end/src/components/stacking/profile/StackerProfile.tsx @@ -18,6 +18,7 @@ interface IStackerProfileProps { currentCycle: number | null; preparePhaseStartBlockHeight: number | null; rewardPhaseStartBlockHeight: number | null; + nextRewardPhaseStartBlockHeight: number | null; } const StackerProfile = ({ @@ -35,6 +36,7 @@ const StackerProfile = ({ currentCycle, preparePhaseStartBlockHeight, rewardPhaseStartBlockHeight, + nextRewardPhaseStartBlockHeight, }: IStackerProfileProps) => { // console.log('currentRole StackerProfile:', currentRole); // console.log( @@ -59,6 +61,7 @@ const StackerProfile = ({ currentCycle !== null && preparePhaseStartBlockHeight !== null && rewardPhaseStartBlockHeight !== null && + nextRewardPhaseStartBlockHeight !== null && reservedAmount !== null && returnCovered !== null && stacksAmountThisCycle !== null @@ -101,6 +104,7 @@ const StackerProfile = ({ currentCycle={currentCycle} preparePhaseStartBlockHeight={preparePhaseStartBlockHeight} rewardPhaseStartBlockHeight={rewardPhaseStartBlockHeight} + nextRewardPhaseStartBlockHeight={nextRewardPhaseStartBlockHeight} /> )}
diff --git a/front-end/src/consts/converter.ts b/front-end/src/consts/converter.ts index e6e34dc..870fa17 100644 --- a/front-end/src/consts/converter.ts +++ b/front-end/src/consts/converter.ts @@ -112,7 +112,7 @@ export const fromAddressToHashbytesAndVersion = (btcAddress: string) => { throw new Error('Invalid address format'); } } - // TODO: add test v5 and v6 + // TODO: add functionality for v4 testnet, and v5 and v6 // TESTED: v0, v1 - testnet and mainnet // v4 - only working on mainnet let hash; diff --git a/front-end/src/consts/readOnly.ts b/front-end/src/consts/readOnly.ts index bd6c4b5..65a08bc 100644 --- a/front-end/src/consts/readOnly.ts +++ b/front-end/src/consts/readOnly.ts @@ -702,9 +702,9 @@ export const readOnlyGetSCReservedBalance = async () => { // returns: boolean export const readOnlyCanDelegateThisCycle = async (userAddress: string, nextRewardCycleFirstBlock: number) => { + console.log('nextRewardCycleFirstBlock', nextRewardCycleFirstBlock); const type = 'stacking'; const stacksRewards = await ReadOnlyFunctions(type, [principalCV(userAddress), uintCV(nextRewardCycleFirstBlock)], functionMapping[type].readOnlyFunctions.canDelegateThisCycle); - console.log(stacksRewards); console.log(cvToJSON(stacksRewards).value); return cvToJSON(stacksRewards).value; }; From c4b0fa536d28fcfcef5f58e2c4d17edcd15e4d41 Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Sun, 17 Mar 2024 19:20:27 +0200 Subject: [PATCH 07/14] updated testnet SC --- front-end/src/consts/contract.ts | 2 +- .../src/consts/smartContractFunctions.ts | 3 ++- .../contracts/stacking-pool-test.clar | 19 ++++++++++++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/front-end/src/consts/contract.ts b/front-end/src/consts/contract.ts index 74379a3..397a0b0 100644 --- a/front-end/src/consts/contract.ts +++ b/front-end/src/consts/contract.ts @@ -38,7 +38,7 @@ export const contractMapping: ContractMapping = { }, testnet: { contractAddress: 'ST02D2KP0630FS1BCJ7YM4TYMDH6NS9QKR0B57R3', - contractName: 'stacking-pool-v5', + contractName: 'stacking-pool-v6', owner: 'ST02D2KP0630FS1BCJ7YM4TYMDH6NS9QKR0B57R3', }, devnet: { diff --git a/front-end/src/consts/smartContractFunctions.ts b/front-end/src/consts/smartContractFunctions.ts index ec7e173..2e61b11 100644 --- a/front-end/src/consts/smartContractFunctions.ts +++ b/front-end/src/consts/smartContractFunctions.ts @@ -42,7 +42,7 @@ const CallFunctions = ( contractName: contractMapping[type][network].contractName, functionName: contractFunctionName, functionArgs: function_args, - postConditionMode: PostConditionMode.Allow, + postConditionMode: PostConditionMode.Deny, postConditions: post_condition_args, onFinish: (data: FinishedTxData) => { console.log(transactionUrl(data.txId).explorerUrl); @@ -305,6 +305,7 @@ export const ContractLeavePoolStacking = () => { // reward-distribution // args: (rewarded-burn-block uint) // what does it do: distributes rewards for a given block +// Doesn't work with postConditionMode === Deny export const ContractRewardDistributionStacking = (blockHeight: number) => { const type = 'stacking'; diff --git a/smart-contracts/smart-contract/contracts/stacking-pool-test.clar b/smart-contracts/smart-contract/contracts/stacking-pool-test.clar index da4a487..ba09c68 100644 --- a/smart-contracts/smart-contract/contracts/stacking-pool-test.clar +++ b/smart-contracts/smart-contract/contracts/stacking-pool-test.clar @@ -506,7 +506,7 @@ error (err (* u1000000 (to-uint error)))))) ;; Rewards transferring functions - +;; Hardcoded price conversion (define-private (transfer-rewards-all-stackers (stackers-list-before-cycle (list 300 principal))) (let ((current-reward (* u454 ;; conversion rate BTC <-> STX @@ -519,6 +519,23 @@ (try! (as-contract (stx-transfer? management-maintenance tx-sender (var-get liquidity-provider)))) (ok (map transfer-reward-one-stacker stackers-list-before-cycle)))) + +;; For exchange price conversion +;; (define-private (transfer-rewards-all-stackers (stackers-list-before-cycle (list 300 principal))) +;; (let ((current-reward +;; (unwrap! +;; (preview-exchange-reward +;; (default-to u0 +;; (get reward +;; (map-get? burn-block-rewards { burn-height: (var-get burn-block-to-distribute-rewards)}))) +;; u5) err-cant-unwrap-exchange-preview)) +;; (management-maintenance (/ (* maintenance current-reward) u100)) +;; (distributed-reward (- current-reward management-maintenance))) +;; (var-set temp-current-reward distributed-reward) +;; (try! (as-contract (stx-transfer? management-maintenance tx-sender (var-get liquidity-provider)))) +;; (ok (map transfer-reward-one-stacker stackers-list-before-cycle)))) + + (define-private (transfer-reward-one-stacker (stacker principal)) (let ( ;; hardcoded reward for testnet From 3e38d1527b01c5ae09c13e8519583a0d6ec207e2 Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Sun, 17 Mar 2024 19:27:57 +0200 Subject: [PATCH 08/14] updated SC mainnet --- .../contracts/stacking-pool-mainnet.clar | 52 +++++++++++-------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar b/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar index f58af7a..017600e 100644 --- a/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar +++ b/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar @@ -314,8 +314,8 @@ (var-set burn-block-to-distribute-rewards rewarded-burn-block) (match (map-get? calculated-weights-reward-cycles {reward-cycle: reward-cycle}) calculated (ok - (unwrap-panic (transfer-rewards-all-stackers stackers-list-for-reward-cycle))) - err-weights-not-calculated))) + (transfer-rewards-all-stackers stackers-list-for-reward-cycle))) + err-weights-not-calculated)) ;; delegating stx to the pool SC (define-public (delegate-stx (amount-ustx uint)) @@ -324,7 +324,7 @@ (next-reward-cycle-first-block (contract-call? 'SP000000000000000000002Q6VF78.pox-3 reward-cycle-to-burn-height (+ u1 current-cycle)))) (asserts! (check-caller-allowed) err-stacking-permission-denied) (asserts! (check-pool-SC-pox-allowance) err-allow-pool-in-pox-3-first) - + (asserts! (can-delegate-this-cycle contract-caller next-reward-cycle-first-block) err-one-delegation-per-cycle) (asserts! (is-in-pool) err-not-in-pool) (asserts! (not (is-prepare-phase next-reward-cycle-first-block)) err-too-late) (try! (delegate-stx-inner amount-ustx (as-contract tx-sender) none)) @@ -367,11 +367,11 @@ (asserts! (is-eq contract-caller (var-get liquidity-provider)) err-only-liquidity-provider) (ok (var-set active is-active)))) -;; (define-public (set-liquidity-provider (new-liquidity-provider principal)) -;; (begin -;; (asserts! (is-eq contract-caller (var-get liquidity-provider)) err-only-liquidity-provider) -;; (asserts! (is-some (map-get? user-data {address: new-liquidity-provider})) err-not-in-pool) ;; new liquidity provider should be in pool -;; (ok (var-set liquidity-provider new-liquidity-provider)))) +(define-public (set-liquidity-provider (new-liquidity-provider principal)) +(begin + (asserts! (is-eq contract-caller (var-get liquidity-provider)) err-only-liquidity-provider) + (asserts! (is-some (map-get? user-data {address: new-liquidity-provider})) err-not-in-pool) ;; new liquidity provider should be in pool + (ok (var-set liquidity-provider new-liquidity-provider)))) (define-public (update-return (new-return-value uint)) (begin @@ -490,7 +490,7 @@ locked-balance: (default-to u0 (get locked-balance (map-get? user-data {address: user}))), until-burn-ht: - (some (+ (default-to u0 (default-to (some u0) (get until-burn-ht (map-get? user-data {address: user})))) REWARD_CYCLE_LENGTH)) + (some (get unlock-burn-height success)) }) (if (> amount-ustx (get locked status)) (match (contract-call? 'SP000000000000000000002Q6VF78.pox-3 delegate-stack-increase @@ -502,6 +502,7 @@ success-increase (begin (print "success-increase") (print success-increase) + (print amount-ustx) (map-set user-data {address: user} { @@ -549,18 +550,18 @@ (default-to u0 (get weight-percentage (map-get? stacker-weights-per-reward-cycle {stacker: stacker, reward-cycle: (var-get reward-cycle-to-distribute-rewards)})))) - (stacker-reward (/ (* stacker-weight reward) ONE-6))) - (if (> stacker-weight u0) - (match (as-contract (stx-transfer? stacker-reward tx-sender stacker)) - success - (begin - (if - (not (check-can-decrement-reserved-balance stacker-reward)) - (decrement-sc-owned-balance stacker-reward) - (decrement-sc-reserved-balance stacker-reward)) - (ok true)) - error (err error)) - (ok false)))) + (stacker-reward (/ (* stacker-weight reward) ONE-6))) + (if (> stacker-weight u0) + (match (as-contract (stx-transfer? stacker-reward tx-sender stacker)) + success + (begin + (if + (not (check-can-decrement-reserved-balance stacker-reward)) + (decrement-sc-owned-balance stacker-reward) + (decrement-sc-reserved-balance stacker-reward)) + (ok true)) + error (err error)) + (ok false)))) (define-private (preview-exchange-reward (sats-amount uint) (slippeage uint)) @@ -751,6 +752,9 @@ (define-read-only (get-delegated-amount (user principal)) (default-to u0 (get amount-ustx (contract-call? 'SP000000000000000000002Q6VF78.pox-3 get-delegation-info user)))) +(define-read-only (get-pool-pox-address) +(var-get pool-pox-address)) + (define-read-only (get-liquidity-provider) (var-get liquidity-provider)) @@ -819,6 +823,12 @@ REWARD_CYCLE_LENGTH) (define-read-only (get-prepare-phase-length) PREPARE_CYCLE_LENGTH) +(define-read-only (can-delegate-this-cycle (user principal) (next-reward-cycle-first-block uint)) +(<= + (default-to burn-block-height + (default-to (some burn-block-height) (get until-burn-ht (get-user-data user)))) + next-reward-cycle-first-block)) + (define-public (swap-preview (token-x-trait ) (token-y-trait ) (multiplied-amount uint) (slippeage uint)) (let ( (token-x (contract-of token-x-trait)) From 57a5c419b60b02f72509b3581334b55a69c4b116 Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Mon, 18 Mar 2024 15:45:32 +0200 Subject: [PATCH 09/14] updated sc stacking mainnet --- front-end/src/consts/readOnly.ts | 6 +++--- .../smart-contract/contracts/stacking-pool-mainnet.clar | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/front-end/src/consts/readOnly.ts b/front-end/src/consts/readOnly.ts index 65a08bc..9d116ef 100644 --- a/front-end/src/consts/readOnly.ts +++ b/front-end/src/consts/readOnly.ts @@ -704,9 +704,9 @@ export const readOnlyGetSCReservedBalance = async () => { export const readOnlyCanDelegateThisCycle = async (userAddress: string, nextRewardCycleFirstBlock: number) => { console.log('nextRewardCycleFirstBlock', nextRewardCycleFirstBlock); const type = 'stacking'; - const stacksRewards = await ReadOnlyFunctions(type, [principalCV(userAddress), uintCV(nextRewardCycleFirstBlock)], functionMapping[type].readOnlyFunctions.canDelegateThisCycle); - console.log(cvToJSON(stacksRewards).value); - return cvToJSON(stacksRewards).value; + // const stacksRewards = await ReadOnlyFunctions(type, [principalCV(userAddress), uintCV(nextRewardCycleFirstBlock)], functionMapping[type].readOnlyFunctions.canDelegateThisCycle); + // console.log(cvToJSON(stacksRewards).value); + // return cvToJSON(stacksRewards).value; }; diff --git a/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar b/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar index 017600e..d00bd98 100644 --- a/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar +++ b/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar @@ -23,7 +23,7 @@ (define-constant half-cycle-length (/ (get reward-cycle-length (unwrap-panic (contract-call? 'SP000000000000000000002Q6VF78.pox-3 get-pox-info))) u2)) ;; minimum amount for the liquidity provider to transfer after deploy in microSTX (STX * 10^-6) -(define-constant minimum-deposit-amount-liquidity-provider u10000000000) +(define-constant minimum-deposit-amount-liquidity-provider u500000000) (define-constant maintenance u2) (define-constant err-only-liquidity-provider (err u100)) @@ -45,6 +45,7 @@ (define-constant err-too-late (err u501)) (define-constant err-not-delegated-before (err u502)) (define-constant err-decrease-forbidden (err u503)) +(define-constant err-one-delegation-per-cycle (err u504)) (define-constant err-no-reward-yet (err u576)) (define-constant err-not-enough-reserved-balance (err u579)) (define-constant err-stacking-permission-denied (err u609)) From 866ffbe117693d48bb2e6924c3cc2698dafbe962 Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Mon, 18 Mar 2024 20:09:45 +0200 Subject: [PATCH 10/14] uncomment readOnly canDelegate --- front-end/src/consts/readOnly.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/front-end/src/consts/readOnly.ts b/front-end/src/consts/readOnly.ts index 9d116ef..1ee9eb4 100644 --- a/front-end/src/consts/readOnly.ts +++ b/front-end/src/consts/readOnly.ts @@ -702,11 +702,9 @@ export const readOnlyGetSCReservedBalance = async () => { // returns: boolean export const readOnlyCanDelegateThisCycle = async (userAddress: string, nextRewardCycleFirstBlock: number) => { - console.log('nextRewardCycleFirstBlock', nextRewardCycleFirstBlock); const type = 'stacking'; - // const stacksRewards = await ReadOnlyFunctions(type, [principalCV(userAddress), uintCV(nextRewardCycleFirstBlock)], functionMapping[type].readOnlyFunctions.canDelegateThisCycle); - // console.log(cvToJSON(stacksRewards).value); - // return cvToJSON(stacksRewards).value; + const canDelegate = await ReadOnlyFunctions(type, [principalCV(userAddress), uintCV(nextRewardCycleFirstBlock)], functionMapping[type].readOnlyFunctions.canDelegateThisCycle); + return cvToJSON(canDelegate).value; }; From e1260d9bb830f31ea2f07ade395a6f0156d07b6c Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Mon, 18 Mar 2024 21:09:11 +0200 Subject: [PATCH 11/14] update stacking to old mainnet SC --- front-end/src/consts/contract.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/front-end/src/consts/contract.ts b/front-end/src/consts/contract.ts index 397a0b0..6c54a79 100644 --- a/front-end/src/consts/contract.ts +++ b/front-end/src/consts/contract.ts @@ -33,7 +33,7 @@ export const contractMapping: ContractMapping = { stacking: { mainnet: { contractAddress: 'SP1SCEXE6PMGPAC6B4N5P2MDKX8V4GF9QDE1FNNGJ', - contractName: 'decentralized-stacking-pool', + contractName: 'degenlab-stacking-pool', owner: 'SP1SCEXE6PMGPAC6B4N5P2MDKX8V4GF9QDE1FNNGJ', }, testnet: { From 9266331ff4e96fed4e8e0edb27fafb0be75ab423 Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Thu, 21 Mar 2024 16:40:27 +0200 Subject: [PATCH 12/14] Stacking: SC update and FE --- .../components/appMenuSections/home/Home.tsx | 123 ++++++++++-------- .../profile/ActionsContainerStacking.tsx | 1 - front-end/src/consts/contract.ts | 6 +- smart-contracts/smart-contract/Clarinet.toml | 6 +- .../contracts/stacking-pool-mainnet.clar | 18 +-- .../smart-contract/settings/Devnet.toml | 27 ++-- 6 files changed, 104 insertions(+), 77 deletions(-) diff --git a/front-end/src/components/appMenuSections/home/Home.tsx b/front-end/src/components/appMenuSections/home/Home.tsx index a7e1531..282d335 100644 --- a/front-end/src/components/appMenuSections/home/Home.tsx +++ b/front-end/src/components/appMenuSections/home/Home.tsx @@ -2,6 +2,7 @@ import { selectCurrentTheme } from '../../../redux/reducers/user-state'; import { useAppSelector } from '../../../redux/store'; import colors from '../../../consts/colorPallete'; import './styles.css'; +import { network } from '../../../consts/network'; const Home = () => { const appCurrentTheme = useAppSelector(selectCurrentTheme); @@ -15,7 +16,10 @@ const Home = () => { textAlign: 'center', }} > -
+

Stacks Decentralized Pools

Home

@@ -25,7 +29,8 @@ const Home = () => {
-
- To install the Hiro Extension on your browser navigate to{' '} +
- To install the Hiro Extension + on your browser navigate to{' '} {
- Connect to the pool using your Stacks account following these steps: + + Connect to the pool using your Stacks account following these steps: +
-
- Open Hiro/Leather Wallet extension. +
- + Open Hiro/Leather Wallet extension.

- - Click the 3 dots in the upper right corner on the Hiro Wallet/Leather Extension.

-
- Click 'Change Network', then select 'Testnet'.

-
- Click the top right corner button of the Stacking Pool app in order - to connect your wallet. + - Click the 3 dots in the upper right corner on the Hiro + Wallet/Leather Extension.

+
- Click 'Change Network', then + select '{network}'.

+
- Click the top right corner + button of the Stacking Pool app in order to connect your wallet.
+ {network !== 'mainnet' && ( + <> +
+ Fund your account with testnet STX: +
+
+
+ - In order to fund your account, navigate to{' '} + + https://explorer.hiro.so/sandbox/faucet?chain=testnet + + .

+
- Click the 'Connect Stacks + Wallet' button in order to connect to your wallet. If you do not + have a wallet,

follow the previous guide on how to + create one.

+
- There, you can click on + 'Request STX' in order to receive STX for testing purposes. +

Please note that the transfer requires a few minutes + for you to get the STX. +
+
-
- Fund your account with testnet STX: -
-
-
- - In order to fund your account, navigate to{' '} - - https://explorer.hiro.so/sandbox/faucet?chain=testnet - - .

-
- Click the 'Connect Stacks Wallet' button in order to connect to your - wallet. If you do not have a wallet,

follow the previous guide on how to create one.

-
- There, you can click on 'Request STX' in order to receive STX for - testing purposes.

Please note that the transfer requires a few minutes for you to get the STX. -
-
- -
- Extra: liquidity-provider testing -
-
-
- - If you want to fit into the Liquidity Provider scenario navigate to{' '} - - this link - - .

-
- From the accounts list choose the `Deployer` one and copy its - `mnemonic`.

-
- Open your Hiro/Leather wallet and connect to the `Liquidity Provider` - account,

select `Use existing key` option and write the mnemonic copied before -
-
+
+ Extra: liquidity-provider testing +
+
+
+ - If you want to fit into the Liquidity Provider scenario + navigate to{' '} + + this link + + .

+
- From the accounts list + choose the `Deployer` one and copy its `mnemonic`.

+
- Open your Hiro/Leather + wallet and connect to the `Liquidity Provider` account,{' '} +

select `Use existing key` option and write the + mnemonic copied before +
+
+ + )}
+


diff --git a/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx b/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx index f5e92d0..5db34d8 100644 --- a/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx +++ b/front-end/src/components/stacking/profile/ActionsContainerStacking.tsx @@ -62,7 +62,6 @@ const ActionsContainerStacking = ({ const [canDelegate, setCanDelegate] = useState(false); const [showAlertAlreadyDelegated, setShowAlertAlreadyDelegated] = useState(false); - // const [canCallClaim, setCanCallClaim] = useState(true); const [delegateCheckboxClicked, setDelegateCheckboxClicked] = useState(false); const [showAlertCanSafelyDelegate, setShowAlertCanSafelyDelegate] = useState(false); // not canSafelyDelegate && checkbox not clicked -> disable button diff --git a/front-end/src/consts/contract.ts b/front-end/src/consts/contract.ts index 6c54a79..b20f739 100644 --- a/front-end/src/consts/contract.ts +++ b/front-end/src/consts/contract.ts @@ -33,7 +33,7 @@ export const contractMapping: ContractMapping = { stacking: { mainnet: { contractAddress: 'SP1SCEXE6PMGPAC6B4N5P2MDKX8V4GF9QDE1FNNGJ', - contractName: 'degenlab-stacking-pool', + contractName: 'degenlab-stacking-pool-v3', owner: 'SP1SCEXE6PMGPAC6B4N5P2MDKX8V4GF9QDE1FNNGJ', }, testnet: { @@ -199,7 +199,7 @@ export const functionMapping: IFunctionMapping = { withdrawStx: 'withdraw-stx', rewardDistribution: 'reward-distribution', addPendingMinersToPool: 'add-pending-miners-to-pool', - leavePool: 'leave-pool', + leavePool: 'quit-stacking-pool', proposeRemoval: 'propose-removal', votePositiveRemoveRequest: 'vote-positive-remove-request', voteNegativeRemoveRequest: 'vote-negative-remove-request', @@ -232,7 +232,7 @@ export const functionMapping: IFunctionMapping = { publicFunctions: { delegateStx: 'delegate-stx', delegateStackStxMany: 'delegate-stack-stx-many', - leavePool: 'leave-pool', + leavePool: 'quit-stacking-pool', rewardDistribution: 'reward-distribution', depositStx: 'deposit-stx-liquidity-provider', withdrawStx: 'withdraw-stx-liquidity-provider', diff --git a/smart-contracts/smart-contract/Clarinet.toml b/smart-contracts/smart-contract/Clarinet.toml index ea76b10..f4cdcca 100644 --- a/smart-contracts/smart-contract/Clarinet.toml +++ b/smart-contracts/smart-contract/Clarinet.toml @@ -7,7 +7,6 @@ cache_dir = '.cache' [[project.requirements]] contract_id = 'ST000000000000000000002AMW42H.pox-3' - [contracts.Wrapped-Bitcoin] path = 'contracts/Wrapped-Bitcoin.clar' clarity_version = 2 @@ -112,6 +111,11 @@ epoch = 2.4 path = 'contracts/trait-sip-010.clar' clarity_version = 2 epoch = 2.4 + +[repl] +clarity_wasm_mode = false +show_timings = false + [repl.analysis] passes = [] diff --git a/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar b/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar index d00bd98..59508d6 100644 --- a/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar +++ b/smart-contracts/smart-contract/contracts/stacking-pool-mainnet.clar @@ -315,8 +315,8 @@ (var-set burn-block-to-distribute-rewards rewarded-burn-block) (match (map-get? calculated-weights-reward-cycles {reward-cycle: reward-cycle}) calculated (ok - (transfer-rewards-all-stackers stackers-list-for-reward-cycle))) - err-weights-not-calculated)) + (transfer-rewards-all-stackers stackers-list-for-reward-cycle)) + err-weights-not-calculated))) ;; delegating stx to the pool SC (define-public (delegate-stx (amount-ustx uint)) @@ -532,12 +532,14 @@ (define-private (transfer-rewards-all-stackers (stackers-list-before-cycle (list 300 principal))) (let ((current-reward - (unwrap! - (preview-exchange-reward - (default-to u0 - (get reward - (map-get? burn-block-rewards { burn-height: (var-get burn-block-to-distribute-rewards)}))) - u5) err-cant-unwrap-exchange-preview)) + (/ + (unwrap! + (preview-exchange-reward + (default-to u0 + (get reward + (map-get? burn-block-rewards { burn-height: (var-get burn-block-to-distribute-rewards)}))) + u5) err-cant-unwrap-exchange-preview) + u100)) (management-maintenance (/ (* maintenance current-reward) u100)) (distributed-reward (- current-reward management-maintenance))) (var-set temp-current-reward distributed-reward) diff --git a/smart-contracts/smart-contract/settings/Devnet.toml b/smart-contracts/smart-contract/settings/Devnet.toml index b1178cf..f0e1f9c 100644 --- a/smart-contracts/smart-contract/settings/Devnet.toml +++ b/smart-contracts/smart-contract/settings/Devnet.toml @@ -1532,12 +1532,11 @@ balance = 100_000_000_000_000 # stx_address: STNHKEPYEPJ8ET55ZZ0M5A34J0R3N5FM2CMMMAZ6 # btc_address: mjSrB3wS4xab3kYqFktwBzfTdPg367ZJ2d + [devnet] -# disable_stacks_explorer = true -# disable_stacks_api = true -stacks_node_wait_time_for_microblocks = 1_000 -stacks_node_first_attempt_time_ms = 15_000 -stacks_node_subsequent_attempt_time_ms = 5_000 +disable_stacks_explorer = false +disable_stacks_api = false +# disable_subnet_api = false # disable_bitcoin_explorer = true # working_dir = "tmp/devnet" # stacks_node_events_observers = ["host.docker.internal:8002"] @@ -1551,8 +1550,8 @@ miner_coinbase_recipient = "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.mining-poo # bitcoin_node_rpc_port = 18443 # bitcoin_node_username = "devnet" # bitcoin_node_password = "devnet" +# bitcoin_controller_block_time = 30_000 bitcoin_controller_automining_disabled = true -bitcoin_controller_block_time = 1_000 # stacks_node_rpc_port = 20443 # stacks_node_p2p_port = 20444 # stacks_api_port = 3999 @@ -1563,21 +1562,23 @@ bitcoin_controller_block_time = 1_000 # postgres_username = "postgres" # postgres_password = "postgres" # postgres_database = "postgres" -# bitcoin_node_image_url = "quay.io/hirosystems/bitcoind:devnet-v2" -# stacks_node_image_url = "localhost:5000/stacks-node:devnet-v2" -stacks_api_image_url = "hirosystems/stacks-blockchain-api:latest" -stacks_explorer_image_url = "hirosystems/explorer:latest" +# bitcoin_node_image_url = "quay.io/hirosystems/bitcoind:26.0" +# stacks_node_image_url = "quay.io/hirosystems/stacks-node:devnet-2.4.0.0.0" +# stacks_api_image_url = "hirosystems/stacks-blockchain-api:latest" +# stacks_explorer_image_url = "hirosystems/explorer:latest" # bitcoin_explorer_image_url = "quay.io/hirosystems/bitcoin-explorer:devnet" -# postgres_image_url = "postgres:14" +# postgres_image_url = "postgres:alpine" # enable_subnet_node = true -# subnet_node_image_url = "hirosystems/hyperchains:0.0.4-stretch" +# subnet_node_image_url = "hirosystems/stacks-subnets:0.8.1" # subnet_leader_mnemonic = "female adjust gallery certain visit token during great side clown fitness like hurt clip knife warm bench start reunion globe detail dream depend fortune" # subnet_leader_derivation_path = "m/44'/5757'/0'/0/0" -# subnet_contract_id = "STXMJXCJDCT4WPF2X1HE42T6ZCCK3TPMBRZ51JEG.hc-alpha" +# subnet_contract_id = "ST173JK7NZBA4BS05ZRATQH1K89YJMTGEH1Z5J52E.subnet-v3-0-1" # subnet_node_rpc_port = 30443 # subnet_node_p2p_port = 30444 # subnet_events_ingestion_port = 30445 # subnet_node_events_observers = ["host.docker.internal:8002"] +# subnet_api_image_url = "hirosystems/stacks-blockchain-api:latest" +# subnet_api_postgres_database = "subnet_api" # For testing in epoch 2.4 / using Clarity2 epoch_2_0 = 100 From 1df87045c5bc81a5438babc6967223615330ce5e Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Thu, 21 Mar 2024 16:51:45 +0200 Subject: [PATCH 13/14] updated 'how to use' info --- front-end/src/components/LeftPanel.tsx | 2 +- .../components/appMenuSections/home/Home.tsx | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/front-end/src/components/LeftPanel.tsx b/front-end/src/components/LeftPanel.tsx index 72f8cda..57ebd34 100644 --- a/front-end/src/components/LeftPanel.tsx +++ b/front-end/src/components/LeftPanel.tsx @@ -229,7 +229,7 @@ const LeftPanel = ({ currentTheme }: ConnectWalletProps) => { { button of the Stacking Pool app in order to connect your wallet.
+ +
+
+ + Join Stacking Pool + +
+
+
- + In the left menu select Stacking, then Dashboard +

+
+ - Click `Allow Pool` Button

+
+ - Afterward click `Join Pool` Button

(can be done in the same block, but in this order) +
+
+
+ +
+
+ + Delegate STX after joining + +
+
+
- + In the left menu select Stacking, then Profile +

+
+ - Insert amount of STX to delegate and then click `Delegate`

+
+
+
+ + {network !== 'mainnet' && ( <>
From a117d764ba20fab32eaf06921ecbde7e7d697e43 Mon Sep 17 00:00:00 2001 From: BowTiedBlox Date: Mon, 25 Mar 2024 16:30:01 +0200 Subject: [PATCH 14/14] update stacking: post-condition withdraw --- .../stacking/profile/ActionsContainerProviderStacking.tsx | 2 +- front-end/src/consts/smartContractFunctions.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx b/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx index ba2dcb3..4ff66ff 100644 --- a/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx +++ b/front-end/src/components/stacking/profile/ActionsContainerProviderStacking.tsx @@ -117,7 +117,7 @@ const ActionsContainerProviderStacking = ({ alert('You need to input more'); } else { if (userAddress !== null) { - ContractWithdrawSTXStacking(withdrawAmountInput, userAddress); + ContractWithdrawSTXStacking(withdrawAmountInput); } } } diff --git a/front-end/src/consts/smartContractFunctions.ts b/front-end/src/consts/smartContractFunctions.ts index 2e61b11..51881e0 100644 --- a/front-end/src/consts/smartContractFunctions.ts +++ b/front-end/src/consts/smartContractFunctions.ts @@ -332,10 +332,10 @@ export const ContractDepositSTXStacking = (amount: number, userAddress: string) // withdraw-stx-liquidity-provider // args: (amount uint) // what does it do: withdraws stx to user's account -export const ContractWithdrawSTXStacking = (amount: number, userAddress: string) => { +export const ContractWithdrawSTXStacking = (amount: number) => { const type = 'stacking'; const convertedArgs = [uintCV(amount * 1000000)]; - const postConditions = createPostConditionSTXTransferToContract(userAddress, amount * 1000000); + const postConditions = createPostConditionSTXTransferFromContract(amount * 1000000, type); CallFunctions(type, convertedArgs, functionMapping[type].publicFunctions.withdrawStx, [postConditions]); };